The Config Store service provides PostgreSQL-backed configuration storage with versioning, compression, and fine-grained locking.
The Config Store service:
intended and backup configurationsFor detailed feature descriptions and system architecture, see Config Store Architecture.
The service tracks two distinct file types:
This separation enables:
See Concurrent Write Handling for locking mechanism details.
file_type separates intended configuration from backup configuration. For GET /v1/config/{device_uuid}/{filename}, GET /v1/config/{device_uuid}/{filename}/versions, and GET /v1/config/{device_uuid}/{filename}/diff, pass file_type as an optional query parameter. It defaults to intended when omitted.
For POST /v1/config/{device_uuid}/{filename}, pass file_type in the request body as ConfigCreateRequest.file_type. It also defaults to intended when omitted.
Batch requests should be a single config type in normal operation. Intended config batches typically write boot-script and startup.yaml together. The render service passes the same Nautobot-change-derived commit_message for every file in the batch. Backup captures are typically single-file writes to POST /v1/config/{device_uuid}/{filename} with "file_type": "backup".
The batch endpoint returns version metadata for files that were created or updated and a list of filenames that were skipped because their content already matched the latest stored version:
Full success example:
Idempotent no-op example:
Failure example:
The batch operation is atomic at the database transaction level. If any file in the batch fails during processing, the service returns a non-2xx error and rolls back the whole request; it does not commit a subset of files from the failed batch. Request validation errors return before any write occurs.
For retry behavior, treat identical content as idempotent. If a request fails with a server error or the client loses the connection before reading the response, retry the full same-type batch. Files that were already committed with identical content are skipped, and files that were not committed are written. If you need to recover a backup capture, retry the single backup file write rather than mixing it into an intended config batch.
The Config Store includes a Next.js web interface.
Relevant sections of the Config Manager INI are as follows:
A background service keeps Redis cache in sync with Nautobot:
Prometheus metrics are available at the operational /metrics endpoint. See Prometheus Metrics for available metrics and their descriptions.
In general:
If you are seeing a large number of 503 errors, or high latency, scale up the number of replicas.
Check pod status and logs:
Check an application’s (for example, redis or postgres) status and logs:
Check the service logs for Nautobot connection errors:
Check that the gateway has an address and is programmed:
Ensure that all routes are properly installed:
For further information on the Envoy gateway, see the Envoy documentation.