
Security
Security is built into the platform, not bolted on. Here's the posture.
Credentials
Passwords are hashed with salted scrypt at interactive cost — never stored or logged in the clear. Sign-in failures are deliberately indistinguishable from one another and are rate-limited per account and per network address, so the endpoint cannot be used to discover which addresses are registered. Password resets are single-use, expire in an hour, and revoke every existing session.
Third-party sign-in
Google sign-in runs the OpenID Connect authorization-code flow. The ID token is verified end to end — signature against Google's keys with the algorithm confined to RS256, issuer, audience, expiry, and a per-request nonce — before any identity is trusted. Accounts are resolved on Google's immutable subject identifier, not on an email address.
Your keys stay yours
Provider API keys are encrypted at rest (AES-256), decrypted just-in-time for a single call, never returned to the browser, and never logged. Outbound calls to your providers run through an SSRF-safe transport that pins the connection to a validated address and rejects redirects.
Tenant isolation
Every workspace is scoped by its org id. Data, memory, provider connections, and runs are resolved strictly by the authenticated workspace — never by a client-supplied identifier.
Durable & fail-closed
State is stored in a durable database; the platform refuses to boot into an ephemeral mode rather than silently risk data loss. Security-sensitive features fail closed — they disable cleanly rather than degrade.
Reviewed under adversarial testing
Changes go through cross-model review, and security-sensitive fixes are attacked on the deployed bytes — not just read — before they ship.
Reporting
Found an issue? Contact your instance operator so it can be triaged responsibly.