Multi-tenancy enforced at the database, every change immutably logged, every permission checked twice. The page your IT director should bookmark.
permissions across 58 modules × 8 actions
roles, each permission-checked twice
of tenant tables under Row-Level Security
at rest · TLS 1.3 in transit
Security the database enforces.
Not a policy page — six guarantees wired into PostgreSQL, the auth layer, and every API call.
Multi-tenancy
Database-level isolation
Row-Level Security enforced at PostgreSQL — every tenant table partitioned by school_id. A bug in application code cannot leak across schools. The database refuses.
Audit
Immutable, signed audit log
Every sensitive mutation: who did it, when, with full delta. Write-once trigger. Signed. Searchable by super-admin. Schools can export their full audit trail at any time.
Permissions
365 permissions × 16 roles
43 modules × 8 actions + custom. Pre-seeded role mappings, per-school override, program-scoped permissions. Every API call is permission-checked at the database and the client.
Auth
MFA + recovery codes
Email + password, magic link, Google OAuth, school code login, biometric mobile, TOTP 2FA with recovery codes. Failed-MFA bailout signs the user out — no AAL1 bypass.
Data
Yours, always
One-click full export to CSV / JSON / SQL dump. Per-user GDPR deletion. School-branded PDFs (report cards, transcripts, certificates) downloadable. We don't keep what you don't want us to.
Encryption
At rest and in transit
TLS 1.3 in flight, AES-256 at rest. Cloudinary for file storage. Hosted in the region you choose, so your data stays in the jurisdiction your ministry requires.
The answers your RFP asks for.
Data residency
Hosted in the region you choose, so your data stays in the jurisdiction your ministry requires.
Export & deletion
One-click full export to CSV / JSON / SQL dump, plus per-user GDPR deletion with a verification flow. We don't keep what you don't want us to.
Impersonation, logged
Super-admin impersonation is fully audit-logged with reason capture — support can help without ever working in the dark.
Sub-processors
Supabase for the database, Cloudinary for file storage — a short, named list, not a sprawl of unvetted vendors.
For deeper documentation — DPIA, a SOC-style trust report, or region-specific data-residency configuration — contact our security team.