---
url: https://docs.ogmabox.com/nl/plugins/backend-sdk.md
description: >-
  Naslagwerk voor Ogma-API's voor backendplugins, sandboxuitvoering,
  opslagpaden, toegang tot de HTTP-geschiedenis, bevindingen, opdrachten en
  hostintegratie.
---

# Naslagwerk voor de backend-SDK van plugins {#plugin-backend-sdk-reference}

De code van backendplugins wordt uitgevoerd in de JavaScript-sandbox van Ogma en ontvangt een `sdk`-object van de hostapplicatie.

Begin met de [handleiding voor het pluginsysteem](./README.md) voor het volledige pluginpakketformaat, de manifestvelden, machtigingen en voorbeelden.

## Toegangspunt {#entry-point}

Backendplugins bieden een `init`-functie:

```js
async function init(sdk) {
  sdk.console.log("plugin started");
}
```

Ogma roept `init(sdk)` aan wanneer de plugin wordt ingeschakeld.

## Kernnaamruimten {#core-namespaces}

| Naamruimte | Doel |
| --- | --- |
| `sdk.console` | Berichten naar de logbuffer van de plugin schrijven. |
| `sdk.meta` | Pluginmetadata en gegevenspaden lezen. |
| `sdk.events` | Callbacks voor Ogma-gebeurtenissen registreren. |
| `sdk.requests` | De HTTP-geschiedenis en verzoekgegevens opvragen. |
| `sdk.findings` | Bevindingen opvragen of aanmaken wanneer de machtigingen dit toestaan. |
| `sdk.scope` | Informatie over de actieve scope lezen. |
| `sdk.storage` | Sleutel/waarde-opslag voor de plugintoestand. |
| `sdk.fs` | Bestandsbewerkingen in de privégegevensmap van de plugin. |
| `sdk.path` | Hulpfuncties om paden in de gegevensmap van de plugin samen te stellen. |
| `sdk.api` | Backendhandlers beschikbaar maken voor de pluginfrontend. |

## Logging {#logging}

```js
sdk.console.log("message")
sdk.console.warn("warning")
sdk.console.error("error")
```

Berichten zijn zichtbaar op het tabblad Logboeken van de plugin. Houd logs beknopt en vermijd het loggen van geheimen.

## Metadata {#metadata}

```js
sdk.meta.id()
sdk.meta.packageId()
sdk.meta.version()
sdk.meta.path()
```

Gebruik `sdk.meta.path()` voor pluginspecifieke gegevens. Ga er niet van uit dat plugincode in de sandbox toegang heeft tot willekeurige paden in het bestandssysteem.

```js
sdk.storage.set("key", "value")
sdk.storage.get("key")
sdk.storage.keys()
sdk.storage.delete("key")
sdk.storage.clear()
```

```js
sdk.fs.readFile("relative/file.txt")
sdk.fs.writeFile("relative/file.txt", "text")
sdk.fs.appendFile("relative/file.txt", "more")
sdk.fs.exists("relative/file.txt")
sdk.fs.existsSync("relative/file.txt")
sdk.fs.mkdir("relative/dir")
sdk.path.join("a", "b", "c")
```

## Gebeurtenissen {#events}

```js
sdk.events.onInterceptRequest(function(req) {
  return req
})

sdk.events.onInterceptResponse(function(req, res) {
  sdk.console.log(res.getCode())
})

sdk.events.onProjectChange(function() {
  sdk.console.log("project changed")
})
```

Callbacks horen snel te worden uitgevoerd. Laat langdurig werk starten via expliciete gebruikersacties of backend-API-handlers.

## Handlers voor de frontendbridge {#frontend-bridge-handlers}

Backendplugins kunnen handlers beschikbaar maken voor frontendpluginpanelen:

```js
sdk.api.register("ping", async function(input) {
  return { ok: true, input: input };
});
```

De frontend roept de handler aan via de Ogma-frontend-SDK. Zie het [naslagwerk voor de frontend-SDK](./frontend-sdk.md).

## Beveiligingsrichtlijnen {#security-expectations}

* Behandel HTTP-verkeer, bevindingen, logs en exports als gevoelige gegevens.
* Vraag alleen de machtigingen aan die je plugin nodig heeft.
* Log standaard nooit inloggegevens, cookies, bearertokens of privéverkeer.
* Zorg dat het gedrag van de plugin expliciet en begrijpelijk is voor de gebruiker.
