Configuration API
Configuration document management
Overview
The Configuration API provides endpoints for managing the system configuration document. ETag is supported; send If-None-Match for conditional GET (may return 304).
Operational Note: This API is intended for internal verification only. Behavior is undefined in multi-replica clusters because pods do not coordinate config writes.
Base URL
https://<manager-host>/api/v1/configuration
Endpoints
GET /api/v1/configuration
Retrieve the configuration document.
Success: 200 OK with configuration JSON
Conditional GET: Returns 304 Not Modified if If-None-Match header matches current ETag
Example:
# Get ETag from response headers
etag=$(curl -s -D- "https://cdn-manager/api/v1/configuration" | awk '/ETag/{print $2}')
# Conditional GET - returns 304 if config unchanged
curl -s -H "If-None-Match: $etag" "https://cdn-manager/api/v1/configuration" -o /tmp/cfg.json -w "%{http_code}\n"
PUT /api/v1/configuration
Replace the configuration document.
Request:
{
"feature_flag": false,
"ratio": 0.25
}
Success: 200 OK
Errors:
400- Invalid configuration format500- Backend failure
DELETE /api/v1/configuration
Delete the configuration document.
Success: 200 OK
ETag Usage
The configuration API supports ETags for optimistic concurrency control:
# 1. Get current config and ETag
response=$(curl -s -D headers.txt "https://cdn-manager/api/v1/configuration")
etag=$(grep -i ETag headers.txt | cut -d' ' -f2 | tr -d '\r')
# 2. Modify the config as needed
modified_config=$(echo "$response" | jq '.feature_flag = true')
# 3. Update with ETag to prevent overwriting concurrent changes
curl -s -X PUT "https://cdn-manager/api/v1/configuration" \
-H "Content-Type: application/json" \
-H "If-Match: $etag" \
-d "$modified_config"
Next Steps
- Operator UI API - Blocked tokens, user agents, and referrers
- OpenAPI Specification - Complete API specification