Create Config Version

Catalog prerequisites

This operates on the database-backed component catalog configured on AgentOS, not on the in-code agents, teams or workflows lists. It requires a supported synchronous BaseDb adapter with component methods.

Published components can be readable across scoped owners, while writes remain owner-scoped; a visible foreign or shared row can still reject a write with 403. Draft versions require preview access. Saving configuration does not validate model credentials, run tools or deploy a service.

Create the next version

Using the catalog server, set COMPONENT_ID to the returned ID. If its latest visible version is 1, create the next draft with this optional optimistic guard:

curl --fail-with-body "http://127.0.0.1:7777/components/$COMPONENT_ID/configs" \
  -H "Authorization: Bearer $OS_SECURITY_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"config":{"name":"Reference Agent"},"stage":"draft","guard":{"latest_version":1}}'

guard.latest_version checks the expected latest version and returns 409 when stale. This operation rejects a non-null guard.current_version with 400. Read the latest version before choosing your expected value.

On current main, the exposed version and set_current fields are ignored. Version numbers are allocated by the database; requesting version=99 does not reserve version 99. Draft creation leaves the published pointer unchanged; stage=published automatically makes the new version current. Omit the ignored fields.

POST/components/{component_id}/configs

Create a new config version for a component.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

component_id*Component Id

Component ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Config data

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl --request POST 'https://example.com/components/string/configs' \  --header 'Content-Type: application/json' \  --data-raw '{"config":{}}'
{  "component_id": "string",  "version": 0,  "label": "string",  "stage": "string",  "config": {},  "notes": "string",  "created_at": 0,  "updated_at": 0}