Branches

Available to: Developers, Admins Minimum plan: Free (all plans include branching)

TitanRDM uses a branching model to manage changes to your reference data structures safely. A branch holds a set of table definitions — similar to a branch in Git, but designed for data management rather than source code. Developers change definitions on their own branch, test them, and then promote them to a shared branch.

Branches hold definitions, not data. Data lives in environments: each environment (for example Prod, Stage, or a developer's Dev environment) is deployed from one branch, and one branch can deploy to several environments.

Branches list page


Why Branches?

Without branches, every change to a table definition would take effect immediately for everyone:

  • A column rename could break a downstream report
  • An accidental deletion could remove critical reference data
  • There would be no way to test changes in isolation before making them public

Branches solve this by giving each developer an isolated place to make, deploy and test changes before they are reviewed and promoted.


Branch Types

Shared Branches

Shared branches, such as main, collect changes that are ready. They are managed by administrators in Admin > Branches. New accounts start with a single shared branch, main, which deploys to the Stage and Prod environments. Some teams add a test branch between developer branches and main.

Development (Private) Branches

Every developer gets their own development branch, together with their own private Dev environment to deploy and test it in.

  • Each development branch has a parent branch (typically main), which is where its changes are promoted
  • Changes on a development branch are invisible to other developers until promoted
  • Through user group permissions, several developers can share a development branch

Recommendation: We recommend using your default development branch for all your work. Because of the "cherry-pick" nature of the promotion process, it is easier to keep working on one branch, even when you make distinct changes that are promoted at different times.


Branch Hierarchy

Branches form a parent-child hierarchy. Changes flow upward through promotion:

main
  ├── development branch (developer 1)
  └── development branch (developer 2)

or, with a test branch:

main
  └── test
      ├── development branch (developer 1)
      └── development branch (developer 2)

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


Branch Properties

PropertyDescription
NameA descriptive name. Must be unique among open branches; only developers' default branches share a name, and are shown with their owner, e.g. dev (Jane Smith).
Branch Typeshared or private (a developer branch).
Parent BranchThe branch changes are promoted to.
Statusopen or closed.
OwnerFor development branches, the developer who owns it.
Integration BranchThe default parent for new development branches. At most one per account.
External idOptional. The matching branch in your Git provider, for CI/CD integrations.

The Deploys to column on the Branches page shows the environments each branch deploys to.


Working with Branches

Which Branch Am I On?

The branch you work on is the branch that deploys to your current environment. Switch environment with the Environment chooser in the top-right of the header. The Table Definitions page shows the branch in a prominent pill at the top.

To view the definitions of a shared branch — for example to clone them into your own branch — switch to an environment that branch deploys to, such as Stage for main.

My Branches

Developers manage their own development branches in Development > My Branches:

  • New Branch — creates a development branch and a private environment for it. Choose the branch your changes will be promoted to.
  • Switch — makes the branch's environment your current environment.
  • Edit — change the name, parent branch, description or external id.
  • Delete — deletes the branch and its environment. They can be restored from the Deleted Branches list for 30 days, after which they are permanently removed.

Admin > Branches

Administrators manage every branch in Admin > Branches, which starts with a diagram of your branches and the environments they deploy to. Administrators can create, edit and delete both shared and development branches. A shared branch can only be deleted when no environment deploys from it, it has no open child branches, and it has no table definitions.


Branch Permissions

Each branch has two auto-created user groups:

User GroupPermissionWhat It Grants
Branch [Name] ApproverapproveCan approve promotions targeting this branch
Branch [Name] DeveloperdevelopCan create and manage table definitions on this branch, and promote from it

Access to data, and permission to deploy, are granted on environments.