Saltar al contenido principal

Roles y módulos

TankOS implementa cinco roles de dominio con separación de funciones (SoD) forzada a nivel de servidor. Los roles determinan qué módulos son accesibles y qué acciones están permitidas para cada perfil de usuario. La frontera de seguridad vive en el API — la visibilidad de la interfaz es un reflejo del rol, no el control de acceso real.

Los cinco roles

RolNombre técnicoEn una línea
Operadortankos_operatorOperador de planta y aforador. Captura aforos y lecturas manuales, opera lotes de custodia y gestiona alarmas operativas. No aprueba ni emite tickets.
Técnico de laboratoriotankos_lab_technicianCrea y envía muestras de laboratorio y lecturas manuales. Tiene lectura de custodia para contexto operativo. No aprueba.
Supervisortankos_supervisorAprueba y anula muestras de laboratorio y aforos; emite y anula tickets de custodia; publica cambios de ingeniería (strapping). El superset operativo. No edita configuración de ingeniería.
Ingenierotankos_engineerConfigura tanques, dispositivos, geometría y tablas de strapping. Opera y afora custodia. No aprueba muestras de lab ni genera reportes.
Administradortankos_adminGestiona usuarios, API keys, catálogos, auditoría y reportes. Sin authorities operativas (no lab/custodia/ingeniería) — mínimo privilegio deliberado.

Acceso por módulo

La tabla indica el nivel de acceso que cada rol tiene sobre cada módulo funcional del sistema.

MóduloOperadorTécnico LabSupervisorIngenieroAdmin
Operación SCADA (dashboard + alarmas)Lectura y escrituraSólo lecturaLectura y escrituraSólo lecturaSólo lectura
Laboratorio (muestras + adjuntos)No accedeEnvío y ediciónAprobación y anulaciónNo accedeNo accede
Custodia (lotes + aforos + tickets)Planifica, opera y aforaSólo lecturaPlanifica, afora, emite y anula ticketsPlanifica, opera y aforaNo accede
Ingeniería (tanques + dispositivos + strapping)No accedeNo accedePublicaciónConfiguración y publicaciónNo accede
Reportes (4 tipos PDF)Generación y lecturaNo accedeGeneración y lecturaNo accedeLectura
Auditoría (log inmutable + visor)No accedeNo accedeNo accedeNo accedeAcceso completo
Catálogos (productos + plantillas)No accedeNo accedeNo accedeNo accedeConfiguración
Administración (usuarios + API keys + sistema)No accedeNo accedeNo accedeNo accedeAcceso completo
Motor MPMS*

*El motor de cálculo MPMS opera automáticamente en cada ciclo de telemetría; no es una pantalla accesible por rol. Los resultados (TOV/GOV/GSV/NSV/Masa + factores) se consultan en el detalle de tanque y en los tickets de custodia.

Separación de funciones (SoD)

Las siguientes reglas de control interno están implementadas en el servidor y se aplican independientemente de la interfaz utilizada:

  • El que envía una muestra de laboratorio no puede aprobarla — submitter ≠ approver.
  • El que invalida una muestra no puede ser el aprobador original — invalidator ≠ approvedBy.
  • El que afora un lote de custodia no puede emitir el ticket — gauger ≠ ticketer.
  • El administrador no tiene authorities operativas (lab/custodia/ingeniería) — principio de mínimo privilegio deliberado (no es un olvido de configuración).
Las reglas de SoD se aplican en el servidor, no sólo en la interfaz.

Intentar saltarlas — por ejemplo, llamando directamente al API — devuelve 403 Forbidden. La visibilidad de botones en la UI es orientativa; la autorización real ocurre en el guard del API (@Authorities / @AnyAuthority).

Para empezar según tu rol

Una vez identificado tu rol, consulta la guía de uso por rol para instrucciones detalladas de cada perfil, y el manual de usuario para los flujos operativos paso a paso.