Buckets and Slots

From Dreamtsoft Wiki
Jump to: navigation, search

Buckets and Slots

Buckets are a reference to data in the platform. Since Dreamtsoft allows data to be stored in any number of formats and locations, we've chosen a more generic nomenclature that isn't tied directly to SQL-based products. A table is a type of bucket but a bucket is not always a table.

Creating Buckets

Once you have created and accessed your bundle click the "gears" icon in the lower left of the navigation menu, then click into "bucket management". Click into "Buckets" from there you can click the plus sign to add a bucket.

Admin icons.png


All buckets must have at least one label. Each label entry needs to include both a singular and plural version of the label text.

  • HINT - if you enter the singular version of the label and push "Tab" on your keyboard, the plural version and the bucket "Name" will be filled out for you


A bucket's Name is required to be all lowercase with no spaces or special characters (underscores are ok). For instance, if your bucket's label was "Time card", your bucket's name should probably be "time_card". This slot is only available on bucket creation, and cannot be changed once the bucket has been created.


Bucket types are what control how a bucket is stored on the backend

  • Table - (default) Standard data that is input into the system. e.g. Users, incidents, groups, time cards. etc. Stored in out PostgresSQL database in JSONB format.
  • Classification - A classification of a table that inherits the data model from the parent's table. For instance, you could have a "Work" table, with generic slots like "Number", "Planned Start date", etc. Then you could create classifications that "extend" that table, thereby inheriting its slots, actions, security, etc.
  • Collection - (Being deprecated use Classifications) A grouping of multiple buckets that share slots and functionality.
  • Script - Rely on a Script Mapper to push/pull data for them. Choosing this requires specifying a "mapper" attribute.
  • Configuration - Houses data that holds administrative setup/configuration, meant to be collected and pushed to git with the rest of your bundle configuration
  • Files - Houses actual files, like attachments, pictures, etc that need to be stored in a traditional file structure

Data Service

The data service slot points to the data service that will be managing your data. 99% of the time this will remain with the default data service. However, if you've installed additional data services meant to manage some of your data, this is where'd you specify that.


Attributes are meant to supplement the above bucket definition with miscellaneous additional pieces of data. The following is a list of the available attributes:

  • Collection - the name of the collection bucket you want this bucket to extend from
  • Default sort - the name of the slot that you want the system to default to sorting the records by (usually something like "updated", or "created")
  • Display - the name of the slot (usually "name") that will represent this record when referenced. So for instance, a "User" record would have a display slot of "Name"
  • Hidden - set to "true" if you don't want this bucket to be selectable when selecting buckets throughout the platform
  • Many link - an object representing the many to many nature of this bucket. Helps the platform work with a many-to-many bucket. Format below for the "user_to_group" bucket:
[{"slot": "user_id","label":"User groups"}, {"slot":"group_id","label":"Users in group"}]

And an additional example for a product and bundle many-to-many bucket:


The generic format is as follows:

  • Mapper - the name of the script mapper that this bucket will leverage
  • Override export - (deprecated) the name of the export script that will be used when this bucket's records are exported. Replaced with the new Export Map functionality.
  • Password - where'd you specify the value for the "password" variable passed to the script mapper
  • Table - where'd you specify the value for the "table" variable passed to the script mapper
  • URL - where'd you specify the value for the "URL" variable passed to the script mapper
  • Username - where'd you specify the value for the "username" variable passed to the script mapper


Slots are like columns in a database. When creating slots, they follow the same rules as buckets for the label, name, and attributes. The "Type" field gives you much more options than the bucket type. Slot types are like your data dictionary. This is where you define whether the data you enter will be a string, integer, state, phone number etc.

NOTE: You can also create new slots when you are editing the details component