Skip to content

Security Posture

Where CMMD is on security, where it's going, and the honest gaps. Customer-shareable. Encryption, multi-tenancy isolation, auth, audit, vendor list, known gaps.

Where we are on security, where we’re going, and the honest gaps. Customer-shareable.

FieldValue
AudienceCustomers, enterprise prospects, internal eng
Last security review2026-05-16
Owner@aphaiboon

CMMD treats security as product. We’re a small team, not SOC2 certified yet, but our posture is honest and our roadmap is concrete. Sensitive customer data (workspace content, Brain documents, chats) is encrypted at rest and in transit, scoped to organizations by repository-pattern enforcement, and isolated from any AI training data pipeline.

AreaStatusNotes
Encryption at rest✅ ActiveNeon Postgres provides AES-256 at rest
Encryption in transit✅ ActiveTLS 1.3 on all connections
Multi-tenant isolation✅ Architecturally enforcedRepository pattern — every query org-scoped (see ADR-0002)
2FA / MFA✅ AvailableTOTP supported; required for admin actions; not yet enforced workspace-wide
SSO (SAML, OIDC)🟡 PlannedQ3 2026 target for enterprise tier
SOC2 Type 1🟡 PlannedAudit scheduled Q3 2026
SOC2 Type 2🟡 Planned12 months after Type 1
ISO 27001🟡 Considered, not yet committedReassess at enterprise revenue threshold
HIPAA🚫 Not a targetCMMD is not for PHI. Acceptable Use Policy excludes.
GDPR posture✅ DPA available on requestEU data residency planned Q4 2026
Pen test🟡 Self-test onlyExternal pen test Q3 2026
Bug bounty🟡 InformalFormal program planned post-SOC2
Vulnerability disclosure policy✅ PublishedSee Vulnerability Disclosure Policy
  • Every database table that holds customer data has organization_id
  • Repository pattern (CI-enforced — scripts/enforce-repository-pattern.sh) blocks new direct db imports
  • OrgQueryParams makes organizationId required at compile time
  • 0 cross-tenant data leaks since adoption (see ADR-0002)
  • Email + password with bcrypt hashing
  • Session cookies (httpOnly, secure, SameSite=Lax)
  • Session token rotation on privilege change
  • 2FA via TOTP (Google Authenticator / 1Password etc.)
  • Passwordless SSO planned via OAuth/OIDC (Q3 2026)
  • Magic-link sign-in available
  • Org-scoped roles: Owner / Admin / Manager / Member
  • Team-scoped membership for filtering (not isolation)
  • Feature flag gating for staged rollouts (isEnabled(key, orgId, userId))
  • Audit log capture for admin actions (planned UI; events captured today)
  • Secrets in environment variables, never committed to repo
  • Production secrets in Railway’s encrypted env layer
  • 1Password as shared secret vault for human-readable credentials
  • scripts/check-forge-security enforces sandbox + iframe + Zod validation for Forge
  • Customer data NEVER used for AI training — hard architectural rule
  • Apex model serving infrastructure is isolated from training data pipeline
  • Anthropic proxy (current) does not train on API data (per their published terms)
  • See Model Card for full safety posture
  • Structured JSON logs to Railway with required stack: on all errors
  • PostHog for product analytics (event-only — no raw PII in events)
  • Alerting on auth failure spikes, 5xx error rates, latency outliers (in progress)
  • Neon Postgres point-in-time recovery (30 days)
  • Daily snapshot exports to S3 (planned)
  • Disaster recovery runbook in Engineering → Runbooks
  • RPO target: 1 hour. RTO target: 4 hours.
  • On-call rotation documented in Engineering → On-call
  • Severity definitions (P0/P1/P2/P3) standardized
  • Postmortem template for any P0/P1
  • Customer notification commitment: within 24 hours of confirmed customer-impacting incident

(Full sub-processor list maintained on a public page when GA.)

VendorPurposeData exposed
RailwayHostingEncrypted app traffic, logs
NeonPostgres databaseCustomer workspace data (encrypted at rest)
Anthropic (current)LLM provider for SidekickSidekick chat content (per their API ToS — not used for training)
PostHogProduct analyticsEvent metadata only — no PII
ComposioIntegration brokerOAuth tokens, integration metadata
GitHubCode repoNo customer data
MercuryBanking (internal use)CMMD’s banking — not customer data

These are real and we’re not pretending otherwise:

  • 🟡 No SOC2 attestation yet — audit scheduled Q3 2026
  • 🟡 No external pen test on record — scheduled Q3 2026
  • 🟡 No formal bug bounty program — informal disclosure policy active
  • 🟡 SSO/SAML not yet shipped — Q3 2026 target
  • 🟡 Audit log UI not yet customer-visible — events captured, surface TODO
  • 🟡 Single-region (US-East) — EU data residency planned Q4 2026

If a prospect requires any of these today, we’ll be honest and they should wait for the relevant milestone or use a different tool until then.

  • 🚫 Train models on customer workspace data
  • 🚫 Sell customer data to third parties
  • 🚫 Add adtech / tracking pixels in product surfaces
  • 🚫 Hide a breach — customer notification commitment is 24h for confirmed customer-impacting incidents
ConcernWhere
Suspected vulnerabilitysecurity@cmmd.ai — see Vulnerability Disclosure Policy
Suspected data exposuresecurity@cmmd.ai — P0 response
Account takeover suspectedsupport@cmmd.ai + revoke sessions in Settings
Other concernsTrust & Safety form (planned)