103 lines
5.6 KiB
Plaintext
103 lines
5.6 KiB
Plaintext
# ===== Runtime =====
|
|
NODE_ENV=development
|
|
PORT=4040
|
|
AUTH_LOCAL_PORT=4040 # coincide con 'expose' del servicio auth
|
|
|
|
# ===== Session (usa el Redis del stack) =====
|
|
# Para DEV podemos reutilizar el Redis de Authentik. En prod conviene uno separado.
|
|
SESSION_SECRET=pon-una-clave-larga-y-unica
|
|
REDIS_URL=redis://authentik-redis:6379
|
|
|
|
# ===== DB principal (metadatos de SuiteCoffee) =====
|
|
# Usa el alias de red del servicio 'db' (compose: aliases [dev-db])
|
|
DB_HOST=dev-db
|
|
DB_PORT=5432
|
|
DB_NAME=dev-suitecoffee
|
|
DB_USER=dev-user-suitecoffee
|
|
DB_PASS=dev-pass-suitecoffee
|
|
|
|
# ===== DB tenants (Tenants de SuiteCoffee) =====
|
|
TENANTS_HOST=dev-tenants
|
|
TENANTS_DB=dev-postgres
|
|
TENANTS_USER=dev-user-postgres
|
|
TENANTS_PASS=dev-pass-postgres
|
|
TENANTS_PORT=5432
|
|
|
|
TENANT_INIT_SQL=/home/mateo/SuiteCoffee/services/auth/src/db/initTenant.sql
|
|
# TENANT_INIT_SQL=~/SuiteCoffee/services/app/src/db/01_init.sql
|
|
|
|
# ===== (Opcional) Colores UI, si alguna vista los lee =====
|
|
COL_PRI=452D19 # Marrón oscuro
|
|
COL_SEC=D7A666 # Crema / Café
|
|
COL_BG=FFA500 # Naranja
|
|
|
|
# ===== Authentik — Admin API (server-to-server dentro de la red) =====
|
|
# Usa el alias de red del servicio 'authentik' y su puerto interno 9000
|
|
AUTHENTIK_BASE_URL=http://authentik:9000
|
|
AUTHENTIK_TOKEN=eE3bFTLd4Rpt3ZkcidTC1EppDYMIr023ev3SXt4ImHynOfAGRVtAZVBXSNxj
|
|
AUTHENTIK_DEFAULT_GROUP_NAME=suitecoffee-users
|
|
|
|
# ===== OIDC (DEBE coincidir con el Provider) =====
|
|
# DEV (todo dentro de la red de Docker):
|
|
# - El auth service redirige al navegador a este issuer. Si NO tenés reverse proxy hacia Authentik,
|
|
# esta URL interna NO será accesible desde el navegador del host. En ese caso, ver nota más abajo.
|
|
OIDC_ISSUER=https://authentik.suitecoffee.mateosaldain.uy/application/o/suitecoffee/
|
|
OIDC_CLIENT_ID=ydnp9s9I7G4p9Pwt5OsNlcpk1VKB9auN7AxqqNjC
|
|
OIDC_CLIENT_SECRET=yqdI00kYMeQF8VdmhwN5QWUzPLUzRBYeeAH193FynuVD19mo1nBRf5c5IRojzPrxDS0Hk33guUwHFzaj8vjTbTRetwK528uNJ6BfrYGUN2vzxgdMHFLQOHSTR0gR1LtG
|
|
|
|
# Redirect URI que definiste en el Provider. Usa el alias de red del servicio 'auth' (dev-auth)
|
|
# Si accedés desde el host sin proxy, usa mejor http://localhost:4040/auth/callback y añadilo al Provider.
|
|
OIDC_REDIRECT_URI=https://suitecoffee.mateosaldain.uy/auth/callback
|
|
|
|
# Cómo querés que maneje la contraseña Authentik para usuarios NUEVOS creados por tu backend:
|
|
# - TEMP_FORCE_CHANGE: crea un password temporal y obliga a cambiar en el primer login (recomendado si usás login con usuario/clave)
|
|
# - INVITE_LINK: envías/entregás un link de “establecer contraseña” (necesita flow de Enrollment/Recovery y SMTP configurado)
|
|
# - SSO_ONLY: no setea password local; login solo por Google/Microsoft/WebAuthn
|
|
AK_PASSWORD_MODE=TEMP_FORCE_CHANGE
|
|
|
|
# (Opcional) longitud del password temporal
|
|
AK_TEMP_PW_LENGTH=12
|
|
|
|
|
|
# 3) Configuración en Authentik (por modo)
|
|
# A) TEMP_FORCE_CHANGE (password temporal + cambio obligado)
|
|
# Flow de Autenticación
|
|
# Entra al Admin de Authentik → Flows → tu Authentication Flow (el que usa tu Provider OIDC).
|
|
# Asegurate de que tenga:
|
|
# Identification Stage (identifica por email/username),
|
|
# Password Stage (para escribir contraseña).
|
|
# Con eso, cuando el usuario entre con la clave temporal, Authentik le pedirá cambiarla.
|
|
# Provider OIDC (suitecoffee)
|
|
# Admin → Applications → Providers → tu provider de SuiteCoffee → Flow settings
|
|
# Authentication flow: seleccioná el de arriba.
|
|
# (Opcional) Email SMTP
|
|
# Si querés notificar o enviar contraseñas temporales/enlaces desde Authentik, configura SMTP en Admin → System → Email.
|
|
# Resultado: el usuario se registra en tu app → lo redirigís a /auth/login → Authentik pide email+clave → entra con la temporal → obliga a cambiarla → vuelve a tu app.
|
|
|
|
# B) INVITE_LINK (enlace de “establecer contraseña”)
|
|
# SMTP
|
|
# Admin → System → Email: configura SMTP (host, puerto, credenciales, remitente).
|
|
# Flow de Enrollment/Recovery
|
|
# Admin → Flows → clona/crea un flow de Enrollment/Recovery con:
|
|
# Identification Stage (email/username),
|
|
# Email Stage (envía el link con token),
|
|
# Password Stage (para que defina su clave),
|
|
# (opcional) Prompt/ User Write para confirmar.
|
|
# Guardalo con un Slug fácil (ej. enroll-set-password).
|
|
# Cómo usarlo
|
|
# Caminos:
|
|
# Manual desde UI: Admin → Directory → Invitations → crear invitación, elegir Flow enroll-set-password, seleccionar usuario, copiar link y enviar.
|
|
# Automático (más adelante): podemos automatizar por API la creación de una Invitation y envío de mail. (Si querés, te armo el helper akCreateInvitation(userUUID, flowSlug).)
|
|
# Resultado: el registro en tu app no pone password; el usuario recibe un link para establecer la clave y desde ahí inicia normalmente.
|
|
|
|
# C) SSO_ONLY (sin contraseñas locales)
|
|
# Configura un Source (Google Workspace / Microsoft Entra / WebAuthn):
|
|
# Admin → Directory → Sources: crea el Source (por ejemplo, Google OAuth o Entra ID).
|
|
# Activa Create users (para que se creen en Authentik si no existen).
|
|
# Mapea email y name.
|
|
# Authentication Flow
|
|
# Agrega una Source Stage del proveedor (Google/Microsoft/WebAuthn) en tu Authentication Flow.
|
|
# (Podés dejar Password Stage deshabilitado si querés solo SSO.)
|
|
# Provider OIDC
|
|
# En tu Provider suitecoffee, seleccioná ese Authentication Flow.
|
|
# Resultado: el usuario se registra en tu app → al entrar a /auth/login ve botón Iniciar con Google/Microsoft → hace click, vuelve con sesión, tu backend setea sc.sid. |