Organizations & Multi-Tenancy
SpaceOS is a multi-tenant platform. Every piece of data belongs to exactly one organization, and organizations are isolated from each other.
Tenant Hierarchy
Organization (tenant root)
├── Space Groups (location grouping)
│ └── Meeting Spaces (bookable inventory)
│ ├── Bookings
│ ├── Business Hours
│ └── Devices
├── Users & Roles
├── API Keys
├── Webhooks
└── Physical Space Mappings
Organization Properties
| Property | Description |
|---|---|
id | Unique identifier |
name | Display name |
slug | URL-friendly identifier for public booking links |
timezone | Default timezone for the organization |
logo | Brand logo for displays and booking pages |
settings | Organization-level configuration |
Isolation Model
- Data isolation — All database queries are scoped by
organization_id - API isolation — Most endpoints require
organization_idin the request - User isolation — Users are mapped to organizations via
OrganizationUserMapping - API key isolation — Org API Keys (
x-org-api-key) are scoped to a single organization with permission checks
User Membership
A user can belong to multiple organizations. The OrganizationUserMapping entity defines:
- Which organizations a user belongs to
- What role they have in each organization
- Active/inactive status
Next Steps
- Users & Roles — Role-based access control
- Webhooks & Events — Event subscriptions per organization