Ir al contenido

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

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

Empaqueta 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

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

Despué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 que init(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:

Software propietario. Todos los derechos reservados.