Security
Last updated: March 20, 2026
Forbiddance is a platform built to help you achieve SOC 2 compliance — so it goes without saying that security is core to everything we do. This page describes the controls and practices we apply to protect your data.
1. Encryption
- At rest — all data stored in our Supabase PostgreSQL database is encrypted at rest using AES-256. File attachments stored in Supabase Storage are also encrypted at the block-storage level.
- In transit — all communication between your browser and our servers is protected by TLS 1.2 or higher. We enforce HTTPS across every endpoint and redirect plain HTTP connections automatically.
- Passwords — user passwords are never stored in plaintext. Supabase Auth handles credential hashing using bcrypt with a strong work factor.
2. Tenant Isolation
Every customer organization is a separate tenant with strict data isolation enforced at the database layer:
- Row-Level Security (RLS) — all multi-tenant tables in PostgreSQL have RLS policies enabled. Each policy calls a
requesting_org_id()helper that reads the authenticated user'sorg_idclaim from the JWT, ensuring a query can only return rows belonging to the caller's organization. - org_id scoping — every server-side API call extracts the
org_idfrom the authenticated JWT before any database operation. There is no path to access another tenant's data through the application layer. - No shared secrets — API keys and integration credentials are stored per-organization and are never accessible to other tenants.
3. Authentication
- Forbiddance uses Supabase Auth, a hardened authentication service built on industry-standard protocols (OAuth 2.0, PKCE).
- Multi-factor authentication (MFA) via TOTP authenticator apps is supported and recommended for all accounts.
- Session tokens are short-lived JWTs with automatic refresh. Revocation takes effect within seconds via Supabase's token invalidation mechanism.
- OAuth integrations (GitHub, Google, etc.) use short-lived authorization codes and scoped access tokens stored encrypted in the database.
4. Infrastructure
- Forbiddance's backend is hosted on Supabase's managed cloud infrastructure, which runs on AWS with SOC 2 Type II certification.
- The application is deployed on Vercel, a SOC 2 Type II certified platform with automatic DDoS mitigation and global edge caching.
- Automated database backups are taken daily with point-in-time recovery available. Backups are stored in a separate region from primary data.
- Production infrastructure access is restricted to authorized Forbiddance engineers via role-based access control and MFA-protected accounts.
5. SOC 2 Alignment
We practice what we preach. Forbiddance's own internal security program is designed around the SOC 2 Trust Services Criteria:
- Security (CC) — logical access controls, vendor risk management, and change management processes are in place and monitored.
- Availability (A) — we maintain uptime targets and have incident response procedures for outages.
- Confidentiality (C) — customer compliance data is classified as confidential and handled accordingly throughout its lifecycle.
- Processing Integrity (PI) — AI-generated outputs are clearly labeled and intended as guidance, not authoritative compliance decisions.
6. Responsible Disclosure
We take security vulnerabilities seriously. If you discover a security issue in Forbiddance, please report it to us privately before publishing:
- Email security@forbiddance.io with a description of the vulnerability and steps to reproduce.
- We commit to acknowledging your report within 2 business days and providing a remediation timeline within 7 business days.
- We will not pursue legal action against researchers who report vulnerabilities in good faith and follow responsible disclosure practices.