This page is the dedicated reference for the provider section in config/opamp.json.
It is intended to answer three different questions quickly:
For the implementation source of truth, see provider/src/opamp_provider/config.py.
This page covers provider.* only.
Related top-level configuration sections are documented separately:
opamp_json_reference.md for the full config/opamp.json mapopamp_config_catalog_ui.md for opamp.config_catalogprovider/README.md#web-ui for component-entry-pointsconfig/opamp.jsonOPAMP_CONFIG_PATH--config-path--port for provider.webui_port--log-level for provider.log_level--restore for state restore behaviorThe provider README still covers the operational startup flow in more detail:
| Key | Type | Built-in default | Default repo value | Editable in UI | Notes |
|---|---|---|---|---|---|
provider.delayed_comms_seconds |
integer | 60 |
60 |
Yes | Threshold before a client is marked delayed. |
provider.significant_comms_seconds |
integer | 300 |
120 |
Yes | Threshold before a client is marked significantly delayed. The UI save path enforces this to be greater than delayed_comms_seconds. |
provider.webui_port |
integer | 8080 |
8080 |
No | Main HTTP/HTTPS listener port for /ui, /api, and /v1/opamp. |
provider.minutes_keep_disconnected |
integer | 30 |
5 |
Yes | Retention window for disconnected clients before purge. |
provider.retryAfterSeconds |
integer | 30 |
30 |
No | Returned when the server responds with an unavailable/retry-later signal. |
provider.client_event_history_size |
integer | 50 |
50 |
Yes | Per-client event history retention size. UI/API updates clamp this to a minimum of 1. |
provider.log_level |
string | INFO |
DEBUG |
No | Resolved through Python logging level names. |
provider.default_heartbeat_frequency |
integer | 30 |
30 |
Yes | Default heartbeat value used for global client heartbeat updates. UI/API updates clamp this to a minimum of 1. |
provider.latest_docs_url |
string | https://htmlpreview.github.io/?https://raw.githubusercontent.com/mp3monster/fluent-opamp/main/github-landingpage/index.html |
https://htmlpreview.github.io/?https://raw.githubusercontent.com/mp3monster/fluent-opamp/main/github-landingpage/index.html |
No | Redirect target for GET /doc-set, which is also the route used by the UI Latest docs links. |
provider.human_in_loop_approval |
boolean | false |
false |
Yes | Enables the pending-approval workflow for unknown agents. |
provider.allow-remote-config |
boolean | true |
true |
No | Enables the enhanced Configuration-tab remote file workflow and allows related remote-config queueing endpoints. |
provider.allow-effective-config |
boolean | true |
true |
No | Controls whether the provider advertises ServerCapabilities.AcceptsEffectiveConfig to agents. |
provider.allow-connection-settings |
boolean | false |
false |
No | Controls whether the provider advertises ServerCapabilities.OffersConnectionSettings. |
provider.allow-connection-settings-request |
boolean | false |
false |
No | Controls whether the provider advertises ServerCapabilities.AcceptsConnectionSettingsRequest. |
provider.allow-mcp |
boolean | false |
true |
No | Enables direct Streamable HTTP MCP access at /mcp. When false, /mcp requests are rejected even if other MCP transports are available. |
provider.opamp-use-authorization |
string | none |
none |
No | Allowed values: none, config-token, idp. Controls OpAMP transport auth on /v1/opamp. |
provider.ui-use-authorization |
string | none |
none |
No | Allowed values: none, config-token, idp. Controls non-OpAMP auth for /ui, /api, /tool, /mcp when enabled, and related routes. |
| Key | Type | Built-in default | Default repo value | Editable in UI | Notes |
|---|---|---|---|---|---|
provider.metrics.enabled |
boolean | true |
true |
No | Enables the Prometheus scrape endpoint at /metrics and the internal graph endpoint at /api/metrics/graphs. |
provider.metrics.graph_history_minutes |
integer | 0 |
0 |
No | Retention window in minutes for in-memory gauge time-series history used by internal dashboard graphs. 0 disables history retention while still exposing current gauge values. |
The default repository config does not include provider.tls, so the provider runs HTTP-only unless you
add this section or use a config variant that already includes it.
| Key | Type | Built-in default | Default repo value | Editable in UI | Notes |
|---|---|---|---|---|---|
provider.tls |
object | not set | not set | No | When absent, the provider runs without TLS. |
provider.tls.enabled |
boolean | true when provider.tls exists |
not set | No | If false, the TLS section is ignored for that run. |
provider.tls.cert_file |
string | none | not set | No | Required existing certificate file when TLS is enabled. |
provider.tls.key_file |
string | none | not set | No | Required existing private key file when TLS is enabled. |
provider.tls.trust_anchor_mode |
string | full_chain_to_root |
not set | No | Allowed values: none, partial_chain, full_chain_to_root. Invalid values raise a startup config error. |
For local HTTPS and self-signed certificate setup, use:
| Key | Type | Built-in default | Default repo value | Editable in UI | Notes |
|---|---|---|---|---|---|
provider.state_persistence.enabled |
boolean | false |
true |
Yes | Enables persisted provider state snapshots. If the target folder is invalid, persistence is disabled for that run and startup continues. |
provider.state_persistence.state_file_prefix |
string | runtime/opamp_server_state |
server-state\\opamp_server_state |
Indirectly | UI edits use state_save_folder, which updates the parent folder while preserving the snapshot base filename. |
provider.state_persistence.retention_count |
integer | 5 |
3 |
Yes | Number of newest snapshot files to keep. UI/API updates require a positive integer. |
provider.state_persistence.flush_mode |
string | graceful_shutdown |
graceful_shutdown |
No | Current persistence mode written into config. |
provider.state_persistence.autosave_interval_seconds_since_change |
integer | 600 |
60 |
Yes | Autosave interval after non-heartbeat state changes. UI/API updates require a positive integer. |
Both provider authorization settings normalize to one of these values:
noneconfig-tokenidpIf an invalid value is supplied in opamp.json, the provider logs a warning and falls back to none.
The auth mode keys select behavior, while secrets and IdP connection details come from environment variables. For full setup details, use:
The metrics scrape endpoint uses the same non-OpAMP auth mode:
provider.ui-use-authorization=none leaves /metrics openprovider.ui-use-authorization=config-token requires UI_AUTH_STATIC_TOKENprovider.ui-use-authorization=idp requires a valid bearer token accepted by the configured JWT settingsThese provider-backed settings are editable through Global Settings in the server console:
provider.delayed_comms_secondsprovider.significant_comms_secondsprovider.minutes_keep_disconnectedprovider.client_event_history_sizeprovider.default_heartbeat_frequencyprovider.human_in_loop_approvalprovider.state_persistence.enabledprovider.state_persistence.retention_countprovider.state_persistence.autosave_interval_seconds_since_changeOne related UI field is mapped rather than stored directly:
state_save_folder in the UI updates the parent folder of provider.state_persistence.state_file_prefixOne provider-managed UI workflow is controlled only through config:
provider.allow-remote-config enables the extra file-based remote configuration panel in each client
Configuration tab. When the catalog feature is also configured, that panel shows
Select Configs, opens the catalog in a popup, and lets the operator drag to reorder or remove
returned files before using a separate send action.Server capability advertisement is also configuration-driven:
provider.allow-remote-config controls whether the provider advertises OffersRemoteConfigprovider.allow-effective-config controls whether the provider advertises AcceptsEffectiveConfigprovider.allow-connection-settings controls whether the provider advertises OffersConnectionSettingsprovider.allow-connection-settings-request controls whether the provider advertises AcceptsConnectionSettingsRequestWhen the UI persists provider settings back to opamp.json, the provider writes a timestamped backup of
the previous file first.
For the UI behavior and help text, see:
For the provider metrics endpoints and scrape examples, see:
The repository also includes provider-oriented config variants:
config/opamp.provider-with-editor-service.jsonconfig/opamp.provider-with-editor-and-credentials-service.jsonconfig/opamp.provider-with-editor-and-catalog-services.jsonThose are introduced in: