Vai al contenuto

Guida rapida ai plugin ​

Questa guida ti permette di passare rapidamente da una cartella vuota a un plugin funzionante.

1) Crea un plugin minimo solo backend ​

Crea una cartella con questi file:

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());
    }
  });
}

Installa da Plugin > Installa, scegli la cartella, abilita il plugin e verifica che i log mostrino Plugin started.

2) Se usi TypeScript ​

Usa questa struttura:

text
my-plugin/
  manifest.json
  backend/
    src/index.ts

Crea il bundle con:

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

Poi installa la cartella come descritto sopra.

3) Aggiungi un frontend in seguito ​

Aggiungi una voce frontend e i file dell’interfaccia solo quando hai bisogno di un pannello:

text
my-plugin/
  frontend/
    script.js
    style.css   # optional

Poi estendi manifest.json con:

json
{
  "kind": "frontend",
  "id": "my-plugin-frontend",
  "entrypoint": "frontend/script.js",
  "backend": { "id": "my-plugin-backend" }
}

Per la comunicazione del frontend, usa window.ogmaSDK.ready(...) e mantieni le chiamate backend nei gestori di sdk.api.

4) Autorizzazioni di cui hai quasi sempre bisogno ​

Per l’esempio backend precedente:

  • nessuna (le autorizzazioni predefinite sicure vengono concesse automaticamente)

Se il tuo plugin invia richieste in uscita, aggiungi:

json
"permissions": ["send_requests"]

Se il tuo plugin scrive rilievi di sicurezza, aggiungi:

json
"permissions": ["write_findings"]

Richiedi solo ciò che usi effettivamente.

Risoluzione dei problemi del primo plugin ​

  • Plugin failed to initialize → apri Registri e conferma che init(sdk) sia definita.
  • Invalid manifest → verifica le virgole e le virgolette del JSON.
  • Nessun callback viene eseguito → conferma che il plugin sia abilitato e che l’evento corrispondente (onInterceptResponse) sia registrato.

Per i riferimenti completi dell’API:

Software proprietario. Tutti i diritti riservati.