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

> Operando o Lerian SCR: verificações de prontidão, namespaces de configuração em runtime, rotação de credencial, cache e retenção, métricas e a postura estrita.

O Lerian SCR roda em um canal regulatório tarifado, e sua superfície operacional o protege.

## Saúde e prontidão

***

`GET /health` responde liveness. `GET /readyz` responde uma entrada por dependência.

| Verificação | O que verifica | Quando falha |
| - | - | - |
| `postgres` | Um ping no pool primário. | Inalcançável: down. |
| `redis` | Um ping no cliente do cache. | Inalcançável: down. Ausente: ignorado. |
| `scr_endpoint` | Um handshake TLS limitado com o BACEN. Sem query, sem credencial. | Cadeia quebrada: down. Timeout de conexão: degradado. |
| `vault` | Uma chamada de alcançabilidade no armazenamento de credenciais. | Inalcançável: degradado. |
| `plugin-access-manager` | Um GET no `/health` do Access Manager, sem token. | Inalcançável, ou um status de erro diferente de 401 ou 403: down. `PLUGIN_AUTH_ADDRESS` vazio: down. Autenticação desligada: ignorado. |
| `event_emission` | A postura de emissão declarada. | Nunca. Apenas reporta. |
| `systemplane_schema` | O schema de configuração em tempo de execução no Postgres. | Um schema desatualizado ou aplicado em parte: down. |
| `license` | A licença da Lerian. | Nunca. Com `LICENSE_KEY` ela não faz nenhuma chamada e aparece como no ar. |

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. Uma licença que deixa de ser válida após a inicialização não leva `/readyz` a 503. Um `scr_endpoint` down ou degradado não leva 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](https://docs.lerian.studio/pt/rails/scr/scr-environment-variables.md).

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](https://docs.lerian.studio/pt/reference/platform/systemplane/overview.md).

| Namespace | O que controla | Padrões |
| - | - | - |
| `scr.app` | Nível de log. | Configuração de inicialização. |
| `scr.rate_limit` | Limite de entrada por IP, com `RATE_LIMIT_ENABLED=true`. | 100 por 60 segundos. |
| `scr.outbox` | Intervalo, tamanho de lote. | `2s`, 50. |
| `scr.wsscr2n` | Deadline de requisição, limite de conexões. | `25s`, 2. |
| `scr.cache` | Tempos de vida de entrada. | `4h`, `720h`. |
| `scr.circuit_breaker` | Limiares de acionamento, período de resfriamento. | 5 falhas, proporção 0,5, mínimo 10, `30s`. |
| `scr.retention` | Cadência da varredura de expurgo. | Vazio. Uma varredura a cada 24 horas. |

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.


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