Plugin-Schnellstart
Diese Anleitung führt Sie schnell vom leeren Ordner zum laufenden Plugin.
1) Ein minimales Plugin nur mit Backend erstellen
Erstellen Sie einen Ordner mit diesen Dateien:
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());
}
});
}Installieren Sie das Plugin über Plugins > Installieren, wählen Sie den Ordner aus, aktivieren Sie das Plugin und prüfen Sie, ob Plugin started in den Protokollen erscheint.
2) Wenn Sie TypeScript verwenden
Verwenden Sie diese Struktur:
text
my-plugin/
manifest.json
backend/
src/index.tsErstellen Sie das Bundle mit:
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.jsInstallieren Sie anschließend den Ordner wie oben beschrieben.
3) Später ein Frontend hinzufügen
Fügen Sie einen Frontend-Eintrag und UI-Dateien erst hinzu, wenn Sie ein Panel benötigen:
text
my-plugin/
frontend/
script.js
style.css # optionalErweitern Sie dann manifest.json um:
json
{
"kind": "frontend",
"id": "my-plugin-frontend",
"entrypoint": "frontend/script.js",
"backend": { "id": "my-plugin-backend" }
}Verwenden Sie für die Frontend-Kommunikation window.ogmaSDK.ready(...) und führen Sie Backend-Aufrufe in sdk.api-Handlern aus.
4) Berechtigungen, die Sie fast immer benötigen
Für das obige Backend-Beispiel:
- keine (sichere Standardberechtigungen werden automatisch erteilt)
Wenn Ihr Plugin ausgehende Anfragen sendet, fügen Sie Folgendes hinzu:
json
"permissions": ["send_requests"]Wenn Ihr Plugin Befunde schreibt, fügen Sie Folgendes hinzu:
json
"permissions": ["write_findings"]Fordern Sie nur Berechtigungen an, die Sie tatsächlich verwenden.
Problemlösung beim ersten Plugin
Plugin failed to initialize→ öffnen Sie Protokolle und prüfen Sie, obinit(sdk)definiert ist.Invalid manifest→ prüfen Sie Kommas und Anführungszeichen im JSON.- Keine Callbacks werden ausgelöst → prüfen Sie, ob das Plugin aktiviert ist und das passende Ereignis (
onInterceptResponse) registriert wurde.
Vollständige API-Referenzen: