Audit Trail Global
El registro de auditoría centraliza todos los eventos del sistema en orden cronológico inverso. Es el único módulo que puede acceder desde una vista global (no filtrada por entidad). Es de solo lectura — ningún usuario puede modificar o eliminar entradas.
21 CFR Parte 11 — Atribuible, Contemporáneo, Original, Exacto, Legible (ALCOA+). El audit trail es append-only, reforzado por PostgreSQL RLS. Ninguna acción del sistema (ni siquiera del usuario Admin) puede modificar o eliminar entradas del audit trail. Es el registro de evidencia inmutable del sistema de calidad.
¿Qué se registra?
Toda acción regulada o relevante del sistema genera un evento en el audit trail:
- Creación, edición, aprobación, rechazo y efectivización de documentos (CDMS)
- Firmas electrónicas: técnico, verificador, aprobador (CTR, CCM, QEM)
- Transiciones de estado en todos los módulos
- Completación de trainings y acuses de lectura (TMS)
- Registro y cierre de hallazgos (AUM)
- Acciones CAPA (QEM)
- Cambios de roles de usuario (Admin)
- Operaciones de configuración (Admin)
- Acceso a PDFs sellados
La vista y el panel de detalle
La vista muestra los eventos en una tabla agrupada por día, en orden cronológico inverso (más reciente primero). Las columnas son: Hora (ART), Acción, Usuario, Entidad e IP. El resultado se pagina de a 50 eventos por página.
Hacé clic en un evento para abrir el panel lateral de detalle, que muestra todos los campos del evento, incluyendo old_value y new_value en formato JSON — el antes y el después del dato modificado.
Estructura de un evento del audit trail
| Campo | Descripción |
|---|---|
| action | Acción registrada. Formato: entidad:acción. Ej: document:effectivized, user:role_added. |
| user_email | Email del usuario que ejecutó la acción. Toda acción tiene un actor humano o de sistema. |
| entity_type | Tipo de entidad afectada. Ej: document_version, document, user, role, notification, auth, ExternalDocument. |
| entity_id | Identificador de la entidad afectada. |
| old_value / new_value | Estado anterior y nuevo del dato modificado, en JSON. Visibles en el panel lateral de detalle. |
| log_metadata | JSON con datos adicionales del evento (contexto, motivo, campos auxiliares). |
| correlation_id | Identificador que agrupa los eventos generados por una misma operación. |
| client_ip | Dirección IP del cliente que originó la acción. Se muestra en la columna IP de la tabla. |
| Timestamp | Momento del evento, inmutable. La interfaz lo muestra en hora ART (columna Hora) agrupado por día. |
Filtros disponibles
El audit trail global tiene los siguientes filtros combinables:
- Búsqueda libre: busca por email del usuario, acción o tipo de entidad
- Tipo de entidad: dropdown con los tipos disponibles:
document_version,document,user,role,notification,audit_log,auth,ExternalDocument - Acción: texto libre con la acción exacta o parcial (ej:
document:effectivized) - Rango de fechas: desde / hasta
No existen filtros dedicados por módulo ni por actor. Para acotar a un usuario, usá su email en la búsqueda libre; para acotar a un módulo, filtrá por el tipo de entidad o la acción correspondiente.
Exportar el audit trail
Export CSV
El botón Exportar CSV descarga los eventos que coincidan con los filtros activos (no solo la página actual) en un archivo llamado ion-eqms-audit-YYYY-MM-DD.csv. El export tiene un tope de 10.000 registros — para períodos largos, acotá el rango de fechas y exportá por partes.
Export PDF
El botón Exportar PDF genera una versión imprimible del listado filtrado con la marca de agua "REPORTE EXTRAÍDO DEL SISTEMA". El sistema registra la extracción como un evento propio del audit trail — toda descarga de reporte queda a su vez auditada.
Para exportaciones de auditoría regulatoria, aplicá los filtros de rango de fechas antes de exportar para obtener el período relevante.
Desde la vista global podés acotar con la búsqueda libre y el dropdown de tipo de entidad (document o document_version) más el filtro de acción. Para la trazabilidad completa de un documento puntual, la vía más directa es la sección de Historial dentro del panel de detalle del propio documento en CDMS.
Sí. Dentro del panel de detalle de cada entidad (un documento, un bundle CTR, un evento QEM, etc.) hay una sección de "Historial" o "Audit Trail" que muestra los eventos filtrados a esa entidad específica. El Audit Trail Global en el panel Admin es la vista consolidada de todos los módulos sin filtro de entidad.
Hacé clic en la fila del evento. El panel lateral de detalle muestra old_value y new_value en JSON, junto con el resto de los campos (log_metadata, correlation_id, client_ip).