Saltar a contenido

Smoke / E2E demo-live#

Procedimiento para validar cuentas demo/live antes de tocar produccion.

Foco actual: Binance-first (spot/futures) + salud de jobs/DB + evidencia diaria.

0. Prerrequisitos#

  • Backend accesible desde demo/live (tunel o VPN segun entorno).
  • Variables de entorno cargadas (setenv.ps1 o scripts/run_backend.ps1 -UseVaultSecrets).
  • scripts/run_smoke_suite.py y scripts/smoke_test.py disponibles en la maquina de pruebas.

1. Ejecutar smoke suite (baseline)#

python scripts/run_smoke_suite.py `
    --target demo=http://demo.signaldashpro.local:8096 `
    --target live=https://api.signaldashpro.live `
    --stop-on-error
  • Esperado: ambos targets responden 200 en /status, /binance/status, /analytics/goals/history.
  • Si algun target falla, revisar storage/logs/signaldashpro.log antes de continuar.

1.1 Binance spot/futures automatizado (local o staging)#

Para validar por entorno (env/.env.binance y env/.env.binance.futures) y guardar evidencia automatica:

./.venv/bin/python scripts/run_binance_e2e.py --base-url http://127.0.0.1:8096 --with-private never
  • Evidencia generada en storage/logs/e2e_runs/*-binance-e2e.json y storage/logs/e2e_runs/*-binance-e2e.md.
  • Si el backend del target tiene API keys Binance cargadas, puedes activar checks privados:
./.venv/bin/python scripts/run_binance_e2e.py --base-url http://127.0.0.1:8096 --with-private auto
  • En modo auto, el runner confirma readiness real del backend con GET /binance/account. Si recibe error (por ejemplo 500 por credenciales no cargadas en el backend), deja registro y continua con checks publicos.

2. Validar login/API privada (cuando AUTH_ENABLED=true)#

  1. Verifica que el frontend requiere login:
  2. Abrir /market sin cookie debe redirigir a /login?next=/market.
  3. Verifica login API:
  4. POST /auth/login devuelve access_token.
  5. Verifica endpoints privados:
  6. GET /binance/status con Authorization: Bearer <token> responde 200.

Los scripts scripts/smoke_test.py y scripts/run_binance_e2e.py soportan login via OPS_AUTH_EMAIL/OPS_AUTH_PASSWORD cuando el backend esta protegido.

3. Favoritos / UI refresco#

  1. En la seccion de configuracion/favoritos del frontend, modifica un favorito o filtro.
  2. Regresa al dashboard:
  3. Esperado: el listado principal refleja el cambio sin reiniciar.
  4. Repite en demo y live para asegurar que el frontend refresca correctamente los datos desde la API.

4. Cron jobs / monitoreo#

Para cada entorno:

# Linux/macOS
ssh <host> "systemctl status signaldashpro-pipeline.timer"
ssh <host> "tail -n 100 /var/log/signaldashpro/cron.log"

# Windows
Get-ScheduledTask -TaskName "SignalDashPro-DataPipeline" | Get-ScheduledTaskInfo
Get-Content D:\Repos\SignalDashPro\storage\logs\cron.log -Tail 100
  • Verifica timestamps de:
  • import_market_news.py
  • run_data_pipeline.py
  • export_bi_datasets.py
  • run_training_pipeline.py
  • goal monitor
  • notify_external_alerts.py
  • Si falta algun job, corrige el cron/Task Scheduler y registra el fix.

5. Registro / checklist#

  • Completa una tabla (por sprint) indicando:
Fecha Target Auth/Login E2E Binance UI Cron jobs Observaciones
2026-02-10 demo OK OK OK OK Sin anomalías
  • Guarda el registro en storage/logs/e2e_runs/ o en el wiki interno.

6. Troubleshooting rapido#

  • Favoritos no refrescan: confirmar que el frontend invalida/recarga los datos de estrategias al cerrar la pantalla de configuracion.
  • Cron jobs: asegurate de que el .env se cargue antes de cada job (BASH_ENV o . .\setenv.ps1).