Skip to main content

HTTP route reference

The current APIs carry binary Protocol Buffers over HTTPS. This is generated from route registrations, not an OpenAPI document: none is present in the inspected repository. See API conventions for authentication, payload types, errors, and pagination.

Control API

MethodPathRouteRequirement
POST/v1/agentsagent_registerPermits(authz.Agents, authz.Write)
POST/v1/agents/searchagent_searchPermits(authz.Agents, authz.Read)
GET/v1/agents/{id}agent_describePermits(authz.Agents, authz.Read)
GET/v1/agents/{id}/historyagent_historyPermits(authz.Agents, authz.Read)
POST/v1/agents/{id}/transitionagent_transitionPermits(authz.Agents, authz.Write)
POST/v1/agents/{id}/identityagent_bind_identityPermits(authz.Agents, authz.Write)
POST/v1/alerts/searchalert_searchPermits(authz.Alerts, authz.Read)
GET/v1/alerts/{id}alert_describePermits(authz.Alerts, authz.Read)
GET/v1/alerts/{id}/historyalert_historyPermits(authz.Alerts, authz.Read)
GET/v1/alerts/{id}/occurrencesalert_occurrencesPermits(authz.Alerts, authz.Read)
POST/v1/alerts/{id}/transitionalert_transitionPermits(authz.Alerts, authz.Write)
POST/v1/alerts/{id}/assignmentalert_assignPermits(authz.Alerts, authz.Write)
POST/v1/agents/{id}/certificateagent_certificate_issuePermits(authz.Agents, authz.Write)
GET/v1/agents/{id}/certificatesagent_certificate_historyPermits(authz.Agents, authz.Read)
POST/v1/incidents/searchincident_searchPermits(authz.Incidents, authz.Read)
GET/v1/incidents/{id}incident_describePermits(authz.Incidents, authz.Read)
GET/v1/incidents/{id}/historyincident_historyPermits(authz.Incidents, authz.Read)
POST/v1/incidents/{id}/transitionincident_transitionPermits(authz.Incidents, authz.Write)
POST/v1/incidents/{id}/assignmentincident_assignPermits(authz.Incidents, authz.Write)
GET/v1/rulesetsruleset_listPermits(authz.Rulesets, authz.Read)
POST/v1/rulesets/validateruleset_validatePermits(authz.Rulesets, authz.Read)
POST/v1/rulesets/checkruleset_checkPermits(authz.Rulesets, authz.Read)
GET/v1/rulesets/{id}ruleset_describePermits(authz.Rulesets, authz.Read)
POST/v1/rulesetsruleset_publishPermits(authz.Rulesets, authz.Write)
POST/v1/rulesets/{id}/activateruleset_activatePermits(authz.Rulesets, authz.Write)
GET/v1/descriptordescriptorCertificate()
POST/v1/auth/sessionsession_openCertificate()
GET/v1/auth/sessionsession_describeSession()
DELETE/v1/auth/sessionsession_revokeSession()
GET/v1/auth/sessionssession_listSession()

Permits requires a certificate-bound session and the named policy permission. Certificate() permits the authenticated bootstrap surfaces; Session() requires a live session. Tenant checks are also enforced in handlers.

Agent and query surfaces

ListenerMethodPathPayload
IngestPOST/v1/eventsingest.v1.EventBatchBatchAck
IngestPOST/v1/inventoryinventory.v1.RecordBatchingest.v1.BatchAck
QueryPOST/v1/hunt/eventshunt.v1.QueryEventPage
QueryPOST/v1/hunt/detectionshunt.v1.QueryDetectionPage
Agent renewalPOST/v1/agents/certificateAgent-authenticated certificate renewal

Query scope is derived from certificate organizations, not the control session policy. The renewal listener accepts agent certificates; operator routes accept caller certificates. These trust domains are not interchangeable.

Source evidence

Generated from internal/control/server.go at fa3bf69. Refresh the checked-in snapshot before regenerating; a normal build does not access another repository.