What a workspace contains
Each workspace is a complete, independent HQ environment:
Nothing in a workspace references or depends on any other workspace. Deleting a Supabase project deletes everything in that workspace.
The workspace registry
The UI stores workspace metadata in two files on theui-config Docker volume:
workspaces.json— array of workspace entries: label, emoji, Supabase URL, anon key, and adefaultflagsecrets.json— encrypted service-role keys for each workspace
Workspace registry
Stored on the
ui-config Docker volume. Survives container restarts and image updates. Back this up.Runtime injection
The active workspace is selected at runtime and injected into the browser — no image rebuild needed when switching.
Switching workspaces
Use the workspace switcher in Settings → Database. When you switch:- The UI server updates the active workspace in the registry
- The browser reloads with the new Supabase URL and anon key
- You re-authenticate against the new workspace’s Supabase Auth
Multi-workspace support
One UI install can manage multiple Supabase projects. This is useful for:Adding a workspace
Settings → Database → Add workspace. You’ll need:- The Supabase project URL (
https://xyz.supabase.co) - The anon key (public, safe for browsers)
- The service-role key (secret, stored encrypted)
/api/workspaces endpoint.
Isolation model
HQ enforces isolation at two levels:Single-tenant default
Self-hosted installs use a single default tenant ID (00000000-0000-0000-0000-000000000000). All authenticated users in a workspace see the same data. This is by design — HQ is workspace-level admin software, not a multi-user SaaS with per-user permissions.
If you need per-user access control within a workspace, restrict who can sign up for your Supabase project (disable email signup, use invite-only). See Security model.

