Швидкий старт плагінів
Цей посібник допоможе швидко перейти від порожньої папки до працюючого плагіна.
1) Створіть мінімальний серверний плагін
Створіть папку з такими файлами:
text
my-plugin/
manifest.json
backend/
script.jsmanifest.json:
json
{
"id": "my-plugin",
"name": "My Plugin",
"version": "0.1.0",
"plugins": [
{
"kind": "backend",
"id": "my-plugin-backend",
"entrypoint": "backend/script.js"
}
]
}backend/script.js:
js
async function init(sdk) {
sdk.console.log("Plugin started");
sdk.events.onInterceptResponse(function(req, res) {
if (!res) return;
if (res.getCode() === 403) {
sdk.console.warn("403 on " + req.getUrl());
}
});
}Установіть через Плагіни > Установити, виберіть папку, увімкніть плагін і переконайтеся, що журнали показують Plugin started.
2) Якщо використовуєте TypeScript
Використовуйте таку структуру:
text
my-plugin/
manifest.json
backend/
src/index.tsЗберіть командою:
bash
pnpm add -D @ogmabox/ogma-sdk esbuild typescript
pnpm exec esbuild backend/src/index.ts \
--bundle \
--platform=neutral \
--format=iife \
--external:@ogma/sdk --external:@ogmabox/ogma-sdk \
--outfile=backend/script.jsПотім установіть папку, як описано вище.
3) Додайте інтерфейс пізніше
Додавайте точку входу фронтенда й файли інтерфейсу лише коли потрібна панель:
text
my-plugin/
frontend/
script.js
style.css # optionalПотім розширте manifest.json:
json
{
"kind": "frontend",
"id": "my-plugin-frontend",
"entrypoint": "frontend/script.js",
"backend": { "id": "my-plugin-backend" }
}Для взаємодії інтерфейсу використовуйте window.ogmaSDK.ready(...), а серверні виклики залишайте в обробниках sdk.api.
4) Дозволи, які майже завжди потрібні
Для серверного прикладу вище:
- жодні (безпечні типові дозволи надаються автоматично)
Якщо плагін надсилає вихідні запити, додайте:
json
"permissions": ["send_requests"]Якщо плагін записує знахідки, додайте:
json
"permissions": ["write_findings"]Запитуйте лише те, що фактично використовуєте.
Усунення несправностей першого плагіна
Plugin failed to initialize→ відкрийте Журнали й переконайтеся, щоinit(sdk)визначено.Invalid manifest→ перевірте коми й лапки JSON.- Обробники не викликаються → переконайтеся, що плагін увімкнено й відповідну подію (
onInterceptResponse) зареєстровано.
Повні довідники API: