---
title: Workspaces
description: Accounts, Workspaces, Branches, and Commits, and how a Workspace records change.
---

A **Workspace** is where a customer's Ontology, data, sign-in, and access rules live. Each Workspace keeps its own history, so you can change definitions and data on one line of work without disturbing another.

## Accounts

An **Account** is the legal and billing relationship with a customer, and it owns the customer's Workspaces. An Account is always reached through one of its Workspaces: "the Workspace's Account".

## Commits

A **Commit** is one accepted, immutable update to a Workspace. Each Commit points to the Commits it follows, so a Workspace's history is a directed acyclic graph of Commits.

## Branches

A **Branch** is a named ref to a leaf of that graph, such as `main` or `pricing-v2`. It moves to each Commit made on it. A Branch is a line of history inside one Workspace, not a separate environment.

## Who signs in

- A **user** is a person who signs in to a Workspace.
- A **service user** is a principal that is not a person, such as an automated client.
- A **principal** is who an invocation acts for: a user, a service user, or an anonymous principal, such as a visitor to a public App.
- A **role**, such as `member` or `admin`, grants a user permissions. A user whose role grants `account:manage` is an **account manager** and can manage the Workspace's Account.
