Donutgramплагины
На этой страницеmanifest.json

Манифест

Опишите идентификатор, версию, возможности и настройки плагина.

manifest.json

Манифест — обычный JSON. Он читается без выполнения кода, поэтому значения не могут вычисляться функциями или JavaScript-выражениями.

Полный пример

{
  "kind": "donutgram.plugin",
  "schemaVersion": 1,
  "id": "dev.example.hello",
  "name": "Приветствие",
  "version": "1.0.0",
  "description": "Команда приветствия в текущем чате",
  "author": { "name": "Ваше имя", "username": "yourname" },
  "apiVersion": "^1.0.0",
  "minClientVersion": "13.2",
  "entry": "main.js",
  "icon": "assets/icon.png",
  "profile": "localPrivate",
  "permissions": [
    {
      "capability": "ui.contribute",
      "scope": "composer",
      "reason": "Показать команду приветствия в чате"
    }
  ],
  "optionalPermissions": [],
  "changelog": "Первая версия"
}

Если файла иконки нет, удалите поле icon. Набор возможностей должен соответствовать фактическому коду плагина.

Поля

Поле Назначение
kind Всегда donutgram.plugin
schemaVersion Версия формата: 1
id Стабильный идентификатор вида dev.example.hello
name, description Название и назначение
version Версия по SemVer
author Объект с name и необязательным username
apiVersion 1.0.0 или ^1.0.0
minClientVersion Минимальная версия Donutgram
entry JavaScript-точка входа, обычно main.js
icon Путь к локальной картинке в assets/
profile localPrivate или publicNetwork
permissions Требуемые возможности с точными scope
optionalPermissions Необязательные возможности
settingsSchema Схема сохраняемых пользовательских настроек
changelog Что изменилось в этой версии

Идентификатор и обновления

Не меняйте id при обновлении: другой идентификатор создаёт отдельную установку. Для следующего релиза увеличьте версию, например с 1.0.0 на 1.1.0. Одно имя автора само по себе не подтверждает происхождение пакета.

Профили

localPrivate предназначен для локальной работы с выбранными данными приложения. publicNetwork — для публичных сетевых интеграций. Эти профили не объединяются: сетевой плагин не получает доступ к приватному черновику или выбранным сообщениям.

Смена профиля через обычное обновление не поддерживается. Нужны удаление с очисткой данных и новая установка.

Машиночитаемая схема

Подключите manifest.schema.json к редактору. Перед упаковкой всё равно выполните validate: нативные и CLI-проверки учитывают дополнительные условия.