Skip to content

Security model

Outbound security boundary, probe isolation, tenancy and credential handling for operators and customers.

Updated

Outbound requests

See the security page for the policy. Operators configure NETWORK_POLICY=public in production; the test-fixtures policy is refused by startup validation there.

Probes

Probes authenticate with hashed tokens, lease work with per-run tokens and submit results that are verified against the lease, probe identity and configuration version. Revoking a probe releases its leases.

Secrets

APP_ENCRYPTION_KEYS holds versioned 32-byte keys. Rotate by adding a new version, making it active, and letting rotation re-encrypt stored secrets.

Environment

Production startup refuses default secrets, the development mail sink, billing overrides and the fixture network policy.

Required two-factor authentication

Account owners can require two-factor authentication for every human member from Team and clients → Security policy. Owners must enable two-factor on their own account first, so the policy can never lock out the person who set it. Members without two-factor are redirected to their account page, where they enable an authenticator app and then return to the workspace. The change is recorded in the audit log.

API credentials under a two-factor requirement behave as follows:

  • Existing API keys keep working. They are machine credentials bound to the account, not to a person's second factor, and services using them are not interrupted when the policy is switched on.
  • Issuing, rotating and revoking keys are human actions performed in the workspace, so they require a signed-in member who satisfies the policy. A member without two-factor cannot open the workspace and therefore cannot create keys.
  • Revocation takes effect immediately for the revoked key only; other keys are unaffected.
  • Probe tokens follow the same rule as API keys: they are not subject to the human two-factor policy.