⚙️ Admin

Panel de Administración

El módulo Admin (/admin) es exclusivo para usuarios con rol Administrador. Concentra la configuración del sistema: gestión de usuarios técnicos, tipos de servicio, laboratorios cliente, parámetros del sistema, log de auditoría y notificaciones automáticas.

⚠️
Acceso restringido

El módulo Admin no aparece en el menú de navegación para usuarios con rol Técnico. Si necesitás permisos de administrador, contactá al responsable del sistema.

El panel Admin se organiza en 7 pestañas:

PestañaFunción principal
Usuarios técnicosCrear, editar y gestionar usuarios de ION-target
Tipos de servicioConfigurar los tipos de servicio GMP disponibles
LaboratoriosGestionar laboratorios cliente, sectores y usuarios asignados
Parámetros del sistemaConfiguraciones globales: email remitente, periodicidades, etc.
Log de actividadAudit trail completo e inmutable de todas las acciones
NotificacionesConfigurar el envío automático de alertas de vencimiento
SistemaEstado de los controles de seguridad y cumplimiento GMP

Usuarios técnicos

Gestión completa de los usuarios de ION-target que acceden al sistema.

Crear un nuevo usuario

1
Admin → Usuarios técnicos → "+ Nuevo usuario"

Se abre el formulario de creación de usuario.

2
Completá los campos obligatorios

Nombre y Apellido: mínimo 2 caracteres cada uno. Email: dirección de correo corporativa.

3
Asigná el sector y el rol

Sector: área dentro de ION-target. Rol: Técnico (acceso a todos los módulos excepto Admin) o Administrador.

4
Guardá

El usuario queda creado. La contraseña inicial se configura según el proceso interno de ION-target. El evento de creación se registra en el audit trail.

⚠️
Validación obligatoria

El formulario valida nombre, apellido y sector antes de enviar. Si alguno está vacío, verás el mensaje de error en rojo debajo del campo. Completá todos los campos obligatorios antes de guardar.

Editar un usuario

Click en "Editar" en la fila del usuario. Podés modificar nombre, apellido, email, sector y rol. No es posible modificar el ID interno del usuario.

⚖️
Usuarios no se pueden eliminar

Al igual que el resto del sistema, los usuarios no se eliminan. Se pueden desactivar para quitarles acceso sin perder su historial de actividad en el audit trail.

Tipos de servicio

Los tipos de servicio definen qué categorías de trabajo GMP están disponibles en el sistema (IQ, OQ, PQ, PV, PM, Calibración y cualquier tipo personalizado).

Crear un nuevo tipo de servicio

1
Admin → Tipos de servicio → "+ Nuevo tipo"
2
Ingresá el nombre completo

Ej: "Calificación de Operación (OQ)". El nombre aparece en todos los selectores del sistema. Usá tildes correctamente.

3
Guardá

El tipo queda disponible inmediatamente en los formularios de servicios, historial y AT/RB.

💡
Sigla automática

El sistema extrae la sigla del tipo de servicio del texto entre paréntesis. Ej: "Calificación de Operación (OQ)" → sigla "OQ". Si no hay paréntesis, toma las iniciales de cada palabra. Incluí la sigla en paréntesis para máxima claridad.

Laboratorios cliente

Gestión de laboratorios farmacéuticos clientes con sus sectores y usuarios asignados. Los laboratorios configurados aquí aparecen en todos los módulos del sistema.

Estructura: Laboratorio → Sectores → Equipos

Cada laboratorio puede tener múltiples sectores (áreas del laboratorio: HPLC Lab 1, Microbiología, Control de Calidad, etc.). Cada equipo pertenece a un sector.

Agregar laboratorio

1
Admin → Laboratorios → "+ Nuevo laboratorio"
2
Completá nombre, dirección, teléfono y email

El email es el que se usará como destinatario predeterminado en el envío de reportes de cliente.

3
Guardá y agregá sectores

Una vez creado el laboratorio, podés agregar sus sectores desde la misma pantalla.

Parámetros del sistema

Configuraciones globales que afectan el comportamiento del sistema:

ParámetroDescripciónImpacto si está vacío
email_remitenteDirección de correo desde la cual se envían las notificaciones y reportesLas notificaciones automáticas fallan silenciosamente — configurar antes de activar notificaciones
dias_alerta_vencimientoDías de anticipación para alertas de vencimientoUsa valor por defecto del sistema
cc_soporteEmail en copia carbón para todos los envíos del sistemaNo se envía copia — opcional
🚨
Configurar email_remitente antes de activar notificaciones

Si el parámetro email_remitente está vacío, el scheduler de notificaciones falla sin mostrar error visible en el sistema. Configurá este parámetro antes de activar el envío automático de alertas de vencimiento.

Log de actividad (Audit Trail)

El Log de actividad es el registro inmutable de todas las acciones realizadas en el sistema. Cumple con los requerimientos de 21 CFR Part 11 y EMA Annex 11.

⚖️
Audit trail append-only

El log es de solo escritura: los registros no pueden modificarse ni eliminarse por ningún usuario, incluyendo administradores. Esto está garantizado a nivel de base de datos mediante Row Level Security (RLS) en PostgreSQL.

Estructura de cada entrada del log

CampoDescripción
TimestampFecha y hora exacta de la acción (UTC)
UsuarioNombre del técnico o administrador que realizó la acción
AcciónTipo de evento: LOGIN, CREAR, MODIFICAR, ARCHIVAR, RESTAURAR, CAMBIO_ESTADO, ASOCIAR_CONSUMIBLE, DESASOCIAR_CONSUMIBLE, ENVIO_REPORTE
EntidadTipo de objeto afectado: equipo, modulo, historial_servicio, asistencia, etc.
Entidad IDID numérico del registro afectado
DetalleInformación adicional: motivo de archivado, estado anterior/nuevo, etc.
IPDirección IP desde la que se realizó la acción
Correlation IDUUID único que agrupa todos los eventos de una misma operación (ej: crear servicio + notificar Odoo)

Filtros del log

FiltroDescripción
Fecha desde / hastaRango de fechas para la búsqueda
UsuarioFiltra por el técnico o admin que realizó la acción
AcciónTipo de evento (LOGIN, CREAR, ARCHIVAR, etc.)
EntidadTipo de objeto (equipo, historial_servicio, etc.)
Correlation IDBusca todos los eventos de una operación específica

Notificaciones automáticas

ITS Lab envía notificaciones automáticas de vencimiento de servicios GMP mediante el scheduler APScheduler. El envío ocurre el último día de cada mes a las 08:00 hora Argentina.

Configuración del scheduler

1
Configurá el email_remitente en Parámetros

Sin esto, el envío falla silenciosamente. Ver sección Parámetros.

2
Admin → Notificaciones → configurá los destinatarios

Podés agregar múltiples emails para recibir las alertas.

3
El scheduler corre automáticamente

No es necesario activarlo manualmente. Corre en segundo plano en el servidor Railway.

⚠️
Widget "PROTOCOLOS GMP" en carga infinita

Si el widget de protocolos GMP en la pantalla de Notificaciones queda en "Cargando..." permanente (bug BUG-05), recargá la página (F5). Si persiste, verificá que tu sesión sea válida y recargá nuevamente. Este bug está en la lista de pendientes para corrección.

Pestaña Sistema

La pestaña Sistema muestra el estado actual de los controles de seguridad y cumplimiento GMP del sistema. Es de solo lectura — ningún dato es editable desde aquí.

ControlEstado esperadoDescripción
Rol de aplicaciónits_appEl backend se conecta a PostgreSQL con el rol its_app (no superusuario). RLS efectivo.
RLS en log_actividadHABILITADOINSERT + SELECT permitidos. UPDATE + DELETE bloqueados para todos los roles de aplicación.
Audit trailAppend-onlyRegistros inmutables desde el deploy.
Correlation IDActivoUUID generado por request — agrupa eventos de una misma operación.
Algoritmo JWTRS256Par de claves RSA 2048. Clave privada en Railway, nunca en el repo.
Endpoint JWKS/auth/jwksClave pública disponible para validación externa (eQMS).
Duración de sesión8 horasJWT expira automáticamente.
DeployRailway auto-deployPush a main/master → deploy automático.

Preguntas frecuentes

Un técnico me dice que no puede acceder al sistema, ¿qué reviso?+
Revisá en Admin → Usuarios técnicos que el usuario esté activo. Si el usuario fue importado desde Odoo, verificá que tenga el campo Rol asignado (puede estar vacío para usuarios importados — asignale "Técnico"). También verificá que el email del usuario sea correcto y que esté usando las credenciales correctas.
¿Cómo agrego un laboratorio cliente que todavía no existe en el sistema?+
Admin → Laboratorios → "+ Nuevo laboratorio". Completá nombre, dirección, teléfono y email. Después de crear el laboratorio, agregá sus sectores. Una vez creados laboratorio y sectores, podés crear equipos asignados a ese laboratorio.
El log muestra acciones de un usuario que no reconozco+
El log registra el ID y nombre del usuario al momento de la acción. Si ves acciones de un usuario inesperado, verificá que sus credenciales no estén comprometidas. Revisá la IP registrada para determinar el origen. Contactá a soporte técnico si sospechás un acceso no autorizado.
¿Puedo exportar el log de actividad para una auditoría?+
Sí. El log tiene un botón de exportación que genera un CSV. La exportación pagina la descarga en bloques de 200 registros para evitar timeouts — si el log tiene muchos eventos, la descarga puede tardar unos segundos mientras completa todas las páginas. Si el navegador bloquea el popup, el sistema usa un fallback automático para iniciar la descarga de todos modos.
¿Cuánto tiempo se guardan los registros del audit trail?+
Los registros del audit trail no tienen vencimiento automático — se guardan indefinidamente en la base de datos. La política de retención está definida en el documento BKP-ITS-001 (Plan de Backup). Consultá ese documento para los detalles de retención según el marco regulatorio ANMAT.