Vollständige Referenz für integrierte JavaScript-Utility-Funktionen, die in benutzerdefinierten Integrationen, Actions, Triggern und Workflow-Code-Nodes verfügbar sind
Wenn du JavaScript-Code für Integrationen, Actions, Trigger oder Workflow-Code-Nodes schreibst, hast du Zugriff auf eine Reihe von integrierten Utility-Funktionen. Diese Funktionen laufen in einer sicheren, isolierten JavaScript-Ausführungsumgebung, die wesentliche Funktionen bereitstellt, ohne externe Bibliotheken zu benötigen.
Diese Utilities sind nur in JavaScript-Code verfügbar. Python-Code-Nodes nutzen
eine eigene Laufzeitumgebung und unterstützen keine ld.*-Funktionen. Das
Python-Verhalten findest du auf der Code-Node-Seite.
Sicherheitsrisiken verhindert - Kein Dateisystemzugriff, keine gefährlichen Globals wie eval oder process
Keine Abhängigkeiten erfordert - Keine npm-Pakete oder externe Imports erforderlich
Benutzerdefinierter Integrationscode läuft in einer sicheren Sandbox-Umgebung.
Du kannst keine externen Bibliotheken installieren oder importieren (npm, pip, etc.) - nur die hier dokumentierten integrierten JavaScript/Node.js-APIs sind verfügbar.
Für erweiterte Verarbeitung (z.B. PDF-Parsing, Bildmanipulation) verwende externe APIs oder Services und rufe sie aus deinem Integrationscode auf.
Führe HTTP-Anfragen an externe APIs mit automatischer JSON-Verarbeitung und Fehler-Management aus.Parameter:
{ method: string; // HTTP-Methode: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE' url: string; // Vollständige URL für die Anfrage headers?: object; // Request-Header params?: object; // URL-Query-Parameter body?: object | string; // Request-Body (wird automatisch stringifiziert, wenn Objekt) responseType?: string; // 'json', 'text', 'stream' oder 'binary' für Datei-Downloads preserveAuthOnRedirect?: boolean; // Auth-Header bei Cross-Origin-Redirects behalten (Standard: false)}
Standardmäßig entfernt ld.request() den Authorization-Header und andere Credential-Header, wenn eine Anfrage auf eine andere Origin weitergeleitet wird. Setze preserveAuthOnRedirect: true, um sie bei Cross-Origin-Redirects zu behalten. Aktiviere das nur für APIs, bei denen du dem Redirect-Ziel vertraust.
Rückgabewert (Standard):
{ status: number; // HTTP-Statuscode headers: object; // Response-Header json: any; // Response-Body als JSON geparst (undefined, wenn kein gültiges JSON) text: string; // Response-Body als Text}
Rückgabewert (mit responseType: "stream" oder "binary"):
Die Response-Struktur hängt vom responseType ab. Standardmäßig erhältst du json- und text-Eigenschaften. Bei responseType: "stream" oder "binary" erhältst du stattdessen eine buffer-Eigenschaft — json und text sind in diesem Modus nicht verfügbar.
Der body-Parameter wird automatisch stringifiziert, wenn du ein Objekt übergibst.
Für application/x-www-form-urlencoded Content-Type wird der Body automatisch in das entsprechende Format konvertiert.
Antwort-Bodys sind auf 100 MB begrenzt. Anfragen, die mehr Daten zurückgeben — einschließlich Chunked-Responses ohne Content-Length-Header und übergroßer Fehlerantworten — schlagen mit einem Response too large-Fehler fehl. Wenn du größere Dateien abrufen musst, streame sie in einen externen Speicher (zum Beispiel S3), anstatt sie über ld.request() zurückzugeben.
Anfragen an private und interne Netzwerkadressen werden standardmäßig blockiert. Auf dedizierten Deployments, die interne Endpunkte erreichen müssen, können Operatoren diese Prüfung über die Umgebungsvariable URL_VALIDATION_ENABLED=false deaktivieren. Das gilt auch für HTTP-Request-Nodes in Workflows.
Diese Funktion überprüft den Abfrage-Ausführungstyp, um sicherzustellen, dass er nur LISTING oder INFORMATION ist.
Abfragen, die Daten ändern (INSERT, UPDATE, DELETE), werden abgelehnt.
Der Private Key muss im PEM-Format vorliegen. Ungültige Keys werfen benutzerfreundliche Fehlermeldungen.
Gib niemals Private Keys in Logs oder Rückgabewerten preis.
Verwende ld.log() großzügig während der Entwicklung, um deinen Integrationscode zu debuggen.
Logs werden automatisch bereinigt, um sensible Authentifizierungswerte zu verbergen.
Base64-Encoding- und -Decoding-Funktionen, global ohne Imports verfügbar.atob() - Dekodiere Base64-String zu binärem String
btoa() - Kodiere binären String zu Base64Beispiel: Base64-URL-Dekodierung
Ein minimaler Polyfill zur Konvertierung zwischen typisierten Array-Formaten. Akzeptiert ein einzelnes Argument (Array, Uint8Array oder ArrayBuffer) und gibt ein Uint8Array zurück.
Dies ist NICHT der vollständige Node.js Buffer. Es akzeptiert nur Array, Uint8Array oder ArrayBuffer — keine Strings. Buffer.from("hello") wird einen Fehler auslösen. Das zurückgegebene Uint8Array hat keine .toString("base64")-Methode. Verwende stattdessen btoa()/atob() für Base64-Encoding/Decoding.
Beispiel: ArrayBuffer von ld.request() konvertieren
// Schlecht: Promise nicht awaitenconst response = ld.request(options); // Gibt Promise zurück, nicht Response!return response.json; // undefined// Gut: Immer awaitenconst response = await ld.request(options);return response.json;
2. Auf verschachtelte Properties ohne Prüfung zugreifen
// Schlecht: Kann werfen, wenn user oder address undefined istconst city = response.json.user.address.city;// Gut: Verwende Optional Chainingconst city = response.json?.user?.address?.city || "Unbekannt";
3. JSON-Strings nicht parsen
// Schlecht: Annahme, dass String bereits ein Objekt istconst properties = data.input.properties; // String: '{"name":"value"}'properties.name; // undefined// Gut: Parse JSON-Stringsconst properties = JSON.parse(data.input.properties);properties.name; // "value"
Wann sollte ich Sandbox-Utility-Funktionen nutzen?
Nutze Sandbox-Utility-Funktionen, wenn du benutzerdefinierte Integrationen, Aktionen, Trigger oder Workflow-Code-Nodes baust, die häufig benötigte Hilfsfunktionen brauchen. Sie reduzieren Boilerplate und machen eigene Logik leichter wartbar.
Was sollte ich prüfen, wenn eine Utility-Funktion nicht verfügbar ist?
Prüfe, ob du die Funktion in einem unterstützten Kontext verwendest, ob Funktionsname und Argumente korrekt sind und ob die Laufzeitumgebung das gewünschte Verhalten unterstützt.