The tenancy model, in four views.
Sketch 01 · Architecture layers
A stack view. The founder talks to Shakeeb. Shakeeb talks to the control plane. The control plane asks Coolify to spin up a real Postgres, owned by one customer, living on its own. No tenant_id column. No shared schema.
Sketch 02 · Request flow
A single request, followed end to end. The tenant is resolved once, attached to the session, and enforced twice: once at the application query layer, and again at the database with row-level security. The CI gate makes sure no query slips out without tenant context.
Sketch 03 · Region residency
Customer data is pinned to the region where it was provisioned. EU data stays in EU infrastructure. Middle East data stays in Middle East infrastructure. The control plane is shared, but it only holds metadata and routing, never customer rows.
Sketch 04 · Compliance overlays
Same stack, with the compliance surfaces drawn on top. Every enforcement point is wired to a control, and every control is wired to a gate in CI or deployment. SOC 2 Type I audit in Q3 2026 is evidence collection, not net-new work.
What backs the claim.
Per-tenant Postgres
Physical isolation, not a shared schema with tenant_id. Coolify-provisioned DB per customer.
Row-Level Security
Enforced at the database layer. Every query carries a tenant context. CI has an RLS audit gate.
GDPR deletion
Shipped workflows for right-to-be-forgotten, data export, and consent tracking.
Immutable audit log
Append-only tenant actions, billable events, admin changes.
SOC 2 Type I
Target Q3 2026. Controls already mapped to current CI and deployment gates.
Region residency
Customer data pinned per tenant DB. EU and Middle East regions supported at infra layer.