Platform

Row-level security (RLS)

Tamanor enforces tenant isolation at the database level with PostgreSQL row-level security, so a forgotten filter in application code can never leak another tenant's data.

Isolation in the database, not just the app

Every tenant-scoped query runs through a non-superuser database role with FORCE ROW LEVEL SECURITY and a tenant-isolation policy. The current tenant is set per transaction; the database itself rejects rows from any other tenant.

This is defense in depth: even if application code forgot a tenant filter, the database still returns only the active tenant's rows.

Frequently asked questions

What if a query forgets to filter by tenant?
Row-level security still restricts results to the active tenant — isolation does not depend on application code remembering to filter.
Row-level security — Tamanor tenant isolation