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

***

No CCS 1.0.0, `GET /health` e `GET /readyz` funcionam na porta principal. `/readyz` executa as probes de dependência e informa um status único. A tabela abaixo descreve essa release legada; veja [Health e readiness](https://docs.lerian.studio/pt/reference/health-and-readiness.md) para o contrato compartilhado usado pelas releases que o adotam.

| 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. Reporta `skipped` enquanto o broker está desligado. |
| `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. |
| `st_consumer` | O consumidor de instituição única. | Nunca. Reporta a contagem de consumidores. |
| `startup_self_probe` | A self-probe de inicialização. | Ela ainda não passou. |

O CCS 1.0.0 também registra `GET /readyz/tenant/{id}` na porta principal quando sua configuração legada e a autenticação validada permitem. A rota informa `postgres`, `redis` e `rabbitmq` para uma instituição.

No CCS 1.0.0, um Reporter inacessível remove a instância de serviço. Comece o Reporter primeiro.

## Credenciais e chaves

***

`PLUGIN_AUTH_ENABLED=true` com `PLUGIN_AUTH_HOST` faz o Access Manager autorizar cada requisição da API. O mesmo par emite os tokens 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`.

O Lerian CCS emite um token por meio de OAuth2 client credentials para cada chamada de saída. Fora de `saas`, com o gate ativado, um par ausente interrompe o boot e nomeia a variável exata. Em `saas`, a Lerian gerencia a credencial de cada instituição, e o trilho mantém a credencial em cache por `M2M_CREDENTIAL_CACHE_TTL_SEC` segundos, 300 por padrão.

`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. O serviço recusa um evento cuja assinatura não confere.

## 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. A API e as mensagens do broker carregam apenas referências de arquivo.

O trabalho de saída sai por meio de uma tabela de outbox transacional, então o serviço precisa de `OUTBOX_ENABLED=true` para iniciar. 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_*`. Quando o envio de um ACCS001 esgota seu orçamento de tentativas, o lote passa para `SUBMIT_FAILED`.

`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

***

Quando o Lerian CCS não pode aplicar um arquivo de entrada, ele estaciona o evento do arquivo em uma dead-letter queue. O arquivo fica no bucket de entrada. Ele 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

***

No CCS 1.0.0, `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](https://docs.lerian.studio/pt/platform/observability.md) para a visão de plataforma.

## Postura de deploy

***

`DEPLOYMENT_MODE` aceita `local`, `byoc` ou `saas`. `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`.

Todo ambiente exige `LICENSE_KEY`, `ORGANIZATION_IDS`, `REPORTER_URL`, `CCS_CRYPTO_MASTER_KEY`, `CIRCUIT_BREAKER_ENABLED=true` e `OUTBOX_ENABLED=true`.

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.