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

# Variables de entorno de Access Manager

> Las variables de entorno que leen los componentes Auth e Identity de Access Manager, con el valor predeterminado de cada una y lo que cambia.

Access Manager ejecuta dos componentes, **Auth** e **Identity**. La columna **Componente** indica qué componente lee la variable. Los valores marcados como sensibles son secretos: guárdalos en tu bóveda de secretos, nunca en un archivo de tu repositorio ni en una imagen.

Para instalar o actualizar Access Manager, consulta el [README del chart de Access Manager](https://github.com/LerianStudio/helm/tree/main/charts/plugin-access-manager).

## Servicio

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `SERVER_ADDRESS` | Ambos | Dirección de escucha, como `:4000`. | — | Sí |
| `ENV_NAME` | Ambos | Nombre del entorno, como `production`, `staging` o `local`. Define el nivel de log predeterminado. | — | No |
| `LOG_LEVEL` | Ambos | Nivel de log: `debug`, `info`, `warn` o `error`. Un valor no válido detiene el arranque. | `info` cuando `ENV_NAME` es `production`, `staging` o `uat`. `debug` en los demás casos. | No |
| `DEPLOYMENT_MODE` | Ambos | Modo de despliegue, como `byoc` o `saas`. Con `saas`, el componente no arranca a menos que `REDIS_TLS` sea `true` y `AUTHORIZER_ADDRESS` use `https://`. | `local` | No |
| `SWAGGER_ENABLED` | Auth | Sirve el documento OpenAPI de Auth. | `true` | No |
| `HEALTH_PORT` | Ambos | Puerto del listener interno de health, de `1` a `65535`. Sirve `/readyz`, `/health`, `/version` y `/metrics`. Sin él, el componente no tiene endpoint de readiness. Los puertos principales mantienen `/health` y `/version`. Un valor no válido detiene el arranque. Mantén este puerto fuera del ingress público. Consulta [Salud y readiness](https://docs.lerian.studio/es/reference/health-and-readiness.md). | — | Para los probes de readiness |
| `SHUTDOWN_DRAIN_DELAY` | Ambos | Tiempo que el componente sigue atendiendo después de una señal de parada, como una duración de Go, por ejemplo `15s`. Un valor negativo o no válido detiene el arranque. | `15s` en un pod de Kubernetes. `0` en los demás casos. | No |
| `SHUTDOWN_TIMEOUT` | Ambos | Tiempo total de los pasos de apagado que siguen al retraso de drenaje, como una duración de Go positiva. Un valor no válido detiene el arranque. | `30s` | No |

## Conexión con Caradhras

Lee [Caradhras en Access Manager](https://docs.lerian.studio/es/platform/access-manager/caradhras-in-access-manager.md) para saber cómo los dos componentes usan el backend de identidad.

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `AUTHORIZER_ADDRESS` | Ambos | URL base de Caradhras. Auth no arranca con una dirección `http://` a menos que `ENV_NAME` sea `development`, `staging` o `local`. Con `PLUGIN_AUTH_ENABLED=true`, Identity tampoco arranca cuando `AUTH_M2M_JWKS_URL`, o esta dirección cuando esa variable no está definida, usa `http://` con un host distinto de localhost, a menos que `ENV_NAME` sea `development`, `staging` o `local`. | — | Sí |
| `AUTHORIZER_CLIENT_ID` | Ambos | Client ID de la aplicación de Caradhras que usa Access Manager. | — | Sí |
| `AUTHORIZER_CLIENT_SECRET` | Ambos | Client secret de esa aplicación. Sensible. | — | Sí |
| `AUTHORIZER_APPLICATION_NAME` | Ambos | Nombre de esa aplicación en Caradhras. | — | Sí |
| `AUTHORIZER_ORGANIZATION_NAME` | Ambos | Organización de Caradhras de una instalación single-tenant. | `lerian` | No |
| `MULTI_TENANT_ENABLED` | Ambos | Habilita el modo multi-tenant. Auth no arranca cuando `PLUGIN_AUTH_SSO_STATIC_ORGANIZATION` también está definida. | `false` | No |
| `AUTHORIZER_JWT_CERTIFICATE` | Ambos | Certificado, en PEM, que verifica la firma de los tokens que emite Caradhras. Sin él, el componente usa el certificado incluido en la imagen. Un valor inutilizable detiene el arranque. | — | No |

## Llamadas a Caradhras

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `HTTP_CLIENT_TIMEOUT_SEC` | Ambos | Segundos que puede durar una llamada a Caradhras. | `30` | No |
| `HTTP_CLIENT_MAX_IDLE_CONNS` | Ambos | Conexiones inactivas que se mantienen abiertas. | `100` | No |
| `HTTP_CLIENT_MAX_IDLE_CONNS_PER_HOST` | Ambos | Conexiones inactivas que se mantienen abiertas hacia un host. | Auth: `10`. Identity: `100`. | No |
| `HTTP_CLIENT_IDLE_CONN_TIMEOUT_SEC` | Ambos | Segundos antes de que el componente cierre una conexión inactiva. | `90` | No |
| `CIRCUIT_BREAKER_ENABLED` | Ambos | Activa el circuit breaker en las llamadas a Caradhras. | `true` | No |
| `CIRCUIT_BREAKER_CONSECUTIVE_FAILURES` | Ambos | Fallas consecutivas que abren el breaker. | `5` | No |
| `CIRCUIT_BREAKER_FAILURE_RATIO` | Ambos | Proporción de llamadas fallidas que abre el breaker, como `0.5`. | `0.5` | No |
| `CIRCUIT_BREAKER_MIN_REQUESTS_FOR_RATIO` | Ambos | Llamadas que deben ocurrir antes de que se aplique la proporción de fallas. | `10` | No |
| `CIRCUIT_BREAKER_INTERVAL_SEC` | Ambos | Segundos después de los cuales el breaker cerrado reinicia sus conteos. | `60` | No |
| `CIRCUIT_BREAKER_TIMEOUT_SEC` | Ambos | Segundos que el breaker queda abierto antes de volver a probar Caradhras. | `30` | No |
| `CIRCUIT_BREAKER_MAX_REQUESTS_HALF_OPEN` | Ambos | Llamadas permitidas mientras el breaker vuelve a probar Caradhras. | `3` | No |
| `CIRCUIT_BREAKER_HEALTH_CHECK_INTERVAL_SEC` | Ambos | Segundos entre las verificaciones de salud de Caradhras. | `30` | No |
| `CIRCUIT_BREAKER_HEALTH_CHECK_TIMEOUT_SEC` | Ambos | Segundos que puede durar una verificación de salud. | `10` | No |

## Inicio de sesión

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `MFA_ENABLED` | Auth | Declara que esta instalación usa autenticación multifactor. Con `true` y un `MFA_SECRET` vacío, Auth registra un error en el arranque. Lee [Requisitos de despliegue de MFA](https://docs.lerian.studio/es/platform/access-manager/features/mfa/deployment.md). | `false` | No |
| `MFA_SECRET` | Auth | Secreto con el que Auth firma los tokens de inicio de sesión con MFA y con passkey. Sin él, esos inicios de sesión responden `503` con `AUT-0028`. Sensible. | — | Con MFA o passkeys |
| `MFA_SESSION_TTL_SEC` | Auth | Segundos durante los que una sesión de MFA sigue válida. | `300` | No |
| `MFA_MAX_ATTEMPTS` | Auth | Verificaciones de código MFA fallidas permitidas para un usuario. | `5` | No |
| `MFA_MAX_RESEND_ATTEMPTS` | Auth | Nuevos códigos MFA que un usuario puede pedir. | `3` | No |
| `PASSKEY_RECENT_AUTH_SEC` | Identity | Antigüedad máxima, en segundos, del token de quien llama para agregar o eliminar una passkey. Lee [Passkeys](https://docs.lerian.studio/es/platform/access-manager/features/passkeys/overview.md). | `600` | No |
| `PLUGIN_AUTH_SSO_CALLBACK_URL` | Ambos | Dirección del callback de SSO de Console, adonde el proveedor de identidad devuelve el navegador. Usa el mismo valor en Auth y en Identity. Auth no arranca cuando el valor está definido y no es una URL `http` o `https` absoluta con una ruta. Lee [Requisitos de despliegue de SSO](https://docs.lerian.studio/es/platform/access-manager/features/sso/deployment.md). | — | Con SSO |
| `PLUGIN_AUTH_SSO_STATIC_ORGANIZATION` | Auth | Organización de Caradhras para cada inicio de sesión SSO de una instalación single-tenant. Sin ella, Auth encuentra la organización a partir del correo del usuario. | — | No |
| `PLUGIN_AUTH_SSO_PREFLIGHT_ALLOW_INSECURE` | Identity | Con `true`, la verificación previa de SSO puede llamar a un proveedor de identidad por `http://`. Identity registra una advertencia en el arranque mientras está activa. | `false` | No |
| `PLUGIN_AUTH_SSO_ALLOW_PRIVATE_NETWORKS` | Identity | Con `true`, la verificación previa de SSO y el descubrimiento de un proveedor de identidad pueden alcanzar direcciones de red privada. Identity registra una advertencia en el arranque mientras está activa. | `false` | No |
| `ENABLE_FORGOT_PASSWORD` | Identity | Con `true`, Identity sirve las dos rutas de restablecimiento de contraseña. Con `false` o sin valor, responden `404`. | `false` | No |

## Primer administrador de la Console

En modo single-tenant, cuando defines cualquiera de estas variables, Identity le pide a Caradhras, una sola vez, que cree el primer administrador de la Console: el usuario `admin` en la organización de la instalación, en el grupo `admin-group`. Caradhras registra que el paso se ejecutó. Eliminar usuarios después nunca vuelve a crear al administrador. Identity no informa listo hasta que Caradhras acepte la solicitud. El modo multi-tenant no ejecuta este paso.

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `ADMIN_PASSWORD` | Identity | Contraseña del primer administrador de la Console. Caradhras rechaza una contraseña que no cumpla sus reglas de contraseña. Una instalación en la que Caradhras ya ejecutó el paso no la necesita. Sensible. | — | En la primera ejecución |
| `ADMIN_EMAIL` | Identity | Dirección de correo electrónico de ese administrador. | `admin@midaz.tech` | No |
| `ADMIN_DISPLAY_NAME` | Identity | Nombre para mostrar de ese administrador. | `Admin` | No |

## Protección de la API de Identity

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `PLUGIN_AUTH_ENABLED` | Identity | Con `true` y una dirección de Auth, Identity envía el token de quien llama a Auth para la verificación de permisos en sus rutas protegidas. De lo contrario, Identity no llama a Auth. | `false` | No |
| `PLUGIN_AUTH_ADDRESS` | Identity | Dirección de Auth. | — | Con `PLUGIN_AUTH_ENABLED=true` |
| `AUTH_REQUIRED` | Identity | Con `true`, las rutas protegidas de Identity responden `503` cuando `PLUGIN_AUTH_ENABLED` no es `true` o `PLUGIN_AUTH_ADDRESS` está vacío. Lee [Aplicación a nivel de producto](https://docs.lerian.studio/es/platform/access-manager/product-level-enforcement.md). | `false` | No |
| `AUTH_M2M_JWKS_URL` | Identity | Dirección del conjunto de claves que usa Identity para verificar tokens de aplicación. Sin ella, Identity usa `AUTHORIZER_ADDRESS` seguido de `/.well-known/jwks`. | — | No |
| `AUTH_M2M_JWKS_REFRESH_INTERVAL` | Identity | Con qué frecuencia Identity vuelve a cargar ese conjunto de claves, como una duración, por ejemplo `5m`. | `5m` | No |
| `AUTH_JWKS_CACHE_TTL` | Auth | Cuánto tiempo guarda Auth el conjunto de claves de Caradhras que sirve a otros servicios de Lerian, como una duración, por ejemplo `5m`. | `5m` | No |
| `MAX_PAGINATION_LIMIT` | Identity | Mayor `limit` que acepta una solicitud de listado. | `100` | No |
| `MAX_PAGINATION_PAGE` | Identity | Mayor `page` que acepta una solicitud de listado. | `1000000` | No |

## Red

Lee [Requisitos de despliegue (BYOC)](https://docs.lerian.studio/es/platform/access-manager/features/ip-allowlist/deployment.md) y [Lista de IP permitidas del tenant](https://docs.lerian.studio/es/platform/access-manager/product-level-enforcement.md#tenant-ip-allowlist) antes de definir estas variables.

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `TRUSTED_PROXIES` | Ambos | Rangos CIDR de los proxies delante del componente, separados por comas. Un valor mal formado detiene el arranque. | — | No |
| `PLATFORM_INTERNAL_CIDRS` | Ambos | Rangos CIDR desde los que los servicios de la propia plataforma llaman a Caradhras, separados por comas. Usa el mismo valor en Auth, Identity y Caradhras. Un valor mal formado detiene el arranque. | — | No |

## Rate limits

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `RATE_LIMIT_ENABLED` | Ambos | Activa los rate limits. | `false` | No |
| `RATE_LIMIT_MAX` | Ambos | Solicitudes que una dirección de cliente puede hacer en una ventana. | `100` | No |
| `RATE_LIMIT_WINDOW_SEC` | Ambos | Duración de esa ventana, en segundos. | `60` | No |
| `RATE_LIMIT_AUTH_MAX` | Auth | Solicitudes por ventana en las rutas de token, refresh, logout, SSO, MFA e inicio de sesión con passkey. | `10` | No |
| `RATE_LIMIT_AUTH_WINDOW_SEC` | Auth | Duración de esa ventana, en segundos. | `60` | No |
| `RATE_LIMIT_PERMISSION_MAX` | Auth | Solicitudes por ventana en `/v1/authorize`, `/v1/permissions` y `/v1/userinfo`. | `60` | No |
| `RATE_LIMIT_PERMISSION_WINDOW_SEC` | Auth | Duración de esa ventana, en segundos. | `60` | No |
| `RATE_LIMIT_REDIS_TIMEOUT_MS` | Ambos | Milisegundos que una verificación de rate limit espera a Valkey. | `500` | No |

## Valkey

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `REDIS_HOST` | Ambos | Dirección de Valkey como `host:port`. Con varias direcciones separadas por comas, el componente se conecta a un clúster, o a Sentinel cuando `REDIS_MASTER_NAME` está definido. | — | Sí |
| `REDIS_MASTER_NAME` | Ambos | Nombre del master de Sentinel. | — | Con Sentinel |
| `REDIS_PASSWORD` | Ambos | Contraseña de Valkey. Sensible. | — | No |
| `REDIS_DB` | Ambos | Número de base de datos. | `0` | No |
| `REDIS_PROTOCOL` | Ambos | Versión del protocolo RESP. | `3` | No |
| `REDIS_TLS` | Ambos | Se conecta a Valkey por TLS. Sin él, el componente rechaza la conexión, salvo que `ALLOW_INSECURE_REDIS` o `ALLOW_INSECURE_TLS` sea `true`. | `false` | Con `DEPLOYMENT_MODE=saas` |
| `ALLOW_INSECURE_REDIS` | Ambos | Permite la conexión a Valkey sin TLS. El componente registra una advertencia al arrancar. | `false` | No |
| `ALLOW_INSECURE_TLS` | Ambos | Mismo efecto que `ALLOW_INSECURE_REDIS` en la conexión a Valkey. | `false` | No |
| `REDIS_CA_CERT` | Ambos | Certificado de la CA para esa conexión TLS, en PEM base64. | — | No |
| `REDIS_USE_GCP_IAM` | Ambos | Se autentica en Valkey con el IAM de Google Cloud en lugar de una contraseña. | `false` | No |
| `REDIS_SERVICE_ACCOUNT` | Ambos | Cuenta de servicio de Google para la autenticación por IAM. | — | Con IAM |
| `GOOGLE_APPLICATION_CREDENTIALS` | Ambos | Credenciales de Google para la autenticación por IAM. Sensible. | — | Con IAM |
| `REDIS_TOKEN_LIFETIME` | Ambos | Vigencia del token de IAM, en minutos. | `60` | No |
| `REDIS_TOKEN_REFRESH_DURATION` | Ambos | Minutos entre las renovaciones del token de IAM. Mantenlo por debajo de `REDIS_TOKEN_LIFETIME`. | `45` | No |
| `REDIS_SCAN_COUNT` | Ambos | Claves que lee cada paso de escaneo cuando el componente borra entradas del caché por patrón. | `100` | No |

## Caché de Auth

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `CACHE_TTL_ACCESS_TOKEN` | Auth | Segundos durante los que Auth guarda un access token emitido en su caché. | `300` | No |
| `CACHE_TTL_USER_INFO` | Auth | Máximo de segundos durante los que Auth guarda el perfil de un usuario en su caché. | `900` | No |
| `CACHE_TTL_USER_PERMISSIONS` | Auth | Máximo de segundos durante los que Auth guarda los permisos de un usuario en su caché. Auth usa como máximo `60`. | `1800` | No |
| `CACHE_TTL_ORG_PERMISSIONS` | Auth | Segundos durante los que Auth guarda los permisos de una organización en memoria. | `15` | No |
| `CACHE_LOADER_TIMEOUT_ORG_PERMISSIONS` | Auth | Segundos que Auth espera a Caradhras cuando carga los permisos de una organización. | `10` | No |
| `CACHE_MAX_ENTRIES_ORG_PERMISSIONS` | Auth | Organizaciones que admite el caché en memoria. | `1024` | No |

## Licencia

Lee [License Manager](https://docs.lerian.studio/es/platform/licensing/license-manager.md) para la clave.

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `LICENSE_KEY` | Ambos | Tu clave de licencia de Lerian. Vale para toda la instalación. El componente obtiene con ella un archivo de licencia firmado y lo mantiene solo en memoria, así que cada inicio lo obtiene de nuevo. Renueva el archivo cada 6 horas y, tras una renovación fallida, aproximadamente cada hora. Mientras el servicio de licencias no responde en el inicio, el componente sigue en pie, sin disponibilidad, y reintenta. Un rechazo en el inicio lo detiene. Una renovación fallida no lo detiene. Se detiene cuando el archivo que mantiene llega a su hora de parada, o cuando se revoca la licencia. Sensible. | — | Sí, a menos que `LICENSE_FILE_PATH` esté definida |
| `LICENSE_FILE_PATH` | Ambos | Ruta de un archivo de licencia firmado que Lerian emite. Cuando está definida, el componente usa el archivo sin llamada de red e ignora `LICENSE_KEY`. Un archivo que el componente rechaza detiene el inicio. | — | No |

## Telemetría

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `ENABLE_TELEMETRY` | Ambos | Envía trazas, métricas y logs por OpenTelemetry. | `false` | No |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Ambos | Dirección del colector de OpenTelemetry. | — | Con telemetría |
| `OTEL_RESOURCE_SERVICE_NAME` | Ambos | Nombre del servicio en la telemetría. | Auth: `plugin-auth`. Identity: `plugin-identity`. | No |
| `OTEL_RESOURCE_DEPLOYMENT_ENVIRONMENT` | Ambos | Etiqueta de entorno en la telemetría. | — | No |
| `OTEL_LIBRARY_NAME` | Ambos | Nombre de instrumentación en la telemetría y en los logs. | — | No |

## Descubrimiento de servicios

Los dos componentes leen las variables compartidas de descubrimiento de servicios `SD_*` en [Configuración esencial de BYOC](https://docs.lerian.studio/es/reference/byoc-configuration.md). Con el descubrimiento activo, Auth e Identity encuentran Caradhras por medio de Consul, e Identity también encuentra Auth. Cuando el descubrimiento no da respuesta, usan `AUTHORIZER_ADDRESS` y `PLUGIN_AUTH_ADDRESS`.


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