Data Experiences

The full feature is not yet implemented. This is simply a preview to understand how data experiences will work.

‌System Tables

Data Experience Definitions

‌Each row is the definition of an data experience. This includes tables, queries, user defined functions, groups, applets, and anything else required to make your data experience work. Once defined, you can download all of these items and dependencies in one package, and upload that package in another environment to install it.‌

There's also a column for Builder (groups). Builders are able to change the definition of a data experience within that environment.

Data Experiences

‌Permissions are defined in this table. There are installer (groups) and exporter (groups). Exporters are allowed to download the package that contains the schema of a data experience within Data Experiences Definitions from this environment. Importers are allowed to upload a file with an application schema into the environment. Below is an example set of permissions assuming a company develops data experiences only in Dev, and does not make changes to them in UAT or Production.

Environment

Exporters

Installers

Dev

DX Developers

N/A

UAT

N/A

DX Developers

Production

N/A

DevOps

‌Data Experiences are first created in the dev environment, so there is no need to install to dev. No one should be given permission so that someone does not take an older version and accidentally wipe the changes in dev. Data Experience developers can make modifications within dev, and then export the data experience when they are ready to build a release.‌

The same developers are able to push a build onto UAT for testing. Permissions can be set such that no one has permissions to export from UAT. This forces consistency and all changes to be made in Dev. Once UAT is complete, the DevOps team uses the same exported package from Dev that has passed UAT to install to Production.‌

There is no need to export from Production.‌

This is for illustrative purposes only. You may find the need to export hot fix changes on Production back to Dev and allow certain groups to export from production.

Data Experience Installations

‌Data Experience Installations is a log of all installed apps and versions installed. A DX cannot be installed until it has been added to the Data Experiences table, and then only those with Installer (group) permissions are able to install that specific data experience.‌

Current Implementation

There is a Data Experience Definitions table, where you can define the scope of the data experience. It currently only supports tables.

Builder/Builder Groups are the list of users/groups that are allowed to export these table schemas. Whether you are able to do so is entirely dependent on this group, which means even if you do not have Design Table access to the tables individually you are able to export their schema via the endpoint below.‌

API

/API/CreateDXVersion?guid=[guid]&modelVersion=[version]

‌This will download an XML file (containing all the tables associated with that Data Experience) that can be uploaded via the modelloader (/Apps/ModelLoader) in another environment.‌

The Guid is the one associated with the Data Experience definition, and the model version is optionally a version number you can pass in. You should include a model version number when your tables already exist in the target environment and you need to upgrade them.

If you try to load a model with the same version number in an environment, you will get an error if that model version or a newer version already exists.

Model versions should be of the format MAJOR.MINOR.PATCH