130 lines
7.4 KiB
Markdown
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.
|