Setting Up Multi-Tenant Teams
One Coder server can run many independent OpenFlows teams. Each team is a tenant, isolated from the others by both identity and coordination state. This guide walks through adding additional teams and managing the set.
How one server serves many
- Each tenant is a distinct Coder user, a repository binding, and its own orchestrator workspace.
- Tenants share the same Coder server and coordination store, but never see each other's work.
- Isolation is enforced two ways at once: separate identity and access control, and separately namespaced coordination state. Even a misconfigured access control can't read another tenant's data.
Steps to add another team
- Have the control plane running (from the Quickstart).
- Add the tenant for the new team's repository. This creates the tenant's user and its orchestrator workspace, and initializes a fresh agent team.
- Complete GitHub OAuth for that tenant, scoped to its repository.
- Optionally configure notifications for that tenant's escalations.
That's it — the team is live and can start taking issues for its repository.
Managing the team set
From the control panel (or the equivalent command surface):
- List the tenants running on the server.
- Add more tenants as above.
- Clean a stuck tenant — reset stale or failed work to the start so its team can proceed.
- Remove a tenant and tear down its fleet.
What you should see
- Each tenant's status is visible separately; you can tell whose tickets are which.
- Teams operate in parallel without cross-talk.
- A cleanup on one tenant never disturbs another.
Isolation guarantees, restated
- Identity plane: each tenant is a separate user; access is controlled by role-based access control.
- Data plane: each tenant's coordination records live in its own namespace, structurally unreachable by other tenants' components.
- These compose into strong, defense-in-depth isolation on shared infrastructure.
Practical guidance
- Give each team a distinct, well-scoped repository binding so work doesn't collide downstream.
- Set notifications per tenant so escalations reach the right people.
- Use list regularly to keep an eye on the whole fleet across teams.
- Reserve clean and remove for deliberate operations; they reset or tear down a team's work.
Related
Once a team is up, Managing the Fleet controls any
single team. See Wiring Notifications for
per-tenant escalation channels.