Skip to main content

List Roles

Returns your tenant’s permission roles. This is the endpoint that makes role_ids usable from code: a Terraform module or a provisioning script cannot hard-code a per-tenant UUID, and before this existed the only way to find one was to open the admin UI and copy it out of the URL bar. Read-only, permanently. Creating, editing and deleting roles stays on the MFA-gated admin surface (Settings → Permissions). There is no POST, PATCH or DELETE on /v1/roles. Requires the role:list permission, which all four seeded machine roles carry.

Query Parameters

Response

The rules a role grants are deliberately not returned. Enumerating them would hand every machine credential in the tenant a map of your authorization surface. To see what a role grants, open it in the admin UI.

The seeded machine roles

Key — Infrastructure deliberately excludes, and explicitly denies:
  • secret:reveal — a provisioning credential never needs the plaintext of a secret it created. KnoxCall holds the plaintext; that is the product.
  • secret:custody_enable / custody_disable / custody_rotate — custody transitions decrypt the current administrative credential server-side.
  • workload_binding:create / delete — a binding is a permanent route to a live credential for anyone presenting a matching JWT.
  • ephemeral_proxy:invoke — one-shot runtime invocation against live credentials. It is not infrastructure state, and no Terraform resource models it.
None of those four can be reached by a wildcard rule either: they require an exact (resource_type, action) allow, so a legacy *:* key does not silently hold them.

Examples

Errors