API Endpoints

The Go control plane serves two categories of routes: admin API routes at /v1/admin/* for management operations, and client/device routes at /v1/* for enrollment, policy, trust, and gateway operations.

The admin web interface is served at /admin/* with HTML pages.

Note: Request and response schemas shown below are representative. Consult the control plane source code for exact field names and types.

Health Check

GET /healthz

Unauthenticated liveness probe.

Response (200):

{"status": "ok"}

GET /readyz

Unauthenticated readiness probe (verifies database connectivity).

Response (200):

{"status": "ready"}

Admin API: User Management

/v1/admin/users

  • GET: List all users for the authenticated tenant
  • POST (via /v1/admin/users/lifecycle): Create, update, or delete users

/v1/admin/users/lifecycle

Mutating user operations (create, suspend, reactivate, delete) are handled through the lifecycle endpoint.

/v1/admin/users/password

Set or reset a user's password.

/v1/admin/users/suspend

Suspend a user account. Terminates all active sessions.

/v1/admin/users/reactivate

Reactivate a suspended user account.

/v1/admin/users/totp/enroll

Start TOTP MFA enrollment for a user. Returns a provisioning URI for authenticator apps.

/v1/admin/users/totp/verify

Verify a TOTP code to complete MFA enrollment.

/v1/admin/users/totp/disable

Disable MFA for a user (admin action, audit-logged).


Admin API: Group Management

/v1/admin/groups

  • GET: List groups
  • POST (via /v1/admin/groups/lifecycle): Create, update, or delete groups

Admin API: Device Management

/v1/admin/devices

  • GET: List enrolled devices with filtering

/v1/admin/devices/lifecycle

Mutating device operations (suspend, revoke).

POST /v1/admin/devices/batch

Batch operations on multiple devices (e.g., bulk revoke).


Admin API: RBAC

POST /v1/admin/rbac/grant

Grant a role to a user.

POST /v1/admin/rbac/revoke

Revoke a role from a user.


Admin API: Sessions

/v1/admin/sessions

List active VPN sessions with device, user, gateway, and connection metadata.


Admin API: Enrollment Tokens

POST /v1/admin/tokens/generate

Generate an enrollment token for device enrollment.

GET /v1/admin/tokens

List tokens with filtering by status and tenant.

GET /v1/admin/tokens/{token_id}

Get details of a specific token.

POST /v1/admin/tokens/{token_id}/revoke

Revoke a token. Revoked tokens cannot be used for enrollment.


Admin API: Policy

POST /v1/admin/policy/publish

Publish a policy bundle to the specified channel (canary or stable).


Admin API: Settings

/v1/admin/settings/providers

Manage identity provider configurations (OIDC, SAML, Keycloak, Azure Entra ID, Okta).

/v1/admin/settings/signers

Manage signing key configurations.

/v1/admin/settings/gateway-pools

Manage gateway pool configurations.


Admin API: Tenants and Entitlements

GET /v1/admin/tenants

List tenants.

POST /v1/admin/tenants/lifecycle

Mutating tenant operations.

GET /v1/admin/tenants/{tenant_id}/entitlement

Get resolved entitlement for a tenant.

GET /v1/admin/tenants/{tenant_id}/entitlement/status

Get entitlement enforcement status.

GET /v1/admin/tenants/{tenant_id}/alerts

Get entitlement alerts (approaching limits, overages).

GET /v1/admin/tenants/{tenant_id}/usage

Get metered usage for a tenant.


Admin API: License

POST /v1/admin/license/reload

Reload the license from disk.

GET /v1/admin/license/status

Get current license status and details.


Admin API: Audit

GET /v1/admin/audit/export

Export audit logs as CSV or JSON.

GET /v1/admin/audit/connectors/schema

Get the schema for audit event connectors (SIEM integration).


Admin API: Operations

GET /v1/admin/gateway/health

Get gateway fleet health status.

GET /v1/admin/certs/expiry

Check certificate expiry dates.

/v1/admin/ops/export

Export operational data.

POST /v1/admin/workflows/run

Execute an operational workflow.

GET /v1/admin/dashboard/overview

Get dashboard overview metrics.

GET /v1/admin/compliance/retention

Get data retention policy status.

GET /v1/admin/connection_truth

Get connection truth data for monitoring.


Admin API: API Keys

POST /v1/admin/api-keys

Generate a new API key for machine-to-machine authentication.

GET /v1/admin/api-keys

List existing API keys.


Admin API: Directory Sync

POST /v1/admin/directory-sync/snapshot

Ingest a directory snapshot from an external provider.

GET /v1/admin/directory-sync/status

Get directory sync status.

POST /v1/admin/directory-sync/keycloak/run

Trigger a Keycloak directory sync.


Admin API: SIEM

/v1/admin/siem/connector

Manage SIEM connector configuration for audit event forwarding.


Admin API: Incident Response

/v1/admin/incident/playbook

Get or execute incident response playbooks.


Client / Device API

POST /v1/enroll

Enroll a new device using an enrollment token.

POST /v1/enroll/oidc

Enroll a device using OIDC authentication.

POST /v1/enroll/saml

Enroll a device using SAML authentication.

GET /v1/mobile/auth/oidc/providers

List available OIDC providers for mobile client enrollment.


Trust and Policy Routes

GET /v1/trust/anchors

Fetch the current trust anchor set.

POST /v1/trust/anchors/rotate

Rotate trust anchors (admin operation).

GET /v1/policy/bundle

Fetch the current policy bundle for the authenticated device.

GET /v1/policy/digest

Fetch the current policy digest (for lightweight change detection).


SPC (Security Policy Certificate) Routes

POST /v1/spc/issue

Issue a new SPC.

GET /v1/spc/bundle

Fetch the current SPC bundle.

POST /v1/spc/rotate

Rotate SPC keys.

POST /v1/spc/revoke

Revoke an SPC.

GET /v1/spc/validate

Validate an SPC.


Gateway Runtime Routes

GET /v1/gateway/runtime/trust-anchors

Gateway fetches its trust anchor configuration.

GET /v1/gateway/runtime/policy-bundle

Gateway fetches the current policy bundle.

GET /v1/gateway/runtime/deployment-config

Gateway fetches its deployment configuration.

GET /v1/gateway/runtime/spc-bundle

Gateway fetches the SPC bundle.

GET /v1/gateway/runtime/auth-material-manifest

Gateway fetches authentication material manifest.

GET /v1/gateway/runtime/client-admission-grant

Gateway checks client admission grants.

GET /v1/gateway/pools

Fetch gateway pool directory (used by clients for gateway selection).


Metering

/v1/gateway/metering

Gateway reports metering data (bandwidth, session counts).


Posture, Update, and Telemetry

POST /v1/posture/assertion

Submit a device posture assertion.

GET /v1/update/manifest

Fetch the update manifest (client version, available updates).

GET /v1/update/package

Download an update package.

POST /v1/audit/ingest

Ingest audit events from gateways.

GET /v1/audit/events

Query audit events.

GET /v1/audit/export/syslog

Export audit events in syslog format.

GET /v1/audit/export/webhook

Export audit events to a webhook endpoint.

POST /v1/telemetry/session

Ingest session telemetry data.


Error Response Format

All error responses follow a consistent structure:

{
  "error": "error_code",
  "detail": "Human-readable description"
}
HTTP Code Error Code Description
400 bad_request Malformed request body or parameters
401 unauthorized Missing or invalid authentication
403 forbidden Insufficient permissions
404 not_found Resource does not exist
409 entitlement_exceeded Plan limit reached
422 validation_error Request validation failed
429 rate_limited Too many requests
500 internal_error Unexpected server error