Credentials
The secrets the instance holds — an AWS key, a Cloudflare token, a registry password — stored once and named by everything that uses them.
Credentials under Platform lists every secret the instance is wired to, and what stands on each.
One secret, many uses
A credential is a label, an optional first half (a username, an access key id) and a secret. It carries no provider: which API is spoken with it belongs to the thing using it. One AWS key, entered once, writes Route 53 records with one hand and pulls from ECR with the other; one DigitalOcean token reaches a registry and a Space.
| Uses one | For |
|---|---|
| External registries | logging in to pull |
| DNS providers | writing records |
| Linked object stores | signing requests |
Made where it is used
Every screen that uses a credential also makes one: a registry is added with a login typed in place and the credential is created from it, in the same step, then appears here ready to be picked for the next thing. Naming an account is never somebody's first act on a fresh instance.
Stored as given, never returned
A provider needs the secret itself, so it is stored as given rather than
hashed — and no endpoint hands it back. The listing shows the label, the
first half, when it was created, and in_use_by.
Renaming and rotating
Editing the label or the first half leaves the secret alone. Entering a new secret rotates it, and everything on the credential follows — including a cached ECR token, dropped so pulls do not keep working for hours on the old key and then fail for no visible reason. The screen says what shares the credential before the button is pressed.
Rotating from a registry's or a store's settings is the same act on the same credential; a thing that should move to another account picks a different credential instead.
Deleting
Refused while anything stands on it, with the names. A credential something depends on must not vanish underneath it.
Roles
An admin's, reads included: the list names what secrets this instance holds and what stands on each, which is exactly what somebody probing would want. There are no MCP tools, deliberately — creating one means a password passing through a model's context.