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.
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ña | Función principal |
|---|---|
| Usuarios técnicos | Crear, editar y gestionar usuarios de ION-target |
| Tipos de servicio | Configurar los tipos de servicio GMP disponibles |
| Laboratorios | Gestionar laboratorios cliente, sectores y usuarios asignados |
| Parámetros del sistema | Configuraciones globales: email remitente, periodicidades, etc. |
| Log de actividad | Audit trail completo e inmutable de todas las acciones |
| Notificaciones | Configurar el envío automático de alertas de vencimiento |
| Sistema | Estado 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
Se abre el formulario de creación de usuario.
Nombre y Apellido: mínimo 2 caracteres cada uno. Email: dirección de correo corporativa.
Sector: área dentro de ION-target. Rol: Técnico (acceso a todos los módulos excepto Admin) o Administrador.
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.
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.
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
Ej: "Calificación de Operación (OQ)". El nombre aparece en todos los selectores del sistema. Usá tildes correctamente.
El tipo queda disponible inmediatamente en los formularios de servicios, historial y AT/RB.
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
El email es el que se usará como destinatario predeterminado en el envío de reportes de cliente.
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ámetro | Descripción | Impacto si está vacío |
|---|---|---|
| email_remitente | Dirección de correo desde la cual se envían las notificaciones y reportes | Las notificaciones automáticas fallan silenciosamente — configurar antes de activar notificaciones |
| dias_alerta_vencimiento | Días de anticipación para alertas de vencimiento | Usa valor por defecto del sistema |
| cc_soporte | Email en copia carbón para todos los envíos del sistema | No se envía copia — opcional |
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.
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
| Campo | Descripción |
|---|---|
| Timestamp | Fecha y hora exacta de la acción (UTC) |
| Usuario | Nombre del técnico o administrador que realizó la acción |
| Acción | Tipo de evento: LOGIN, CREAR, MODIFICAR, ARCHIVAR, RESTAURAR, CAMBIO_ESTADO, ASOCIAR_CONSUMIBLE, DESASOCIAR_CONSUMIBLE, ENVIO_REPORTE |
| Entidad | Tipo de objeto afectado: equipo, modulo, historial_servicio, asistencia, etc. |
| Entidad ID | ID numérico del registro afectado |
| Detalle | Información adicional: motivo de archivado, estado anterior/nuevo, etc. |
| IP | Dirección IP desde la que se realizó la acción |
| Correlation ID | UUID único que agrupa todos los eventos de una misma operación (ej: crear servicio + notificar Odoo) |
Filtros del log
| Filtro | Descripción |
|---|---|
| Fecha desde / hasta | Rango de fechas para la búsqueda |
| Usuario | Filtra por el técnico o admin que realizó la acción |
| Acción | Tipo de evento (LOGIN, CREAR, ARCHIVAR, etc.) |
| Entidad | Tipo de objeto (equipo, historial_servicio, etc.) |
| Correlation ID | Busca 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
Sin esto, el envío falla silenciosamente. Ver sección Parámetros.
Podés agregar múltiples emails para recibir las alertas.
No es necesario activarlo manualmente. Corre en segundo plano en el servidor Railway.
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í.
| Control | Estado esperado | Descripción |
|---|---|---|
| Rol de aplicación | its_app | El backend se conecta a PostgreSQL con el rol its_app (no superusuario). RLS efectivo. |
| RLS en log_actividad | HABILITADO | INSERT + SELECT permitidos. UPDATE + DELETE bloqueados para todos los roles de aplicación. |
| Audit trail | Append-only | Registros inmutables desde el deploy. |
| Correlation ID | Activo | UUID generado por request — agrupa eventos de una misma operación. |
| Algoritmo JWT | RS256 | Par de claves RSA 2048. Clave privada en Railway, nunca en el repo. |
| Endpoint JWKS | /auth/jwks | Clave pública disponible para validación externa (eQMS). |
| Duración de sesión | 8 horas | JWT expira automáticamente. |
| Deploy | Railway auto-deploy | Push a main/master → deploy automático. |