Inicio rápido de plugins
Esta guía te permite pasar rápidamente de una carpeta vacía a un plugin en funcionamiento.
1) Crear un plugin mínimo solo de backend
Crea una carpeta con estos archivos:
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());
}
});
}Instala el plugin desde Plugins > Instalar, selecciona la carpeta, habilítalo y comprueba que los registros muestran Plugin started.
2) Si utilizas TypeScript
Utiliza esta estructura:
text
my-plugin/
manifest.json
backend/
src/index.tsEmpaqueta 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.jsDespués instala la carpeta como se ha indicado anteriormente.
3) Añadir un frontend más adelante
Añade una entrada de frontend y archivos de interfaz solo cuando necesites un panel:
text
my-plugin/
frontend/
script.js
style.css # optionalDespués amplía manifest.json con:
json
{
"kind": "frontend",
"id": "my-plugin-frontend",
"entrypoint": "frontend/script.js",
"backend": { "id": "my-plugin-backend" }
}Para la comunicación del frontend, utiliza window.ogmaSDK.ready(...) y mantén las llamadas al backend en los manejadores de sdk.api.
4) Permisos que casi siempre necesitas
Para el ejemplo de backend anterior:
- ninguno (los permisos predeterminados seguros se conceden automáticamente)
Si el plugin envía solicitudes salientes, añade:
json
"permissions": ["send_requests"]Si el plugin escribe hallazgos, añade:
json
"permissions": ["write_findings"]Solicita únicamente los permisos que realmente utilizas.
Resolución de problemas del primer plugin
Plugin failed to initialize→ abre Registros y confirma queinit(sdk)está definida.Invalid manifest→ revisa las comas y las comillas del JSON.- No se ejecutan los callbacks → confirma que el plugin está habilitado y que el evento correspondiente (
onInterceptResponse) está registrado.
Para consultar las referencias completas de la API: