How does CMD+K handle security and data?

All customer data is encrypted in transit (TLS 1.2+) and at rest (AES-256). Secrets — OAuth client secrets, third-party API keys, end-user refresh tokens — are encrypted with AES-256-GCM using per-workspace keys before they hit the database. Postgres row-level security isolates every workspace. We pass SOC 2 Type II controls including password policy (8+ chars, mixed case, number, symbol, HIBP check), audit logging, and quarterly access reviews. End-user data can be deleted on request within 30 days.

Encryption

  • TLS 1.2+ on every public endpoint, HSTS preloaded.
  • AES-256 at rest in managed Postgres.
  • AES-256-GCM with per-workspace data keys for OAuth secrets, third-party API keys, and end-user refresh tokens.

Workspace isolation

Every multi-tenant table enforces Postgres row-level security keyed on workspace_id. Server functions run under the authenticated user's JWT; admin operations use a separate service role with explicit allow-lists.

Authentication

  • Password policy: 8+ chars, upper, lower, number, symbol, plus HIBP breach check on every set/reset.
  • Google OAuth out of the box; SAML 2.0 SSO on the AI Pilot plan.
  • Role-based access (Owner / Admin / Member) with admin-gated danger-zone actions.

Data deletion

Admins/owners can hard-delete audiences, chat history, or the whole workspace from Settings → Danger zone, with name-match confirmation. End-user deletion requests are honored within 30 days.

Reporting a vulnerability

Email security@commandplusk.com. We acknowledge within 24h and follow coordinated disclosure.

Next steps

FAQ

Where is data stored?
Managed Postgres in EU-West and US-East regions. Workspace region is selectable at creation.
Do you train on customer data?
No. Knowledge sources, conversations, and tool calls are never used to train models — yours or ours.
Can I get a DPA?
Yes — see /dpa. Sub-processors are listed there and updated when they change.
What about SSO/SAML?
Available on the AI Pilot plan. Self-serve setup via DNS-verified domain, then point any SAML 2.0 IdP at the ACS URL we generate.
How are payment cards handled?
We never see card data. Stripe collects and stores it; we only reference Stripe customer IDs.