[INTEGRATION] F-01.3 — Actualización en Tiempo Real via SSE
Épica: EPIC-01 — Dashboard Principal (Vista en Tiempo Real)
🏷️ Categoría
Categoría: IntegrationSecundaria: UI / PresentationImpacta en: Equipo Fullstack (Livewire + Laravel)
📦 Dependencias
Backlogs que deben estar completados antes de implementar esta feature.
| Backlog | Motivo |
|---|---|
| F-01.1 | Componente DashboardCards con método refreshCounts para recibir el evento |
| F-01.2 | Card 'Todos' incluida en el componente que debe actualizarse |
| F-05.2 | Endpoint GET /sse/logs implementado y emitiendo eventos SSE |
Prioridad: Must
Descripción: Como administrador del sistema Quiero que los contadores del dashboard se actualicen automáticamente sin recargar la página Para ver el estado real del sistema en todo momento sin intervención manual
Criterios de Aceptación (Checklist):
- [ ] Escenario 1 (Happy Path): Dado que n8n inserta un nuevo log Critical en Postgres, cuando han pasado menos de 2 segundos, entonces el contador de la card "Critical" del dashboard se incrementa automáticamente.
- [ ] Escenario 2 (Reconexión): Dado que la conexión SSE se pierde (red inestable), cuando el frontend detecta el corte, entonces intenta reconectar automáticamente con backoff exponencial.
- [ ] Escenario 3 (Seguridad): Dado que un usuario no autenticado intenta conectarse al endpoint SSE, cuando realiza la petición, entonces recibe un 401 Unauthorized y no recibe datos.
- [ ] Requisito Técnico: Implementar via
StreamedResponsede Laravel 12. El servidor escuchapg_notify(LISTEN/NOTIFY de PostgreSQL) para minimizar latencia. El endpoint SSE requiere sesión activa (middlewareauth) antes de emitir (STRIDE I-API-01). El cliente conecta viaEventSourceJS nativo; Alpine.js despacha$wire.dispatch('refreshCounts')al recibir el evento.