Security
Architecture
- Multi-tenant isolation via Postgres Row-Level Security (RLS) — every org-scoped row is filtered server-side by org_id.
- Authentication: Clerk Pro. Enterprise tier supports SAML SSO and SCIM provisioning.
- JWT bridge: Clerk → Supabase JWT template signs each request with the Supabase JWT secret.
- Audit logs: append-only; only writable by the service role.
- Storage: per-organisation paths (/orgs/{org_id}/...), private buckets, 30-minute signed URLs.
Operational controls
- HSTS, X-Frame-Options DENY, no-sniff content-type headers enforced site-wide.
- All secrets in environment variables; no secrets in repository.
- Sentry error monitoring; PostHog product analytics (identified profiles only).
- Health endpoint at /api/health for uptime monitors.
Compliance roadmap
SOC 2 and ISO 27001 — audits underway (never claimed as held until issued). GDPR data export, erasure and subject-access endpoints — live in-product.
Contact
security@vouliiq.com