> ## 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://`. La respuesta de `/readyz` informa el valor. | `local` | No |
| `SWAGGER_ENABLED` | Auth | Sirve el documento OpenAPI de Auth. | `true` | 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`. | — | 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. Si no, responden `404`. | `false` | 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. | `false` | Con `DEPLOYMENT_MODE=saas` |
| `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 los dos valores.

| Variable | Componente | Descripción | Valor predeterminado | Obligatoria |
| - | - | - | - | - |
| `LICENSE_KEY` | Ambos | Tu clave de licencia de Lerian. Sensible. | — | Sí |
| `ORGANIZATION_IDS` | Ambos | Las organizaciones que cubre la clave. | — | Sí |

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