Documentation

Security

Tenant isolation and data security

Row-level security, audit trails, optimistic concurrency and the guarantees behind strict tenant partitioning.

6 min read

Row-level isolation

Every business-scoped table carries an organization id and is protected by row-level security. Policies check membership through a security-definer function, so a query can only ever return rows for businesses the caller belongs to — there is no application-level filter to forget.

Concurrency and versioning

Records that multiple people edit carry a version column. Updates send the version they read; if someone else saved first, the write is rejected and you are asked to reload. Hotel bookings and stock movements use atomic database routines so two clerks cannot sell the same room or the last unit of stock.

Audit trail

Privileged actions — role changes, module toggles, exports, handovers, closures — are appended to an immutable audit log with actor, timestamp and payload. Tenant lifecycle events are also copied to a retained log that survives permanent deletion, which is what compliance reviews ask for.

Your responsibilities

  • Use unique passwords and remove leavers from Team the same day
  • Grant Viewer instead of Admin to external accountants
  • Export before you close a business — purges are irreversible

Still stuck?

Our team answers operational questions within one business day.

Contact support
NextHotel & lodging engine