Przejdź do treści

Dokumentacja referencyjna SDK backendu wtyczek ​

Kod backendu wtyczki działa w piaskownicy JavaScript Ogma i otrzymuje obiekt sdk od aplikacji hosta.

Pełny opis formatu pakietu wtyczki, pól manifestu, uprawnień i przykładów znajdziesz w przewodniku po systemie wtyczek.

Punkt wejścia ​

Wtyczki backendu udostępniają funkcję init:

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

Ogma wywołuje init(sdk) po włączeniu wtyczki.

Główne przestrzenie nazw ​

Przestrzeń nazwPrzeznaczenie
sdk.consoleZapisywanie komunikatów w buforze dziennika wtyczki.
sdk.metaOdczytywanie metadanych wtyczki i ścieżek danych.
sdk.eventsRejestrowanie funkcji zwrotnych dla zdarzeń Ogma.
sdk.requestsOdczytywanie historii HTTP i danych żądań.
sdk.findingsOdczytywanie lub tworzenie ustaleń, jeśli pozwalają na to uprawnienia.
sdk.scopeOdczytywanie informacji o aktywnym zakresie testów.
sdk.storageTrwałe przechowywanie stanu wtyczki w postaci par klucz/wartość.
sdk.fsOperacje na plikach w prywatnym katalogu danych wtyczki.
sdk.pathFunkcje pomocnicze do tworzenia ścieżek w katalogu danych wtyczki.
sdk.apiUdostępnianie procedur obsługi backendu frontendowi wtyczki.

Zapisywanie dzienników ​

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

Komunikaty są widoczne w interfejsie dzienników wtyczki. Pisz zwięzłe komunikaty i unikaj zapisywania sekretów.

Metadane ​

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

Używaj sdk.meta.path() do danych przypisanych do wtyczki. Nie zakładaj, że kod wtyczki działający w piaskownicy ma dostęp do dowolnych ścieżek systemu plików.

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")

Zdarzenia ​

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")
})

Funkcje zwrotne powinny wykonywać się szybko. Długotrwałe operacje należy uruchamiać przez jawne działania użytkownika lub procedury obsługi API backendu.

Procedury obsługi mostu frontendu ​

Wtyczki backendu mogą udostępniać procedury obsługi panelom frontendu wtyczek:

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

Frontend wywołuje procedurę obsługi za pośrednictwem SDK frontendu Ogma. Zobacz dokumentację referencyjną SDK frontendu.

Wymagania dotyczące bezpieczeństwa ​

  • Traktuj ruch HTTP, ustalenia, dzienniki i eksporty jako dane wrażliwe.
  • Żądaj tylko uprawnień potrzebnych wtyczce.
  • Nigdy nie zapisuj domyślnie w dziennikach danych uwierzytelniających, ciasteczek, tokenów typu bearer ani prywatnego ruchu.
  • Dbaj o to, aby działanie wtyczki było jawne i zrozumiałe dla użytkownika.

Oprogramowanie własnościowe. Wszelkie prawa zastrzeżone.