Ga naar de inhoud

Naslagwerk voor de backend-SDK van plugins ​

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 voor het volledige pluginpakketformaat, de manifestvelden, machtigingen en voorbeelden.

Toegangspunt ​

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 ​

NaamruimteDoel
sdk.consoleBerichten naar de logbuffer van de plugin schrijven.
sdk.metaPluginmetadata en gegevenspaden lezen.
sdk.eventsCallbacks voor Ogma-gebeurtenissen registreren.
sdk.requestsDe HTTP-geschiedenis en verzoekgegevens opvragen.
sdk.findingsBevindingen opvragen of aanmaken wanneer de machtigingen dit toestaan.
sdk.scopeInformatie over de actieve scope lezen.
sdk.storageSleutel/waarde-opslag voor de plugintoestand.
sdk.fsBestandsbewerkingen in de privégegevensmap van de plugin.
sdk.pathHulpfuncties om paden in de gegevensmap van de plugin samen te stellen.
sdk.apiBackendhandlers beschikbaar maken voor de pluginfrontend.

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 ​

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 ​

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 ​

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.

Beveiligingsrichtlijnen ​

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

Propriëtaire software. Alle rechten voorbehouden.