opschain admin model-providers create
packs:ai-agents
Registers a model provider. The code (the estate identifier agent manifests
reference and the gateway path carries) and the kind are immutable after
create; everything else can change through the update verb. The API key is
write-only: supply it through --credential-env (the name of an
environment variable holding it) or --credential-prompt (a no-echo
prompt), never on the command line; it is encrypted at rest and no read
ever returns it.
Creating a provider requires the packs:ai-agents entitlement — the typed
FEATURE_ENTITLEMENT_REQUIRED refusal names it.
ANTHROPIC_KEY=sk-ant-... opschain admin model-providers create demo-anthropic \
--kind anthropic --credential-env ANTHROPIC_KEY
Created model provider demo-anthropic (kind anthropic)
The endpoint defaults per kind for the hosted kinds
(https://api.anthropic.com for anthropic, https://api.openai.com/v1
for openai — the OpenAI-SDK base URL shape, version segment included);
--endpoint overrides it for a proxied or self-hosted compatible endpoint.
The Azure kinds target inference endpoints in your own Azure tenancy,
so --endpoint is required — there is no platform default:
azure-foundry-anthropic— Claude models deployed in Azure AI Foundry, speaking the Anthropic wire format:--endpoint https://<resource>.services.ai.azure.com/anthropic.azure-openai— GPT-family models on Azure OpenAI, speaking the OpenAI chat-completions wire at your deployment URL; a legacy deployment's api-version rides in the endpoint string itself, e.g.--endpoint "https://<resource>.openai.azure.com/openai/deployments/<name>?api-version=2024-10-21"(or the v1 shapehttps://<resource>.openai.azure.com/openai/v1).
Authentication to the Azure kinds is by API key (the gateway injects
x-api-key for azure-foundry-anthropic, api-key for azure-openai);
Microsoft Entra ID authentication is a planned follow-up.
The openai-compatible kind registers a model you host yourself —
vLLM, Ollama, TGI, llama.cpp server, LiteLLM or any other stack speaking
the OpenAI wire format. --endpoint is required (your own base URL,
e.g. --endpoint https://models.internal.example/v1) and the credential
is optional: with one stored the gateway sends it as
Authorization: Bearer, without one it sends no auth header at all — the
usual shape for an unauthenticated or mTLS-fronted internal endpoint. The
--ssl-verify and --ssl-ca-cert flags cover endpoints behind a private
certificate authority. The gateway forwards requests and responses
faithfully and never translates the protocol, so wire-format fidelity is
the hosting stack's responsibility.
Reference custody
Custody is reference-first: the record stores a secret-vault:// reference, never a
value. --credential-ref pins an existing reference, resolved at write
time - an unresolvable reference refuses by name. An inline credential is
vault-write sugar: the value lands in the platform vault under the
reserved path and only the resulting reference is stored. Records created
before the retrofit keep their inline encrypted credential until the next
credential write, which moves custody to the vault.
Flags
| Flag | Meaning |
|---|---|
--server <url> | Server base URL (default: the active context / OPSCHAIN_SERVER). |
--auth-token <token> | Admin bearer token override (default: your opschain login session, then $OPSCHAIN_ADMIN_TOKEN, then the token stored by opschain admin login). |
--kind <kind> | Provider kind: anthropic, openai, azure-foundry-anthropic, azure-openai or openai-compatible. Immutable after create. |
--display-name <name> | Human-readable provider name. |
--endpoint <url> | Endpoint base URL (empty: the kind's default where one exists; required for the Azure kinds and openai-compatible). |
--data-handling-approved | Marks the entry's data-processing terms as reviewed and approved for lanes that process customer-submitted content (default false — a new entry is unreviewed). The approval is a property of this entry, so a future or custom provider inherits the same one-time check; record the review's outcome before setting it. |
--ssl-verify | Verify the endpoint's TLS certificate (default true; --ssl-verify=false is an explicit opt-out for self-signed endpoints). |
--ssl-ca-cert <path-or-pem> | CA trust anchor for the endpoint connection: a PEM block inline or a certificate file path on the server host. |
--enabled | Whether the gateway serves calls for this provider (default true). |
--credential-ref <ref> | secret-vault:// reference to pin as the credential (mutually exclusive with the inline channel). |
--credential-prompt | Prompt for the API key without echo. |
See also
opschain docs cli/admin-model-providers-update— rotation and enable/disable.