Security
Keep keys on a server, why the API sends no CORS headers, what Current stores about a key and what it never stores, and what to do if a key leaks.
Last updated 4 min read
On this page · 6 sections
Keys belong on a server
The REST API and the MCP server send no CORS headers, so a browser page cannot call them, and the MCP server refuses any request that comes from a browser page. Keep keys on a server, never in a browser, a mobile app or a public repository. Read them from an environment variable or your secret manager, as every sample here does. Never write the Authorization header or a token to a log, and keep an app's OAuth tokens on its server too, never in the browser's storage.
What Current stores
- For a key: its first few characters and a one-way fingerprint (a SHA-256 hash). Never the key itself, so nobody, Current included, can show it again.
- OAuth access and refresh tokens and app client secrets: the same, a fingerprint only, each kind in its own space so one can never be used as another.
- A webhook signing secret is the one secret Current must read back, to sign each message. It is stored encrypted and shown to you once.
- The call log keeps which key or app called, what it did, its result and its address. Never a request body, a reply's words or a key.
What protects a key
- Typed prefixes and a checksum, so a secret scanner can recognise a Current key and a typo is refused before any lookup.
- Every key expires, and one unused for 30 days switches itself off.
- A key that changes tickets works only from its allowed addresses.
- Every refused key gets the same 401, so a guess learns nothing.
- Alerts on the API access page: a key or an app used from a new address, a sudden run of refused calls, or a burst of changes.
- Your tenant admins see every live key in the workspace, people's personal MCP keys included, and can revoke any of them. They never see a key itself.
If a key leaks
- 1Revoke itOn the API access page, revoke the key. It stops at once.
- 2Check the call logFilter the call log by that key to see what it did and from which addresses.
- 3Make a new oneCreate a new key for the agent, with an allowlist, and store it in your secret manager.
Webhooks and AI assistants
Current delivers webhooks only to public https addresses on the standard port, checks the address on every try and never follows a redirect, so a webhook cannot be pointed at your own network. Text from people reaches an AI assistant labelled as untrusted data (see MCP and AI assistants).
Can I call the Current API from a web page?
No. The REST API and the MCP server send no CORS headers, so a browser page cannot call them. Keep the key on a server and call the API from there. See the current-api-security article. The Current API is not open yet.
What should I do if a Current API key leaks?
Revoke it on the API access page (it stops at once), check the call log for what it did, and make a new key with an IP allowlist. The Current API is not open yet.
