Governance API
Review registered agents, change agent lifecycle state, and build audit-derived governance reports for compliance workflows.
List registered agents
GET /v1/governance/agents
Get one registered agent
GET /v1/governance/agents/{agent_id}
Pause, resume, or revoke an agent
PATCH /v1/governance/agents/{agent_id}
Build a governance report
GET /v1/governance/reports
Create a report snapshot
POST /v1/governance/reports/snapshot
Get a report snapshot
GET /v1/governance/reports/{report_id}
No external agent creation endpoint is exposed. Agents continue to be created through existing provisioning flows. The policy check catalog is not exposed in this cycle because it is deferred pending a future security and legal review.
Authentication
All Governance API routes require the platform service header:
X-Platform-Service-Auth: <secret-with-governance-read>The platform credential must carry governance:read.
List Registered Agents
GET /v1/governance/agents
X-Platform-Service-Auth: <secret-with-governance-read>Query parameters:
tenant_id
Yes
Tenant whose agent registry should be listed.
status
No
active, pending, quarantined, or revoked.
owner
No
Phase 1 tenant owner alias. A non-matching value returns an empty list.
limit
No
Default 100, maximum 500.
cursor
No
Cursor returned by the previous page.
scopes is null in Phase 1 because the registry stores scope_hash, not the original scope list.
Get One Registered Agent
Change Agent Lifecycle
transition is one of pause, resume, or revoke. The route writes governance.agent.lifecycle_changed to the existing audit event store with the actor and reason.
Build A Governance Report
Query parameters:
tenant_id
Yes
Tenant whose audit events should be reported.
period_start
Yes
Inclusive report start timestamp.
period_end
Yes
Exclusive report end timestamp.
agent_id
No
Filters policy-relevant events to one agent.
format
No
json by default, or csv.
Reports include policy-relevant audit events in the requested period. Historical rows are joined to policy_decisions when policy_decision_id is present. policy_decision_id is not populated on all historical audit events, so rows without a native outcome or resolvable policy decision are returned with decision_data_status set to unavailable rather than omitted.
The full request and response schema is maintained in Brain_API_Specification.yaml.
Create A Report Snapshot
Query parameters:
tenant_id
Yes
Tenant whose audit events should be reported.
period_start
Yes
Inclusive report start timestamp.
period_end
Yes
Exclusive report end timestamp.
agent_id
No
Filters policy-relevant events to one agent.
format
No
json only for snapshots. CSV is not persisted.
Snapshot creation generates the same JSON GovernanceReport as GET /v1/governance/reports, stores that exact payload with its filters, and returns a grpt_ report id. The stored payload is immutable.
Idempotency-Key is optional. When supplied, a retry with the same key and same snapshot request returns the original 201 response with the same report_id. Reusing the same key with different snapshot parameters returns 409.
Get A Report Snapshot
Query parameters:
tenant_id
Yes
Tenant that owns the row.
This route returns the frozen snapshot and does not re-query the live audit store.
Last updated
