Provider keys

The Provider Vault: managed keys, Azure OpenAI, Gemini.

Overview

Provider keys (Provider Vault)

Some tools can only carry an API key (Cursor, Copilot, Gemini CLI, Codex CLI). For these, the Gateway injects your organization's provider key server-side — developers never see or hold it.

Supported providers

How keys are stored

Keys are encrypted at rest (AES-256-GCM) with strict database-role separation; they are decrypted only in memory, per request, and never logged or returned by any API. The console shows only the last 4 characters.

Model allow-lists

Each key can be restricted to specific models. With multiple keys for one provider, the requested model selects the matching key.

Connection modes

Per tool, you choose: subscription (the developer's own account passes through — Claude Code's default) or managed key (vault injection). Tools whose mechanism cannot carry a subscription credential are locked to managed mode. The Activity row records which mode actually served each request.

Add a provider key

Provider keys are your organization's own API keys — OpenAI, Anthropic, Azure OpenAI, Gemini. They let tools that can't use a personal subscription (Cursor's managed mode, the Copilot CLI) run on your account instead.

Providers → Add Provider, choose the type, paste the key.

How the key is handled

It is encrypted before it reaches storage and never shown again — the screen only displays the last four characters afterwards. If you lose the original, issue a new key at the provider and replace it here.

Azure OpenAI and regions

If the Azure region you enter differs from your Sentilai region, the screen warns you. It's a warning rather than a block: routing EU traffic through a US deployment may be exactly what you intended, but it should be a decision rather than an accident.

Removing a key

Remove stops any tool relying on it. Developers on subscription mode are unaffected — their own plan pays for their requests, which is the point of subscription-safe governance.

Providers — where a key is added. The list stays empty until you add one, and only the last four characters are ever shown again. Providers — where a key is added. The list stays empty until you add one, and only the last four characters are ever shown again.

Which provider key you need

A provider key is what lets Sentilai make the actual AI request on your behalf. You only need one for tools running in managed API key mode — tools on a developer subscription do not touch it.

Matching keys to tools

Supported types

OpenAI, Anthropic, Azure OpenAI and Gemini.

Azure OpenAI additionally needs your Azure endpoint and the Azure region. The region matters: if it is outside your organization's region, the console shows a warning badge on the key, because your AI traffic would be leaving the region you chose Sentilai to keep it in. It warns rather than blocks — sometimes that is a deliberate decision — but it should be a decision.

Enabled models

Each key carries a list of models it is allowed to serve. This is how you stop an expensive model from being used organization-wide, and it is also how Sentilai tells two keys of the same type apart.

If you have no key

Tools in subscription mode work fine. Tools in managed mode fail with a clear error saying no provider key is configured, and the Endpoint Suite warns developers before they connect a tool that would be affected.

Two keys of the same type

You can have several keys of the same provider type — a cheap one for general use, an expensive one for a specific team. Sentilai picks between them using the enabled models list.

The rule

Sentilai looks at the model the request asks for and finds the key whose enabled-models list contains it.

The failure

If a model appears in more than one key's list, the request is ambiguous and is refused with a conflict error rather than a guess. Guessing which of your keys to bill would be the wrong behaviour for something that costs money.

Fixing it

Make the lists disjoint. Each model should appear in exactly one key's enabled-models list.

If you genuinely want two teams on the same model with separate billing, that is not something the enabled-models mechanism can express today — tell us, because it is a reasonable thing to want.

Keys are write-only

After saving, a key is shown only as •••• and its last four characters. Editing a key and leaving the field blank keeps the stored value; you never need to retrieve the original just to change the model list.

Removing a key stops every tool that depends on it, and the confirmation says so.