How we handle your data.
Pre-launch + honest. Here's what's in place and what isn't. No SOC 2 theater.
What we've built.
Per-tenant row-level security
Every table in our Supabase Postgres has RLS enabled. The tenant_id is enforced at the database, not in application code. A bug in our web app can't accidentally surface another tenant's row.
Service role is forbidden in the browser bundle
Our CI lint job (.github/workflows/lint.yml) fails the build if the Supabase service-role key, or any privileged service client, appears in the apps/web bundle. Privileged operations go through security-definer RPCs only.
OAuth tokens in Vault
Slack tokens, GitHub installation tokens, and any other operator-supplied OAuth credentials are stored in Supabase Vault. All writes go through a single security-definer RPC. Direct vault.* access is revoked from every role.
Worker trust boundary
Background workers re-derive tenant_id from the agent_runs row by run_id. The dispatch event payload's tenant_id is for tracing only — never trusted as the authorization key.
Telemetry whitelist
agent_run_events.meta only carries {tool_name, ms, code, iter}. No raw model inputs, no raw outputs, no user content. PII never lands in the metrics path.
Prod secrets in AWS Secrets Manager
All production secrets live in AWS Secrets Manager (us-west-1). The EC2 instance role has GetSecretValue only — no PutSecretValue. The container loads them at boot; nothing is read at request time.
What we haven't built yet.
SOC 2: post-revenue
We're pre-launch and we tell you that out loud. SOC 2 Type I targets H2 2026, Type II H1 2027. If your security review requires SOC 2 today, we are not the right fit yet.
Single-region
AWS us-west-1 only. No data residency options. If you need EU-region storage, talk to the founder — we'll prioritize when a customer commits.
Penetration test
Internal scans + GitHub Dependabot. No third-party pentest yet. Scheduled post-launch.
Found a vulnerability? Email security@thepraxis.ai. We aim to acknowledge within 24 hours and resolve P0 issues within 7 days. We don't have a bug bounty program yet — we'd rather pay you in founder time + a public credit.