> ## 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 do Access Manager

> As variáveis de ambiente que os componentes Auth e Identity do Access Manager leem, com o padrão de cada uma e o que ela muda.

O Access Manager roda dois componentes, **Auth** e **Identity**. A coluna **Componente** diz qual componente lê a variável. Os valores marcados como sensíveis são segredos: guarde-os no seu cofre de segredos, nunca em um arquivo do seu repositório nem em uma imagem.

Para instalar ou atualizar o Access Manager, consulte o [README do chart do Access Manager](https://github.com/LerianStudio/helm/tree/main/charts/plugin-access-manager).

## Serviço

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `SERVER_ADDRESS` | Ambos | Endereço de escuta, como `:4000`. | — | Sim |
| `ENV_NAME` | Ambos | Nome do ambiente, como `production`, `staging` ou `local`. Ele define o nível de log padrão. | — | Não |
| `LOG_LEVEL` | Ambos | Nível de log: `debug`, `info`, `warn` ou `error`. Um valor inválido interrompe a inicialização. | `info` quando `ENV_NAME` é `production`, `staging` ou `uat`. `debug` nos demais casos. | Não |
| `DEPLOYMENT_MODE` | Ambos | Modo de deploy, como `byoc` ou `saas`. Com `saas`, o componente não inicia a menos que `REDIS_TLS` seja `true` e `AUTHORIZER_ADDRESS` use `https://`. A resposta de `/readyz` informa o valor. | `local` | Não |
| `SWAGGER_ENABLED` | Auth | Serve o documento OpenAPI do Auth. | `true` | Não |

## Conexão com o Caradhras

Leia [Caradhras no Access Manager](https://docs.lerian.studio/pt/platform/access-manager/caradhras-in-access-manager.md) para saber como os dois componentes usam o backend de identidade.

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `AUTHORIZER_ADDRESS` | Ambos | URL base do Caradhras. O Auth não inicia com um endereço `http://` a menos que `ENV_NAME` seja `development`, `staging` ou `local`. | — | Sim |
| `AUTHORIZER_CLIENT_ID` | Ambos | Client ID da aplicação do Caradhras que o Access Manager usa. | — | Sim |
| `AUTHORIZER_CLIENT_SECRET` | Ambos | Client secret dessa aplicação. Sensível. | — | Sim |
| `AUTHORIZER_APPLICATION_NAME` | Ambos | Nome dessa aplicação no Caradhras. | — | Sim |
| `AUTHORIZER_ORGANIZATION_NAME` | Ambos | Organização do Caradhras de uma instalação single-tenant. | `lerian` | Não |
| `MULTI_TENANT_ENABLED` | Ambos | Habilita o modo multi-tenant. O Auth não inicia quando `PLUGIN_AUTH_SSO_STATIC_ORGANIZATION` também está definida. | `false` | Não |
| `AUTHORIZER_JWT_CERTIFICATE` | Ambos | Certificado, em PEM, que verifica a assinatura dos tokens que o Caradhras emite. Sem ele, o componente usa o certificado embutido na imagem. Um valor inutilizável interrompe a inicialização. | — | Não |

## Chamadas ao Caradhras

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `HTTP_CLIENT_TIMEOUT_SEC` | Ambos | Segundos que uma chamada ao Caradhras pode levar. | `30` | Não |
| `HTTP_CLIENT_MAX_IDLE_CONNS` | Ambos | Conexões ociosas mantidas abertas. | `100` | Não |
| `HTTP_CLIENT_MAX_IDLE_CONNS_PER_HOST` | Ambos | Conexões ociosas mantidas abertas para um host. | Auth: `10`. Identity: `100`. | Não |
| `HTTP_CLIENT_IDLE_CONN_TIMEOUT_SEC` | Ambos | Segundos antes de o componente fechar uma conexão ociosa. | `90` | Não |
| `CIRCUIT_BREAKER_ENABLED` | Ambos | Liga o circuit breaker nas chamadas ao Caradhras. | `true` | Não |
| `CIRCUIT_BREAKER_CONSECUTIVE_FAILURES` | Ambos | Falhas consecutivas que abrem o breaker. | `5` | Não |
| `CIRCUIT_BREAKER_FAILURE_RATIO` | Ambos | Proporção de chamadas com falha que abre o breaker, como `0.5`. | `0.5` | Não |
| `CIRCUIT_BREAKER_MIN_REQUESTS_FOR_RATIO` | Ambos | Chamadas que precisam acontecer antes que a proporção de falhas se aplique. | `10` | Não |
| `CIRCUIT_BREAKER_INTERVAL_SEC` | Ambos | Segundos depois dos quais o breaker fechado zera suas contagens. | `60` | Não |
| `CIRCUIT_BREAKER_TIMEOUT_SEC` | Ambos | Segundos que o breaker fica aberto antes de tentar o Caradhras de novo. | `30` | Não |
| `CIRCUIT_BREAKER_MAX_REQUESTS_HALF_OPEN` | Ambos | Chamadas permitidas enquanto o breaker tenta o Caradhras de novo. | `3` | Não |
| `CIRCUIT_BREAKER_HEALTH_CHECK_INTERVAL_SEC` | Ambos | Segundos entre as verificações de saúde do Caradhras. | `30` | Não |
| `CIRCUIT_BREAKER_HEALTH_CHECK_TIMEOUT_SEC` | Ambos | Segundos que uma verificação de saúde pode levar. | `10` | Não |

## Login

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `MFA_ENABLED` | Auth | Declara que esta instalação usa autenticação multifator. Com `true` e um `MFA_SECRET` vazio, o Auth registra um erro na inicialização. Leia [Requisitos de deploy do MFA](https://docs.lerian.studio/pt/platform/access-manager/features/mfa/deployment.md). | `false` | Não |
| `MFA_SECRET` | Auth | Segredo com que o Auth assina os tokens de login com MFA e com passkey. Sem ele, esses logins respondem `503` com `AUT-0028`. Sensível. | — | Com MFA ou passkeys |
| `MFA_SESSION_TTL_SEC` | Auth | Segundos em que uma sessão de MFA continua válida. | `300` | Não |
| `MFA_MAX_ATTEMPTS` | Auth | Verificações de código MFA com falha permitidas para um usuário. | `5` | Não |
| `MFA_MAX_RESEND_ATTEMPTS` | Auth | Novos códigos MFA que um usuário pode pedir. | `3` | Não |
| `PASSKEY_RECENT_AUTH_SEC` | Identity | Idade máxima, em segundos, do token de quem chama para adicionar ou remover uma passkey. Leia [Passkeys](https://docs.lerian.studio/pt/platform/access-manager/features/passkeys/overview.md). | `600` | Não |
| `PLUGIN_AUTH_SSO_CALLBACK_URL` | Ambos | Endereço do callback de SSO do Console, para onde o provedor de identidade devolve o navegador. Use o mesmo valor no Auth e no Identity. O Auth não inicia quando o valor está definido e não é uma URL `http` ou `https` absoluta com um caminho. Leia [Requisitos de deploy do SSO](https://docs.lerian.studio/pt/platform/access-manager/features/sso/deployment.md). | — | Com SSO |
| `PLUGIN_AUTH_SSO_STATIC_ORGANIZATION` | Auth | Organização do Caradhras para cada login SSO de uma instalação single-tenant. Sem ela, o Auth encontra a organização pelo e-mail do usuário. | — | Não |
| `PLUGIN_AUTH_SSO_PREFLIGHT_ALLOW_INSECURE` | Identity | Com `true`, a verificação prévia de SSO pode chamar um provedor de identidade por `http://`. O Identity registra um aviso na inicialização enquanto ela está ligada. | `false` | Não |
| `PLUGIN_AUTH_SSO_ALLOW_PRIVATE_NETWORKS` | Identity | Com `true`, a verificação prévia de SSO e a descoberta de um provedor de identidade podem alcançar endereços de rede privada. O Identity registra um aviso na inicialização enquanto ela está ligada. | `false` | Não |
| `ENABLE_FORGOT_PASSWORD` | Identity | Com `true`, o Identity serve as duas rotas de redefinição de senha. Caso contrário, elas respondem `404`. | `false` | Não |

## Proteção da API do Identity

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `PLUGIN_AUTH_ENABLED` | Identity | Com `true` e um endereço do Auth, o Identity envia o token de quem chama ao Auth para a verificação de permissão nas suas rotas protegidas. Caso contrário, o Identity não chama o Auth. | `false` | Não |
| `PLUGIN_AUTH_ADDRESS` | Identity | Endereço do Auth. | — | Com `PLUGIN_AUTH_ENABLED=true` |
| `AUTH_REQUIRED` | Identity | Com `true`, as rotas protegidas do Identity respondem `503` quando `PLUGIN_AUTH_ENABLED` não é `true` ou `PLUGIN_AUTH_ADDRESS` está vazio. Leia [Aplicação no nível do produto](https://docs.lerian.studio/pt/platform/access-manager/product-level-enforcement.md). | `false` | Não |
| `AUTH_M2M_JWKS_URL` | Identity | Endereço do conjunto de chaves que o Identity usa para verificar tokens de aplicação. Sem ele, o Identity usa `AUTHORIZER_ADDRESS` seguido de `/.well-known/jwks`. | — | Não |
| `AUTH_M2M_JWKS_REFRESH_INTERVAL` | Identity | Com que frequência o Identity recarrega esse conjunto de chaves, como uma duração, por exemplo `5m`. | `5m` | Não |
| `AUTH_JWKS_CACHE_TTL` | Auth | Por quanto tempo o Auth guarda o conjunto de chaves do Caradhras que ele serve a outros serviços da Lerian, como uma duração, por exemplo `5m`. | `5m` | Não |
| `MAX_PAGINATION_LIMIT` | Identity | Maior `limit` que uma requisição de listagem aceita. | `100` | Não |
| `MAX_PAGINATION_PAGE` | Identity | Maior `page` que uma requisição de listagem aceita. | `1000000` | Não |

## Rede

Leia [Requisitos de deploy (BYOC)](https://docs.lerian.studio/pt/platform/access-manager/features/ip-allowlist/deployment.md) e [IP allowlist do tenant](https://docs.lerian.studio/pt/platform/access-manager/product-level-enforcement.md#tenant-ip-allowlist) antes de definir estas variáveis.

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `TRUSTED_PROXIES` | Ambos | Faixas CIDR dos proxies na frente do componente, separadas por vírgulas. Um valor malformado interrompe a inicialização. | — | Não |
| `PLATFORM_INTERNAL_CIDRS` | Ambos | Faixas CIDR de onde os serviços da própria plataforma chamam o Caradhras, separadas por vírgulas. Use o mesmo valor no Auth, no Identity e no Caradhras. Um valor malformado interrompe a inicialização. | — | Não |

## Rate limits

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `RATE_LIMIT_ENABLED` | Ambos | Liga os rate limits. | `false` | Não |
| `RATE_LIMIT_MAX` | Ambos | Requisições que um endereço de cliente pode fazer em uma janela. | `100` | Não |
| `RATE_LIMIT_WINDOW_SEC` | Ambos | Duração dessa janela, em segundos. | `60` | Não |
| `RATE_LIMIT_AUTH_MAX` | Auth | Requisições por janela nas rotas de token, refresh, logout, SSO, MFA e login com passkey. | `10` | Não |
| `RATE_LIMIT_AUTH_WINDOW_SEC` | Auth | Duração dessa janela, em segundos. | `60` | Não |
| `RATE_LIMIT_PERMISSION_MAX` | Auth | Requisições por janela em `/v1/authorize`, `/v1/permissions` e `/v1/userinfo`. | `60` | Não |
| `RATE_LIMIT_PERMISSION_WINDOW_SEC` | Auth | Duração dessa janela, em segundos. | `60` | Não |
| `RATE_LIMIT_REDIS_TIMEOUT_MS` | Ambos | Milissegundos que uma verificação de rate limit espera pelo Valkey. | `500` | Não |

## Valkey

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `REDIS_HOST` | Ambos | Endereço do Valkey como `host:port`. Com vários endereços separados por vírgulas, o componente se conecta a um cluster, ou ao Sentinel quando `REDIS_MASTER_NAME` está definido. | — | Sim |
| `REDIS_MASTER_NAME` | Ambos | Nome do master do Sentinel. | — | Com Sentinel |
| `REDIS_PASSWORD` | Ambos | Senha do Valkey. Sensível. | — | Não |
| `REDIS_DB` | Ambos | Número do banco. | `0` | Não |
| `REDIS_PROTOCOL` | Ambos | Versão do protocolo RESP. | `3` | Não |
| `REDIS_TLS` | Ambos | Conecta ao Valkey por TLS. | `false` | Com `DEPLOYMENT_MODE=saas` |
| `REDIS_CA_CERT` | Ambos | Certificado da CA para essa conexão TLS, em PEM base64. | — | Não |
| `REDIS_USE_GCP_IAM` | Ambos | Autentica no Valkey com o IAM do Google Cloud em vez de uma senha. | `false` | Não |
| `REDIS_SERVICE_ACCOUNT` | Ambos | Conta de serviço do Google para a autenticação por IAM. | — | Com IAM |
| `GOOGLE_APPLICATION_CREDENTIALS` | Ambos | Credenciais do Google para a autenticação por IAM. Sensível. | — | Com IAM |
| `REDIS_TOKEN_LIFETIME` | Ambos | Validade do token de IAM, em minutos. | `60` | Não |
| `REDIS_TOKEN_REFRESH_DURATION` | Ambos | Minutos entre as renovações do token de IAM. Mantenha abaixo de `REDIS_TOKEN_LIFETIME`. | `45` | Não |
| `REDIS_SCAN_COUNT` | Ambos | Chaves que cada passo de varredura lê quando o componente apaga entradas do cache por padrão. | `100` | Não |

## Cache do Auth

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `CACHE_TTL_ACCESS_TOKEN` | Auth | Segundos em que o Auth guarda um access token emitido no seu cache. | `300` | Não |
| `CACHE_TTL_USER_INFO` | Auth | Máximo de segundos em que o Auth guarda o perfil de um usuário no seu cache. | `900` | Não |
| `CACHE_TTL_USER_PERMISSIONS` | Auth | Máximo de segundos em que o Auth guarda as permissões de um usuário no seu cache. O Auth usa no máximo `60`. | `1800` | Não |
| `CACHE_TTL_ORG_PERMISSIONS` | Auth | Segundos em que o Auth guarda as permissões de uma organização em memória. | `15` | Não |
| `CACHE_LOADER_TIMEOUT_ORG_PERMISSIONS` | Auth | Segundos que o Auth espera pelo Caradhras quando carrega as permissões de uma organização. | `10` | Não |
| `CACHE_MAX_ENTRIES_ORG_PERMISSIONS` | Auth | Organizações que o cache em memória comporta. | `1024` | Não |

## Licença

Leia [License Manager](https://docs.lerian.studio/pt/platform/licensing/license-manager.md) para os dois valores.

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `LICENSE_KEY` | Ambos | Sua chave de licença da Lerian. Sensível. | — | Sim |
| `ORGANIZATION_IDS` | Ambos | As organizações que a chave cobre. | — | Sim |

## Telemetria

| Variável | Componente | Descrição | Padrão | Obrigatória |
| - | - | - | - | - |
| `ENABLE_TELEMETRY` | Ambos | Envia traces, métricas e logs pelo OpenTelemetry. | `false` | Não |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Ambos | Endereço do coletor do OpenTelemetry. | — | Com telemetria |
| `OTEL_RESOURCE_SERVICE_NAME` | Ambos | Nome do serviço na telemetria. | Auth: `plugin-auth`. Identity: `plugin-identity`. | Não |
| `OTEL_RESOURCE_DEPLOYMENT_ENVIRONMENT` | Ambos | Rótulo de ambiente na telemetria. | — | Não |
| `OTEL_LIBRARY_NAME` | Ambos | Nome de instrumentação na telemetria e nos logs. | — | Não |

## Descoberta de serviços

Os dois componentes leem as variáveis compartilhadas de descoberta de serviços `SD_*` em [Configuração essencial de BYOC](https://docs.lerian.studio/pt/reference/byoc-configuration.md). Com a descoberta ligada, o Auth e o Identity encontram o Caradhras pelo Consul, e o Identity também encontra o Auth. Quando a descoberta não dá resposta, eles usam `AUTHORIZER_ADDRESS` e `PLUGIN_AUTH_ADDRESS`.


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