01

Account separation

Each account has an immutable server-generated identity. Private dashboard and MCP requests enter a transaction-scoped data boundary for that account, without a user-supplied tenant selector or fallback to another account’s records.

02

Credentials

Passwords and generated connector client secrets are stored as bcrypt hashes. Email verification and password-reset tokens are random, time limited, and stored only as hashes.

03

Scoped OAuth

ChatGPT connections use authorization code flow with PKCE and explicit consent. Preference, memory, and nutrition permissions are separate scopes. Access tokens are short lived and refresh tokens rotate.

04

Request protection

Account mutations require CSRF tokens and reject foreign origins. Session cookies are Secure, HttpOnly, and SameSite=Lax. Production traffic is served over HTTPS.

05

Evidence integrity

Writes use stable operation identities, conflict checks, source wording, and append-only revisions. An uncertain response can be retried without silently creating a different operation.

06

Admin boundary

The owner can view account metadata and enable or disable access. The administration UI does not provide a way to browse another account’s personal evidence.