Skip to content
GET /registry/overview

The full routing table: live workers, hostname and env bindings, and for each (hostname, env, namespace) the sessions serving it and the ids placed there. Placements are read with a full scan of every bucket; on a large fleet, filter.

Authentication

pinboard:operator scope. Filtered by the claim like List workers; bindings and namespaces outside it are dropped.

Query parameters

All optional; combined with AND.

NameTypeDescription
nsstringExact namespace, URL-encoded (%2Fthreads). Drops other namespaces.
prefixstringKeep entries whose id starts with this.
tagstringKeep entries with exactly this tag. Untagged entries are dropped. Must not be empty.

Example

curl "https://pinboard.example.com/registry/overview?ns=%2Fthreads&tag=ws%3Aacme" \
  -H "Authorization: Bearer $PINBOARD_OPERATOR_TOKEN"

Response

200

FieldTypeDescription
workersobject[]Same as List workers. Not affected by the query.
bindings.hostnamesobject{"{hostname}{namespace}": env}. Single-hostname mode: {"*/threads": "*"}.
bindings.envsobject{env: takeover}.
namespacesobject[]One per (hostname, namespace) with a registered worker, sorted.
namespaces[].hostnamestring
namespaces[].envstring
namespaces[].namespacestring
namespaces[].sessionIdsstring[]Live sessions serving it, sorted.
namespaces[].entriesobject[]Placements in the (env, namespace) owned by a live session, sorted by id.
namespaces[].entries[].idstringInstance id.
namespaces[].entries[].sessionIdstringOwner.
namespaces[].entries[].expiryintegerPresent when a wind-down is pending: when the row frees, Unix ms.
namespaces[].entries[].tagstringPresent when tagged.

Two hostnames bound to the same env list the same entries.

{
  "workers": [ { "sessionId": "3f9c0d6e2b1a4c7d8e9f0a1b2c3d4e5f", "...": "..." } ],
  "bindings": {
    "hostnames": { "*/threads": "*" },
    "envs": { "*": "wind_down" }
  },
  "namespaces": [
    {
      "hostname": "*",
      "env": "*",
      "namespace": "/threads",
      "sessionIds": ["3f9c0d6e2b1a4c7d8e9f0a1b2c3d4e5f"],
      "entries": [
        { "id": "t_8f2a", "sessionId": "3f9c0d6e2b1a4c7d8e9f0a1b2c3d4e5f", "tag": "ws:acme" }
      ]
    }
  ]
}

Errors

StatusBodyWhen
400{"error":"invalid namespace"}ns is not / plus one segment
400{"error":"empty tag"}tag= with no value
401{"error":"unauthorized"}No accepted credential
403{"error":"forbidden"}No pinboard:operator scope, or malformed claim
503{"error":"not the serving fleet"}Node not serving. Retry-After: 1.
404{"error":"not found"}Method other than GET