Admin — Audit Trail Global
ADMIN-AUDIT-001

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.

Admin exclusivo
⚖️

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.

Tabla del audit trail agrupada por día con panel lateral de detalle abierto mostrando old_value/new_value
Tabla del audit trail agrupada por día con panel lateral de detalle abierto mostrando old_value/new_value

Estructura de un evento del audit trail

CampoDescripción
actionAcción registrada. Formato: entidad:acción. Ej: document:effectivized, user:role_added.
user_emailEmail del usuario que ejecutó la acción. Toda acción tiene un actor humano o de sistema.
entity_typeTipo de entidad afectada. Ej: document_version, document, user, role, notification, auth, ExternalDocument.
entity_idIdentificador de la entidad afectada.
old_value / new_valueEstado anterior y nuevo del dato modificado, en JSON. Visibles en el panel lateral de detalle.
log_metadataJSON con datos adicionales del evento (contexto, motivo, campos auxiliares).
correlation_idIdentificador que agrupa los eventos generados por una misma operación.
client_ipDirección IP del cliente que originó la acción. Se muestra en la columna IP de la tabla.
TimestampMomento 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.

¿Puedo buscar todos los eventos de un documento específico?

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.

¿Los módulos también tienen su propio audit trail?

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.

¿Cómo veo qué cambió exactamente en un evento?

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).