How we protect your work.
Proposal Engine is built by people who've sat in a SOC. Tenant content is encrypted at rest, isolated at the database layer, and reachable only through audited authentication. This page is the engineering reality — the legal-binding commitments live in our Data Processing Addendum.
Controls in place
Encryption at rest and in transit
LiveTenant documents are stored in Cloudflare R2 with AES-256 server-side encryption. PostgreSQL data (capability profiles, projects, proposals, audit logs) is encrypted at rest by Supabase. All network traffic uses TLS 1.2 or higher.
Per-tenant API credentials (SAM.gov keys, BidNet sessions, etc.) get an additional AES-256-GCM envelope encryption layer using a platform master key held in Vercel's encrypted environment. Decryption happens only at ingestion time, never in cross-tenant code paths.
Tenant isolation enforced at the database layer
LiveEvery tenant-scoped table uses Postgres Row-Level Security with
FORCE RLSenabled. Application code sets the current tenant viaapp.current_tenant_idbefore any query — a coding mistake that forgot the tenant context would return zero rows, not another tenant's data.AI retrieval (vector searches across past proposals and reference docs) inherits the same RLS scoping. There is no code path that joins or searches across tenants at runtime.
Multi-factor authentication + step-up for sensitive operations
LiveAuthentication runs through Clerk. MFA is available on every account; tenants can require it for their org. Platform-operator (super-admin) actions — suspending a tenant, triggering a password reset, minting a trial code — require fresh reauthentication via Clerk's step-up flow.
Audit logging on every privileged access
LiveDocument access, AI inference operations, capture lifecycle changes, source-credential reads, admin actions, and authentication events all write to an append-only audit log. Tenants can view + export their own audit history from Settings → Audit log.
Retention: 3 years. Required for OMB Uniform Guidance (2 CFR 200) compliance for federal grant-receiving tenants and supports SOC 2 evidence collection.
Super-admin allowlist with no Clerk-role escape hatch
LiveCross-tenant platform operator access lives in a dedicated
super_adminstable that only the BYPASSRLS database connection can read. Membership isn't a Clerk role (which could be granted from the dashboard with the wrong blast radius) — it's a deliberate database write, audited.Personal Data Breach notification within 72 hours
LivePer DPA Section 8, we notify affected customers without undue delay and within 72 hours of becoming aware of any breach affecting their data, including nature, scope, likely consequences, and remediation status.
Restricted content categories
LiveToday's Terms of Service prohibit uploading classified or controlled unclassified information (CUI), regulated health data (PHI) without an executed BAA, and ITAR / EAR-controlled technical data. Tenants in those verticals contact us before uploading; we either sign the required addendum or recommend keeping that material in a different system.
SOC 2 Type 1 preparation
In progressWe're in evidence-collection mode for SOC 2 Type 1 — using one of the automated SOC 2 platforms to map our controls (access management, change management, encryption, vulnerability monitoring) against the Trust Service Criteria. Audit engagement begins after we sign our second paying tenant.
Third-party penetration test
PlannedScheduled for the second half of the year alongside SOC 2 Type 1. Report summary will be available under NDA to qualified prospects.
Sub-processors
Every vendor we route customer data through. Each is bound by a data processing agreement with at least the same protections we offer you (DPA Section 5). AI inference providers operate under zero-retention API terms — your content isn't retained by them past the API call.
| Sub-processor | Role | Region |
|---|---|---|
| Vercel | Application hosting + serverless compute | United States |
| Supabase | Managed PostgreSQL database | United States |
| Cloudflare R2 | Encrypted object storage for uploaded documents | United States |
| Clerk | Identity + authentication + session management | United States |
| AnthropicZero retention | Claude API — extraction, drafting, review | United States |
| OpenAIZero retention | Text embeddings (library retrieval) | United States |
| Inngest | Background job orchestration + cron | United States |
| Sentry | Error monitoring (scrubbed of payloads) | United States |
| Postmark | Transactional + inbound email (intake addresses) | United States |
| Resend | Transactional email delivery (notifications) | United States |
Customers receive 30 days' notice before any new sub-processor is added — see DPA Section 5.
Have a question we haven't answered?
Send security inquiries, vulnerability reports, or compliance questionnaires to security@saibble.com. Live operational status lives at /status .
Last updated 2026-06-23. This page reflects controls in place today. The DPA and Terms of Service are the legally-binding commitments.