Inside the Dreamtsoft Platform the data structure is made up of buckets. There are different types of buckets, these types include Table, Classification, Config, Collection, Schema Tag, Queue, and Script It’s important to note that some of these types have limited use cases, the majority of the time you will not be using Queue or Collection.
A Table is traditional database table. It is a bucket that gets created in the database. You will most likely use this the majority of the time. A Table can't have a parent bucket whereas classification and schema tag bucket types must have a parent.
Classification is a bucket that adds (extends) more schema to an existing Table or another Classification bucket. Classifications are for extensions only, they don’t create new tables in the database. Classifications can extend other classifications, but at the root of all the extensions they must extend a bucket type that stores data (eg, Table or Config type buckets). For example, Bucket Cat is a classification bucket that extends another classification, Bucket Dog. Bucket Dog extends from Bucket Animal which is of the Table type (the root bucket). Therefore, if you searched for Animal you will see rows from Animal, Dog and Cat, whereas if you searched Dog you would only see rows from Dog and Cat.
Classification can only be of one type; for example, records in classification Dog are only in Dog and Animal, they cannot also be in Cat. This is different than schema tags which allows a single row to be multiple types.
Schema tags allow you to dynamically define the schema of records on a row by row basis. When you add a tag to a record the slots represented on a form are changed. For example, in the person bucket, all records are of type person. Records in the person bucket can have schema tags on them (eg, user, employee) that add additional data types and values beyond what is defined on the person bucket. This means that you can have custom slots show up on a form when tagged. If you want to have policy specific to records with a given schema tag then you should create a bucket of type schema tag.
A Config bucket has Configuration data that ships with the bundle. Config data defines the behavior of a bundle. When a config bucket gets loaded, all of the rows that belong to the bucket get loaded into memory.
Config buckets are used when you need to define and store the behavior of the bundle. Behavior that is meant to be shipped to multiple places, used, and rarely configured. For example, the “Save” button, which is a browser action, is present on every record form in the system and has its behavior defined in a config bucket.
Examples of Config buckets provided by Dreamtsoft include IO handlers, actions and scheduled jobs. When you need to add custom configuration data types you will most likely use a Config bucket type.
See Script mappers
Collection bucket types are a grouping of multiple buckets, these buckets can be of different types.
Collections are useful when you need to group things of different types, for example, actions. In the system we have multiple different actions (browser, notification, trigger etc.) these different types all refer to the parent collection bucket named action.
The system doesn’t know what to do if you ask it to create an action because it’s not an actual bucket, rather a collection of buckets. So the action collection bucket just forwards you to the appropriate action by listing all the different types of actions and letting you select which one you actually want.
There are limited use cases for this bucket type. Classification is the newer version of Collections.