Skip to main content
Lerian CCS exposes one REST API under /v1. Every business route needs a bearer token.

API surface


Operator endpoints sit outside /v1.

Authentication and tenancy


Every /v1 route takes an OAuth2 bearer token from Lerian Access Manager. With PLUGIN_AUTH_ENABLED=true and PLUGIN_AUTH_HOST, Lerian Access Manager authorizes each request. Only a development ENV_NAME outside saas accepts false. Each institution keeps its own database schema.

Idempotency


Lerian CCS accepts an optional X-Idempotency header on most mutating routes. A middleware caches the first response and replays it for a repeat of the same key. A repeat with a different body answers 422, and a repeat while the first request runs answers 409. Keys belong to one institution, and the default retention is 7 days.

Errors


A business error answers an RFC 9457 problem document, with the media type application/problem+json and a product code. The code values are frozen contract, so a client matches on the code, not the message text.

Events


Lerian CCS publishes one business event on its own topic, with a matching dead-letter topic. The topic and the event type follow the Streaming Hub naming rule, with this service’s CloudEvents source as the namespace. It carries the critical delivery posture. The service writes it to the transactional outbox in the same transaction as the state change. Streaming is off by default. While it is off, the service wires a no-operation emitter and publishes nothing. Lerian Streaming Hub is the delivery layer. With RABBITMQ_ENABLED=true, Lerian CCS also publishes notifications on the exchange named by RABBITMQ_EXCHANGE. Documents in those payloads are masked.

Integration conventions


  • Headers. While CORS_ALLOWED_HEADERS stays unset, a fixed default list applies, and it does not include X-Idempotency. A value you set replaces that list, so name every header your browser client sends.
  • Pagination. Each list route caps its own page size. A page size of 100 or less stays within every route’s cap.
  • Rate limits. The limiter covers /v1 only. Mutating requests and heavy reads such as audit queries carry tighter tiers.
  • File references. The regulatory XML stays in object storage. The API and the broker messages carry file references only.
How Lerian CCS works covers these flows.