Internal data structures

Overview

Reblaze maintains most of its security parameters as Entries, which are contained in Documents, which are contained in Configurations.

A Configuration is a complete definition of Reblaze's behavior for a specific environment. An organization can maintain multiple Configurations (e.g., development, staging, and production).

Each Configuration contains multiple Documents of various types (Global Filters, ACL Profiles, etc.) Each Document contains at least one Entry, i.e., an individual security rule or definition.

A Configuration also includes data blobs, which currently are used to store the geolocation database. This is where Reblaze obtains its geolocation data and ASN for each request it processes.

All of these data structures can be edited via API:

  • A Document is a file treated as a JSON list of entries.

  • An Entry is a JSON dictionary with a unique identifier. This field value must be unique inside the Document, and must be a valid part of an URL. Often, this field is labeled id (for example, configurations). At other times, it has a specific name (for example, Routing Profiles use the field planet_name.)

  • A blob is a file treated as binary data.

The fundamental data structure: Configuration

The Configuration is the atomic unit for all of Reblaze's parameters. Any edits to a Configuration result in a new Configuration being created. Configurations are versioned, and can be reverted at any time.

When a Configuration is created or modified (whether by the UI console or an API call), the admin must push the changes out to the planet. This is the publishing process.

Last updated