Project versions
A project version is a self-contained snapshot of a project's analytical model. Versions make it possible to keep several parallel variants of the model inside one project: every version holds its own complete set of objects, and changes made in one version do not affect the others. Versions are managed from the version switcher in the interface header, next to the project name.
What a version contains
The system splits a project's data into two levels.
| Level | Data |
|---|---|
| Project | Project name, description, colour, creation date, owner, company, project members, configurable data types, and the pointer to the global version |
| Version | RMD data (measures, dimensions, facts) with all column settings, dimension groups, fact tables with their attributes and joins, data marts, database connections, verification filters, and data model canvas positions |
A new project always starts with one version named Version 1, which is also its global version.
The version switcher
The switcher shows the current version of the open project and lists all of the project's versions:
- The global version is marked with an icon and the tooltip Global version
- Deleted versions are not offered for selection
- When no project is open, or when no version is selected yet, the field shows the placeholder Current version
Switching to another version works the same way as switching projects:
- If there are unsaved changes in a fact table or on the data model canvas, you are asked to save or discard them first
- The client state is reset: RMD data, fact tables, cell selection, and the undo/redo history are cleared, and open discussion panels are closed
- The real-time connection is re-established for the new version, so you receive notifications relevant to it only
- From a specific fact table or data mart page you are returned to the corresponding list, because the objects of the new version are different ones
The version you selected is remembered per project for the duration of the browser session, so reopening the project restores the version you worked in last.
The version menu
The button next to the switcher opens the version menu:
| Menu item | Action |
|---|---|
| Create new version | Creates a new version from a chosen source version |
| Export to Git | Exports the version to a file or to a Git repository (see project version export and import) |
| Import from Git | Imports a version from a file or from a Git repository |
| Edit | Renames the current version |
| Compare versions | Opens the comparison of two versions |
| Set global | Makes the current version the global one. The item is hidden when the current version is already global |
| Delete | Deletes the current version |
Creating a version
Create new version opens the Create project version dialog:
| Field | Required | Description |
|---|---|---|
| Project name | — | The current project, read-only |
| Parent version | Yes | The version whose content is copied into the new one. The current version is pre-filled, and the global version is marked with an icon |
| New version | Yes | The name of the new version: maximum 64 characters, and it must differ from the names of the project's other versions |
When you save, the whole content of the parent version is copied into the new version: RMD data with column settings and value lists, dimension groups, fact tables with attributes and joins, database connections, data model positions, verification filters, and file imports. All internal references are rebuilt so that the copy is consistent, and from that point the two versions evolve independently.
The new version becomes your current version, and the interface switches to it.
Notes:
- The number of versions in a project is limited by the company license. When the limit is reached, creating a version is refused with the notification "Versions limit exceeded", and the same limit applies to creating a version by import
- Creating a version requires a valid license
Renaming a version
Edit opens the Edit project version dialog, which shows the project name read-only and lets you change the version name. The same naming rules apply as when creating a version. Only the version's name is edited here; its content is changed through the RMD, fact tables, data marts, and connections sections.
The global version
The global version is the version marked as the project's current working version. It is the default for the whole project: a request that does not name a version explicitly is served from the global version, which makes it the version other users and integrations see by default.
Set global asks for confirmation in the Set current project version as global dialog, warning that the change affects all users working on the project. On confirmation, every user of the project receives the notification "User … changed global project version to …", and their version list is refreshed.
Only one version is global at any time, and the global version cannot be deleted.
Deleting a version
Delete asks for confirmation and warns that all data of the version will be lost. Deleting a version removes its whole content — RMD data, fact tables, data marts, connections, verification filters, and data model positions.
Notes:
- The global version cannot be deleted. To delete it, make another version global first
- After the deletion you are switched to the global version
- Users who were working in the deleted version are told that it was deleted by another user and its data is no longer available
Comparing versions
Compare versions opens a side-by-side comparison of two versions of the project. The two panels scroll in sync: the left one shows the older version, the right one the newer version, and each panel has its own version selector. The comparison is shown separately for the Measures, Dimensions, and Facts tabs, switched with the tabs at the top of the screen.
Each row of the comparison gets a status:
| Status | Meaning |
|---|---|
| Added | The row exists in the new version and not in the old one |
| Deleted | The row exists in the old version and not in the new one |
| Changed | The row exists in both versions, but one or more column values differ |
For changed rows the columns whose values differ are indicated as well. Values are normalised before they are compared, so formulas are shown with element names instead of internal references, list values as their text labels, and checkboxes in readable form.
Comparison is available as soon as the project has two or more versions and a current version is selected. It is a read operation, so it is available to all roles, including Analyst and Viewer, and does not depend on the license state — but a license that allows only one version per project leaves nothing to compare.
Limitations:
- Comparison is read-only: it does not offer a rollback of the model to the state of the older version. To go back to an earlier state, create a new version from the version you want to return to, or import a previously exported copy of it
- Comparison covers the RMD tabs. Differences in fact tables, data marts, and connections are not shown
Who may manage versions
| Operation | Who may perform it |
|---|---|
| Switch the current version, compare versions, export a version | All roles with access to the project, including Analyst and Viewer |
| Create, rename, and delete a version, set the global version, import a version | Developer, Project manager, Administrator, Super administrator — that is, project members with developer access and above |
Version operations are recorded in the system journal.