Registries
Authorization and lifecycle registries: VIGIL's own answer to authorized and near_decommission.
| Method | Path | Scope | Summary |
|---|---|---|---|
GET | /registry/blueprints | read | List Blueprints |
GET | /registry/blueprints/{agent_id} | read | Get Blueprint |
PUT | /registry/blueprints/{agent_id} | admin | Put Blueprint |
GET | /registry/config-keys | read | List Config Keys |
PUT | /registry/config-keys | admin | Put Config Key |
GET | /registry/lifecycle | read | List Lifecycle |
PUT | /registry/lifecycle/{agent_id} | admin | Put 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.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
agent_id | path | yes | string |
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.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
agent_id | path | yes | string |
Request body:
{
"version": "string",
"min_confidence_floor": 0,
"method_mix_baseline": {
"<key>": 0
},
"drift_alert_tvd": 0,
"inflation_guard": true,
"required_receipt_fields": [
"string"
]
}
| Field | Type | Required | Notes |
|---|---|---|---|
version | string | yes | |
min_confidence_floor | number | null | no | |
method_mix_baseline | Method Mix Baseline | no | method -> share; shares sum to 1; empty disables the drift test |
drift_alert_tvd | number | no | |
inflation_guard | boolean | no | |
required_receipt_fields | array of string | no |
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"
]
}
| Field | Type | Required | Notes |
|---|---|---|---|
key | string | yes | |
allowed_actors | array of string | yes | Glob 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.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
agent_id | path | yes | string |
Request body:
{
"decommission_at": "2026-09-08T00:00:00Z | null",
"status": "active | decommissioning | decommissioned"
}
| Field | Type | Required | Notes |
|---|---|---|---|
decommission_at | string | null | no | |
status | active, decommissioning, decommissioned | no |
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.