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.ps1oscripts/run_backend.ps1 -UseVaultSecrets). scripts/run_smoke_suite.pyyscripts/smoke_test.pydisponibles 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.logantes 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.jsonystorage/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 conGET /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)#
- Verifica que el frontend requiere login:
- Abrir
/marketsin cookie debe redirigir a/login?next=/market. - Verifica login API:
POST /auth/logindevuelveaccess_token.- Verifica endpoints privados:
GET /binance/statusconAuthorization: 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#
- En la seccion de configuracion/favoritos del frontend, modifica un favorito o filtro.
- Regresa al dashboard:
- Esperado: el listado principal refleja el cambio sin reiniciar.
- 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.pyrun_data_pipeline.pyexport_bi_datasets.pyrun_training_pipeline.pygoal monitornotify_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
.envse cargue antes de cada job (BASH_ENVo. .\setenv.ps1).