Přejít na obsah

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.js

manifest.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.ts

Vytvoř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.js

Poté 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   # optional

Poté 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 funkce init(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:

Proprietární software. Všechna práva vyhrazena.