Skip to main content

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.

El módulo de auditoría expone el historial cronológico de todas las acciones que modifican datos en el sistema. Cada vez que un usuario crea, edita o cancela una visita, gestiona cuentas, cambia una configuración o añade un día inhábil, el backend inserta un registro en la tabla LOGAUDITORIA. Estos registros son permanentes e inmutables: el sistema nunca actualiza ni elimina entradas de auditoría. Esta característica es fundamental para garantizar la trazabilidad de las operaciones del túnel subfluvial y facilitar la investigación de incidentes.

Control de acceso

El endpoint de auditoría está protegido con doble middleware: además de requerir un token JWT válido, exige el rol Admin. Un Guía que intente acceder recibirá 403 Forbidden.
GET /api/auditoria
Authorization: Bearer <token_admin>
Opcionalmente se puede pasar el parámetro limite para controlar cuántos registros devuelve la API. Por defecto son los últimos 100; la interfaz solicita los últimos 500 para poblar la tabla con filtros del lado del cliente.
GET /api/auditoria?limite=200
Authorization: Bearer <token_admin>

Estructura de la tabla LOGAUDITORIA

CampoTipoDescripción
idInteger (PK)Identificador autoincremental del log
usuario_idInteger (FK → USUARIO)ID del usuario que realizó la acción
accionTextDescripción en texto libre de la operación realizada
created_atTimestampFecha y hora exacta del evento; aliasada como fecha en la respuesta de la API
La interfaz enriquece esta información uniéndola con la tabla USUARIO para mostrar también el email y el rol del usuario en el momento del log, presentando columnas: Fecha y Hora, Email del Usuario, Rol y Acción Realizada.
La tabla LOGAUDITORIA es de solo escritura. El backend únicamente ejecuta sentencias INSERT sobre ella: no existen endpoints ni procedimientos internos que realicen UPDATE o DELETE sobre registros de auditoría. Esto garantiza que el historial nunca pueda ser alterado ni purgado desde la aplicación, ni siquiera por un Admin.

Qué acciones quedan registradas

El sistema genera entradas de auditoría para cualquier operación que modifique el estado de la base de datos:

Gestión de Visitas

Creación, edición de datos, cambio de estado (confirmada, cancelada) y eliminación de visitas.

Gestión de Usuarios

Alta de cuentas, modificación de datos, cambios de rol, desactivación y reactivación.

Cambios de Configuración

Actualizaciones de capacidad_maxima, capacidad_por_turno y session_timeout_minutes.

Días Inhábiles

Registro de nuevas fechas bloqueadas y eliminación de bloqueos del calendario.

Ejemplos de entradas de auditoría

La siguiente tabla ilustra el aspecto de registros reales tal como los devuelve el endpoint GET /api/auditoria:
idfechausuario_emailusuario_rolaccion
#12025-07-01 08:15:22admin@tunel.gob.arAdminUsuario “Carlos Ruiz” creado con rol Guía
#22025-07-01 09:03:47admin@tunel.gob.arAdminConfiguración actualizada: capacidad_maxima = 250
#32025-07-01 10:22:08c.ruiz@tunel.gob.arGuíaVisita registrada: Grupo “Escuela Belgrano”, 32 personas, 09:00 hs
#42025-07-02 11:45:00admin@tunel.gob.arAdminDía inhábil agregado: 2025-07-09 — Día de la Independencia
#52025-07-02 14:30:15c.ruiz@tunel.gob.arGuíaVisita #8 cancelada
#62025-07-03 09:10:55admin@tunel.gob.arAdminUsuario “Carlos Ruiz” desactivado
#72025-07-03 09:12:30admin@tunel.gob.arAdminUsuario “Carlos Ruiz” reactivado
#82025-07-04 16:00:00admin@tunel.gob.arAdminConfiguración actualizada: session_timeout_minutes = 60

Interfaz de auditoría

La página Logs de Auditoría presenta los registros en una tabla ordenada cronológicamente (más reciente primero) con tres filtros independientes que se aplican en el cliente:
Seleccione un día específico en el selector de fecha. Solo se mostrarán los registros cuya fecha corresponda a esa jornada (en hora local). Para limpiar el filtro haga clic en la × junto al campo o en el botón Limpiar filtros.
La barra de conteo superior derecha indica cuántos registros coinciden con los filtros activos sobre el total cargado: “Mostrando 12 de 347 registros”.

Uso de los logs para cumplimiento e investigación

Al inicio de cada turno, un Admin puede filtrar los logs del día para verificar qué visitas se registraron, quién las ingresó y si hubo cancelaciones. Esto permite detectar errores operativos rápidamente sin necesidad de consultar directamente la base de datos.
Si se detecta un cambio inesperado en la configuración (por ejemplo, el aforo máximo aparece reducido sin explicación), el Admin puede filtrar los logs por la palabra configuracion o capacidad para identificar exactamente qué usuario realizó la modificación y en qué momento. La columna de email y rol facilita la rendición de cuentas.
Para verificar si una cuenta fue desactivada o reactivada sin autorización, filtre el log por el nombre o email del usuario afectado. Las entradas relacionadas con gestión de usuarios incluyen el nombre del afectado en el texto de la acción, facilitando la búsqueda.
Dado que los logs son inmutables y contienen timestamps precisos, pueden exportarse (consultando el endpoint con un limite alto) para adjuntarse a informes de auditoría externa, reportes de gestión o requerimientos de organismos de control. El historial completo desde el primer día de operación del sistema siempre estará disponible.

Respuesta de la API

GET /api/auditoria?limite=10
Authorization: Bearer <token_admin>
[
  {
    "id": 347,
    "fecha": "2025-07-04T16:00:00.000Z",
    "usuario_email": "admin@tunel.gob.ar",
    "usuario_rol": "Admin",
    "accion": "Configuración actualizada: session_timeout_minutes = 60"
  },
  {
    "id": 346,
    "fecha": "2025-07-04T14:22:10.000Z",
    "usuario_email": "c.ruiz@tunel.gob.ar",
    "usuario_rol": "Guía",
    "accion": "Visita registrada: Grupo \"Universidad Nacional\", 45 personas, 14:00 hs"
  }
]
Los registros se devuelven ordenados del más reciente al más antiguo. El campo fecha está en formato ISO 8601 UTC; la interfaz lo convierte a hora local argentina (es-AR) para su visualización.
No existe ningún endpoint para borrar o modificar registros de auditoría, ni siquiera para el rol Admin. Si necesita limpiar la tabla por motivos técnicos excepcionales (por ejemplo, en un ambiente de pruebas), debe hacerlo directamente en la base de datos con acceso de DBA, lo que quedará fuera del alcance del log de la aplicación.

Build docs developers (and LLMs) love