burstdocs
DEVELOPERS / Reference

Control API reference

These routes are generated from the registered Go control routes. Bodies and lifecycle constraints are documented in the connected lifecycle guide.

Sessions and request protection

Human operations use a real OIDC login and a host-only server-side session. Browser mutations require the current session, an exact matching Origin and an X-CSRF-Token header. Most mutations also require an Idempotency-Key of 8–128 characters. Reuse a key only for an identical retry; successful requests have persisted outcomes. Policy and automation simulations are read-only POSTs and do not require mutation idempotency.

Node enrollment consumption, renewal and attestation use their separately documented bootstrap and mTLS identity checks. They do not accept browser sessions as substitutes for node identity.

Catalog pagination

The nodes, audit, objects, groups, grants and policies catalogs accept a limit of 1–100 (default 25) and an optional cursor. A response contains items and, if another page exists, next_cursor. Supply that cursor unchanged to retrieve the next page. Cursors do not grant authority. Each page is independently authorized against current state.

Node and audit catalogs require a network operator. Group catalogs require scoped grant-management authority. Grant catalogs show managers the space records and ordinary actors only their own, group-targeted or issued grants. Object metadata browsing requires space visibility; fetching bytes still requires the current object grant and contract. Policies expose descriptors and obligations, never private keys.

Registered routes

MethodRouteHandler
GET/auth/loginstartLogin
GET/auth/callbackfinishLogin
POST/auth/logoutlogout
POST/v1/networks/{network}/spaces/{space}/groupscreateGroup
POST/v1/networks/{network}/spaces/{space}/groups/{group}/membersgroupMember
POST/v1/networks/{network}/spaces/{space}/grantscreateGrant
POST/v1/networks/{network}/spaces/{space}/grants/{grant}/revokerevokeGrant
POST/v1/networks/{network}/keysregisterSigningKey
POST/v1/networks/{network}/spaces/{space}/policiespublishPolicy
POST/v1/networks/{network}/nodes/{node}/directoryregisterNode
POST/v1/networks/{network}/spaces/{space}/objectsupload
GET/v1/networks/{network}/spaces/{space}/objects/{object}readObject
POST/v1/networks/{network}/spaces/{space}/objects/{object}/deletedeleteObject
POST/v1/networks/{network}/reconcilemaintenanceAPI
POST/v1/networks/{network}/node/renewrenew
POST/v1/networks/{network}/enrollments/{enrollment}/attestattestEnrollment
POST/v1/networks/{network}/node/attestrefreshAttestation
GET/v1/networks/{network}/statusstatus
POST/v1/networks/{network}/spaces/{space}/contextupdatePolicyContext
POST/v1/networks/{network}/spaces/{space}/policies/simulatesimulatePolicy
POST/v1/networks/{network}/spaces/{space}/automation/simulatesimulateAutomation
GET/v1/meme
GET/v1/networks/{network}/accessnetworkAccess
GET/v1/networks/{network}/nodeslistNodes
GET/v1/networks/{network}/auditlistAudit
GET/v1/networks/{network}/spaces/{space}/accessspaceAccess
GET/v1/networks/{network}/spaces/{space}/objectslistObjects
GET/v1/networks/{network}/spaces/{space}/groupslistGroups
GET/v1/networks/{network}/spaces/{space}/grantslistGrants
GET/v1/networks/{network}/spaces/{space}/policieslistPolicies
GET/v1/networksnetworks
GET/v1/networks/{network}/spacesspaces
POST/v1/networks/{network}/spacescreateSpace
GET/v1/networks/{network}/spaces/{space}getSpace
POST/v1/networks/{network}/enrollmentscreateEnrollment
POST/v1/networks/{network}/enrollments/{enrollment}/approveapproveEnrollment
POST/v1/networks/{network}/enrollments/{enrollment}/consumeconsumeEnrollment
POST/v1/networks/{network}/nodes/{node}/quarantinequarantine
GET/v1/networks/{network}/nodenode

Errors and authority

API errors contain a machine-readable error code. The response X-Request-ID is a correlation identifier; include it when troubleshooting, never session tokens or payloads. Expired objects deny reads before maintenance. Network operators can administer entitlements but do not implicitly bypass object-read grants or signed policy.

A 401 requires sign-in. A 403 indicates denied authority or request protection. A 409 indicates a conflicting mutation or revision. A 410 indicates expiry. A 503 may indicate unavailable authority, policy execution, key custody or verified replicas.

Built from burst/internal/control/server.go in the Burst Kit workspace. Check implementation status before deployment.

Search the documentation