Saltar al contenido principal

Catálogos

Los catálogos son las bibliotecas de configuración reutilizable de TankOS: productos, plantillas y modelos que se definen una vez y se clonan sobre muchos tanques o dispositivos. En lugar de re-capturar la misma configuración tanque por tanque, el administrador la define en un catálogo y la aplica como punto de partida, con la posibilidad de sobreescribir lo que cada instancia necesite.

Precondición y rol

Quién gestiona los catálogos

Los catálogos los gestiona el administrador (admin:catalogs) desde la ruta /catalogs. El resto de roles consume las plantillas (al configurar tanques o dispositivos), pero no edita el catálogo.

Overview: las 5 tarjetas

La página principal (/catalogs) es una grilla de cinco tarjetas, cada una con su conteo en tiempo real:

Overview de catálogos

TarjetaQué agrupa
Plantillas de tanquesConfiguraciones completas de tanque, clonables a tanques nuevos.
Plantillas de alarmasJuegos de setpoints de alarma, aplicables a uno o varios tanques.
ProductosCatálogo de productos almacenables con sus propiedades de cálculo.
Tablas de aforo templatePerfiles de strapping compartidos entre tanques.
Modelos de dispositivoModelos de radar/sensor con sus valores por defecto.
Conteo "no disponible"

Si el endpoint de conteo falla, la tarjeta muestra "no disponible" en lugar del número, sin romper la página.

Los 5 catálogos clonables

CatálogoRutaQué contiene
Plantillas de tanques/catalogs/tank-templatesConfiguración completa de tanque clonable (geometría, propiedades, etc.); CTA Nueva plantilla.
Plantillas de alarmas/catalogs/alarm-templatesJuegos de setpoints de alarma clonables a tanques; CTA Nuevo template.
Productos/catalogs/productsNombre, gravedad API, tipo y propiedades MPMS del producto; CTA Nuevo producto.
Tablas de aforo template/catalogs/strapping-templatesPerfiles de strapping compartidos entre tanques; CTA Nueva plantilla.
Modelos de dispositivo/catalogs/device-modelsVendor, modelo, unidades por defecto y dirección de nivel del instrumento; CTA Nuevo modelo.

Cada catálogo es una lista con un diálogo de creación/edición. Tres de ellos aún no tienen captura del barrido inicial:

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md (Plantillas de tanques).

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md (Plantillas de alarmas).

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md (Tablas de aforo template).

Captura pendiente

Screenshot pendiente del barrido diferido — ver 61-DEFERRED-SWEEP.md (Modelos de dispositivo).

Catálogo de productos

El catálogo de productos (/catalogs/products) lista los productos almacenables con su nombre, gravedad API y tipo, más las propiedades que el motor MPMS necesita para el cálculo. El botón Nuevo producto abre el diálogo de creación/edición.

Catálogo de productos

Cada producto definido aquí queda disponible para asignarlo a los lotes de custodia y a los cálculos de los tanques que lo almacenan.

El patrón plantilla → instancia con override (herencia)

El valor de los catálogos está en el patrón de herencia: una plantilla aporta los valores por defecto, y la instancia (tanque o dispositivo) los sobreescribe solo donde haga falta.

Clonar la configuración sin re-capturarla

Definir una plantilla una vez y aplicarla a muchos tanques evita re-capturar la misma geometría, setpoints o parámetros una y otra vez. Cuando dos tanques son casi idénticos, la plantilla es la fuente común y cada uno ajusta solo sus diferencias.

Snapshot-at-apply + detección de drift (plantillas de tanque)

Al asignar una plantilla a un tanque, TankOS congela una copia de la configuración de la plantilla (un bloque JSONB) junto con su hash SHA-256 dentro del tanque (snapshot-at-apply). A partir de ahí, un proceso periódico (cron de drift) compara el tanque contra ese snapshot y detecta divergencias: si la configuración del tanque se aparta de la plantilla, el editor muestra un DriftBadge y el TemplateDiffDialog con el diff plantilla ↔ tanque.

Así, la plantilla no "ata" al tanque: este puede divergir, pero la divergencia queda visible y trazable, no silenciosa.

DeviceModel → Device (modelos de dispositivo)

El mismo patrón aplica a los modelos de dispositivo: el DeviceModel del catálogo provee los valores por defecto de configuración, y cada Device puede sobreescribirlos con overrides específicos. El valor efectivo de cualquier parámetro es, en la práctica, device.X ?? device.deviceModel.X — el override de la instancia si existe, y si no, el valor del modelo.

Páginas relacionadas

  • La detección de drift de plantillas de tanque (DriftBadge / TemplateDiffDialog) se ve en acción en el editor de tanque.
  • Los overrides de configuración por dispositivo (sobre los valores del modelo del catálogo) se documentan en dispositivos y radares.
  • Las tablas de aforo template se relacionan con el flujo completo de importación y publicación de calibración y tablas de aforo.