Ir al contenido

Módulo I — inventario y descubrimiento

El módulo I es el catálogo del estate: un inventario pasivo, dirigido por el bus, de todo lo que existe — agentes, sesiones, instancias de Claude Code, servidores MCP, skills, herramientas, recursos, modelos, proveedores e identidades no humanas. Descubre escuchando, nunca sondeando, y registra solo relaciones, identificadores y vitalidad — nunca payloads. Esta página es la referencia de lo que el catálogo contiene y de lo que deliberadamente no contiene.

Los conectores emiten observaciones, no entidades. Publican hechos normalizados edge.observed y cost.sampled en el bus de eventos; las entidades que estos implican nunca se envían. El módulo I materializa la entidad de núcleo que cada observación nombra a partir de su referencia natural: una session/agent/identity de origen, un servidor MCP, una herramienta, un recurso, una skill y — a partir de las muestras de coste — un proveedor y un modelo (descubiertos, sin precios; de eso se encarga FinOps). La materialización es idempotente bajo entrega de al-menos-una-vez: find-or-create sobre la clave natural, de modo que la misma observación vista dos veces nunca duplica una entidad.

El módulo registra una entidad propia, inventory.catalog_entry — una capa de descubrimiento adjunta a cada entidad de núcleo materializada. Registra cómo se encontró algo, no qué hizo: una lista de fuentes de señal, los hosts en los que se vio, marcas temporales de primera y última observación, un contador de ocurrencias y un status de vitalidad de active o stale. Un barrido de obsolescencia periódico marca una entrada como stale cuando no se ha visto dentro de la ventana configurada, y la vuelve a active en el momento en que reaparece; el barrido se ejecuta solo sobre los tenants que el módulo ha observado de hecho (no puede, ni lo hace, enumerar tenants). La superficie de lectura es pequeña y de solo lectura: un summary con conteo por tipo y fuente, un listado paginado de entities filtrable por tipo y estado, y una vista de detalle de entidad única. Cada lectura requiere un permiso de lectura con namespace, acotado al tenant (basta el nivel de visor más bajo); la ingesta es de alta frecuencia y no se audita por escritura. Las formas completas viven en la referencia del bus de eventos y en las interfaces tipadas del producto.

El módulo I es un consumidor puro. Se suscribe a edge.observed, cost.sampled y finding.reported y escribe solo su propia capa de catálogo y las entidades de núcleo que deriva. No emite eventos propios y no expone ninguna superficie de actuación — el descubrimiento es, por naturaleza, observar-y- catalogar. Las referencias que persiste llegan ya expurgadas desde los conectores; el módulo las almacena de forma literal y no añade ningún detalle en crudo propio, de modo que la propiedad de datos mínimos es una propiedad del cable, sostenida de extremo a extremo.