Skip to content

[LOGIC / BUSINESS] F-05.4 — Acciones Backend: Rutas Web y Livewire Actions

Épica: EPIC-05 — Infraestructura y Conectividad

🏷️ Categoría

Categoría: Logic / BusinessImpacta en: Equipo Backend (Laravel)

📦 Dependencias

Backlogs que deben estar completados antes de implementar esta feature.

BacklogMotivo
F-00.1Base Laravel instalada
F-00.3Vistas Blade que los controladores retornan (layout base disponible)
F-05.3Middleware auth activo para proteger todas las rutas web

Prioridad: Must


Descripción: Como desarrollador Quiero que todos los controladores y Livewire Actions del panel estén bien estructurados y protegidos Para que las operaciones sobre logs, histórico, error codes y comentarios sean predecibles, seguras y mantenibles

Criterios de Aceptación (Checklist):

  • [ ] Escenario 1 (Rutas web protegidas): Dado que el panel usa Livewire (SSR), cuando se definen las rutas en routes/web.php, entonces todas están dentro del grupo middleware:auth y retornan vistas Blade.
  • [ ] Escenario 2 (Controladores por responsabilidad): Los 4 controladores del proyecto son: DashboardController, LogController, ArchivedLogController, ErrorCodeController. Cada uno gestiona solo sus rutas.
  • [ ] Escenario 3 (Livewire Actions validadas): Dado que un Livewire Action recibe datos del usuario (texto, IDs), cuando se ejecuta, entonces valida la entrada con $this->validate() antes de cualquier operación de DB.
  • [ ] Escenario 4 (Autorización en acciones): Dado que se ejecuta una acción de borrado o edición, cuando se procesa, entonces Laravel Policies o $this->authorize() verifican que el usuario actual tiene permiso.
  • [ ] Escenario 5 (SSE con middleware): Dado que existe el endpoint GET /sse/logs, cuando un cliente sin sesión válida lo solicita, entonces recibe un 401 (redirige a login) y no se abre el stream.
  • [ ] Requisito Técnico: Rutas mínimas en routes/web.php: GET /, GET /dashboard, GET /logs, GET /logs/{id}, GET /historico, GET /historico/{id}, GET /error-codes, GET /error-codes/{id}, DELETE /historico/{id}, POST /logout, GET /sse/logs. Sin prefijo /api (no hay SPA). Livewire Actions gestionan el resto (filtros, archivado, comentarios, CRUD). Usar FormRequest o reglas inline para validación.

MoSCoW: MUSTSprint: Sprint 0

Notas:

  • Con Livewire, la mayoría de operaciones que antes eran endpoints REST ahora son Livewire Actions (llamadas internas al servidor via wire protocol).
  • El único endpoint "convencional" que no es Livewire es el SSE (GET /sse/logs) que usa StreamedResponse.
  • No se necesita Laravel Sanctum ni tokens API para el frontend — la sesión web de Laravel es suficiente.

Log Management Dashboard — Documentación del Proyecto