Security
Built so an auditor and a security reviewer see the same answer.
Tenant isolation by row-level security
Every business record carries an organization reference, and database policies restrict reads and writes to organizations the signed-in user actually belongs to. Isolation is enforced at the data layer, not in application code.
Role-based permissions
Owner, admin, manager, member and viewer roles are stored in a dedicated membership table and evaluated by security-definer functions — never trusted from the client.
Private evidence storage
Uploaded files live in a private bucket with organization-scoped access paths. Links are signed and short-lived.
Immutable audit trail
Creation, status transitions, assignment changes and verification verdicts are appended to an activity log with actor and timestamp.
Least-privilege by default
New members join as viewers. Escalation is explicit, logged, and limited to admins and owners.