Saltar al contenido principal
Lerian CCS expone una API REST bajo /v1. Cada ruta de negocio requiere un token bearer.

Superficie de la API


Los endpoints de operador están fuera de /v1.

Autenticación y tenencia


Cada ruta /v1 toma un token bearer de OAuth2 de Lerian Access Manager. Con PLUGIN_AUTH_ENABLED=true y PLUGIN_AUTH_HOST, Lerian Access Manager autoriza cada solicitud. Solo un ENV_NAME de desarrollo fuera de saas acepta false. Cada institución mantiene su propio esquema de base de datos.

Idempotencia


Lerian CCS acepta un header X-Idempotency opcional en la mayoría de las rutas que cambian estado. Un middleware almacena en caché la primera respuesta y la repite ante una repetición de la misma clave. Una repetición con otro cuerpo responde 422, y una repetición mientras la primera solicitud se ejecuta responde 409. Las claves pertenecen a una institución, y la retención predeterminada es de 7 días.

Errores


Un error de negocio responde con un documento de problema RFC 9457, con el tipo de medio application/problem+json y un código de producto. Los valores de código son un contrato congelado, así que un cliente compara con el código, no con el texto del mensaje.

Eventos


Lerian CCS publica un evento de negocio en su propio tema, con un tema dead-letter correspondiente. El tema y el tipo de evento siguen la regla de nomenclatura de Streaming Hub, con el source de CloudEvents de este servicio como espacio de nombres. Lleva la postura de entrega crítica. El servicio lo escribe en el outbox transaccional en la misma transacción que el cambio de estado. El streaming está desactivado por defecto. Mientras está desactivado, el servicio conecta un emisor sin operación y no publica nada. Lerian Streaming Hub es la capa de entrega. Con RABBITMQ_ENABLED=true, Lerian CCS también publica notificaciones en el exchange nombrado por RABBITMQ_EXCHANGE. Los documentos en esos payloads están enmascarados.

Convenciones de integración


  • Headers. Mientras CORS_ALLOWED_HEADERS permanezca sin definir, aplica una lista fija por defecto, y esa lista no incluye X-Idempotency. Un valor que configures reemplaza esa lista, así que nombra cada header que envíe tu cliente de navegador.
  • Paginación. Cada ruta de listado limita su propio tamaño de página. Un tamaño de página de 100 o menos se mantiene dentro del límite de cada ruta.
  • Límites de tasa. El limitador cubre solo /v1. Las solicitudes que cambian estado y las lecturas pesadas, como las consultas de auditoría, llevan niveles más estrictos.
  • Referencias de archivo. El XML regulatorio permanece en almacenamiento de objetos. La API y los mensajes del broker solo llevan referencias de archivo.
Cómo funciona Lerian CCS cubre estos flujos.