spi, dict, brcode e core), então seu conjunto de variáveis é amplo.
O serviço lê cada variável na inicialização. Um valor que não pode ser lido no seu tipo, como yes em uma chave, impede a inicialização. Quando o systemplane está ativo (o padrão), ele pode sobrescrever um subconjunto delas em runtime sem reiniciar. As demais variáveis exigem um restart para mudar. Para os parâmetros que se comportam da mesma forma em todo serviço Go da Lerian (postura de deployment, datastores, telemetria), consulte Fundamentos de configuração do BYOC.
Nas tabelas abaixo, Obrigatório marca uma variável que você deve definir, sempre (Sim) ou sob a condição indicada. — significa que não há padrão. As condições usam três termos:
- Em operação real: o endpoint do BACEN usa
https. Um ambiente local também aceita um endpointhttp. - Ambiente local:
ENV_NAMEédevelopment,localoutest. - Ambiente protegido:
ENV_NAMEéproduction,prod,staging,stage,pre-prod,preprod,pre-productionoupreproduction.
A maioria das variáveis voltadas ao BACEN carrega um prefixo de superfície:
BACEN_SPI_* para o transporte de liquidação do SPI, BACEN_DICT_* para o cliente DICT, BACEN_BRCODE_JOSE_* para a assinatura JOSE do BR Code e BACEN_ICOM_* para o canal de long-poll de entrada.Runtime e servidor
Um ambiente protegido exige os arquivos de certificado e de chave do servidor, ou
TLS_TERMINATED_UPSTREAM=true.
Autenticação
O Lerian SPI autoriza rotas protegidas, incluindo a API administrativa do systemplane, pelo Access Manager.Callback do BACEN (entrada vinda do SPI)
Fora de um ambiente local, o trilho precisa de exatamente um modo de TLS mútuo de callback. No modo direto, defina
SERVER_TLS_CERT_FILE, SERVER_TLS_KEY_FILE e SERVER_TLS_CLIENT_CA_FILE. No modo proxy, defina TLS_TERMINATED_UPSTREAM=true, os CIDRs confiáveis e o segredo de header.
Transporte de liquidação do SPI (BACEN_SPI_*)
Conexão com o endpoint de liquidação do SPI do BACEN pela RSFN, com o canal secundário de mensageria e o endpoint de transferência de arquivos (ARQ).
TLS mútuo com o BACEN
Os arquivosBACEN_TLS_* sustentam o canal de TLS mútuo com o BACEN. Os clientes do SPI e do DICT os compartilham.
Assinatura de mensagens e certificados
O Lerian SPI assina digitalmente suas mensagens de saída. Escolha um backend de custódia comBACEN_SPI_SIGNER_KIND.
Validação de certificado (OCSP/CRL)
Resolvedor de payload
Estas variáveis controlam como o serviço armazena e referencia payloads grandes do SPI.Canal de entrada (BACEN_ICOM_*)
Canal de long-poll para mensagens que o BACEN envia de volta ao participante.
Cada consumidor exige um backend de persistência configurado,
BACEN_ICOM_ISPB, BACEN_SPI_INTERNAL_CALLBACK_SECRET e BACEN_CALLBACK_MTLS_HEADER_SECRET. O consumidor primário também exige BACEN_ICOM_BASE_URL. O consumidor secundário também exige BACEN_SPI_SECONDARY_ENDPOINT.
Um consumidor habilitado exige o modo proxy de callback: TLS_TERMINATED_UPSTREAM=true, nenhum SERVER_TLS_CLIENT_CA_FILE e BACEN_CALLBACK_TRUSTED_PROXY_CIDRS com o endereço de onde o consumidor encaminha. Com o SERVER_ADDRESS padrão, esse endereço é 127.0.0.1.
Cliente DICT (BACEN_DICT_*)
Cliente para o diretório de chaves Pix do BACEN (DICT), incluindo o endpoint NP para verificações de existência de chaves em lote.
Assinatura JOSE do BR Code (BACEN_BRCODE_JOSE_*)
Assina payloads dinâmicos do BR Code (JWS). Quando BACEN_BRCODE_JOSE_SIGNER_KIND não está definida, o JOSE fica desabilitado e os endpoints públicos de payload se recusam a servir. Com o JOSE habilitado, roteie os caminhos de payload (/api/v1/brcode/payload/*) e o caminho do conjunto de chaves (/api/v1/brcode/.well-known/jwks.json) sob a PUBLIC_BASE_URL para o binário brcode, sem nenhum autorizador na frente deles. O PSP do pagador chama essas rotas sem credencial.
Resolução de QR do BR Code (BACEN_BRCODE_QR_PAYER_*)
Controla a resolução de um QR dinâmico no lado do pagador. Quando a resolução está desligada, a operação dela responde 503.
Criptografia e hashing de PII
Cada chave tem 32 bytes, em formato bruto ou base64. Cada pepper tem pelo menos 32 caracteres.PostgreSQL
Redis
Arquivo regulatório (REGULATORY_ARCHIVE_*)
Os binários spi e dict mantêm o arquivo regulatório em um armazenamento compatível com S3. Os binários brcode e core não usam essas variáveis.
Aqui, um ambiente de desenvolvimento é aquele em que
ENV_NAME é development, develop, dev, local ou test, e DEPLOYMENT_MODE não é saas. Essas regras leem ENV_NAME como definido, então um ENV_NAME não definido não é um ambiente de desenvolvimento. Uma variável obrigatória ausente impede a inicialização. Em um ambiente de desenvolvimento sem bucket, o trilho não arquiva nada. Com o arquivo ativo, /readyz em spi e dict informa o serviço como não pronto enquanto o bucket não responde.
Outbox e streaming
O Lerian SPI publica eventos por um outbox transacional e um produtor de streaming, e consome eventos de liquidação para o BR Code. O consumidor de liquidação do BR Code roda incondicionalmente. O streaming não tem chave de habilitação:STREAMING_BROKERS é obrigatória na inicialização, inclusive quando OUTBOX_ENABLED=false. Cada binário exige seu próprio valor fixo de STREAMING_CLOUDEVENTS_SOURCE, e qualquer outro valor impede a inicialização: br-spi para spi, br-spi-dict para dict, br-spi-brcode para brcode e br-spi-core para core.
Uma entrada de STREAMING_EVENT_POLICIES que desliga um evento do Lerian SPI impede a inicialização. Apenas os dois eventos spi_tracking e três eventos dict_med_operations (inconsistent_projection, feed_blocked e feed_record_abandoned) podem ser desligados.
Agendadores
Tarefas em segundo plano, cada uma com sua própria chave. As duas tarefas do DICT com padrãotrue carregam deveres regulatórios, então o binário dict inicia seu agendador para elas, a menos que SCHEDULER_ENABLED=false. O binário spi faz o mesmo para as tarefas de veredito dos agendamentos e de prazo de portabilidade. As tarefas com padrão false também exigem SCHEDULER_ENABLED=true. Os workers de descoberta e inventário do DICT têm seus próprios controles na próxima seção.
Descoberta e inventário do DICT
Os workers abaixo rodam independentemente deSCHEDULER_ENABLED, cada um com sua própria chave.
Rate limiting, idempotência e conectividade
Systemplane e configuração em runtime
Consulte Systemplane para a API, os namespaces e as permissões exigidas.
Observabilidade
Documentação
Health e readiness
O Lerian SPI expõeGET /health (liveness), GET /readyz (readiness) e GET /version na porta HTTP principal. /metrics roda em seu próprio listener quando habilitado. Consulte Health e readiness para o contrato de probe.
