Skip to main content

Registries

Authorization and lifecycle registries: VIGIL's own answer to authorized and near_decommission.

MethodPathScopeSummary
GET/registry/blueprintsreadList Blueprints
GET/registry/blueprints/{agent_id}readGet Blueprint
PUT/registry/blueprints/{agent_id}adminPut Blueprint
GET/registry/config-keysreadList Config Keys
PUT/registry/config-keysadminPut Config Key
GET/registry/lifecyclereadList Lifecycle
PUT/registry/lifecycle/{agent_id}adminPut Lifecycle

Try it

curl -sf -H "Authorization: Bearer $VIGIL_KEY" "$VIGIL_URL/registry/config-keys"

Routes

GET /registry/blueprints

List Blueprints. Scope: read.

Response 200:

[
{
"version": "string",
"min_confidence_floor": 0,
"method_mix_baseline": {
"<key>": 0
},
"drift_alert_tvd": 0,
"inflation_guard": true,
"required_receipt_fields": [
"string"
],
"agent_id": "string",
"updated_at": "string"
}
]

GET /registry/blueprints/{agent_id}

Get Blueprint. Scope: read.

ParameterInRequiredTypeNotes
agent_idpathyesstring

Response 200:

{
"version": "string",
"min_confidence_floor": 0,
"method_mix_baseline": {
"<key>": 0
},
"drift_alert_tvd": 0,
"inflation_guard": true,
"required_receipt_fields": [
"string"
],
"agent_id": "string",
"updated_at": "string"
}

PUT /registry/blueprints/{agent_id}

Put Blueprint. Scope: admin.

Declare or replace the agent's blueprint. Takes effect on the next score; earlier scores keep 1.0.

ParameterInRequiredTypeNotes
agent_idpathyesstring

Request body:

{
"version": "string",
"min_confidence_floor": 0,
"method_mix_baseline": {
"<key>": 0
},
"drift_alert_tvd": 0,
"inflation_guard": true,
"required_receipt_fields": [
"string"
]
}
FieldTypeRequiredNotes
versionstringyes
min_confidence_floornumber | nullno
method_mix_baselineMethod Mix Baselinenomethod -> share; shares sum to 1; empty disables the drift test
drift_alert_tvdnumberno
inflation_guardbooleanno
required_receipt_fieldsarray of stringno

Response 200:

{
"version": "string",
"min_confidence_floor": 0,
"method_mix_baseline": {
"<key>": 0
},
"drift_alert_tvd": 0,
"inflation_guard": true,
"required_receipt_fields": [
"string"
],
"agent_id": "string",
"updated_at": "string"
}

GET /registry/config-keys

List Config Keys. Scope: read.

Response 200:

[
{
"key": "string",
"allowed_actors": [
"string"
],
"updated_at": "string"
}
]

PUT /registry/config-keys

Put Config Key. Scope: admin.

Request body:

{
"key": "string",
"allowed_actors": [
"string"
]
}
FieldTypeRequiredNotes
keystringyes
allowed_actorsarray of stringyesGlob patterns over actor ids, e.g. user:*, system

Response 200:

{
"key": "string",
"allowed_actors": [
"string"
],
"updated_at": "string"
}

GET /registry/lifecycle

List Lifecycle. Scope: read.

Response 200:

[
{
"agent_id": "string",
"decommission_at": "string | null",
"status": "string",
"updated_at": "string"
}
]

PUT /registry/lifecycle/{agent_id}

Put Lifecycle. Scope: admin.

ParameterInRequiredTypeNotes
agent_idpathyesstring

Request body:

{
"decommission_at": "2026-09-08T00:00:00Z | null",
"status": "active | decommissioning | decommissioned"
}
FieldTypeRequiredNotes
decommission_atstring | nullno
statusactive, decommissioning, decommissionedno

Response 200:

{
"agent_id": "string",
"decommission_at": "string | null",
"status": "string",
"updated_at": "string"
}

Generated from openapi.json (VIGIL 0.2.0). Scopes follow the router dependencies in VIGIL_SPEC.md section 4.2.