Skip to content

Route table

Every method and path the broker registers, with its access level and whether it resolves a tenant, all read out of the router at build time.

Updated View as Markdown

This is the complete surface of the broker binary, on its own page so it is linkable and searchable. It is not maintained by hand: the generator walks the Router::new() chain in server/src/main.rs, resolves each route’s required access level through route_access_level in server/src/auth.rs, and records whether the handler resolves a tenant. A route that does not exist in the code cannot appear here, and one that is added appears without anyone editing this page.

How to read the columns:

  • Access level: the role set that satisfies the route. The levels are not a ladder; write-only and read-only are disjoint capabilities. The conventions page has the matrix, and the levels apply only when JWT_ENABLED is on.
  • Tenant-scoped: whether the handler resolves a tenant identity and threads it into queue resolution. With native tenant scoping off (the default) every request resolves to one default tenant, and this column tells you which handlers would participate if it were on. Routes marked no are cell-wide reads or operator surfaces; that matters for multi-tenant deployments, covered in Self-hosting.
  • Internal (broker-to-broker) routes are not a client API. They exist so brokers sharing a database can notify each other, and they require admin.
  • Dashboard identity (broker-direct) is the small /auth surface the broker answers when it serves the dashboard itself. The routes are public by design; /auth/me enforces the auth state in its own handler. The dashboard page explains the standalone identity it returns.

The five message-plane routes have a page each documenting their request and response fields: push, pop, ack, transaction and lease extension. The remaining groups are documented on the other pages of this section.

Queen’s broker registers 63 method + path pairs. Every row below is read out of the router and the authorization table at build time.

Message plane

Method Path Access level Tenant-scoped
POST /api/v1/ack read-write yes
POST /api/v1/ack/batch read-write yes
POST /api/v1/lease/:leaseId/extend read-write yes
GET /api/v1/pop read-write yes
GET /api/v1/pop/queue/:queue read-write yes
GET /api/v1/pop/queue/:queue/partition/:partition read-write yes
POST /api/v1/push write-only yes
POST /api/v1/transaction read-write yes

Queues and partitions

Method Path Access level Tenant-scoped
POST /api/v1/configure read-write yes
GET /api/v1/resources/namespaces read-only yes
GET /api/v1/resources/overview read-only yes
GET /api/v1/resources/queues read-only yes
DELETE /api/v1/resources/queues/:queue admin yes
GET /api/v1/resources/queues/:queue read-only yes
GET /api/v1/resources/tasks read-only yes

Consumer groups

Method Path Access level Tenant-scoped
GET /api/v1/consumer-groups read-only yes
DELETE /api/v1/consumer-groups/:group admin yes
GET /api/v1/consumer-groups/:group read-only yes
DELETE /api/v1/consumer-groups/:group/queues/:queue admin yes
POST /api/v1/consumer-groups/:group/queues/:queue/partitions/:partition/seek read-write yes
POST /api/v1/consumer-groups/:group/queues/:queue/seek read-write yes
POST /api/v1/consumer-groups/:group/subscription read-write yes
GET /api/v1/consumer-groups/lagging read-only yes

Messages, DLQ and traces

Method Path Access level Tenant-scoped
GET /api/v1/dlq read-only yes
GET /api/v1/messages read-only yes
DELETE /api/v1/messages/:partitionId/:transactionId read-write yes
GET /api/v1/messages/:partitionId/:transactionId read-only yes
POST /api/v1/messages/:partitionId/:transactionId/retry read-write yes
POST /api/v1/traces read-write yes
GET /api/v1/traces/:partitionId/:transactionId read-only yes
GET /api/v1/traces/by-name/:traceName read-only yes
GET /api/v1/traces/names read-only yes

Status, metrics and analytics

Method Path Access level Tenant-scoped
GET /api/v1/analytics/postgres-stats read-only no
GET /api/v1/analytics/queue-lag read-only yes
GET /api/v1/analytics/queue-ops read-only yes
GET /api/v1/analytics/queue-parked-replicas read-only yes
GET /api/v1/analytics/retention read-only yes
GET /api/v1/analytics/system-metrics read-only no
GET /api/v1/analytics/worker-metrics read-only no
POST /api/v1/stats/refresh admin no
GET /api/v1/status read-only no
GET /api/v1/status/analytics read-only yes
GET /api/v1/status/buffers read-only no
GET /api/v1/status/queues read-only yes
GET /api/v1/status/queues/:queue read-only yes
GET /health public no
GET /metrics public no
GET /metrics/prometheus public no
GET /status read-only no

Streams

Method Path Access level Tenant-scoped
POST /streams/v1/cycle read-write no
POST /streams/v1/queries read-write no
POST /streams/v1/state/get read-only no

Operator surfaces

Method Path Access level Tenant-scoped
GET /api/v1/system/maintenance admin no
POST /api/v1/system/maintenance admin no
GET /api/v1/system/maintenance/pop admin no
POST /api/v1/system/maintenance/pop admin no
GET /api/v1/system/shared-state admin no

Dashboard identity (broker-direct)

Method Path Access level Tenant-scoped
GET /auth/login public no
POST /auth/logout public no
GET /auth/me public no

Internal (broker-to-broker)

Method Path Access level Tenant-scoped
GET /internal/api/inter-instance/stats admin no
POST /internal/api/notify admin yes
GET /internal/api/shared-state/stats admin no

40 of these handlers resolve a tenant from the request; 11 /api/v1/* routes do not and are therefore cell-wide reads or operator surfaces.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close