GET /api/v1/admin/orgs/:slug/oidc-bindings
This page is auto-generated from
src/admin/routes.ts. Do not edit by hand — seedocs/dev/docs-auto-sync.md.
:warning: Heuristic extraction — not a contract. Response shapes below are mined from
c.json(...)literals in the handler via an AST walker. Computed fields, ternaries, and non-literal returns are shown as placeholders. Refer to the linked source file for the authoritative behaviour.
GET /api/v1/admin/orgs/:slug/oidc-bindings
Section titled “GET /api/v1/admin/orgs/:slug/oidc-bindings”Authentication
Section titled “Authentication”Requires the following capability(ies):
oidc:r
Middleware
Section titled “Middleware”Other middleware observed on this route (heuristic):
requireCapability
Description
Section titled “Description”--- #569 Phase A2 — OIDC trust-binding registry ----------------------------
Three endpoints back the allowlist of (issuer, sub, repository_id) triples the OIDC verifier consults on every request. See migration 0052 + the design comment on #569 for the strictness rules + origin-flag layering.
Capability split:
- oidc:r → LIST endpoint (members:r-shaped read access).
- oidc:w → CREATE / REVOKE.
Origin-flag layering enforcement: ON TOP of the capability check, the
create endpoint validates origin shape:
org_adminbindings can be created by any oidc:w-bearing principal.team_adminbindings can be created only when the caller’s role on the namedteam_idisadminAND the proposed (sub, repository_id) falls inside an activeorg_adminenvelope for the same tenant.platform_adminbindings are reserved for the platform-admin surface (#446 / #447). The customer-facing admin API refuses to create them; they land via a platform-admin path in a future PR. GET /api/v1/admin/orgs/:slug/oidc-bindings — list active + revoked bindings for this tenant. Read access only; no sensitive data is surfaced beyond the (issuer, sub, repository_id) tuple + the origin / added-by / revoked-by audit columns.
Responses
Section titled “Responses”HTTP 404
Section titled “HTTP 404”{ "error": "Org not found"}HTTP 200 (default)
Section titled “HTTP 200 (default)”{ "org": <slug>, "count": <member-expr>, "bindings": <rows>}Source
Section titled “Source”- File:
src/admin/routes.ts - Line: 6332