RichbeeQuickstart

Security

Only statements backed by the CRM code and tests (apps/crm) appear here. Items marked TODO are not yet claims.

Tenant isolation

  • The workspace is chosen only by your credential. A tenant id in a request body cannot pick a workspace.
  • Postgres row-level security applies to every table with a tenant id, under an app role that cannot bypass or disable it.
  • Records can't reference another workspace's records.
  • A request for another workspace's record looks the same as a missing record.
  • Usage records and the audit log are separate per workspace.
  • Automated tests, including randomized cross-tenant operation sequences, check that no data crosses workspaces.

Authentication

  • API keys are stored only as hashes and carry scopes (crm:read, crm:write, admin).
  • OAuth 2.0 client credentials for server-to-server use.
  • OAuth 2.1 with PKCE for MCP clients, with refresh-token rotation and discovery metadata.
  • A revoked API key fails on the next request; revoking an OAuth client ends its live tokens immediately.

Data protection

  • Sensitive fields are encrypted at the field level with AES-GCM, bound to the workspace, with key rotation support.
  • The audit log is append-only.

TODO (not yet claims)

  • TODO: hosting region and provider statement (align with Privacy/Subprocessors drafts).
  • TODO: encryption in transit and at rest for the platform beyond field-level encryption.
  • TODO: penetration test, SOC 2 or other certifications (none exist today).
  • TODO: incident response and breach notification commitments.
  • TODO: vulnerability disclosure policy and security@ address.

Report a security concern: hello@richbee.ai (TODO: dedicated security address).