Skip to content

Маркетплейс расширений и реестры

Рабочая документация первой версии API: именованные реестры, манифест, резолв в лаунчере, REST-сервис каталога, SDK и UI.

Документы

ФайлСодержание
01-registry-model.mdМодель реестров, роли host / расширений, runtime store
02-manifest-contract.mddeclaresRegistries, extendsRegistries, extensionDependencies (без requiresRegistries)
03-launcher-resolution.mdРезолв зависимостей, implied deps, локальный индекс слотов
04-sdk-shared-types.mdОбщие TypeScript-типы REST и пейлоадов (@rynt/sdk/extension-marketplace)
05-marketplace-service.mdPostgres, REST, уникальность слота (registryId, key) при публикации
06-launcher-ui.mdГлобальный диалог маркетплейса, кнопка слота, управление расширениями
07-implementation-phases.mdПорядок работ по пакетам
08-extension-api-versioning.mdextensionApi: "1", мягкая проверка, автообновление пакетов
09-developer-portal.mdЛК разработчика, S3, модерация
10-listing-metadata.mdИконка, автор, TipTap-описание listing

Принципы v1

  • Манифест описывает, какие реестры расширение создаёт и какие пополняет (с явными keys).
  • Лаунчер при загрузке строит граф и порядок setup; в runtime допускает несколько записей на один (registryId, key) (последняя побеждает / все видны в entries() — без жёсткого запрета).
  • Сервис маркетплейса при публикации запрещает дубли слота: один (registryId, registryKey) → одно расширение в каталоге.
  • Типы API живут в SDK отдельным export; лаунчер и сервис импортируют один контракт.
  • UI маркетплейса — глобальный диалог (открывается из любого места), не только встроенная страница настроек.
  • Extension API — целая версия "1", проверка мягкая; версия пакета (semver) — для каталога и автообновления расширений.

npm-пакеты для авторов

  • Реестры и загрузка: @rynt/sdk/extension
  • Типы маркетплейса: @rynt/sdk/extension-marketplace
  • Сборка .ryntextension: @rynt/extension-build