Storing Data with Team Databases

PixieBrix supports Team Database for storing data across mod runs, browsers, and team members. Admins and Managers can view and upload data to Team Databases in the Admin Console.

A team database is a key-value store. Each record is referenced by a unique key, and stores a JSON object.

Team Database Use Cases/Patterns

Common team database use cases include:

  • Reference Data: upload reference data via CSV to make available to team mods

  • Shared State: store shared state across mod runs, browsers, and team members

  • Audit Event Log: record important user actions/events

Creating a Team Database

To create a Team Database, open the Databases screen from the side nav.

Then, click the Create Database button:

Exporting a Team Database

PixieBrix supports exporting a Team Database as:

  • CSV

  • JSON

To export a database, click the Export button on the Database’s detail page:

In the modal, optionally select a date range to export:

Creating/Retrieving/Updating Database Records

Team Database records can be used within PixieBrix mods or with the Developer API

PixieBrix marketplace listing for database bricks:

Schemas

By default, Team Databases allow any shape of data to be stored in the database. However, you can also set a schema for the database, and optionally enforce that schema.

A schema describes the data shape and types that are contained in the Database.

In PixieBrix, database schemas are defined using the JSON Schema standard (the same standard used for defining brick input and output schemas in PixieBrix).

Default Schema

The default schema allows objects of any shape to be stored:

Copy

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": true
}

Required Fields

To require fields, use JSON Schema’s required attribute. For example:

Copy

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "example": {
      "type": "string"
    }
  },
  "required": ["example"],
  "additionalProperties": true
}

Additional Properties

By default, JSON Schema objects allows additional fields that aren’t defined on the schema. To forbid additional properties, set additionalProperties: false

Forbidding additional properties is useful for preventing errors due to field name typos/misspelled fields

Copy

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "example": {
      "type": "string"
    }
  },
  "required": ["example"],
  "additionalProperties": false
}

Enforcing a Schema

👮Enforcing a schema applies to new records and updates to existing records

To enforce a schema, toggle the “Enforce schema” toggle on the Database detail screen’s Schema tab:

When using the shallow , deep, and deep_append merge strategies, PixieBrix enforces the schema for the resulting data (i.e., as opposed to the partial data in the update).

Frequently Asked Questions

Where is the data stored?

The data is stored on Amazon Web Services via Salesforce Heroku in the United States.

How is the data encrypted?

Data is encrypted as rest using AES-256, block-level storage encryption. See Heroku's documentation for more details.

How much data can I store?

Team Databases are optimized for use as a key-value store for mods. Storage limits are determined by your Pricing Plan. Limits are determined by:

  • Number of records

  • Size of data

If you are on an Enterprise Plan, contact your account representative.

How long is data stored? What's your data retention policy?

Individual/Business Plans: data is retained for as long as the account is in active status. Data for closed/suspended accounts may be retained for 1 year. Customers may also submit a data deletion request to delete their account and related data within 7 days.

Enterprise Plans: data is retained for as long as the account is in active status. data is retained in adherence to the enterprise agreement. Contact your account representative for more information.

For a copy of our Data Retention Policy, contact [email protected].

How is the data backed up?

Team Database records you delete are permanently deleted and cannot be recovered. Customers are responsible for performing their own backups (e.g., using our Developer API).

As part of our Disaster Recovery Policy, Team Databases are continuously backed up using Heroku's Continuous Data Protection. Our Disaster Recovery Backups cannot be used to recover records you've deleted from your Team Databases.

For a copy of our Disaster Recovery Policy and Data Retention Policy, contact [email protected].

Last updated