Relationship capability catalogue

Discover the service's current permission definitions when constructing an integration or a capability-selection interface. Definitions describe actions and profiles; they do not authenticate a caller, enroll it or grant project access.

Route Authentication Request Success
GET /v1/capabilities.json None No request fields Raw JSON catalogue, without the protected-operation response envelope.
curl --fail-with-body --silent --show-error \
  'https://api.relationship.service.m7.org/v1/capabilities.json'

The document includes integer catalogue_version, families, primitive capabilities, presets and role_defaults. A primitive names its id, family and operation (read or write). Presets provide exact capability expansions with an expansion_version; role mappings identify a preset and its expansion revision or null. Additional metadata may describe definitions. Catalogue versions identify coherent snapshots; fetch the current catalogue rather than hardcoding an inventory from an example.

Explicit profile selections replace role fallback. Unknown selections grant nothing, and an explicit nonempty unknown profile does not fall back to a more permissive role. Use the selected primitive set as input to your own permission logic. Relationship itself still checks current admission, project membership, capabilities, role and workspace boundaries.

The response uses Cache-Control: no-store. If the catalogue cannot be loaded or validated, discovery returns HTTP 503 and a failure envelope with status: 0 and data.code: 503. Treat it as unavailable rather than as an empty grant list. See the common response rules.