docs(deploy): env de testing con auth real vía Hub (SSO relay, realm master, client aduanasoft)

Corrige la receta de integración según el código del Hub: single-realm (master) +
single-client (aduanasoft), HUB_URL para el sso-exchange del relay, y URLs del
dominio del CRM. Secretos en blanco (los pone el operador en el server).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aduanasoft
2026-07-16 08:55:28 -06:00
parent 5a250204b5
commit f03ac38c4f

View File

@@ -1,47 +1,48 @@
# ========================================================================== # ==========================================================================
# Plantilla de entorno para testing.crm.aduanasoft.com (entorno de PRUEBAS) # testing.crm.aduanasoft.com — AUTH REAL vía Hub (SSO relay). Copia como `.env`
# Copia este archivo como `.env` EN EL SERVIDOR y rellena los valores reales. # EN EL SERVIDOR y rellena los <...>. NO subas el .env con secretos al repo.
# NO subas el .env con secretos al repositorio. #
# Flujo: el Hub (App Launcher) redirige a /auth/sso?relay=<uuid>; el CRM
# intercambia el relay en POST {HUB_URL}/api/v1/auth/sso-exchange y entra.
# ========================================================================== # ==========================================================================
# ---- SEGURIDAD (CRÍTICO) ---- # ---- SEGURIDAD ----
# Debe ser 'production'. NUNCA 'development' en un dominio público: el RBAC
# hace auto-bootstrap de super_admin al usuario en 'development' (cualquiera
# quedaría como administrador total).
ENVIRONMENT=production ENVIRONMENT=production
# NUNCA 'true' en público: activa el login local "Entrar como dev" y salta Keycloak.
DEV_LOCAL_AUTH=false DEV_LOCAL_AUTH=false
# Genera uno fuerte: openssl rand -hex 32 SECRET_KEY=<genera: openssl rand -hex 32>
SECRET_KEY=CHANGE_ME_openssl_rand_hex_32
# ---- Autenticación (Keycloak / Hub) ---- # ---- Workspace / Hub (DEBE ser el MISMO Hub que generó el relay) ----
HUB_URL=https://CHANGE_ME_hub_o_keycloak/ # Confirmar el host real de producción (workspace.aduanasoft.com o hub.aduanasoft.com):
# (agrega aquí los claims/realm/cliente que use tu integración real) WORKSPACE_URL=https://<hub-produccion>
HUB_URL=https://<hub-produccion>
INTERNAL_HUB_URL=https://<hub-produccion>
VITE_HUB_URL=https://<hub-produccion>
# ---- Keycloak (arquitectura single-realm / single-client) ----
KEYCLOAK_URL=https://<keycloak-produccion>/kcauth
VITE_KEYCLOAK_URL=https://<keycloak-produccion>/kcauth
KEYCLOAK_REALM=master
KEYCLOAK_CLIENT_ID=aduanasoft
KEYCLOAK_CLIENT_SECRET=<secret del producto provisionado — lo pones tú>
# ---- Dominio del CRM (mismo origen app + API vía nginx) ----
ORIGIN=https://testing.crm.aduanasoft.com
APP_PUBLIC_URL=https://testing.crm.aduanasoft.com
VITE_API_URL=https://testing.crm.aduanasoft.com/api/
INTERNAL_API_URL=http://backend:8000/api/
CORS_ORIGINS=https://testing.crm.aduanasoft.com
# ---- Base de datos (PostgreSQL) ---- # ---- Base de datos (PostgreSQL) ----
CORE_DB_HOST=postgres CORE_DB_HOST=postgres
CORE_DB_PORT=5432 CORE_DB_PORT=5432
CORE_DB_NAME=crm_core CORE_DB_NAME=crm_core
CORE_DB_USER=CHANGE_ME CORE_DB_USER=<usuario>
CORE_DB_PASSWORD=CHANGE_ME POSTGRES_APP_PASSWORD=<password fuerte>
# ---- Almacenamiento de objetos (MinIO / S3) ---- # ---- MinIO / S3 ----
S3_ENDPOINT_URL=http://minio:9000 S3_ENDPOINT_URL=http://minio:9000
S3_ACCESS_KEY=CHANGE_ME S3_ACCESS_KEY=<access>
S3_SECRET_KEY=CHANGE_ME S3_SECRET_KEY=<secret>
S3_BUCKET=crm S3_BUCKET=crm
S3_REGION=us-east-1 S3_REGION=us-east-1
S3_USE_SSL=false S3_USE_SSL=false
# ---- URLs públicas / CORS (mismo origen que nginx) ----
APP_PUBLIC_URL=https://testing.crm.aduanasoft.com
CORS_ORIGINS=https://testing.crm.aduanasoft.com
# ---- Frontend (SvelteKit adapter-node) ----
# API en el mismo origen a través de nginx (/api/):
VITE_API_URL=https://testing.crm.aduanasoft.com/api/
# Llamadas servidor->servidor dentro de la red de Docker:
BACKEND_URL=http://backend:8000
INTERNAL_API_URL=http://backend:8000/api/
# adapter-node valida el Origin contra ORIGIN; debe ser la URL pública:
ORIGIN=https://testing.crm.aduanasoft.com