[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.
| Backlog | Motivo |
|---|---|
| F-00.1 | Base Laravel instalada |
| F-00.3 | Vistas Blade que los controladores retornan (layout base disponible) |
| F-05.3 | Middleware 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 grupomiddleware:authy 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 un401(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). UsarFormRequesto 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 usaStreamedResponse. - No se necesita Laravel Sanctum ni tokens API para el frontend — la sesión web de Laravel es suficiente.