Skip to content

ADR-009: API and client compatibility

  • Status: accepted

Context

The bundled UI, curl, examples, and operator scripts consume the same HTTP and WebSocket implementation. Separate browser or SDK response formats would multiply compatibility paths that the project does not maintain.

Decision

Publish one unversioned API for the current 0.x line. The browser UI, curl, and other clients use the same routes, request shapes, success objects, and four-field error envelope.

Clients discover active core methods from PING.supported_methods, treat method lists as sets, and ignore unknown additive response fields. Human error messages, JSON key order, generated IDs, and exact metric names are not client branching contracts.

Document complete curl journeys for Basic operations and Advanced Session create, use, inspect, and revoke. There is no official SDK and no global idempotency key.

Consequences

  • API examples can be exercised directly with curl.
  • UI-only endpoints and compatibility parsers are not required.
  • Mutating clients must use stable resource identifiers where supported and confirm state after an unknown outcome.