Admin API and control plane
Inspect and change the running configuration of Orca AI Gateway, with a Postgres-backed revision history.
The admin plane listens on 127.0.0.1:9099 by default and serves health probes, Prometheus metrics,
and the configuration API. What you can do through it depends on how the gateway was booted.
| Boot mode | Reads | Writes |
|---|---|---|
| File-backed | Yes | No - the file is the source of truth |
| Postgres-backed | Yes | Yes |
GET /admin/v1/config returns the entire active configuration. Keep the admin plane on loopback
or behind a network policy, and never route ingress to port 9099.
Inspecting a running gateway
orca-gateway admin config get
orca-gateway admin destinations list
orca-gateway admin routes list
orca-gateway admin plugins listEvery admin subcommand takes --gateway-url (default http://localhost:9099, or the
ORCA_GATEWAY_ADMIN_URL environment variable) and --actor, which is sent as an X-Orca-Actor
header on writes and recorded with the change. --actor defaults to $USER.
Validating against a running gateway
orca-gateway admin config validate --file ./config.yamlThis runs structural validation plus live checks such as whether referenced TLS, token, credential, and vault files exist and are readable. It does not authenticate every credential against its provider.
Writing configuration
With a Postgres control plane, resources can be changed individually:
orca-gateway admin destinations put openai-primary --file ./openai.yaml
orca-gateway admin routes put chat --file ./chat-route.yaml
orca-gateway admin rate-limits put prod --file ./prod-limits.yaml --position 0
orca-gateway admin vaults put openai_key --file ./vault.yaml
orca-gateway admin destinations delete stale-providerPlugin writes additionally name the family slot they belong to:
orca-gateway admin plugins put pii --family guardrails --file ./pii.yamlValid families are guardrails, audit_sinks, usage_sinks, trace_exporters, signers,
authorizers, rate_limiter, and cache.
To load a whole config at once - which is the usual first step when migrating a file-based deployment onto the control plane:
orca-gateway admin import-yaml ./config.yamlThis reads the file and issues a write for every resource it contains, then reports a summary.
How revisions work
The control plane stores configuration as revisions in a config_revisions table, with a partial
unique index guaranteeing exactly one active revision at any time. Each write inserts a new row and
promotes it.
Admin writes do not rebuild the running AppState. The current CLI loads the active revision at
startup but does not subscribe the data plane to the config-store change stream. Restart or roll
the gateway after a write.
Rolling back means promoting an earlier revision, in a single transaction:
BEGIN;
UPDATE config_revisions SET active = FALSE WHERE active;
UPDATE config_revisions SET active = TRUE WHERE id = <previous_id>;
COMMIT;There is no orca-gateway admin config rollback command. Roll back with the SQL transaction above,
or by re-importing the previous config with import-yaml.
HTTP endpoints
If you would rather call the API directly than use the CLI, see the
HTTP API reference. Resource writes use PUT and DELETE; POST
is reserved for config/validate.