- Updated examples in "estructura-web-por-entidades-y-operaciones.md" to reflect correct entity names and directory structures. - Clarified modal usage and component interactions in "impresoras-del-perfil.md". - Adjusted component descriptions in "logotipos-de-companias.md" for consistency. - Revised persistence model details in "normalizacion-de-la-persistencia.md" to remove outdated references and clarify relationships. - Enhanced dialog patterns in "patron-de-dialogos.md" with specific guidelines for field labels and validation. - Specified component reuse in "patron-de-listados-de-entidades.md" to include @repo/rdx-ui components. - Updated implementation status in "personas-y-departamentos.md" to reflect current features and pending tasks. - Clarified project scope and initial setup instructions in "plan-de-desarrollo.md" and "puesta-en-marcha.md". - Improved descriptions of workstation management in "puestos-de-trabajo.md" for better understanding of active/inactive states. - Enhanced resource management details in "recursos-campos-y-plantillas.md" to clarify relationships and pending features. - Revised best practices review in "revision-de-buenas-practicas.md" to reflect current project status and components. - Updated teleworking documentation in "teletrabajo.md" to include references to remote technical assistance. - Clarified user account management in "usuarios-y-acceso.md" to emphasize the importance of account deactivation.
9.1 KiB
Campos y plantillas de activos
Uso
El Catálogo de activos de la navegación principal contiene las definiciones globales. La ficha de cada compañía incorpora Catálogo de activos: combina las globales con sus adiciones propias.
Las altas y ediciones se abren mediante el botón de cabecera o la acción del listado. Los formularios son modales, con ayuda inferior y Guardar / Cancelar. Ver consulta una definición sin modificarla. Crear copia inicia una nueva plantilla personalizable.
Un campo representa una característica reutilizable: texto, texto largo, número, fecha, sí/no o lista de valores. Tiene nombre, descripción y unidad opcionales. Una lista necesita valores únicos; el tipo queda fijo tras el alta y sus valores existentes no pueden eliminarse. Se pueden añadir valores. Las credenciales no pertenecen a este catálogo.
Una plantilla reúne campos para un tipo de activo. No representa un activo concreto ni un modelo comercial. Cada campo comienza como opcional; el técnico puede marcarlo obligatorio en plantillas propias. Se pueden añadir y retirar campos. Retirar una asociación no elimina la definición del campo. El orden de incorporación se conserva.
«Añadir campo» abre CatalogFieldPickerDialog desde el grupo de destino. Permite seleccionar varios campos existentes o abrir el alta rápida desde el pie. Confirmar incorpora el lote como opcional; cancelar conserva la plantilla. Un campo guardado permanece en el catálogo aunque se cancele después la plantilla.
Datos de serie
Se incluyen además cinco tipos de relación. Hay 55 campos y 12 plantillas: portátil, PC de sobremesa, monitor, impresora, router, firewall, switch, punto de acceso Wi-Fi, NAS, servidor, smartphone y SAI.
Los campos describen identidad física y comercial, hardware, conectividad, batería, alimentación, software precargado, compra, garantía y soporte. IP, nombre de equipo, usuario asignado y mediciones operativas actuales no forman parte del catálogo de serie.
Todas las características iniciales de las plantillas de serie son opcionales. Las plantillas globales, incluidas las de serie, permiten editar nombre, descripción, icono, grupos, campos incluidos y obligatoriedad. Los campos de serie admiten edición; su tipo permanece fijo y las opciones existentes no se pueden retirar. Los tipos de relación de serie mantienen su protección. Se pueden activar o desactivar. Para particularizar una plantilla para una compañía, crear una copia. No hay borrado de definiciones.
El arranque incorpora únicamente definiciones ausentes mediante claves de serie estables; conserva las plantillas existentes y su personalización. Reiniciar no duplica registros, regenera UUID ni reactiva definiciones desactivadas. No crea compañías, personas ni activos ficticios.
Ámbitos y disponibilidad
Una definición global está disponible para todas las compañías. Una adición local solo está visible en su compañía. No se pueden editar definiciones globales desde una compañía; se puede crear una copia de una plantilla.
La disponibilidad global es el valor predeterminado. Cada compañía puede establecer una activación o desactivación propia de una definición global, sin afectar a otras. Usar configuración global elimina el efecto del ajuste local, conservando su UUID. Las definiciones globales personalizadas se pueden eliminar tras confirmación si no están usadas por activos, historial, relaciones o plantillas; las definiciones de serie y las adiciones de compañía se conservan.
No se aceptan nombres duplicados del mismo tipo en el catálogo visible, ignorando mayúsculas y espacios exteriores. Una nueva definición global tampoco puede colisionar con una adición local.
Las plantillas globales solo usan campos globales. Las locales pueden usar campos globales o de su propia compañía. Solo se añaden campos activos. Desactivar un campo conserva las asociaciones existentes y muestra un aviso; no desactiva automáticamente plantillas ni borra información.
Arquitectura
El módulo assets sigue domain, application e infrastructure. AssetCatalog es la raíz de consistencia; AssetDefinition, TemplateField y CatalogAvailability son entidades. Todas tienen UniqueID; las nuevas identidades son UUID v7. AssetDefinitionValues reconstruye Name y referencias UniqueID y compara cambios semánticamente. Los cambios idempotentes conservan instancias e identificadores.
Las tablas asset_catalogs, asset_definitions, asset_template_fields y asset_availability tienen claves primarias y foráneas explícitas. Las migraciones son idempotentes. Un bloqueo de catálogo serializa altas, cambios de nombres, campos asociados y disponibilidad para evitar colisiones concurrentes. El mapper reconstruye y comprueba definiciones y asociaciones persistidas.
Las rutas GET /api/asset-catalog/:scope, POST /api/asset-catalog/:scope, POST /api/asset-catalog/:scope/:id/update, POST /api/asset-catalog/:scope/:id/status y POST /api/asset-catalog/:scope/:id/delete requieren sesión. Las escrituras usan la protección de origen y CSRF existente. scope es global o el UUID de una compañía existente. La respuesta solo expone el catálogo visible de ese ámbito.
Inventario y relaciones
El inventario de activos utiliza estas plantillas. El mismo catálogo incorpora los tipos de relación. Los puestos de trabajo agrupan los activos registrados.
Organización de campos
Las plantillas permiten organizar campos en secciones ordenadas, globales o propias de compañía. Consultar Secciones de campos en plantillas para las reglas, presentación y conservación de datos existentes.
La propuesta de evolución de plantillas de activos define cómo propagar cambios a los activos existentes de todas las compañías, conservando valores e historial. Está pendiente de implementación; no modifica el contrato actual de instantáneas.
Iconos de plantilla
Cada plantilla global o propia de compañía admite un icono opcional de la biblioteca Lucide existente. El formulario incluye un selector visual con nombres traducidos, selección marcada y opción «Sin icono». Las copias conservan el icono; las plantillas personalizadas permiten cambiarlo y retirarlo.
Las doce plantillas de serie incluyen iconos adecuados a cada equipo. Editar o retirar un icono conserva identidades, campos y disponibilidad; el arranque no repone los iconos retirados por el usuario.
El catálogo, su consulta de detalle, la columna Plantilla del inventario y la cabecera del panel del activo muestran el icono. Los activos toman el icono actual de su plantilla: es metadato de presentación y no modifica características ni historial técnico.
Se persiste la clave validada del icono en la columna nullable asset_definitions.icon, sin JSON ni archivos de imagen. La migración añade la columna en instalaciones existentes. Los campos y las relaciones no admiten iconos en este contrato.
Plantilla Portátil
La plantilla incluye 25 campos opcionales en ocho grupos:
- Identificación: marca, modelo, número de serie y código de producto / Service Tag.
- Hardware: procesador, tarjeta gráfica, webcam, memoria RAM, almacenamiento, pantalla integrada, micrófono, idioma del teclado, teclado numérico y retroiluminación.
- Conectividad: descripción de las interfaces y estándares disponibles.
- Batería: referencia/modelo y capacidad de fábrica.
- Alimentación: potencia, conector y referencia/modelo del cargador.
- Software: sistema operativo precargado.
- Compra y garantía: fecha de compra, fin de garantía y proveedor.
- Soporte y reparación: enlace a la página de soporte.
No incluye capacidad actual de la batería, ciclos, estado ni fecha de comprobación. Estas mediciones pertenecen a comprobaciones o intervenciones fechadas.
Catálogo revisado del 10/10/2026
El catálogo de serie refleja el Excel aprobado por el usuario: 55 campos compartidos, 12 plantillas y 161 asociaciones de campos. Conserva los nombres, tipos, grupos y orden indicados. Todos los campos de características siguen siendo opcionales. Los ejemplos ilustrativos se utilizan como texto de ayuda; cuando varias plantillas comparten un campo, se reúnen sus ejemplos sin duplicados en la definición global.
Los tipos son texto, texto largo, fecha y booleano. Texto largo se representa con
un área de texto y se persiste en la columna relacional textValue, conservando
los saltos de línea. La actualización explícita e idempotente de las restricciones
CHECK admite multiline sin desactivar la integridad referencial ni guardar JSON.
Las ediciones posteriores de las definiciones se conservan al reiniciar.
Los activos describen identidad física/comercial y características de fábrica. El sistema operativo precargado no representa el sistema operativo actualmente instalado, que se registra como recurso. Las personas se relacionan mediante puestos de trabajo y perfiles de usuario. La plantilla Servidor conserva los dos campos de sistema operativo con nombres diferentes que aparecen en el Excel.