Перейти до вмісту

Довідник SDK серверної частини плагінів ​

Серверний код плагіна виконується в ізольованому середовищі JavaScript Ogma й отримує об’єкт sdk від головного застосунку.

Повний формат пакета, поля маніфеста, дозволи й приклади наведено в посібнику системи плагінів.

Точка входу ​

Серверні плагіни надають функцію init:

js
async function init(sdk) {
  sdk.console.log("plugin started");
}

Ogma викликає init(sdk) під час увімкнення плагіна.

Основні простори імен ​

Простір іменПризначення
sdk.consoleЗапис повідомлень до буфера журналу плагіна.
sdk.metaЧитання метаданих плагіна й шляхів даних.
sdk.eventsРеєстрація обробників подій Ogma.
sdk.requestsЗапити до історії HTTP й даних запитів.
sdk.findingsПошук або створення знахідок, якщо дозволи це допускають.
sdk.scopeЧитання відомостей про активну область.
sdk.storageПостійне зберігання стану плагіна як ключів і значень.
sdk.fsФайлові операції в приватному каталозі даних плагіна.
sdk.pathДопоміжні функції складання шляхів у каталозі даних плагіна.
sdk.apiНадання серверних обробників інтерфейсу плагіна.

Журналювання ​

js
sdk.console.log("message")
sdk.console.warn("warning")
sdk.console.error("error")

Повідомлення видимі в інтерфейсі журналів плагіна. Пишіть стисло й не записуйте секретів.

Метадані ​

js
sdk.meta.id()
sdk.meta.packageId()
sdk.meta.version()
sdk.meta.path()

Використовуйте sdk.meta.path() для даних конкретного плагіна. Не припускайте доступу до довільних шляхів файлової системи з ізольованого коду плагіна.

js
sdk.storage.set("key", "value")
sdk.storage.get("key")
sdk.storage.keys()
sdk.storage.delete("key")
sdk.storage.clear()
js
sdk.fs.readFile("relative/file.txt")
sdk.fs.writeFile("relative/file.txt", "text")
sdk.fs.appendFile("relative/file.txt", "more")
sdk.fs.exists("relative/file.txt")
sdk.fs.existsSync("relative/file.txt")
sdk.fs.mkdir("relative/dir")
sdk.path.join("a", "b", "c")

Події ​

js
sdk.events.onInterceptRequest(function(req) {
  return req
})

sdk.events.onInterceptResponse(function(req, res) {
  sdk.console.log(res.getCode())
})

sdk.events.onProjectChange(function() {
  sdk.console.log("project changed")
})

Обробники мають бути швидкими. Тривалу роботу слід переносити до явних дій користувача або серверних обробників API.

Обробники мосту інтерфейсу ​

Серверні плагіни можуть надавати обробники панелям інтерфейсу плагіна:

js
sdk.api.register("ping", async function(input) {
  return { ok: true, input: input };
});

Інтерфейс викликає обробник через SDK інтерфейсу Ogma. Див. довідник SDK інтерфейсу.

Вимоги безпеки ​

  • Вважайте HTTP-трафік, знахідки, журнали й експорти конфіденційними.
  • Запитуйте лише потрібні плагіну дозволи.
  • Ніколи не записуйте облікові дані, cookie, bearer-токени або приватний трафік за замовчуванням.
  • Робіть поведінку плагіна явною й зрозумілою користувачу.

Пропрієтарне програмне забезпечення. Усі права захищено.