feat: log de errores para el admin (backend + frontend)
Panel nuevo en Configuracion ("Errores del sistema", solo superadmin): errores de backend
(excepciones 500 no manejadas, con stack/ruta/metodo/usuario) y de frontend (errores JS y
promesas sin catch en el navegador del usuario, antes invisibles para cualquiera mas alla de esa
persona). Filtro por origen, boton para limpiar el historial.
Error Boundary de React: si algo rompe el render, ya no queda pantalla en blanco -- aviso simple
con boton de recargar, y el error queda reportado igual.
Nuevo error_logs (tabla, se recorta sola a 1000 filas) + GET/DELETE /api/error-logs (superadmin)
+ POST /api/error-logs (publico, rate-limited, para reportar incluso sin sesion).
Probado de punta a punta en dev: error real de backend (500) capturado con stack completo y
usuario correcto, error JS global y promesa rechazada capturados desde el navegador, panel
muestra ambos y el boton de limpiar funciona. Se encontro y corrigio un bug real en el camino: la
identificacion de usuario opcional leia jwt.payload.id en vez de .sub (como realmente lo firma
auth/service.js), asi que nunca identificaba a nadie.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,11 @@ export const messages = {
|
||||
updater_criticality_media: 'Media',
|
||||
updater_criticality_baja: 'Baja',
|
||||
updater_rollback_hint: 'Antes de actualizar, respalda la base de datos. Si algo sale mal, restaura ese respaldo y volvé al commit anterior a esta actualización en el historial de Gitea.',
|
||||
|
||||
config_error_logs: 'Errores del sistema',
|
||||
error_logs_clear: 'Limpiar registro',
|
||||
error_logs_clear_confirm_msg: '¿Seguro que deseas borrar todo el historial de errores registrados? No se puede deshacer.',
|
||||
error_logs_empty: 'No hay errores registrados.',
|
||||
password_show: 'Mostrar clave',
|
||||
password_hide: 'Ocultar clave',
|
||||
common_new: 'Nuevo',
|
||||
@@ -348,6 +353,11 @@ export const messages = {
|
||||
updater_criticality_media: 'Medium',
|
||||
updater_criticality_baja: 'Low',
|
||||
updater_rollback_hint: 'Back up the database before updating. If something goes wrong, restore that backup and roll back to the commit before this update in the Gitea history.',
|
||||
|
||||
config_error_logs: 'System errors',
|
||||
error_logs_clear: 'Clear log',
|
||||
error_logs_clear_confirm_msg: 'Are you sure you want to delete the entire error log history? This cannot be undone.',
|
||||
error_logs_empty: 'No errors logged.',
|
||||
password_show: 'Show password',
|
||||
password_hide: 'Hide password',
|
||||
common_new: 'New',
|
||||
|
||||
Reference in New Issue
Block a user