Дозволи
Дозволи оголошуються в manifest.json і фіксуються на весь час життя worker. Користувач має підтвердити їх під час встановлення.
Перевіряйте під час виконання через permissions.has(AddonsPermission.NAME). Відмовлений доступ записує попередження в лог і повертає false. ROOT обходить кожну окрему перевірку.
Список дозволів
| Permission | Опис |
|---|---|
ROOT |
Надає всі можливості (лише для розробки; уникайте в production) |
INCREASE_CONFIG_SIZE |
Підвищує ліміт розміру params на аддон з 10 KB до 1 MB JSON |
CONFIG_READ |
api.config.getConfig() — читання повної конфігурації застосунку |
CONFIG_WRITE |
api.config.setConfig() — запис конфігурації застосунку |
ADDON_CONFIG_READ |
api.config.getAddonParams(otherAddonId) — читання params іншого аддона (чутливо; виділяється в UI) |
NETWORK_REQUEST |
Вихідний HTTP: network.request.get/post/put/delete/postForm |
NETWORK_WEBSOCKET |
Вихідний WebSocket: network.websocket.connect |
WEB_END_POINTS |
Вхідні HTTP-маршрути: network.endpoints.create |
SOCKET_END_POINTS |
Простори імен Socket.IO: network.socketEndpoints |
WEB_CONTENT |
Обслуговування manifest.web і web_contents за /addon_static/{id}/ |
STATUS |
Рядок стану: status.Update, status.OnClick |
NOTIFY |
Сповіщення в title bar: notify.Send |
DASHBOARD_EVENTS |
Віджет останніх подій: dashboard.addRecord, registerTriggers, … |
DASHBOARD_CHAT |
Вивід і відправка в вікно чату: addChatMessage, onChatSend, … |
DASHBOARD_CHAT_INCOMING |
Підписка на рядки чату: onChatMessage / offChatMessage |
DASHBOARD_EVENTS_INCOMING |
Підписка на записи подій: onRecord / offRecord |
Приклад
if (!permissions.has(AddonsPermission.NETWORK_REQUEST)) {
console.warn('Network disabled');
return;
}
const body = await network.request.get('https://api.example.com/status');
Принцип мінімальних привілеїв
Запитуйте лише ті дозволи, які використовує ваш аддон. Для сторінок віджета/застосунку, яким потрібне лише статичне хостування, може вистачити одного WEB_CONTENT. Додайте WEB_END_POINTS, коли worker має надавати HTTP API для вбудованої сторінки.