На этой странице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-проверки учитывают дополнительные условия.