← Back

Security

What actually happens to your API key after you paste it, and what we deliberately can’t do.

Storage

Your upstream key is wrapped with envelope encryption. We generate a fresh 256-bit data encryption key (DEK) per credential, encrypt your key with it using AES-256-GCM, then encrypt the DEK itself with a master key kept in Cloudflare’s secret store.

The ciphertext, the two IVs, and the wrapped DEK go into D1. Your plaintext key is not written to disk, logs, or any database column at any point.

Decryption

The proxy worker decrypts the DEK (using the master key) and then your key (using the DEK) into a local variable, inside a single request handler, for the tens of milliseconds it takes to forward one request to the upstream API.

The plaintext never leaves that scope. It is never logged, never returned to the dashboard, never included in an audit record, and never persisted.

What the dashboard can see

The dashboard can read the encrypted blob but has no path to decrypt it. There is no “show key” button and we have no plan to build one. If you lose track of which key is attached, the recovery path is rotation at the upstream provider — not retrieval from us.

The bearer token you get back

When you connect a provider, we generate a Strake-issued bearer token. That token is what your AI tool sends; it’s stored plaintext because the proxy compares it on every request.

We display the token once, at creation and after each rotation. If you lose it, rotate it: your old token is invalidated atomically and a new one is issued.

Sessions

Sign-in is magic-link only; no passwords. Link tokens are SHA-256 hashed at rest, single-use, and expire after 15 minutes. Sessions are HTTP-only secure cookies backed by a 30-day KV entry. Sign-in requests are rate-limited by email and by IP.

What we don’t log

Request and response bodies passing through the proxy are never inspected or persisted. Only routing metadata (which endpoint served the request, status code, latency) may be recorded. Your prompts and completions stay between you and the upstream provider.

Honest caveats

  • If the master key and a database dump were both stolen, stored keys would be decryptable. The master key is a Cloudflare secret isolated from your application code and from D1.
  • If your dashboard session cookie is exfiltrated, an attacker could rotate or delete your endpoints until the session expires or you sign out. They still cannot read your upstream key.
  • Strake is early-stage. We have not yet commissioned a formal third-party audit. If you’re storing production credentials at scale, weigh that accordingly.

Questions?

Email security@strakelabs.com with anything that looks off. Responsible disclosure is welcome.