Variables de entorno que lee identity-svc.
scripts/docs/env.schema.tsPágina generada desde
scripts/docs/env.schema.ts. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
56 variables.
| Variable | Qué controla | Defecto | Marcas | La leen |
|---|---|---|---|---|
DATABASE_PASSWORD | Contraseña de PostgreSQL. Se une a DATABASE_URL al arrancar; en producción la URL no puede llevar contraseña embebida. | — | secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
DATABASE_URL | URL de PostgreSQL del servicio (usuario del servicio, sin contraseña). | — | obligatoria | catalog-svc, cli, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
IDENTITY_ACCESS_TOKEN_TTL_S | Vida de un access token de identity-svc, en segundos. | 900 | — | identity-svc |
IDENTITY_ADMIN_SUBJECTS | Sujetos OIDC (lista separada por comas) con rol admin (roles desde config, TS2-P3-05). | — | — | identity-svc |
IDENTITY_ALLOWED_RETURN_ORIGINS | Orígenes (separados por comas) a los que identity-svc permite volver tras el login. | — | obligatoria | identity-svc |
IDENTITY_BFF_ACCESS_TOKEN_TTL_S | Vida del access token que el BFF de la web obtiene para una sesión de navegador, en segundos. No puede superar el máximo del código. | el máximo de MAX_BFF_ACCESS_TOKEN_TTL_S | — | identity-svc |
IDENTITY_BROWSER_ROTATE_S | Cada cuánto rota la sesión de navegador (cookie __Host-), en segundos. | 900 | — | identity-svc |
IDENTITY_CSRF_KEY | Clave del token CSRF de las sesiones de navegador (dec-0118). | — | obligatoria, secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
IDENTITY_DEVICE_ACCESS_TOKEN_TTL_S | Vida del access token de un dispositivo del device grant (RFC 8628), en segundos. Sin valor, la de IDENTITY_ACCESS_TOKEN_TTL_S. | — | — | identity-svc |
IDENTITY_DEVICE_CODE_IP_MAX | Códigos de dispositivo (POST /auth/device/code, anónimo) que una IP puede pedir por ventana. | 10 | — | identity-svc |
IDENTITY_DEVICE_CODE_IP_WINDOW_S | Ventana, en segundos, de IDENTITY_DEVICE_CODE_IP_MAX. | 600 | — | identity-svc |
IDENTITY_DEVICE_CODE_TTL_S | Vida, en segundos, de un código de dispositivo antes de aprobarse (un solo uso). | 600 | — | identity-svc |
IDENTITY_DEVICE_INTERVAL_S | Intervalo mínimo de sondeo del dispositivo, en segundos (RFC 8628 §3.2); sondear más rápido da slow_down. | 5 | — | identity-svc |
IDENTITY_DEVICE_MAX_PENDING | Peticiones de dispositivo pendientes máximas en toda la instalación; al llegar, 503 con Retry-After. | 1000 | — | identity-svc |
IDENTITY_DEVICE_VERIFICATION_URI | verification_uri del device grant: la página /link de la web. Sin valor, el primer origen de IDENTITY_ALLOWED_RETURN_ORIGINS más /link. | — | — | identity-svc |
IDENTITY_DIRECT_CLIENTS | true si identity-svc recibe a los clientes sin proxy delante (la IP del socket cuenta). Alternativa a IDENTITY_TRUSTED_PROXIES (TS2-P2-02). | — | — | identity-svc |
IDENTITY_DISABLED_SUBJECTS | Sujetos OIDC (separados por comas) bloqueados: no pueden iniciar sesión. | — | — | identity-svc |
IDENTITY_INVITE_CREATE_RATE_LIMIT_MAX | Invitaciones que un actor puede crear por hora. | 20 | — | identity-svc |
IDENTITY_INVITE_MAX_ACTIVE | Invitaciones activas (sin usar, sin caducar, sin revocar) a la vez. | 100 | — | identity-svc |
IDENTITY_INVITE_MAX_TTL_S | Vida máxima de una invitación, en segundos. | 604800 | — | identity-svc |
IDENTITY_LOGIN_TTL_S | Plazo para completar un login OIDC iniciado, en segundos. | 600 | — | identity-svc |
IDENTITY_MAX_DEVICE_SESSIONS_PER_ACTOR | Sesiones de dispositivo (CLI, TV) vivas por actor; tope aparte del de navegador: al superarlo cae el dispositivo más antiguo, nunca una sesión de navegador. | 5 | — | identity-svc |
IDENTITY_MAX_SESSIONS_PER_ACTOR | Sesiones de navegador vivas por actor; la más antigua se revoca al superar el tope (los dispositivos tienen su propio tope). | 10 | — | identity-svc |
IDENTITY_MEMBER_SUBJECTS | Sujetos OIDC (separados por comas) con rol member. | — | — | identity-svc |
IDENTITY_OWNER_SUBJECTS | Sujetos OIDC (separados por comas) con rol owner. | — | — | identity-svc |
IDENTITY_PAT_ACCESS_TOKEN_TTL_S | Vida, en segundos, del access token que se canjea por una API key (POST /auth/token). No puede superar 300. | 300 | — | identity-svc |
IDENTITY_PAT_DEFAULT_TTL_S | Caducidad por defecto de una API key personal, en segundos (obligatoria: no hay «nunca caduca»). | 2592000 | — | identity-svc |
IDENTITY_PAT_MAX_ACTIVE | API keys vivas máximas por cuenta. | 20 | — | identity-svc |
IDENTITY_PAT_MAX_TTL_S | Caducidad máxima de una API key personal, en segundos. | 7776000 | — | identity-svc |
IDENTITY_PROXY_PROOF | Prueba que el proxy de entrada añade a cada petición hacia identity-svc: sin ella, X-Forwarded-For no cuenta (TS3-P2-01). | — | secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
IDENTITY_PUBLIC_URL | Origen público de identity-svc (sin path). Es el issuer de los tokens que emite. | — | obligatoria | identity-svc |
IDENTITY_RATE_LIMIT_MAX | Peticiones por ventana y cliente en /auth/*. | 30 | — | identity-svc |
IDENTITY_RATE_LIMIT_WINDOW_S | Ventana del rate-limit de /auth/*, en segundos. | 60 | — | identity-svc |
IDENTITY_REFRESH_GRACE_S | Margen en el que un refresh token ya rotado sigue valiendo (peticiones concurrentes), en segundos. | 10 | — | identity-svc |
IDENTITY_ROLE_SOURCE | De dónde sale el rol de una identidad no listada (dec-0125 §5.3): config+db (default) deja que su invitación le dé member; config la deja restricted. | config+db | — | identity-svc |
IDENTITY_SESSION_IDLE_TTL_S | Inactividad máxima de una sesión, en segundos. No puede superar IDENTITY_SESSION_MAX_TTL_S. | 2592000 | — | identity-svc |
IDENTITY_SESSION_MAX_TTL_S | Vida máxima absoluta de una sesión, en segundos. | 7776000 | — | identity-svc |
IDENTITY_SESSION_RATE_LIMIT_MAX | Peticiones por ventana y sesión (bucket por sesión además del de cliente). | 600 | — | identity-svc |
IDENTITY_SIGNING_KEY | Clave privada (PEM, Ed25519) con la que identity-svc firma los JWT (EdDSA). | — | obligatoria, secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
IDENTITY_TRUSTED_PROXIES | IPs o CIDR (separados por comas) de los proxies de confianza delante de identity-svc. En producción exige IDENTITY_PROXY_PROOF. | — | — | identity-svc |
NATS_URL | URL del servidor NATS del bus (spire, dec-0120). | nats://localhost:4222 | — | @styx/bus, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc |
NODE_ENV | production activa las reglas de producción: secretos sólo por _FILE, sin contraseñas en URLs, detalle de validación mínimo y NKey obligatoria. | — | — | @styx/bus, @styx/observability, @styx/service-http, catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
OIDC_CLIENT_ID | Client id de identity-svc en el IdP OIDC (Pocket ID u otro). | — | obligatoria | identity-svc |
OIDC_CLIENT_SECRET | Client secret de identity-svc en el IdP. Opcional: sin él, cliente público con PKCE. | — | secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
OIDC_ISSUER | URL del issuer OIDC (descubrimiento en /.well-known/openid-configuration). | — | obligatoria | identity-svc |
OIDC_SCOPES | Scopes pedidos al IdP, separados por espacios. | openid profile email | — | identity-svc |
OTEL_INGEST_TOKEN | Token con el que los servicios y el daemon se autentican contra el colector OTel. El daemon lo lee de OTEL_INGEST_TOKEN_FILE; en claro lo rechaza. | — | secreto (_FILE) | @styx/observability, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc |
PORT | Puerto HTTP del servicio. | catalog 3000 · playback 3001 · sources 3002 · realtime 3003 · workers 3004 · identity 3005 | — | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, workers-svc |
SPIRE_NATS_NKEY_SEED | Semilla NKey del usuario NATS del servicio (ACL por servicio generada de BUS_ROUTES). Obligatoria en producción. | — | secreto (_FILE) | @styx/bus, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc |
SPIRE_SEED | Semilla de la identidad de spire del servicio: firma los sobres del bus. | — | obligatoria, secreto (_FILE) | @styx/bus, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc |
STYX_DB_RUNTIME_ROLE | Rol PostgreSQL sólo DML con el que corre el servicio; el paso de migración le concede permisos. El runtime nunca migra. | — | — | catalog-svc, identity-svc, sources-svc |
STYX_SCT_SIGNING_KEY | Semilla Ed25519 (base64url) con la que playback-svc firma las SCT. | — | secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
STYX_WEB_PROXY_PROOF | Prueba que el proxy de entrada añade a las peticiones hacia la web. | — | secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
TELEMETRY_PSEUDONYM_KEY | Clave HMAC con la que la telemetría pseudonimiza los ids de actor (styx.actor.pseudo_id, dec-0135 §D7). Sin ella, ningún id de actor ni su pseudónimo sale en trazas ni logs. | — | secreto (_FILE) | @styx/observability, catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
VALKEY_PASSWORD | Contraseña de Valkey (sesiones y rate-limit de identity-svc). | — | secreto (_FILE) | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
VALKEY_URL | URL de Valkey (sin contraseña). | — | obligatoria | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |