metis-desk/docs/infraestructura-informatica.md
2026-10-17 17:01:16 +02:00

130 lines
7.4 KiB
Markdown

# Infraestructura informática de la compañía
Implementación del núcleo acordado en la
[auditoría de infraestructura](auditoria-de-infraestructura-informatica.md): conexiones
entre equipos, interfaces/IP y consulta del uso documentado de impresoras.
## Acceso y clasificación
La compañía incorpora **Infraestructura** en su navegación. La ruta es
`/companies/:companyId/infrastructure`. Es una vista del mismo inventario de activos;
no crea otra copia de los equipos.
Las funciones disponibles son Red, Servidor, Almacenamiento y Periférico compartido.
Un activo puede tener varias. Los routers, firewalls, switches y puntos de acceso de
serie se presentan por defecto en Red; los servidores en Servidor y los NAS en
Almacenamiento. El criterio usa `builtinKey`, publicado por el catálogo de activos,
no el icono ni el nombre traducido. Las clasificaciones guardadas prevalecen sobre
esos valores de serie. Las plantillas propias se clasifican expresamente.
**Añadir a infraestructura** reutiliza el selector de activos y abre el editor sobre
el activo elegido. También se accede desde **Interfaces y direcciones** en la ficha
lateral o en la ficha completa de cualquier activo. Marcar Periférico compartido no
reserva el activo para un puesto ni instala configuraciones de impresión.
El listado admite búsqueda, filtros por función, columnas y ordenación del patrón
común. Muestra interfaces/IP, estado técnico, puestos asignados y relaciones vigentes con
enlaces a las fichas de ambos extremos. Para dar de alta un equipo nuevo se utiliza
el alta existente de Activos, conservando sus plantillas, sedes e historial.
## Interfaces y direcciones
El editor tiene altura estable, scroll interno y ayuda junto al pie. Las interfaces
admiten nombre, tipo Ethernet/Wi-Fi/Otra, MAC opcional, notas y cero o varias IP.
Máximo 32 interfaces por activo y 32 direcciones por interfaz. Puede haber varias
interfaces Ethernet con nombres distintos. Los nombres son únicos dentro del activo,
ignorando mayúsculas y espacios exteriores.
Las direcciones admiten IPv4 e IPv6 sin máscara. Se normalizan las IPv6 y las MAC;
no se admite repetir una dirección dentro de la misma interfaz. No hay unicidad
global por dirección: dos compañías, o dos interfaces, pueden documentar la misma IP.
No se infieren subredes, VLAN ni rutas. Una interfaz sin IP conocida se conserva.
Cada interfaz y dirección tiene identidad UUID v7, independiente de su nombre o IP.
El editor conserva esas identidades al modificar datos. Repetir un guardado equivalente
no añade revisión. Se rechazan identificadores de interfaces o direcciones que no
pertenezcan a la configuración que se está editando.
Cada cambio guarda una instantánea con actor y fecha; la ficha permite consultar
interfaces, direcciones, notas y funciones anteriores. Retirar una interfaz o una IP
del formulario no borra sus instantáneas históricas.
Las IP/MAC que ya existían en características o notas permanecen intactas. Su traslado
al nuevo apartado requiere revisar a qué interfaz corresponden; no hay una conversión
que invente conexiones o elimine datos anteriores.
## Conexiones entre equipos
Se reutiliza [Relaciones entre activos](relaciones-entre-activos.md). **Conectado a**
es suficiente para indicar impresora ↔ switch o NAS ↔ switch. Se consulta en las
fichas de ambos extremos. No se requieren puertos numerados ni conexiones a nivel
de interfaz para guardar esa relación. También se conservan Alojado en y los demás
tipos de relación existentes.
UniFi conserva el detalle de puertos y cableado. Este núcleo no incorpora sincronización,
descubrimiento, monitorización, VLAN o IPAM avanzado. Las relaciones representan
información documentada, no una comprobación automática de conectividad actual.
## Dónde se utiliza una impresora
La ficha del activo en el espacio de compañía presenta **Dónde se utiliza**, a partir
de `printer_configurations` y los perfiles existentes. La composición se inyecta desde
Companies: Assets no importa repositorios, API ni componentes de Companies.
Se agrupa por equipo, con enlace a su ficha. Varios perfiles del mismo equipo producen
una sola entrada de equipo. Dentro se muestran los perfiles, persona, conexión USB/red,
estado, condición de predeterminada y avisos de revisión. Se conservan los estados
Pendiente de configurar, Configurada y Pendiente de retirar; las configuraciones
Retirada y No llegó a configurarse aparecen aparte como historial.
Si una referencia no se resuelve, se informa de ello; los errores de consulta no se
presentan como ausencia de uso. Los datos se obtienen de las consultas compartidas de
inventario, perfiles e impresoras y admiten reintento.
La consulta describe configuraciones registradas, no actividad de impresión observada.
No mantiene una segunda lista editable de equipos usuarios. La reserva exclusiva del
puesto no se modifica: una impresora compartida puede usarse en varios perfiles sin
incorporarse a sus composiciones.
## Dominio, persistencia y HTTP
`AssetInfrastructure` es el agregado de la documentación de infraestructura de un
activo. Contiene interfaces con direcciones identificadas y revisiones inmutables.
Los valores normalizados comparan contenido semánticamente, sin serializar JSON.
La migración explícita se integra en el arranque del módulo de activos y es idempotente.
Tablas relacionales:
- `asset_infrastructure`: identidad, compañía y activo, único por activo.
- `asset_infrastructure_revisions`: actor, fecha y posición de cada instantánea.
- `asset_infrastructure_roles`: funciones por revisión.
- `asset_interface_snapshots`: valores e identidad de las interfaces por revisión.
- `asset_interface_address_snapshots`: valores e identidad de direcciones por interfaz/revisión.
Las FK compuestas protegen la pertenencia activo/compañía y dirección/interfaz/revisión.
Las revisiones se añaden; los datos actuales se obtienen de la última instantánea.
El borrado definitivo permitido de un activo limpia también estos datos propios dentro
de la misma transacción. Las asociaciones externas siguen bloqueando ese borrado.
`GET /api/asset-infrastructure/:companyId` devuelve configuraciones e historial.
`POST /api/asset-infrastructure/:companyId/:assetId` guarda `{ values }` con funciones
e interfaces. Los contratos Zod validan entrada y salida. La sesión aporta el actor;
las rutas usan la autenticación común y las escrituras la protección HTTP del servidor.
El repositorio valida la compañía, verifica la pertenencia del activo y bloquea la
compañía durante la escritura para proteger el guardado concurrente.
## Validación y límites
Pruebas de normalización, límites, nombres/direcciones duplicados, identidad e historial,
repetición sin cambios, clasificación independiente de iconos y uso agrupado por equipo.
Las pruebas web comprueban es/en y referencias reales a fichas. Las pruebas HTTP usan
Express real y un repositorio en memoria; comprueban sesión, validación y pertenencia.
La prueba MariaDB utiliza tablas temporales en `metis_desk_test` para verificar escritura,
rehidratación, historial y limpieza de los datos propios. La migración se ha aplicado
y repetido en esa base para comprobar las nuevas restricciones.
Los anfitriones de recursos publicados, colas de impresión, usos sin perfil y mapas
opcionales mantienen el carácter de ampliaciones posteriores de la propuesta. No son
requisitos para registrar interfaces/IP, conexiones entre equipos o el uso de impresión
ya documentado mediante perfiles.