Skip to content

Introspection Commands Endpoint

The commands introspection endpoint returns metadata for discovered command handlers, not the final runtime route table.

GET /.cratis/commands

Normal Arc activation maps this endpoint anonymously in Development and requires authentication elsewhere by default. A host that cannot authenticate leaves it unmapped and logs a warning. Returned metadata is not filtered by the caller’s command permissions. See production access controls.

The endpoint returns a JSON array where each item describes one discovered command handler.

Each item includes:

  • name: Command type name.
  • namespace: Namespace derived from the handler’s location after skipping the default namespace segments.
  • route: Explicit [Path] if the command declares one; otherwise the convention-derived command route using the default prefix and namespace segments (see the note below).
  • type: Fully qualified command type name.
  • documentationSummary: Summary text from type metadata when available.
  • payloadSchema: JSON Schema describing the command payload contract (fields/properties and types).

Introspection does not mirror all final endpoint replacement decisions. It also derives namespace and route from the default route options, not from Cratis:Arc:GeneratedApis (ArcOptions.GeneratedApis), which is what the endpoint mapper uses. If you change the route prefix, segments to skip, or name inclusion there, the reported routes can differ from the callable ones. Use it to inspect discovered-operation metadata, not as an authoritative inventory of callable URLs.

  • Generate dynamic command catalogs in internal tooling.
  • Verify command route conventions in development environments.
  • Support diagnostics for endpoint mapping and registration.