El log de auditoría (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/JuanM84/gestor-visitas/llms.txt
Use this file to discover all available pages before exploring further.
LogAuditoria) es un registro cronológico e inmutable de todas las acciones significativas realizadas en el sistema. Cada vez que un usuario crea, modifica o elimina un recurso crítico, el servicio correspondiente inserta una entrada en esta tabla dentro de la misma transacción de base de datos, garantizando la coherencia entre la acción y su traza.
El log de auditoría es de solo lectura desde la API. No existen endpoints
PUT ni DELETE sobre este recurso. Los registros solo pueden crearse internamente por los servicios del backend, y nunca pueden modificarse ni eliminarse, ni siquiera por administradores. Esto garantiza la integridad de la trazabilidad para fines de cumplimiento y auditoría forense.Eventos que generan entradas de auditoría
El sistema registra automáticamente las siguientes categorías de acciones:| Categoría | Ejemplos de acciones registradas |
|---|---|
| Visitas | Creación, modificación de estado y cancelación de visitas grupales |
| Usuarios | Alta de nuevos usuarios, cambios de rol, desactivación de cuentas |
| Configuración | Actualización de parámetros (capacidad_maxima, capacidad_por_turno, session_timeout_minutes) |
| Días inhábiles | Bloqueo de una fecha (Bloqueó el día DD/MM/YYYY) y desbloqueo (Desbloqueó el día DD/MM/YYYY) |
| Instituciones | Registro de nuevas instituciones (Registró nueva institución "<nombre>") |
accion), el email y rol del usuario que la realizó, y la marca temporal exacta del momento en que ocurrió.
GET /api/auditoria
Devuelve las entradas más recientes del log de auditoría, ordenadas de la más reciente a la más antigua. Autenticación:Authorization: Bearer <token> — requiere rol Admin.
Parámetros de consulta
Cantidad máxima de entradas a devolver. Valor por defecto:
100. Permite reducir el tamaño de la respuesta en entornos con alta actividad.Respuesta exitosa 200 OK
Un arreglo de objetos de log ordenados por fecha descendente (el evento más reciente aparece primero). Puede ser un arreglo vacío [] si no hay registros.
Identificador único e irrepetible de la entrada de auditoría.
Descripción legible en lenguaje natural de la acción realizada. Por ejemplo:
Actualizó configuración "Aforo máximo diario" de "300" a "250".Marca temporal ISO 8601 del momento exacto en que ocurrió la acción (columna
created_at de la tabla LogAuditoria).Correo electrónico del usuario que realizó la acción, obtenido mediante JOIN con la tabla
Usuario. Puede ser null si el usuario fue eliminado del sistema con posterioridad.Rol del usuario al momento de la consulta (
"Admin", "Guia", etc.). Puede ser null si el usuario ya no existe.Ejemplo — consulta por defecto (últimos 100 registros)
Ejemplo — limitar a los últimos 10 registros
Respuestas de error
| Código | Descripción |
|---|---|
401 Unauthorized | Token ausente o inválido. |
403 Forbidden | El usuario autenticado no tiene rol Admin. |
500 Internal Server Error | Error interno al consultar la base de datos. Responde con { "error": "Error al consultar la auditoría" }. |
Uso para cumplimiento e investigación de incidentes
El log de auditoría está diseñado para dar respuesta a preguntas operativas y de seguridad: ¿Quién cambió un parámetro de configuración? Filtra visualmente las entradas cuyo campoaccion comience con Actualizó configuración. El campo usuario_email identifica al administrador responsable.
¿Qué ocurrió en una ventana de tiempo específica?
Solicita el log y aplica un filtro local sobre el campo fecha. Si el volumen de registros es alto, utiliza el parámetro ?limite= para acotar la respuesta y paginar manualmente.
¿Se bloqueó o desbloqueó un día inhábil inesperadamente?
Busca entradas con "Bloqueó" o "Desbloqueó" en accion. La descripción entre comillas coincide con el texto ingresado al crear el día inhábil.
¿Qué instituciones se han dado de alta recientemente?
Busca entradas que comiencen con "Registró nueva institución".