Skip to content

Configuration Management API

Monibuca exposes two configuration HTTP surfaces:

PrefixPurpose
/config/Config Framework: schema-driven UI, incremental overrides
/api/config/Runtime config API (UnifiedConfigManager): list/read/write/reload from DB

Default base URL: http://localhost:8180. The admin config UI uses /config/.

  1. List registered plugins:
Terminal window
curl http://localhost:8180/config/
  1. Read global config:
Terminal window
curl http://localhost:8180/config/global
  1. Update a plugin (example: mp4):
Terminal window
curl -X PUT http://localhost:8180/config/mp4 \
-H "Content-Type: application/json" \
-d '{
"record_path": "/data/recordings",
"expire_days": 30
}'
GET /config/
GET /config/global

Response shape:

{
"code": 0,
"message": "success",
"data": {
"config": { "http": { "listenaddr": ":8180" } },
"sources": {},
"inherited": {}
}
}
GET /config/{plugin_name}

Example: curl http://localhost:8180/config/mp4

PUT /config/global
PUT /config/{plugin_name}
Content-Type: application/json
{ "log": { "level": "debug" } }

Partial updates only. Success payload includes requires_restart when a restart is needed.

GET /config/schema/{plugin_name}

There is no single “all schemas” endpoint; list plugins via GET /config/ then fetch each schema.

POST /config/validate
Content-Type: application/json
{
"plugin": "mp4",
"config": { "record_path": "/data/recordings" }
}

plugin and config belong in the body, not the URL path.

POST /config/reset/{plugin_name}

Restores schema defaults for the plugin (not a full config.yaml reload).

MethodPathDescription
GET/config/debugConfig source overview
GET/config/debug/{plugin}Per-field sources
PathDescription
GET /config/pageMain config UI
GET /config/page/{plugin}Plugin page (global for global)
MethodPathDescription
GET/api/config/List plugin configs
GET/api/config/{plugin}Get raw plugin config
PUT/api/config/{plugin}Update ({ "config": {...}, "persistent": true })
POST/api/config/{plugin}/reloadReload one plugin from DB
POST/api/config/reload-allReload all

Writes require admin JWT.

ws://host:port/config/ws is not implemented yet (server returns 501). Poll GET /config/{plugin} or use the admin UI.

Masked in responses when marked sensitive in schema; send plaintext on write for encryption at rest.

Capability/config//api/config/
Schema / HTML
Source tracking
DB persistence APIvia UCM✅ explicit persistent

Do not mix prefixes — wrong prefix returns 404.