fix(e2e): prod-smoke creds via env + docs 404 esperado en production (card 64763175) - #222
SabaTech-dev wants to merge 1 commit into
Conversation
…(card 64763175) - Auth tests (Login API, Get user info, Full login flow UI) pasan a E2E_AUTH_USERNAME/E2E_AUTH_PASSWORD con test.skip si ausentes: los creds hardcodeados eran de la era railway y no existen en la BD real de prod (usuario 'joker' con password propio; verificado 2026-09-03 login 401 con ambos casings, sin emisión de token). - Docs test afirma la postura de seguridad cuando E2E_DOCS_DISABLED=1 (espera 404): docs_url=None si is_production (PR #147 / card 2972521c) hace imposible /api/v1/docs accesible en prod POR DISEÑO. - e2e-prod-smoke job: E2E_DOCS_DISABLED=1 + wiring de secrets E2E_AUTH_USERNAME/PASSWORD (hasta configurarlos: skip honesto, no rojo). Comentario del workflow corregido: "la BD real tiene el usuario Joker" era falso (run 33776208828). - Fix B (user e2e dedicado en prod DB + secrets + redeploy prod) gated aparte por Joker.
PR Check Results✅ Code Formatting: Passed |
|
| Severity | Count |
|---|---|
| 🔴 CRITICAL | 0 |
| 🟠 HIGH | 49 |
| Total | 49 |
Scans performed:
- 📁 Filesystem (vulnerabilities, secrets, misconfigurations)
- 🐳 Backend Docker image
- 🐳 Frontend Docker image
- 🏗️ IaC misconfiguration detection
📋 View detailed SARIF reports
Download artifacts from this workflow run for full SARIF reports.
Results are also available in the GitHub Security tab.
Trivy v0.71.0 | aquasecurity/trivy
🎨 Frontend Preview DeploymentApp Coolify: qa-framework-frontend-pr-222 ( Preview interna (sin FQDN público hasta decisión de proxy — card 52a85645). |
|
Duplicado de #223 — mismo fix A de la card 64763175 implementado por dos lanes en paralelo. Se cierra a favor de #223: checks 38 pass / 0 fail (aquí: 36/1, Deploy Backend Preview en timeout), y es la versión con review de contenido (spec con skip explícito via E2E_AUTH_* + test docs production-aware esperando 404). Diff entre branches confirma que #223 es superset: nada de este PR se pierde. |
🧹 Preview CleanupPR #222 - Closed ✅ Preview apps eliminadas de Coolify (verificado via API): backend + frontend. Resources freed at 2026-09-03T22:01:00.594Z |
Resumen (card 64763175)
El job nuevo
E2E Prod Smoke (self-hosted)(solo main) falló en 7dadb7d (run 33776208828) con 3 tests rojos. Triage 1ª persona contra el stack real (127.0.0.1:8010):Joker/Joker123!(era railway) no existen en la BD real de prod: el user real esjoker(minúscula) con otro password — login 401 con ambos casings, sin tokendocs_url=None if settings.is_production(PR #147 / card 2972521c) yENVIRONMENT=productionen el containerJWT secret y auth middleware descartados (nunca se emite token).
Cambios
e2e/app.spec.ts: auth tests pasan aE2E_AUTH_USERNAME/E2E_AUTH_PASSWORDcontest.skipsi ausentes (defaults hardcodeados solo tenían sentido en la era railway/preview)./mecompara username case-insensitive.Full login flow(UI) también env-gated.e2e/app.spec.ts: docs test espera 404 cuandoE2E_DOCS_DISABLED=1— afirma la postura de seguridad del propio repo (2972521c) en vez de contradecirla..github/workflows/e2e.yml(jobe2e-prod-smoke):E2E_DOCS_DISABLED: '1'+ wiringE2E_AUTH_USERNAME/PASSWORDdesde secrets. Comentario falso corregido.Matriz de comportamiento
E2E_API_URL)Pendiente (gated, fuera de este PR — fix B)
User e2e dedicado en DB prod + secrets
E2E_AUTH_*en el repo + redeploy prod del main (stack 5 días stale). Gateado a Joker en card aparte.Verificación local
npm ci --legacy-peer-deps+npx tsc --noEmit→ OK (TS7). ESLint no corre por la incompat typescript-eslint/TS7 pre-existente (card 17e01ad9), ajena a este cambio.