SOC 2 readiness (draft)

June 9, 2026 · View on GitHub

Control mapping for MailAgent hosted SaaS. Not a certification — engineering checklist for enterprise sales.

Public summary: security.html · enterprise.html

CC6 — Logical access

ControlMailAgent
API authenticationBearer API keys, scoped keys (labelPrefix, readOnly)
MCP OAuthclient_credentials JWT (mat_) + optional Auth0 OIDC
Team isolationTeam-scoped keys, domains, audit, inboxes
SecretsCloudflare Worker secrets, no keys in client bundles
Tenant Resend keysAES-256-GCM at rest (team-secrets.ts); per-team webhooks

CC7 — System operations

ControlMailAgent
Deploy gatetest:prod:gate on push; full test:prod on tag v*
Audit logGET /v1/audit, retention cron (AUDIT_RETENTION_DAYS)
Rate limitsPer-key KV-sampled limits; plan tiers in GET /v1/me

CC8 — Change management

ControlMailAgent
SourceMIT repo, PR + CI
Migrationsmigrations/*.sql, optional db:migrate on deploy
Versioningnpm @mailagent/*, API hub version

A1 — Availability (operational)

ControlMailAgent
InfraCloudflare Workers (multi-region edge)
Queue DLQmailagent-email-dlq
Self-hostDocumented in INTEGRATE.md

Gaps (before Type II)

  • Formal penetration test report — vendor scope: PENTEST-PREP.md · baseline: npm run doctor:security
  • Operator access policy — draft: OPERATOR-ACCESS.md
  • Dedicated tenant email infra ✅ dedicated Resend per team (DEDICATED-DOMAINS.md)
  • Stripe billing + SLA (on hold)