A data domain (domain) defines the model schema and other properties for a collection specific focus. Common examples of master data recordsdata domains are customers, students, employees, parts and product orders.
Once a version of a domain is created and its master data records (MDRs) are loaded (or mapped in a federated model), it can be referenced by other data domains, adaptors and by API consumers as a source of truth. Domains have version numbers so that other domains, adaptors and applications can bind to a specific domain and version (e.g. states:v3
).
JSON Representation of a Domain and a Description of its Properties
A domain . states:v3
).
Domain Types
The master data for a domain can be stored either:
CENTRALIZED When the domain master data is centrally stored in YOUnite. This is used when the entire organization is comfortable or mandated to migrate a domain to a single store. Central stores are optimal for reference data such as a list of states countries, zip-codes, etc.
FEDERATED domains do not store their data centrally in YOUnite but retrieve and update data on the systems in which it resides for example MIS, ERP or CRM systems. Federated domains require adaptors and metadata and scope configurations and are covered in detail *TODO: TUTORIAL ON FEDERATED*
Domain Model Schemas
A domain model schema (model) is a JSON object describing the schema for a data domain; it defines the properties that make up the domain's schema. The root node of the model schema is the properties
element. See Domains and Domains below.
Create a Domain
The first step in creating a domain is to define the domain name, its type and the owning zone:
Code Block | ||
---|---|---|
| ||
{
"name": <domain-name>,
"domainType": "CENTRALIZED" || "FEDERATED",
"zoneUuid": "<owning_zone_uuid>"
} |
The model is not created in this step. Models are tied to specific versions covered below.
Create a Domain Version
With the domain in place, its first version can be created. The domain version defines the properties that make up domain version's model. The domain version numbers are automatically generated and start with 1 and continue in ascending order. The root node of the model schema is the properties
element. See Domains and Domains below.
A domain version is defined with a domain JSON Object as described below:
Code Block | ||
---|---|---|
| ||
{ "name": <domain-name>, "version": <version>, "domainType": "CENTRALIZED" || "FEDERATED", "modelSchema": { "properties": { "<property-name>": { "type": "<property-type>", ...item1 properties.... }, "<property-name>": { ... } } }, "displayProperty": "<property-name>", "uniquenssRuless": "<property-name1> [, <property-name2>, .....]" } |
Descriptions of the Domain Version Properties:
property | required | valid values | description |
---|---|---|---|
name | yes | Must be at least 3 characters long but no longer than 128. | The domain name. Must be unique to the entire YOUnite deployment since domains are typically shared. |
version | no | Positive integer | The version number. If the version number is omitted the version starts with 1 and is incremented for each new version of the domain. |
domainType | no | CENTRALIZED or FEDERATED | The domain type which can be either: CENTRALIZED (default) When the domain master data is centrally stored in YOUnite. This is used when the entire organization is comfortable or mandated to migrate a domain to a single store. Central stores are optimal for reference data such as a list of states countries, zip-codes, etc. FEDERATED domains do not store their data centrally in YOUnite but reference and update data on the systems in which it resides. Federated domains require adaptors and metadata and scope configurations and are covered in detail *TODO: TUTORIAL ON FEDERATED* |
modelSchema | yes | See Domains and Domains below. | A JSON model describing the schema for the data domain; it defines the properties that make up the domains schema. The root node of the model schema is the properties element. See Domains and Domains below. |
displayProperty | yes | A valid model schema property name | A property defined in the modelSchema that acts as an index for the domain. The data values for the displayProperty must always be unique. See Domains below. |
uniquenessRules | no | One or more valid model schema property names | Required data and their associated rules that are cache'd to make sure duplicate data entries are not POSTed to the domain. This defaults to the displayProperty if it is not provided. See Domains below. |
...