Skip to main content
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. 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. 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 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 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.