Federation — федерация
Раздел виден только глобальному администратору (global_admin).
6.1. Tenants — тенанты
Маршрут: /admin/tenants (детально — /admin/tenants/:tenantId)
Зачем это нужно. Управление жизненным циклом тенантов федерации и их участниками — основа мультиинстансной модели (каждый заказчик = свой инстанс).
Список: колонки Name, Slug, Members, Status (Active / Revoked / Decommissioned / Purge Pending / Deleted), Created, Actions. В меню действий: Revoke Access, Deactivate, Schedule Decommission (с периодом хранения 7–365 дней, по умолчанию 90), Hard Delete, а также Edit (имя/описание).
Карточка тенанта: для локальной строки — вкладки Members (таблица User / Role / Joined / Actions, Add Member, смена роли tenant_admin / analyst / viewer) и Settings (name, description, maxUsers, maxCases). Для федеративного узла — вкладки Health (статус связи, heartbeat, reconnects, RPC p50/p95/p99, outbox pending/dead — обновление каждые 5 с) и Registry (метаданные узла).
6.2. Federation Health — здоровье федерации
Маршрут: /admin/federation/health
Зачем это нужно. Мониторинг связи с узлами-тенантами (задержки RPC, отставание outbox, переподключения) — чтобы вовремя увидеть проблемы федерации.
Дашборд по-тенантного состояния (обновляется каждые 10 с): карточки Tenants online и Generated at; таблица по тенантам (индикатор online/offline, Connected since, Last HB, Reconnects, RPC calls, p50/p95/p99, Timeouts, Outbox pending/dead).
6.3. Registration Tokens — токены регистрации
Маршрут: /admin/federation/tokens
Зачем это нужно. Токен — безопасный одноразовый способ подключить новый тенант к федерации (без передачи постоянных секретов).
Выдача и отзыв токенов регистрации тенантов. Reload, Issue token
(tenant slug, display name, TTL 1–168 ч). Колонки: Tenant slug, Status
(active / consumed / revoked / expired), Issued, Expires, Consumed, Revoked,
Actions (Revoke). Токен показывается один раз после выдачи — его нужно
скопировать; передаётся тенанту через TENANT_REGISTRATION_TOKEN.
6.4. Catalog Promotions — продвижение в каталог
Маршрут: /admin/federation/catalog/promotions
Зачем это нужно. Ревью предложений тенантов в общий каталог — контроль качества и целостности контента, попадающего на главный узел.
Очередь на ревью предложений тенантов в канонический каталог. Фильтр статуса (All / Pending / Approved / Rejected). Колонки: Status, Kind (playbook / automation / indicator_type / connector), Name, Source, Base version, Submitted. Клик по строке — drawer с метаданными и предлагаемым контентом; для pending — Approve + merge и Reject (с заметкой ревьюера).