> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Operar Lerian CCS

> Sondas de readiness, configuración en tiempo de ejecución, credenciales y claves, almacenamiento y retención, respuestas en espera, y la postura de producción de Lerian CCS.

Lerian CCS lleva una obligación regulatoria diaria, así que una instancia no lista es un evento operativo.

## Salud y readiness

***

`GET /health` responde liveness. `GET /readyz` ejecuta cada sonda de dependencia y responde un solo estado.

| Comprobación          | Qué verifica                                 | Cuándo falla                                                             |
| --------------------- | -------------------------------------------- | ------------------------------------------------------------------------ |
| `postgres`            | La base de datos primaria.                   | No responde.                                                             |
| `redis`               | La instancia de Redis o Valkey.              | No responde.                                                             |
| `rabbitmq`            | El broker de mensajes.                       | No responde.                                                             |
| `sta_http_client`     | El endpoint de Lerian STA.                   | No responde. Informa `skipped` mientras la integración está desactivada. |
| `reporter`            | El endpoint de Lerian Reporter.              | El Reporter es inalcanzable. Siempre activo.                             |
| `storage_sta`         | El bucket de almacenamiento de entrada.      | Es inalcanzable. Informa `skipped` mientras el bucket no está definido.  |
| `storage_ccs`         | El bucket de almacenamiento de salida.       | Es inalcanzable. Informa `skipped` mientras el bucket no está definido.  |
| `movement_window`     | La ventana de transmisión vigente.           | Nunca. Informa la postura vigente.                                       |
| `tenant_postgres`     | Las bases de datos de las instituciones.     | Una no responde. Solo multi-tenant.                                      |
| `tenant_pubsub_redis` | El canal de notificación de ciclo de vida.   | Es inalcanzable. Solo multi-tenant.                                      |
| `tenant_rabbitmq`     | La conexión al broker por institución.       | Una está caída. Despliegues multi-tenant con el broker habilitado.       |
| `tenant_consumer`     | Los consumidores de entrada por institución. | Uno está degradado. Solo multi-tenant.                                   |
| `st_consumer`         | El consumidor de institución única.          | Nunca. Informa el conteo de consumidores.                                |

`GET /readyz/tenant/{id}` responde el mismo detalle para una institución. `READYZ_PROBE_TIMEOUT_SEC` limita cada sonda a 5 segundos. `READYZ_DEP_SLOW_THRESHOLD_MS` marca una dependencia lenta a los 500 milisegundos.

Un Reporter inalcanzable retira la instancia de servicio. Inicia primero el Reporter.

## Configuración en tiempo de ejecución

***

Un pequeño conjunto de perillas cambia sin un reinicio. Configura `SYSTEMPLANE_ENABLED=true` para montar el plano de tiempo de ejecución.

| Grupo                | Claves                                                                                           |
| -------------------- | ------------------------------------------------------------------------------------------------ |
| Límites de tasa HTTP | El máximo y la ventana de los niveles de límite default, aggressive, relaxed, export y dispatch. |
| Registro             | `level`, el nivel de log.                                                                        |

Cada grupo es un espacio de nombres bajo el prefijo de configuración de este servicio.

Lee un espacio de nombres con `GET /system/{namespace}` y una clave con `GET /system/{namespace}/{key}`. Escribe una clave con `PUT /system/{namespace}/{key}`. Solo un administrador de la plataforma puede llamar a estas rutas.

Todo lo demás proviene del entorno y necesita un reinicio: cadenas de conexión, pools, material TLS, listeners, y la puerta de autenticación. Consulta [Systemplane](/es/reference/platform/systemplane/overview) para el contrato del plano de tiempo de ejecución.

## Credenciales y claves

***

Configura `PLUGIN_AUTH_ENABLED=true` y `PLUGIN_AUTH_HOST` para activar la puerta de la API. El mismo par impulsa la autenticación saliente.

Cada upstream lleva su propia credencial. Lerian STA usa `STA_CLIENT_ID` y `STA_CLIENT_SECRET`. Lerian Reporter usa `REPORTER_CLIENT_ID` y `REPORTER_CLIENT_SECRET`. No hay credencial compartida ni alternativa.

Con la puerta activa, un par faltante detiene el arranque y nombra la variable exacta. Lerian CCS genera cada token mediante OAuth2 client credentials y lo almacena en caché durante `M2M_CREDENTIAL_CACHE_TTL_SEC` segundos, 300 por defecto. Los despliegues multi-institución leen en cambio las credenciales por institución desde AWS Secrets Manager.

`CCS_CRYPTO_MASTER_KEY` contiene la clave maestra AES-256-GCM para los datos cifrados en reposo. Toma 64 caracteres hexadecimales. Un valor vacío detiene el arranque.

Lerian CCS puede verificar una firma en cada evento entrante de Lerian STA. Configura `STA_EVENT_HMAC_VERIFY_ENABLED=true`, carga el catálogo de claves en `STA_EVENT_HMAC_MASTER_KEYS`, y nombra la versión activa en `STA_EVENT_HMAC_MASTER_KEY_VERSION`. Carga primero el catálogo. `STA_EVENT_HMAC_TOLERANCE_SECONDS` limita el desfase de reloj a 300 segundos.

## Almacenamiento, outbox y retención

***

Dos buckets de almacenamiento de objetos contienen el XML regulatorio: `OBJECT_STORAGE_STA_BUCKET` de entrada y `OBJECT_STORAGE_CCS_BUCKET` de salida. Solo las referencias de archivo viajan por la red.

El trabajo de salida sale a través de una tabla outbox transaccional. El despachador la lee cada `OUTBOX_DISPATCH_INTERVAL_SEC` segundos, 2 por defecto, en lotes de `OUTBOX_BATCH_SIZE`, 50 por defecto, y abandona un evento después de `OUTBOX_MAX_DISPATCH_ATTEMPTS` intentos, 10 por defecto. Configura `CCS_OUTBOX_OVERRIDES_ENABLED=true` para mover el despachador al intervalo, tamaño de lote y presupuesto de intentos de `CCS_OUTBOX_*`. Un mensaje que agota su presupuesto de intentos pasa a la cola dead-letter bajo `CCS_OUTBOX_DLQ_ROUTING_KEY`, y esa clave se aplica en ambos casos.

`CCS_OUTBOUND_RETENTION_DAYS` y `CCS_ACCS009_RETENTION_DAYS` tienen ambos un valor por defecto de 30 días. Un monitor busca una remesa faltante cada `CCS_NON_SUBMISSION_SCAN_INTERVAL_SEC` segundos, 3600 por defecto.

El servicio nunca aplica su propio esquema de base de datos. Un job de migración separado lo aplica antes del arranque.

## Respuestas de STA en espera

***

Un archivo de entrada que Lerian CCS no puede aplicar queda en espera en una cola dead-letter con su payload intacto. Una espera mantiene una pendencia abierta. El archivo en espera suele ser la única copia de un hecho de BACEN, así que necesita una alerta y una decisión humana.

`POST /v1/batches/{id}/drain-parked-response` aplica un ACCS003 tardío a un lote que ya alcanzó un estado terminal. Quien llama solo aporta identificadores. Lerian CCS vuelve a obtener el archivo, vuelve a derivar los veredictos, y rechaza cuando el lote nombrado no coincide. Escribe una entrada de auditoría en la misma transacción.

No liberes la respuesta en espera cuando dos lotes coinciden con un archivo, o cuando la correlación se contradice. Establece primero qué lote produjo el archivo. Trata el desacuerdo como el hallazgo.

## Métricas y trazas

***

`GET /metrics` sirve las métricas de readiness en formato de texto Prometheus. Configura `ENABLE_TELEMETRY=true` para exportar trazas y métricas por OTLP a `OTEL_EXPORTER_OTLP_ENDPOINT`. Consulta [Observabilidad](/es/platform/observability) para la vista de la plataforma.

## Postura de despliegue

***

`DEPLOYMENT_MODE` toma `local`, `byoc`, `saas` u `onprem`. En `saas`, el servicio exige TLS en cada dependencia. `CCS_RUN_MODE` toma `manager`, `worker` o `all`, y selecciona qué subsistemas se ejecutan.

Producción agrega estos requisitos.

* `PLUGIN_AUTH_ENABLED=true` con `PLUGIN_AUTH_HOST`.
* `LICENSE_KEY` y `ORGANIZATION_IDS`.
* `CIRCUIT_BREAKER_ENABLED=true`, que necesita la integración con Reporter.
* `REPORTER_URL` y `CCS_CRYPTO_MASTER_KEY`, ambos siempre obligatorios.

La validación de arranque comprueba la puerta, la licencia, la postura TLS, y las claves. Una comprobación fallida detiene el arranque.
