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

# Variáveis de ambiente

> Variáveis de ambiente de deploy do Lerian SRC: postura de runtime, licença, identidade da instituição, PostgreSQL, eventos, Access Manager, IBM MQ, custódia de chaves, dados em repouso e telemetria.

O Lerian SRC lê sua configuração a partir do ambiente do processo na inicialização. Você define essas variáveis no momento do deploy. Um restart do serviço as torna efetivas. Os [fundamentos de configuração do BYOC](/pt/reference/byoc-configuration) tratam do modelo de configuração do BYOC.

Nas tabelas abaixo, a coluna **Padrão / Obrigatório** mostra o valor que o Lerian SRC aplica quando você deixa a variável sem definir. Um qualificador em negrito marca uma variável que você deve definir, em todo ambiente ou sob uma condição indicada. A condição "fora do desenvolvimento local" significa todo ambiente exceto um `ENV_NAME` igual a `develop` ou `development` com `DEPLOYMENT_MODE` vazio ou `local`. O valor `—` significa que o Lerian SRC não aplica nenhum padrão. Uma descrição que termina com "Sensível." marca uma variável que guarda um segredo.

Um deploy de produção é aquele em que `ENV_NAME` indica produção ou `DEPLOYMENT_MODE` é `saas` ou `byoc`. O Lerian SRC aplica verificações mais rígidas nele.

<Note>
  Quando um valor no arquivo de exemplo publicado difere do valor que o código aplica, esta página publica o valor do código.
</Note>

## Serviço e runtime

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `SERVICE_NAME` | `br-src` | Nome do serviço nos logs e na telemetria. |
| `ENV_NAME` | `development` | Ambiente de deploy: `local`, `develop`, `development`, `uat`, `staging`, `prod` ou `production`. Outro valor interrompe o boot. |
| `DEPLOYMENT_MODE` | `local`. **Obrigatório em produção** | Modelo de deploy: `local`, `byoc` ou `saas`. Outro valor interrompe o boot. |
| `LOG_LEVEL` | `info` | Nível de log na inicialização: `debug`, `info`, `warn` ou `error`. A chave de runtime `src.log.level` o muda enquanto o serviço roda. |
| `SERVER_PORT` | `3006` | Porta HTTP de escuta. |
| `TRUSTED_PROXIES` | `—` | Lista separada por vírgulas de endereços de proxy ou intervalos CIDR em que o Lerian SRC confia para o endereço IP do cliente. Vazio não confia em nenhum proxy. |
| `PROXY_HEADER` | `X-Forwarded-For` quando `TRUSTED_PROXIES` está definida | Header que leva o endereço IP do cliente a partir de um proxy confiável. |

## Licença

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `LICENSE_KEY` | **Obrigatório** | Chave de licença que a Lerian emite. Sensível. |
| `ORGANIZATION_IDS` | **Obrigatório** | Lista separada por vírgulas dos IDs de organização que a licença cobre. Defina pelo menos um. |

## Identidade da instituição

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `SRC_CNPJ_BASE8` | **Obrigatório** | A base do CNPJ da sua instituição: 8 caracteres de `0-9` e `A-Z`, não todos zeros. O Lerian SRC deriva dela os nomes das filas IBM MQ e os números de operação. |
| `SRC_SENDER_ISPB` | **Obrigatório em produção, ou quando `SRC_MQ_HOST` está definida** | O ISPB da sua instituição: 8 dígitos, não todos zeros. |

## PostgreSQL

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `POSTGRES_HOST` | **Obrigatório em produção** | Host do banco de dados. |
| `POSTGRES_PORT` | `5432` | Porta do banco de dados. |
| `POSTGRES_USER` | **Obrigatório em produção** | Usuário do banco de dados. |
| `POSTGRES_PASSWORD` | `—` | Senha do banco de dados. Sensível. |
| `POSTGRES_DB` | **Obrigatório em produção** | Nome do banco de dados. |
| `POSTGRES_SSLMODE` | `disable` | `sslmode` do PostgreSQL. |
| `POSTGRES_MAX_OPEN_CONNS` | `25` | Máximo de conexões abertas no pool. |
| `POSTGRES_MAX_IDLE_CONNS` | `10` | Máximo de conexões ociosas no pool. |
| `POSTGRES_CONN_LIFETIME` | `30m` | Tempo de vida máximo de uma conexão, como duração Go. |
| `POSTGRES_CONN_IDLE_TIME` | `5m` | Tempo ocioso máximo de uma conexão, como duração Go. |

## Eventos

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `SRC_STREAMING_BROKERS` | `—`. **Obrigatório em produção**, a menos que `SRC_STREAMING_EMISSION_DISABLED` seja `true` | Lista separada por vírgulas de endereços de broker. |
| `SRC_STREAMING_CLIENT_ID` | `br-src` | Client ID do produtor. |
| `SRC_STREAMING_SOURCE` | `br-src` | Source CloudEvents. Deixe sem definir, ou defina exatamente como `br-src`. Outro valor interrompe o boot. |
| `SRC_STREAMING_TLS` | `false` | Liga o TLS na conexão com o broker. |
| `SRC_STREAMING_EMISSION_DISABLED` | `false` | Defina como `true` para rodar sem broker. Os eventos então ficam pendentes no outbox. |

## Access Manager

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `PLUGIN_AUTH_ENABLED` | **Obrigatório** | Liga a autenticação do Access Manager. Defina como `true`. Um deploy de produção recusa `false`. |
| `PLUGIN_AUTH_ADDRESS` | **Obrigatório em produção** | Endereço do Access Manager. |
| `IDP_DECLARATION_ENABLED` | `false` | Defina como `true` para publicar o manifesto de permissões do Lerian SRC no Access Manager na inicialização. |
| `IDP_HOST` | **Obrigatório quando `IDP_DECLARATION_ENABLED` é `true`** | Endereço do serviço de identidade do Access Manager que recebe o manifesto. |
| `IDP_M2M_CLIENT_ID` | **Obrigatório quando `IDP_DECLARATION_ENABLED` é `true`** | Client ID que o Lerian SRC usa para publicar o manifesto. |
| `IDP_M2M_CLIENT_SECRET` | **Obrigatório quando `IDP_DECLARATION_ENABLED` é `true`** | Client secret que o Lerian SRC usa para publicar o manifesto. Sensível. |

## IBM MQ

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `SRC_MQ_HOST` | **Obrigatório em produção** | Host do queue manager IBM MQ da sua instituição. |
| `SRC_MQ_PORT` | **Obrigatório quando `SRC_MQ_HOST` está definida** | Porta do listener do seu queue manager. |
| `SRC_MQ_CHANNEL` | **Obrigatório quando `SRC_MQ_HOST` está definida** | Canal de conexão de servidor no seu queue manager. No máximo 20 caracteres de `A-Z`, `a-z`, `0-9`, `.`, `/`, `_` e `%`. |
| `SRC_MQ_QUEUE_MANAGER` | **Obrigatório em produção** | Nome do seu queue manager. |
| `SRC_MQ_USER` | `—` | ID de usuário do IBM MQ. |
| `SRC_MQ_PASSWORD` | `—` | Senha do IBM MQ. Sensível. |
| `SRC_MQ_TLS_ENABLED` | `false` | Liga o TLS na conexão IBM MQ. Um deploy de produção exige `true`. |
| `SRC_MQ_SSL_KEY_REPOSITORY` | `—` | Caminho base do repositório de chaves do IBM MQ. |
| `SRC_MQ_CERT_LABEL` | `—` | Rótulo do certificado no repositório de chaves que a conexão IBM MQ envia. |
| `SRC_MQ_CIPHER_SPEC` | `TLS_RSA_WITH_AES_256_CBC_SHA256` | Cipher spec do IBM MQ. |
| `SRC_MQ_SEND_QUEUE` | Derivado de `SRC_CNPJ_BASE8` | Nome da fila de envio. |
| `SRC_MQ_RECEIVE_QUEUE` | Derivado de `SRC_CNPJ_BASE8` | Nome da fila de recebimento. |
| `SRC_MQ_BACKOUT_QUEUE` | O nome da fila de recebimento seguido de `.BACKOUT` | Fila que recebe uma mensagem depois que ela falha na entrega `SRC_MQ_BACKOUT_THRESHOLD` vezes. |
| `SRC_MQ_BACKOUT_THRESHOLD` | `5` | Entregas com falha antes que uma mensagem vá para a fila de backout. `0` desliga essa movimentação. |
| `SRC_MQ_BACKOUT_DELAY` | `2s` | Pausa depois de uma entrega com falha, como duração Go. |
| `SRC_MQ_STALE_AFTER` | `30s` | Tempo sem chamada IBM MQ concluída antes que a verificação `src_mq` informe `degraded`. `0` desliga isso. |
| `SRC_MQ_HEARTBEAT_INTERVAL` | `30s` | Intervalo de heartbeat do IBM MQ, como duração Go em segundos inteiros. `0` usa o valor do canal. |

## Certificados e custódia de chaves

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `SRC_LOCAL_CERT_FILE` | **Obrigatório em produção, ou quando `SRC_MQ_HOST` está definida** | Caminho do certificado da sua instituição. Ele precisa corresponder à chave privada no PKCS#11 ou no KMIP. |
| `SRC_BACEN_CERT_FILE` | **Obrigatório em produção, ou quando `SRC_MQ_HOST` está definida** | Caminho do certificado do BACEN. Reinicie o Lerian SRC depois de trocá-lo. |
| `SRC_PKCS11_MODULE_PATH` | `—` | Caminho da biblioteca cliente PKCS#11. |
| `SRC_PKCS11_TOKEN_LABEL` | `—` | Rótulo do token PKCS#11. |
| `SRC_PKCS11_PIN_FILE` | `—` | Caminho do arquivo que guarda o PIN do PKCS#11. |
| `SRC_PKCS11_KEY_LABEL` | `—` | Rótulo do par de chaves no token PKCS#11. |
| `SRC_KMIP_BASE_URL` | `—` | URL base do servidor KMIP. |
| `SRC_KMIP_VHSM` | `—` | Identificador do HSM virtual. |
| `SRC_KMIP_CRYPTO_USER` | `—` | Usuário de criptografia do KMIP. |
| `SRC_KMIP_CRYPTO_USER_TOKEN` | `—` | Token do usuário de criptografia do KMIP. Sensível. |
| `SRC_KMIP_SIGN_PRIVATE_KEY_UID` | `—` | Identificador da chave privada de assinatura. |
| `SRC_KMIP_SIGN_PUBLIC_KEY_UID` | `—` | Identificador da chave pública correspondente. |
| `SRC_KMIP_DECRYPT_KEY_UID` | `—` | Identificador da chave de decifração. |

## Dados em repouso

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `SRC_ATREST_ENCRYPTION_KEY` | **Obrigatório fora do desenvolvimento local** | A chave de 32 bytes que criptografa os dados de documento em repouso. Sensível. |
| `SRC_ATREST_BLIND_INDEX_KEY` | **Obrigatório fora do desenvolvimento local** | A chave que o Lerian SRC usa para buscar pelo número do documento. Pelo menos 32 caracteres, e diferente de `SRC_ATREST_ENCRYPTION_KEY`. Sensível. |

## Telemetria

| Variável | Padrão / Obrigatório | Descrição |
| - | - | - |
| `ENABLE_TELEMETRY` | `false`. **Um deploy de produção exige `true`** | Liga a exportação de traces e métricas por OTLP. |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | **Obrigatório em produção** | Endereço do coletor OTLP. |


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