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.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());
}
});
}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.tsCrea 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.jsPoi 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 # optionalPoi 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 cheinit(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: