ArchitectureMulti-Tenancy

Multi-Tenancy

Septimius uses a shared-database, schema-isolated model to support multiple organisations across all products within a single PostgreSQL instance.

Tenant Hierarchy

The tenancy model follows a three-level hierarchy:

  • Organisation — The top-level tenant boundary. All data isolation starts here.
  • Teams — Subdivisions within an organisation. Teams share organisation-level resources but can have their own scoped data and permissions.
  • Users — Individual accounts belonging to one or more teams within an organisation.

Data Isolation

Row Level Security (RLS) policies enforce data isolation at the database layer. Every table that holds tenant-scoped data includes an organisation_id column, and RLS policies ensure that queries only return rows belonging to the authenticated user’s organisation. This approach provides strong isolation without the operational overhead of managing separate schemas or databases per tenant.

Cross-Product SSO

Supabase Auth provides cross-product single sign-on. A user authenticates once and receives a session token that is valid across all Septimius Technology Group products. The session carries the user’s organisation context, team memberships, and permission tier, allowing each product to enforce access control without requiring separate login flows.

Platform API

The Platform API at /api/platform/v1 provides unified access for all products. It handles tenant resolution from the authentication context, applies RLS-backed data access, and exposes shared services such as user management, organisation settings, and cross-product analytics. Products call the Platform API rather than querying shared tables directly, ensuring consistent access patterns and centralised audit logging.