Branches

Available to: Developers, Admins Minimum plan: Business (for multi-branch workflows); Free and Team operate on a single Production branch

TitanRDM uses a branching model to manage changes to your reference data structures safely. Branches let you make and test changes in isolation before applying them to production — similar to branches in Git, but designed for data management rather than source code.

Branches list page


Why Branches?

Without branches, every change to a table definition takes effect immediately in production. This is fine for small teams on simple plans, but risky as your organisation grows:

  • A column rename could break a downstream report
  • An accidental deletion could remove critical reference data
  • Ability to test changes in isolation before making public

Branches solve this by giving each environment and each developer an isolated workspace where changes can be made, reviewed, and tested before reaching production.


Branch Types

TitanRDM has two categories of branches:

Shared Branches (Permanent Environments)

Shared branches are long-lived environments that represent stages in your change lifecycle. They are created automatically during account activation and cannot be deleted.

BranchPurposeTypical Use
Production (prod)The live environment. Data accessed by end users and downstream systems comes from here.Final, approved reference data
Test (test)Pre-production validation. Changes are promoted here for testing before going to Production.UAT, integration testing

Note: Free and Team plans only have a Production branch. Developers work directly in Production on these plans. The Test and Development branches are created on Business and Enterprise plans.

Private Branches (Feature Branches)

Recommendation: We recommend using the default developer's private branch created for each developer at developer creation time for all individuals' work. Because of the "Cherry-Pick" nature of the promotion process, it is easier to use one branch and continue working on it, even if you are making distinct changes that are promoted at different times. Note, through user group permissions, multiple developers can also share the same private branch. The only time it may make sense for a developer to have multiple private branches is if they are working on completely unrelated features that perhaps require a different parent branch and promotion path. E.g., for a given migration project vs normal domain-based reference data.

Private branches are developer-owned workspaces for making changes in isolation. They are created automatically for each developer. It's also possible to create additional private branches for specific purposes.

  • Each private branch has a parent branch (typically Test)
  • Changes on a private branch are invisible to other developers
  • When ready, the developer promotes changes from the private branch to its parent
  • The branch owner is the user who created it, or a designated developer at the time of developer creation
  • In business and enterprise plans, changes to table definitions can only be made in private branches. This follows software development best practices by isolating structural changes.
  • In Free and Team plans, which only have a Prod branch, changes to table definitions can be made in the Prod branch

Private branches are useful when: - Multiple developers are working on different table changes simultaneously - You want to prototype a structural change without affecting the shared Test branch - A change requires review before merging into Test


Branch Hierarchy

Branches form a parent-child hierarchy. The standard hierarchy for a Business/Enterprise account is:

Production
  └── Test
      ├── private branch  (developer 1)
      └── private branch  (developer 2)

Changes flow upward through promotion:

Private Branch → Test → Production

Each promotion moves table definition changes from one branch to its parent, with a review and approval step at each level.


Branch Properties

PropertyDescription
NameA descriptive name. Must be unique among open shared branches within your account.
Branch Typeshared (permanent environments) or private (feature branches).
Database SuffixA short code (e.g., prod, test, dev, feat) used to name the database schema for this branch. Max 4 characters, must be unique. Cannot be stg (reserved for import staging).
Parent BranchThe branch this one was created from. Changes promote from child to parent.
Statusopen (active) or closed (archived/merged).
OwnerFor private branches, the user who created it, or a designated developer at the time of developer creation.
Integration BranchA special flag — at most one branch per account can be the integration branch. This is the branch where changes from private branches are merged.

Working with Branches

Switching Branches

Your current branch determines which table definitions you see and which deployed tables are available in the sidebar. To switch, click the branch name badge in the top-right header area of the dashboard and select the branch you want.

Branch switcher

When you switch branches: - The Tables sidebar updates to show tables deployed on the new branch - Table Definitions shows definitions on the new branch - Deployments and Promotions filter to the new branch

Creating a Private Branch

  1. Navigate to Development > Branches
  2. Click New Branch
  3. Fill in:
    • Name — e.g., feature-add-currency-tables
    • Parent Branch — typically Test
    • Database Suffix — a short unique code, e.g., curr
    • Description — optional context
  4. Click Create Branch

TitanRDM will: - Create a database schema for the new branch - Create default user groups (Editor, Approver, Developer) for the branch - Add you to the branch's user groups

Closing a Branch

Recommendation: We recommend keeping each developer's private branch open. Because of the "Cherry-Pick" nature of the promotion process, it is easier to keep the branch open and continue working on it, even if you are working on distinct changes.

Closing a branch marks it as archived without removing it or its database schema. The branch record, its history, and its promotions are all preserved. A closed branch can be reopened at any time by editing it and setting its status back to open.

To close a branch:

  1. Navigate to the branch's detail page
  2. Click Edit
  3. Set Status to Closed
  4. Click Save

Deleting a Branch

Recommendation: We recommend keeping each developer's private branch open. Because of the "Cherry-Pick" nature of the promotion process, it is easier to keep the branch open and continue working on it, even if you are working on distinct changes.

Deleting a branch is permanent and destructive. The branch record is removed from the database and cannot be recovered.

When a branch is deleted: - The branch's database schema is dropped (all tables and data on that branch are permanently lost) - The branch's user groups and permissions are removed - The branch record and its associations are permanently deleted

To delete a branch:

  1. Navigate to the branch's detail page
  2. Click Delete
  3. Confirm the deletion

Warning: Deleting a branch is irreversible. All data in the branch's database schema will be permanently lost. We recommend closing a branch rather than deleting it unless you are certain you no longer need it.

You cannot delete a branch that has open child branches. Close or re-parent those child branches first.


Branch Permissions

Each branch has three auto-created user groups:

User GroupPermissionWhat It Grants
Branch [Name] EditoreditBranch membership for End Users; grants no development actions
Branch [Name] ApproverapproveCan approve promotions targeting this branch
Branch [Name] DeveloperdevelopCan create and manage table definitions on this branch

To work on a branch, a developer needs the develop permission on the branch and a matching domain permission. Account administrators bypass these checks.


Database Isolation

Each branch has its own database schema within your account's dedicated database. This means:

  • Tables deployed on a Development branch are physically separate from tables on Production
  • Data entered on one branch does not appear on another
  • You can make structural changes (add/remove columns, change types) on Development without affecting Production

The schema is named after the branch's database suffix (e.g., dev, test, prod).


Branches on Free and Team Plans

On Free and Team plans, your account has a single Production branch. This means:

  • Table definitions are created directly on the Production branch
  • Deployments apply immediately to the live database
  • There is no promotion workflow — changes go live as soon as they are deployed
  • The branch switcher is not displayed in the UI

This simpler model is suitable for small teams where a multi-environment workflow is not needed. You can upgrade to a Business plan at any time to enable branching.