Provider fields
Providers represent API connections with credentials.
Provider list showing adapter type, endpoint, API key status, and action buttons.
Field inventory
| Field | TCA type | Default | Required in TCA | Effect |
|---|---|---|---|---|
hidden | check | 0 | no | TYPO3 record visibility; separate from runtime is_active. |
identifier | input | unset in TCA | yes | Unique programmatic identifier. |
name | input | unset in TCA | yes | Backend display name. |
description | text | unset in TCA | no | Description for operators. |
adapter_ | select | "openai" | yes | Protocol adapter; see the shared adapter catalogue. |
trust_ | select | "external | yes | Operator-declared inference zone; default externalGlobal. Not independent certification. |
privacy_ | select | empty | no | Optional stricter persistence ceiling; empty inherits. Cannot loosen global policy. |
endpoint_ | input | unset in TCA | no | Adapter endpoint override; required for Azure and custom endpoints. |
api_ | input | unset in TCA | no | nr-vault credential UUID, not the plaintext key. |
organization_ | input | unset in TCA | no | OpenAI organization header where supported; not sent by Azure. |
api_ | number | 120 | no | Provider request timeout in seconds; model/configuration may override. |
max_ | number | 3 | no | Retries after the initial buffered request; timeouts are not retried. |
options | text | unset in TCA | no | Additional adapter options; validate against the selected adapter. |
is_ | check | 1 | no | Whether the record is eligible for runtime use. |
priority | number | 50 | no | Operator priority used during model selection. |
Required
-
- Type
- string
- Required
true
Unique slug for programmatic access (e.g.,
openai-,prod ollama-).local
-
- Type
- string
- Required
true
Display name shown in the backend.
-
- Type
- string
- Required
true
The protocol adapter; see the complete shared Adapter catalogue. Text-generation adapters and decision-only adapters have different operation contracts.
-
- Type
- string
API key for authentication. Stored as a nr-vault UUID identifier (envelope encryption). nr-llm never stores raw API keys in the database. Required for cloud providers (OpenAI, Claude, Gemini, etc.); not required for local providers like Ollama.
Optional
-
- Type
- string
- Default
- (adapter default)
Custom API endpoint URL.
For
azure_it is required and names the URL shape (ADR-247):openai - the resource URL, for example
https://: requests go tocontoso. openai. azure. com /openai/, so the model record's model id is the deployment name;deployments/<model id>/<operation>?api- version=<version> - a URL ending in
/openai/: requests go to the OpenAI paths below it, the deployment name travels as the body'sv1 model, and noapi-is sent.version
Both send the key in the
api-header.key Name a deployment after the model it serves (
gpt-): nr-llm reads the model's capabilities, such as a reasoning profile, from the model id, and a custom deployment name does not carry them. For reasoning models prefer the v1 URL or set a recent5. 2 api; older versions of the deployment API reject newer request fields. Enter the resource URL, not the portal's full target URI withVersion /chat/in it. A resource behind a private endpoint resolves to a private address, which the nr-vault host filter refuses until the host is listed in itscompletions allowed_.hosts
-
- Type
- string
- Default
- (empty)
Organization ID (OpenAI). Sent as the
Openrequest header by the OpenAI-compatible adapters (AI- Organization openai,together,fireworks,perplexity,custom). Azure OpenAI does not read it, andazure_does not send it.openai
-
- Type
- integer
- Default
- 120
Maximum time in seconds to wait for the complete API response. A configuration- or model-level timeout overrides this value per request.
-
- Type
- integer
- Default
- 3
Number of retries after the first failed request (0 = try once, no retries). Timed-out requests are not retried.
-
- Type
- JSON
- Default
- {}
Additional adapter-specific options. Supported keys:
customHeaders -
Object mapping header names to values, sent on every API request (including streaming), for example:
{"customHeaders": {"X-Custom-Header": "value"}}Copied!Custom headers are applied after the adapter's own headers, so a colliding name overrides the adapter value — a mistyped
Content-breaks that provider's calls.Type apiVersion azure_on the deployment API only: theopenai api-to send, for exampleversion {"api. DefaultVersion": "2025- 04- 01- preview"} 2024-; a value not shaped like a version falls back to it.10- 21
Note
A per-provider
proxyis not supported; TYPO3's global HTTP proxy configuration ($GLOBALS) applies to all outgoing provider requests.['TYPO3_ CONF_ VARS'] ['HTTP'] ['proxy']
Trust, privacy and priority
trust_ is an operator declaration: local, private,
external or external (default). It controls the maximum data
class offered to the provider, including fallback reach. nr-llm does not
verify hosting jurisdiction, contracts or the truth of that declaration.
Do not raise the zone merely to make a denied call succeed.
privacy_ is empty by default and inherits the global level. An
explicit none, metadata, redacted or full can only tighten the
combined persistence policy. See Data retention & purge for
exceptions such as functional resumable state and background answers.
is_ defaults to true. priority defaults to 50 and supplies an
operator preference to routing; it does not override eligibility checks.