Skip to main content

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

PropertyDescription
idUnique identifier
nameDisplay name
slugURL-friendly identifier for public booking links
timezoneDefault timezone for the organization
logoBrand logo for displays and booking pages
settingsOrganization-level configuration

Isolation Model

  • Data isolation — All database queries are scoped by organization_id
  • API isolation — Most endpoints require organization_id in 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