Перейти к содержимому

Модуль I — инвентаризация и обнаружение

Модуль I — это каталог estate: пассивная, управляемая шиной инвентаризация всего, что существует — агентов, сессий, экземпляров Claude Code, серверов MCP, навыков, инструментов, ресурсов, моделей, провайдеров и нечеловеческих идентичностей. Он обнаруживает путём прослушивания, никогда не зондируя, и записывает только связи, идентификаторы и признаки активности — никогда полезную нагрузку. Эта страница — справочник по тому, что содержит каталог и что он намеренно не содержит.

Коннекторы испускают наблюдения, а не сущности. Они публикуют нормализованные факты edge.observed и cost.sampled на шину событий; подразумеваемые ими сущности никогда не отправляются. Модуль I материализует базовую сущность, которую называет каждое наблюдение, по её естественной ссылке: инициатора session/agent/identity, сервер MCP, инструмент, ресурс, навык и — из выборок стоимости — провайдера и модель (обнаруженные, без цен; ценами владеет FinOps). Материализация идемпотентна при доставке «не менее одного раза»: «найти-или-создать» по естественному ключу, поэтому одно и то же наблюдение, увиденное дважды, никогда не дублирует сущность.

Модуль регистрирует одну собственную сущность, inventory.catalog_entry — наложение обнаружения, прикреплённое к каждой материализованной базовой сущности. Оно фиксирует, как нечто было найдено, а не что оно делало: список источников сигналов, хосты, на которых оно было замечено, метки времени первого и последнего наблюдения, счётчик вхождений и признак активности statusactive или stale. Периодический обход устаревания (staleness sweep) помечает запись как stale, когда её не наблюдали в течение настроенного окна, и возвращает её обратно в active в тот момент, когда она вновь появляется; обход выполняется только по тем арендаторам, которых модуль действительно наблюдал (он не может перечислить арендаторов и не делает этого). Поверхность чтения мала и доступна только для чтения: счётчик summary по виду и источнику, постраничный список entities с фильтрацией по виду и статусу и подробный просмотр одной сущности. Каждое чтение требует разрешения на чтение в области арендатора и в пространстве имён (достаточно низшего уровня viewer); приём данных высокочастотен и не проходит аудит на каждую запись. Полные формы описаны в справочнике по шине событий и в типизированных интерфейсах продукта.

Модуль I — чистый потребитель. Он подписан на edge.observed, cost.sampled и finding.reported и записывает только собственное наложение каталога и выводимые из них базовые сущности. Он не испускает собственных событий и не предоставляет никакой поверхности воздействия (actuation) — обнаружение по своей природе «наблюдать и каталогизировать». Сохраняемые им ссылки приходят уже замаскированными от коннекторов; модуль хранит их дословно и не добавляет никаких собственных «сырых» деталей, поэтому свойство минимальности данных является свойством канала связи, поддерживаемым из конца в конец.