Справочник по манифесту
Каждый модуль объявляет module-manifest.json в своём корне. Платформа проверяет его Zod-схемой из @tv/extension-sdk/manifest и JSON Schema в manifest.schema.json.
Проверка
bash
npx tv-sdk validate module-manifest.json
# выход 0 — валиден, 1 — невалиден, 2 — ошибка использованияПоля верхнего уровня
| Поле | Обязательно | Описание |
|---|---|---|
$schema | рекомендуется | URL версионированной JSON Schema для проверки в редакторе |
id | да | @vendor/module-name — глобально уникальный |
name | да | Человекочитаемое отображаемое имя |
version | да | Semver вашего модуля |
minCoreVersion | да | Минимальная версия платформы, напр. >=2.0.0 |
sdkVersion | рекомендуется | Диапазон SDK, под который собрано, напр. ^1.0.0 |
category | да | core / operations / engagement / infrastructure |
buildingTypes | да | ["all"] или конкретные типы, напр. ["mall","office"] |
permissions | да | Какие ресурсы платформы вы читаете/пишете |
events | да | Массивы publishes + subscribes |
ui | если есть UI | маршруты + пункты навигации |
Разрешения
json
"permissions": [
{ "subject": "building.spaces", "actions": ["read"] },
{ "subject": "building.elements", "actions": ["read", "write"] }
]Субъекты и действия берутся из каталога разрешений платформы. Проверьте свои по нему:
bash
npx tv-sdk snapshot-permissions # посмотреть актуальный каталогUI
json
"ui": {
"routes": [{ "path": "/cafm" }],
"navigation": [
{ "label": "CAFM", "path": "/cafm", "section": "operations" }
]
}routes — это места монтирования вашего федеративного Shell. navigation — то, что появляется на боковой панели Building OS.
Полный пример
См. эталонный модуль для полного проверенного манифеста с mcpTools, heartbeat и федерацией, подписанной HMAC.
Стабильность схемы
Схема манифеста следует semver SDK. Несовместимые изменения (новые обязательные поля, удалённые поля) повышают мажорную версию SDK. Дополняющие поля повышают минорную. См. политику стабильности.