Saúde e prontidão
GET /health responde liveness. GET /readyz responde uma entrada por dependência.
O resultado do handshake serve por 20 segundos, então a prontidão nunca conecta ao BACEN por requisição. Um breaker do canal aberto informa
scr_endpoint como down. Um scr_endpoint down ou degradado não leva o /readyz a 503, então o serviço continua em rotação durante uma indisponibilidade do BACEN. Uma consulta que nunca chegou ao BACEN responde então SCR-1002, e o detail dela nomeia o BACEN.
No encerramento, /readyz retorna 503 primeiro, e o listener permanece aberto por três segundos. READYZ_DRAIN_DELAY faz override disso.
Configuração em runtime
Sete namespaces chegam a um operador em
/v1/system, sob o scope scr:system:write. O serviço obtém suas configurações de pool de conexões a partir das variáveis de ambiente.
Uma mudança de nível de log entra em vigor imediatamente. Uma mudança de retenção entra em vigor na próxima varredura de expurgo. O serviço lê todos os outros namespaces quando inicia, então uma mudança ali entra em vigor na próxima reinicialização. Veja System plane.
O prazo configurado para a consulta deve ser inferior a 28 segundos. A persistência de auditoria tem um timeout separado. O limite de conexão aceita 1 ou 2.
Credenciais e rotação
O tipo de armazenamento de segredos escolhe a origem da credencial. O tipo ambiente lê o usuário e a senha a partir do ambiente de deployment. O tipo vault gerenciado os resolve a partir do vault, e o banco de dados mantém apenas uma referência. O tipo vault gerenciado também monta
PUT /v1/scr/credential. Ele grava no vault primeiro e nos metadados depois, então uma nova tentativa reutiliza a referência.
A senha nunca alcança um log, um span, ou um erro. A operação de status retorna um nome de usuário mascarado. Uma indisponibilidade do vault responde SCR-1002 e nunca aciona o breaker do canal.
Cache e retenção
O cache de resultado mantém uma entrada por índice cego do tomador e mês de referência. Cada valor carrega o envelope em repouso da linha de auditoria. Uma entrada do mês corrente vive quatro horas, uma entrada de mês fechado 720 horas. Uma entrada ilegível conta como um miss. O expurgo de auditoria permanece desativado até que você defina uma janela: a chave
retention.audit_max_age de client_policy em /v1/client-system. Uma janela vazia não exclui nada. Com uma janela, uma varredura exclui linhas mais antigas em lotes limitados, e nunca as arquiva.
Métricas e rastreamento
Com
ENABLE_TELEMETRY=true, as métricas saem por push OTLP. Um listener de scrape do Prometheus é opt-in em um endereço loopback, 127.0.0.1:9075 por padrão. A porta da aplicação não tem nenhuma rota /metrics.
Dois histogramas medem uma consulta: de ponta a ponta, e o overhead sem a chamada ao BACEN. Seus labels carregam a instituição, a flag de cache-hit, e o desfecho, nunca o tomador. Contadores cobrem códigos de decodificação desconhecidos, entradas de cache ilegíveis e linhas expurgadas.
Postura de deployment
Um nome de ambiente de produção ou o modo de deployment SaaS seleciona a postura estrita. A inicialização estrita exige um modo de deployment explícito, o host do Postgres, banco de dados e usuário, e autorização sobre um endereço https. Exige a URL base do canal sobre https, e TLS no Postgres e em qualquer Redis ou broker configurado. Exige duas chaves de criptografia em repouso distintas e uma região para o vault gerenciado, e proíbe um intervalo de proxy wildcard. Uma lista de broker ou host Redis em branco recusa a inicialização, a menos que um operador declare o opt-out. O log de inicialização e o
/readyz então nomeiam as proteções degradadas.
Um operador aplica o esquema fora do processo de runtime. O serviço o lê e nunca o cria.
