> ## 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.

# Operando o Lerian CCS

> Probes de readiness, configuração em tempo de execução, credenciais e chaves, armazenamento e retenção, respostas estacionadas e a postura de produção do Lerian CCS.

O Lerian CCS carrega uma obrigação regulatória diária, então uma instância não pronta é um evento operacional.

## Saúde e readiness

***

`GET /health` reporta liveness. `GET /readyz` executa a probe de cada dependência e reporta um status único.

| Verificação           | O que ela verifica                          | Quando falha                                                             |
| --------------------- | ------------------------------------------- | ------------------------------------------------------------------------ |
| `postgres`            | O banco de dados principal.                 | Não responde.                                                            |
| `redis`               | A instância Redis ou Valkey.                | Não responde.                                                            |
| `rabbitmq`            | O message broker.                           | Não responde.                                                            |
| `sta_http_client`     | O endpoint do Lerian STA.                   | Não responde. Reporta `skipped` enquanto a integração está desativada.   |
| `reporter`            | O endpoint do Lerian Reporter.              | O Reporter está inacessível. Sempre ativo.                               |
| `storage_sta`         | O bucket de armazenamento de entrada.       | Está inacessível. Reporta `skipped` enquanto o bucket não está definido. |
| `storage_ccs`         | O bucket de armazenamento de saída.         | Está inacessível. Reporta `skipped` enquanto o bucket não está definido. |
| `movement_window`     | A janela de transmissão efetiva.            | Nunca. Reporta a postura em vigor.                                       |
| `tenant_postgres`     | Os bancos de dados das instituições.        | Um deles não responde. Apenas multi-tenant.                              |
| `tenant_pubsub_redis` | O canal de notificação de ciclo de vida.    | Está inacessível. Apenas multi-tenant.                                   |
| `tenant_rabbitmq`     | A conexão com o broker por instituição.     | Uma delas está fora do ar. Deploys multi-tenant com o broker habilitado. |
| `tenant_consumer`     | Os consumidores de entrada por instituição. | Um deles está degradado. Apenas multi-tenant.                            |
| `st_consumer`         | O consumidor de instituição única.          | Nunca. Reporta a contagem de consumidores.                               |

`GET /readyz/tenant/{id}` reporta o mesmo detalhe para uma instituição. `READYZ_PROBE_TIMEOUT_SEC` limita cada probe a 5 segundos. `READYZ_DEP_SLOW_THRESHOLD_MS` marca uma dependência lenta em 500 milissegundos.

Um Reporter inacessível remove a instância de serviço. Comece o Reporter primeiro.

## Configuração em tempo de execução

***

Um pequeno conjunto de parâmetros muda sem reinício. Defina `SYSTEMPLANE_ENABLED=true` para montar o runtime plane.

| Grupo            | Chaves                                                                                             |
| ---------------- | -------------------------------------------------------------------------------------------------- |
| HTTP rate limits | O máximo e a janela dos níveis de limite padrão, agressivo, relaxado, de exportação e de dispatch. |
| Logging          | `level`, o nível de log.                                                                           |

Cada grupo é um namespace sob o prefixo de configuração deste serviço.

Leia um namespace com `GET /system/{namespace}` e uma chave com `GET /system/{namespace}/{key}`. Grave uma chave com `PUT /system/{namespace}/{key}`. Apenas um administrador de plataforma pode chamar essas rotas.

Tudo o mais vem do ambiente e exige um reinício: strings de conexão, pools, material TLS, listeners e o gate de autenticação. Veja [Systemplane](/pt/reference/platform/systemplane/overview) para o contrato do runtime plane.

## Credenciais e chaves

***

Defina `PLUGIN_AUTH_ENABLED=true` e `PLUGIN_AUTH_HOST` para ativar o gate da API. O mesmo par conduz a autenticação de saída.

Cada upstream carrega sua própria credencial. O Lerian STA usa `STA_CLIENT_ID` e `STA_CLIENT_SECRET`. O Lerian Reporter usa `REPORTER_CLIENT_ID` e `REPORTER_CLIENT_SECRET`. Não há credencial compartilhada nem fallback.

Com o gate ativado, um par ausente interrompe o boot e nomeia a variável exata. O Lerian CCS emite cada token por meio de OAuth2 client credentials e o armazena em cache por `M2M_CREDENTIAL_CACHE_TTL_SEC` segundos, 300 por padrão. Deploys multi-instituição leem, em vez disso, credenciais por instituição a partir do AWS Secrets Manager.

`CCS_CRYPTO_MASTER_KEY` guarda a chave mestra AES-256-GCM para os dados criptografados em repouso. Ela recebe 64 caracteres hexadecimais. Um valor vazio interrompe o boot.

O Lerian CCS pode verificar uma assinatura em cada evento de entrada do Lerian STA. Defina `STA_EVENT_HMAC_VERIFY_ENABLED=true`, carregue o catálogo de chaves em `STA_EVENT_HMAC_MASTER_KEYS`, e nomeie a versão ativa em `STA_EVENT_HMAC_MASTER_KEY_VERSION`. Carregue o catálogo primeiro. `STA_EVENT_HMAC_TOLERANCE_SECONDS` limita o desvio de relógio a 300 segundos.

## Armazenamento, outbox e retenção

***

Dois buckets de armazenamento de objetos guardam o XML regulatório: `OBJECT_STORAGE_STA_BUCKET` de entrada e `OBJECT_STORAGE_CCS_BUCKET` de saída. Apenas referências de arquivo trafegam pela rede.

O trabalho de saída sai por meio de uma tabela de outbox transacional. O dispatcher a lê a cada `OUTBOX_DISPATCH_INTERVAL_SEC` segundos, 2 por padrão, em lotes de `OUTBOX_BATCH_SIZE`, 50 por padrão, e desiste de um evento após `OUTBOX_MAX_DISPATCH_ATTEMPTS` tentativas, 10 por padrão. Defina `CCS_OUTBOX_OVERRIDES_ENABLED=true` para mover o dispatcher, em vez disso, para o intervalo, tamanho de lote e orçamento de tentativas de `CCS_OUTBOX_*`. Uma mensagem que esgota seu orçamento de tentativas move para a dead-letter queue sob `CCS_OUTBOX_DLQ_ROUTING_KEY`, e essa chave se aplica em ambos os casos.

`CCS_OUTBOUND_RETENTION_DAYS` e `CCS_ACCS009_RETENTION_DAYS` usam 30 dias como padrão. Um monitor verifica se há uma remessa ausente a cada `CCS_NON_SUBMISSION_SCAN_INTERVAL_SEC` segundos, 3600 por padrão.

O serviço nunca aplica seu próprio schema de banco de dados. Um job de migração separado o aplica antes da inicialização.

## Respostas estacionadas do STA

***

Um arquivo de entrada que o Lerian CCS não pode aplicar fica estacionado em uma dead-letter queue, com seu payload intacto. Um estacionamento mantém uma pendência em aberto. O arquivo estacionado costuma ser a única cópia de um fato do BACEN, então precisa de um alerta e de uma decisão humana.

`POST /v1/batches/{id}/drain-parked-response` aplica um ACCS003 atrasado a um lote que já alcançou um estado terminal. Quem chama fornece apenas identificadores. O Lerian CCS busca o arquivo novamente, deriva novamente os veredictos, e recusa quando o lote nomeado não corresponde. Ele grava uma entrada de auditoria na mesma transação.

Não drene quando dois lotes corresponderem a um arquivo, ou quando a correlação se contradiz. Estabeleça primeiro qual lote produziu o arquivo. Trate a divergência como o achado.

## Métricas e tracing

***

`GET /metrics` serve as métricas de readiness no formato de texto Prometheus. Defina `ENABLE_TELEMETRY=true` para exportar traces e métricas via OTLP para `OTEL_EXPORTER_OTLP_ENDPOINT`. Veja [Observabilidade](/pt/platform/observability) para a visão de plataforma.

## Postura de deploy

***

`DEPLOYMENT_MODE` aceita `local`, `byoc`, `saas` ou `onprem`. Em `saas`, o serviço impõe TLS em cada dependência. `CCS_RUN_MODE` aceita `manager`, `worker` ou `all`, e seleciona quais subsistemas rodam.

A produção adiciona estes requisitos.

* `PLUGIN_AUTH_ENABLED=true` com `PLUGIN_AUTH_HOST`.
* `LICENSE_KEY` e `ORGANIZATION_IDS`.
* `CIRCUIT_BREAKER_ENABLED=true`, que a integração com o Reporter exige.
* `REPORTER_URL` e `CCS_CRYPTO_MASTER_KEY`, sempre obrigatórios.

A validação de inicialização verifica o gate, a licença, a postura de TLS e as chaves. Uma verificação com falha interrompe o boot.
