Security
Security is the product, not a feature.
Brutus handles sensitive workforce data and routes it through AI models, so we built it isolation-first: every organization’s data is separated at the database layer, encrypted in transit and at rest, reachable only under least-privilege role-based access — and every model request is governed, metered, and logged. Here’s exactly how your data is protected.
Tenant-isolated · Encrypted · Admin MFA available · SOC 2 Type II infrastructure · US-hosted
How your data is protected
Controls at every layer.
Database-level tenant isolation
Every organization’s rows carry a tenant boundary enforced by the database itself under PostgreSQL Row-Level Security, enabled and forced on every application table, so one customer’s data is unreachable from another customer’s session — the isolation does not depend on application code getting every query right. A small number of privileged server-side jobs (background processing, offboarding, support) run with elevated database access; that access is code-reviewed, server-only, and audit-logged. An automated isolation suite of 184 cases exercises those policies against a live database; all 184 passed on 6 August 2026.
Encryption everywhere
All traffic is served over TLS by our hosting and CDN providers, with HSTS (preload) forcing HTTPS, and all data at rest is encrypted with AES-256 by our database provider. Provider attestations are available on request. Model keys and integration secrets are sealed with AES-256-GCM under a key derived from a platform secret that is never stored alongside the data, with a unique initialization vector per record. They are readable only by server-side code and are never exposed to the browser.
Access control, SSO & MFA
Role-based access — administrator, manager, employee — least-privilege by default. Employees see only their own data, plus anything a colleague explicitly shares with them. Administrators and managers can view an individual’s results and transcripts; every such access is written to the audit log. A separate Brutus operator role exists for support and incident response; its use is likewise logged. Time-based one-time-password (TOTP) two-factor authentication is available to every administrator, and is enforced on our own operator console. Organization-level enforcement is on our roadmap; today it is opt-in per administrator. Enterprise Single Sign-On via SAML 2.0 with just-in-time provisioning that can only ever create standard employee accounts — elevated roles are invite-only and never granted automatically. Password, Google, and magic-link sign-in are also supported, and new passwords are checked against known-breach corpora.
Tamper-evident audit logging
Sensitive actions — role changes, deletions, configuration and credential changes — are recorded with the actor, the target, and a timestamp. Sensitive reads are logged too: report and transcript views, PDF and data exports. The audit log is append-only, enforced by a database trigger that rejects any update or delete inside a 400-day retention window, so history cannot be rewritten after the fact — including by us.
Data lifecycle & deletion
You own your data, and we process only what’s needed to deliver the service. When an organization is offboarded, we permanently delete its records, its uploaded files, and its user accounts from production. Residual copies persist only in our infrastructure providers’ encrypted backups and age out under those providers’ retention schedules; we confirm the current window on request.
Hardened infrastructure
Hosted on SOC 2 Type II–certified infrastructure (Vercel and Supabase) in the United States (AWS us-east-1). An enforcing Content-Security-Policy, HSTS with preload, Cross-Origin-Opener-Policy, a Permissions-Policy denying fourteen browser features, and a full set of security response headers guard the application edge — alongside server-side schema validation on every mutation, application-level rate limiting on authentication endpoints layered over our provider’s platform DDoS protection, and SSRF protection on any endpoint URL an organization supplies.
Continuous security testing
Every push and pull request to our main branch runs a continuous-integration pipeline that type-checks the codebase, executes our automated test suite, runs a Semgrep static-analysis (SAST) scan that fails the build on any finding, and audits production dependencies — failing the build on any high-severity advisory. As of 6 August 2026 our production dependencies carry no known high-severity vulnerabilities. Dependencies are monitored continuously for newly disclosed vulnerabilities and patched automatically, with weekly update review. Production errors are monitored with no personal data attached to telemetry — no IPs, cookies, headers, or request bodies — and we operate a coordinated vulnerability-disclosure program for security researchers.
Your keys, your models
Organizations can bring their own model credentials, or point Brutus at a self-hosted inference endpoint so prompts never leave infrastructure they control. When an organization connects its own keys, its work is served exclusively on credentials it owns: if those credentials can’t be used, the request fails with a clear error instead of quietly falling back to our platform keys. That fallback is an explicit per-organization setting, and it is off by default. One exception, disclosed in-product where it is enabled: the optional live web-research step runs on the organization’s own OpenAI key when it has connected one, and on our platform key when it has not.
Governance on every AI request
Every model request through our work surfaces is written to a per-organization ledger — model, route, token counts, and cost — so you can audit exactly what was asked of which provider. Optional PII guardrails detect email addresses, phone numbers, payment-card numbers, and national ID numbers and redact them before any model sees the text, restoring them in the response; they are configured per organization and off by default. Monthly spend budgets can automatically downgrade to cheaper models or stop work at a cap, and recommendations are constrained to tools the organization already owns.
No trackers, no training
There are no advertising or analytics trackers in the product — no Google Analytics, no tag manager, no session recording, no third-party marketing pixels. Fonts are self-hosted at build time. Content sent to our default model providers runs on their standard API tiers and is not used to train their models.
Sub-processors
Who we rely on.
We use a small set of trusted, audited providers for the core service. Conversation and analysis content is processed by large-language-model APIs from Anthropic and OpenAI by default, on standard API tiers, and is not used to train models. Organizations may elect a different or self-hosted model provider — see optional providers below; the exact set active for your organization is disclosed on request.
| Provider | Purpose | Notes |
|---|---|---|
| Vercel | Application hosting & edge | SOC 2 Type II |
| Supabase (AWS, US) | Managed database & authentication | SOC 2 Type II |
| Anthropic (Claude) | Model inference — Whiteboard turns, analysis & scoring | API tier — not used to train models |
| OpenAI | Model inference, embeddings & live web research | API tier — not used to train models |
| Resend | Transactional email | Invitations & notifications |
| Cloudflare | DNS, edge security & DDoS protection | Network / CDN |
| Sentry | Error monitoring | No personal data attached to telemetry |
| Inngest | Background job processing | Signed event delivery |
| Google LLC | Google Sign-In identity | Only if a user chooses Google sign-in |
| Have I Been Pwned | Breached-password check | k-anonymity — only a partial hash prefix is sent, never a password or email |
Optional, per organization
Off unless you turn them on.
These are disabled by default and activate only when an organization connects them. Each is listed in our DPA, and the set active for your organization is available on request.
- Microsoft (Graph / Entra ID)
- Microsoft 365 adoption reporting & SSO, per-organization consent
- Google Workspace (Admin SDK)
- Employee directory and Gemini usage reporting for adoption analytics — reads your Workspace user directory and Gemini activity audit log, per-organization consent
- GitHub
- Engineering-ROI and Copilot adoption signals, per-organization app install
- Alternative model providers
- Alibaba Cloud (Qwen), Google (Gemini), xAI, Groq, Cerebras, DeepSeek — selected by the organization, and able to receive conversation content when enabled
- Cohere
- Search reranking for Org Brain document retrieval — receives the retrieved document text and the employee’s query when enabled
- Voyage AI
- Search reranking for Org Brain document retrieval — receives the retrieved document text and the employee’s query when enabled
- Your own endpoint
- A self-hosted or private-cloud model endpoint you operate, so content stays on your infrastructure
Compliance
Where we stand
- SOC 2 Type II infrastructure. Brutus runs entirely on SOC 2 Type II–certified providers (Vercel, Supabase). Brutus itself is not yet SOC 2 certified — we state this plainly rather than implying inherited certification.
- SOC 2 Type II — in preparation. We are actively hardening our controls toward a SOC 2 Type II audit and independent penetration testing.
- Data Processing Agreement. A DPA, a sub-processor list, and a detailed security overview are available to customers and prospects on request.
- Vulnerability disclosure. We welcome reports from security researchers — see our security.txt.
Doing a security review?
We’re happy to walk through architecture, complete your security questionnaire, or share our DPA and security overview. Reach our security team directly.
security@brutusanalytics.com