Saúde e readiness
GET /health reporta liveness. GET /readyz executa a probe de cada dependência e reporta um status único.
GET /readyz/tenant/{id} reporta postgres, redis e rabbitmq para uma instituição.
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
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 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=truecomPLUGIN_AUTH_HOST.
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.
