Overview
Multi-tenant SaaS applications need complete isolation between customers while sharing infrastructure. This guide shows how to model tenant isolation, workspace hierarchies, and project-level authorization in Bedrock.The Bedrock Cloud Hierarchy
Bedrock Cloud uses a four-level hierarchy for customer tenants:The Project level is where scope types, roles, and permissions are defined. Each project can have its own authorization model tailored to the application it represents.
Understanding the Hierarchy
Step 1: Create a Tenant
Tenants are created via the Management API. Each tenant automatically gets an associated scope:Step 2: Create Workspaces and Projects
Use the Management API to build out the tenant’s structure:Step 3: Define Project-Level Authorization
Roles, permissions, and scope types are defined at the Project level. This allows each project to have its own authorization model:Roles and permissions defined at the project level are inherited by all environments within that project.
Step 4: Add Users to Projects
Users are added to the tenant, then given memberships and roles at the project level:Tenant Isolation
Tenants are completely isolated. Users in one tenant cannot access another tenant’s resources:Environment Overrides
Restrict production access using scope overrides:Project-Specific Scope Types
Projects can define custom scope types for their domain:Best Practices
Use environment overrides for production
Use environment overrides for production
Apply overrides to production environments to restrict dangerous operations like delete or deploy.
Map external IDs
Map external IDs
Use
externalId on tenants and scopes to map to your billing/CRM systems.Keep workspace structure simple
Keep workspace structure simple
Workspaces are for logical grouping. Don’t over-complicate—most tenants need just one or two workspaces.
Next Steps
Modeling Organizations
Model org structures within tenants
Multi-Tenant Guide
More multi-tenant patterns