Rychlý start s pluginy
Tento průvodce vás rychle provede od prázdné složky ke spuštěnému pluginu.
1) Vytvořte minimální plugin pouze s backendem
Vytvořte složku s těmito soubory:
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());
}
});
}Nainstalujte plugin přes Zásuvné moduly > Nainstalovat, vyberte složku, zapněte plugin a ověřte, že protokoly obsahují Plugin started.
2) Pokud používáte TypeScript
Použijte tuto strukturu:
text
my-plugin/
manifest.json
backend/
src/index.tsVytvořte balíček pomocí:
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.jsPoté nainstalujte složku stejným způsobem jako výše.
3) Přidejte frontend později
Frontendovou položku a soubory uživatelského rozhraní přidejte až ve chvíli, kdy potřebujete panel:
text
my-plugin/
frontend/
script.js
style.css # optionalPoté rozšiřte manifest.json o:
json
{
"kind": "frontend",
"id": "my-plugin-frontend",
"entrypoint": "frontend/script.js",
"backend": { "id": "my-plugin-backend" }
}Pro komunikaci frontendu použijte window.ogmaSDK.ready(...) a volání backendu ponechte v obslužných funkcích sdk.api.
4) Oprávnění, která téměř vždy potřebujete
Pro výše uvedený backendový příklad:
- žádná (bezpečná výchozí oprávnění se udělují automaticky)
Pokud váš plugin odesílá odchozí požadavky, přidejte:
json
"permissions": ["send_requests"]Pokud váš plugin zapisuje nálezy, přidejte:
json
"permissions": ["write_findings"]Žádejte pouze o oprávnění, která skutečně využíváte.
Řešení problémů s prvním pluginem
Plugin failed to initialize→ otevřete Protokoly a ověřte, že je definována funkceinit(sdk).Invalid manifest→ ověřte čárky a uvozovky v JSON.- Obslužné funkce se nespouštějí → ověřte, že je plugin zapnutý a že je zaregistrována odpovídající událost (
onInterceptResponse).
Úplnou referenční dokumentaci API najdete zde: