Ir para o conteúdo

Início rápido de plugins ​

Este guia leva você rapidamente de uma pasta vazia a um plugin em execução.

1) Crie um plugin mínimo somente de backend ​

Crie uma pasta com estes arquivos:

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

Instale em Plugins > Instalar, selecione a pasta, habilite o plugin e verifique se os logs mostram Plugin started.

2) Se você usa TypeScript ​

Use esta estrutura:

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

Empacote com:

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

Depois, instale a pasta conforme descrito acima.

3) Adicione um frontend depois ​

Adicione uma entrada de frontend e arquivos de interface somente quando precisar de um painel:

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

Depois, amplie manifest.json com:

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

Para a comunicação do frontend, use window.ogmaSDK.ready(...) e mantenha as chamadas ao backend nos handlers de sdk.api.

4) Permissões de que você quase sempre precisa ​

Para o exemplo de backend acima:

  • nenhuma (os padrões seguros são concedidos automaticamente)

Se seu plugin envia requisições de saída, adicione:

json
"permissions": ["send_requests"]

Se seu plugin grava achados, adicione:

json
"permissions": ["write_findings"]

Solicite apenas o que você realmente usa.

Solução de problemas do primeiro plugin ​

  • Plugin failed to initialize → abra Logs e confirme se init(sdk) está definida.
  • Invalid manifest → verifique as vírgulas e as aspas do JSON.
  • Nenhum callback é executado → confirme se o plugin está habilitado e se o evento correspondente (onInterceptResponse) está registrado.

Para consultar as referências completas da API:

Software proprietário. Todos os direitos reservados.