Three principles behind every request
1
The database is the security boundary
Starting attempts, autosave, scoring, adaptive selection and publishing all run inside PostgreSQL functions that re-check authorization on every call. The browser can never reach a path that skips those checks.
2
The client is never trusted
Candidates receive sanitized question payloads with no answer keys. The countdown timer on screen is only a mirror of the server clock, and every submission is recomputed and scored server-side.
3
Every tenant is isolated
Row-Level Security scopes every table to its organization. Organization A can never read Organization B's exams, questions, candidates or results, and this is verified by automated tests.
Run high-stakes exams with confidence
Security that holds up under real examination pressure, built in from the first line of code. Start free today.