Security at Andru
You trust us with your go-to-market intelligence. Here's how we protect it.
Data Isolation
- Database isolation
- Row-Level Security (RLS) policies enforce tenant isolation at the database level. Every query is scoped to the authenticated user via auth.jwt(). Customers can only read and write their own data.
- Session isolation
- API-key-scoped sessions for CLI and MCP access. No shared state between customers. Each session creates an independent client bound to one user ID.
- AI call isolation
- Each AI call is independent. Customer data never appears in another customer's prompt context. No batching across customers.
- Prompt injection defense
- Customer-supplied text (product descriptions, competitor names) is wrapped in structural XML delimiters with explicit model instructions to treat enclosed content as data, not instructions. Adversarial injection testing covers 5 attack vectors including XML tag escape, template injection, and encoding bypass.
Encryption
- In transit
- TLS 1.2+ on all connections between clients, API, and third-party services.
- At rest
- AES-256 encryption. All customer data stored in Supabase PostgreSQL on AWS (us-east-1).
- Secrets management
- No hardcoded secrets in codebase. Gitleaks scanning with custom rules for platform-specific key patterns (Supabase JWT, Anthropic, Render). API response bodies scanned for accidentally leaked secrets before delivery.
Application Security
- SQL injection prevention
- All database queries use the Supabase SDK with parameterized queries. No raw SQL string concatenation. Row-Level Security provides a second layer of defense at the database level.
- XSS prevention
- Input sanitization middleware on both backend and frontend. Suspicious pattern blocking (script tags, event handlers, javascript: protocol). Content Security Policy (CSP) headers restrict script execution sources.
- CSRF protection
- SameSite cookie policy. CORS whitelist restricts origins to platform domains only. API authentication uses Bearer tokens and API keys, not cookies.
- Security headers
- Helmet middleware enforces: Content-Security-Policy, Strict-Transport-Security (HSTS, 1-year max-age, includeSubDomains), X-Frame-Options (DENY), X-Content-Type-Options (nosniff), Referrer-Policy, Permissions-Policy.
- Rate limiting
- express-rate-limit on all backend API endpoints. Stricter limits on sensitive endpoints (auth, payment). MCP server rate limited at 100 requests per 15 minutes per API key. Rate limit events emitted to SIEM.
Authentication & Access
- Authentication provider
- Supabase Auth (built on GoTrue). Email/password with secure password requirements (minimum 8 characters, uppercase, lowercase, number, special character). OAuth support for third-party login.
- Session management
- JWT-based sessions with expiration. Refresh token rotation. Sessions invalidated on password change and account deletion.
- API authentication
- API key authentication for CLI and MCP access. Keys scoped to user ID with configurable permissions. Keys revocable via platform settings.
- Admin access
- Role-based access control. Admin operations require verified admin role. Non-admin users cannot access admin endpoints.
Backup & Disaster Recovery
- Database backups
- Supabase provides automated daily backups with point-in-time recovery (PITR). Backups encrypted at rest on AWS.
- AI provider resilience
- 4-provider failover chain (Anthropic, Google, Mistral, Together) with circuit breaker pattern (CLOSED/OPEN/HALF_OPEN). Final fallback to local algorithmic engines requiring no external API calls. Platform continues functioning even if all AI providers are unavailable.
- Cache resilience
- Backend gracefully degrades to in-memory mode if Redis is unavailable. Core functionality (assessments, API, authentication) continues without cache.
- Audit trail
- Structured request logging with correlation IDs across all services (backend, agent platform, MCP server). SIEM event stream for security events. Incident timeline tracking with fix attempt history.
AI Provider Data Handling
- Primary provider
- Anthropic (Claude API). Anthropic does not train on API data. Customer Content is classified as Customer's Confidential Information under Anthropic's Commercial Terms. Zero-retention API.
- Fallback providers
- Google (Gemini), Mistral, Together AI. Used only when primary provider is unavailable. Automatic failover chain with circuit breaker pattern.
- Final fallback
- Local algorithmic engines (ICP scoring, positioning, cost calculation). No external API calls. Customer data does not leave the platform.
- Model training
- No customer data is used to train, fine-tune, or improve any AI model — Andru's or any third party's.
Security Monitoring
- SIEM pipeline
- Real-time security event detection with automated containment actions. Events classified by severity (critical, high, medium, low, info) with alerting to dedicated security channels.
- Database audits
- Row-Level Security policy verification every 24 hours. Security header audit every 12 hours.
- Dependency scanning
- npm audit runs on every pull request. Critical and high-severity vulnerabilities block merge. Gitleaks secret scanning on every commit.
- Uptime monitoring
- Health checks every 15 minutes via automated workflow. Incidents auto-created on failure, auto-closed on recovery.
- Output validation
- Every customer-facing intelligence tool validates its output against Zod schemas before delivery. Schema violations emit security events for drift detection.
Incident Response
- Classification
- Three-tier system: MINOR (auto-fix via playbooks), MAJOR (AI-assisted diagnosis with autonomous resolution), CRITICAL (requires human approval before action).
- Detection
- Automated detection via 5 monitors (auth, UI, rate-limit, service-health, security). Real data from health endpoints, SIEM events, and dependency checks — not AI-imagined scenarios.
- Resolution
- 4 auto-fix playbooks (auth issues, UI rendering, rate limits, fallback services). Circuit breaker safety: max 3 fix attempts per incident, max 5 automated builds per hour.
- Notification
- Slack alerting with severity-based routing. Critical incidents require human approval with 30-minute auto-approve deadline.
Integration Permissions
- Slack
- Read and send messages in designated #andru channels only. No DM access. No message history access beyond channel scope.
- Calendar (Google/Outlook)
- Read-only. Meeting titles and attendees for pre-call brief generation. No write access.
- CRM
- Read contacts and deals. Write meeting notes only. No bulk export or deletion capability.
- CLI (andru-intel)
- No telemetry collected. No local file access. Only makes API calls when you explicitly invoke a tool. Local SQLite cache for offline mode stays on your device.
- MCP Server
- Same as CLI. Runs inside Claude Desktop or Cursor. Authenticates via API key per session. Rate limited at 100 requests per 15 minutes per key.
Account Deletion
- Process
- Settings → Account → Delete Account. 3-day grace period (cancel by logging in). After 3 days: permanent deletion cascade.
- Scope
- All customer data removed from all database tables: profiles, assessments, ICP data, pipeline runs, generated resources, API keys, usage logs, AI cost tracking. Stripe subscriptions cancelled. OAuth tokens revoked. Auth credentials permanently removed.
- Cache data
- Redis cache data expires automatically via TTL. Local MCP cache (SQLite on your device) is your responsibility.
- Verification
- Deletion cascade coverage verified by automated integration test. If a new table storing customer data is added, the test fails until the cascade is updated.
Compliance
- Data Processing Agreement
- Available on request. Covers: processing scope, sub-processor list, security measures, data subject rights, breach notification (72-hour timeline), data return and deletion.
- GDPR
- Right-to-erasure implemented via permanent deletion cascade. Data stored in US (AWS us-east-1). Standard Contractual Clauses available for EU customers.
- CCPA
- No sale of customer data. Deletion available via self-service or on request.
- SOC 2
- Technical controls in place. Certification on roadmap.
- Sub-processors
- Supabase (database, AWS US), Render (hosting, US), Anthropic (AI, US), Google/Mistral/Together (AI fallback), Stripe (payments), Resend (email), Netlify (frontend, no customer data).