TLS 1.3 everywhere, HSTS preloaded
Every request to Vimub goes over TLS 1.3 with HSTS and a two-year preload. No plaintext HTTP is accepted anywhere in production.
Vimub handles reviews, customer contact details, and booking history for 2,400+ locations. Here is how we protect that — concretely.
Every request to Vimub goes over TLS 1.3 with HSTS and a two-year preload. No plaintext HTTP is accepted anywhere in production.
Supabase Postgres volumes encrypt at rest with AES-256. Sensitive fields (API keys, OAuth tokens, brand-voice profiles) are wrapped with a second envelope in lib/security/encryption.ts before they hit the database.
Every tenant-scoped table has row-level security policies enforced at the database layer, not the app — a request from Org A can never read or write a row belonging to Org B.
Public-facing code uses an anon key only. The service-role key lives in server-only routes and the MCP server. We audit this on every pull request via a custom ESLint rule.
The Python MCP server runs as an unprivileged appuser in a read-only filesystem container. Railway network policies limit egress to Anthropic and Twilio only.
Every API call logs an event with user, org, route, and outcome. PII (emails, phone numbers, customer names) is redacted before logs leave the boundary. Retention: 90 days.
One of the three founders is on call at all times. If a confirmed breach affects your data, you hear from us within 24 hours — always by email from a named human, not a support queue.
We're building toward a quarterly black-box penetration test by an external firm as part of our SOC 2 program. No firm is appointed and no test has been conducted yet — see /trust for live status.
We operate a responsible disclosure policy and pay bounties for qualifying vulnerabilities. Please email support@vimub.com with details. We acknowledge within 24 hours.