feat: filtro de severidad (Alta/Media/Baja) en el log de errores

Se asigna sola, sin etiquetar nada a mano: backend y errores de render de React (rompen toda la
pantalla) = alta; errores JS sueltos = media; promesas rechazadas sin manejar = baja (suelen ser
fallos de red puntuales, no criticos). Nuevo filtro en el panel ademas del de origen ya existente.

Migracion 014_error_logs_severity.sql (ALTER TABLE ADD COLUMN IF NOT EXISTS). Probado en dev: las
tres severidades se asignan correctamente segun el origen, un valor invalido del frontend cae en
media, y el filtro combinado con origen funciona.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-09-17 14:50:36 -05:00
parent a06df86881
commit feadd2e715
14 changed files with 81 additions and 23 deletions
+6 -4
View File
@@ -136,11 +136,13 @@
### Log de errores (`/api/error-logs`)
- `POST /api/error-logs` — público (sin auth, rate-limited a 30/15min), lo usa el frontend para
reportar errores propios (incluso sin sesión). `{ message, stack?, url? }`. Si llega un token
reportar errores propios (incluso sin sesión). `{ message, stack?, url?, severity? }`
(`severity`: `alta`/`media`/`baja`; si falta o es inválida, cae en `media`). Si llega un token
válido en `Authorization`, se guarda el usuario asociado, sin exigirlo.
- `GET /api/error-logs?source=backend|frontend&limit=` — solo Superadministrador. Lista los
errores más recientes (máx 1000 guardados, se recorta solo). Backend guarda `stack`/`url`/
`method`/usuario automáticamente en cada excepción 500 no manejada (ver `errorHandler.js`).
- `GET /api/error-logs?source=backend|frontend&severity=alta|media|baja&limit=` — solo
Superadministrador. Lista los errores más recientes (máx 1000 guardados, se recorta solo).
Backend guarda `stack`/`url`/`method`/usuario automáticamente en cada excepción 500 no manejada
(ver `errorHandler.js`) con `severity=alta` siempre — nunca se etiqueta a mano.
- `DELETE /api/error-logs` — solo Superadministrador. Borra todo el historial.
### Dashboard (`/api/dashboard`)