Zielgruppe: Plattformingenieure, die Feature-Flag-Änderungen in LaunchDarkly unmittelbar mit einem Dependency-Preflight und einem konsolidierten openclaw gateway status auf einem gemieteten Apple-Silicon-Mac verknüpfen möchten. Dieses HowTo fokussiert bewusst Flag-Change-Webhooks, HMAC-Prüfung und PR-Zusammenfassungen — nicht auf GitOps- oder Container-Registry-Hooks, die andernorts abgedeckt sind. Aufbau: Risikoübersicht, Laufzeit-Matrix, Expositions-Entscheidung, Signaturpfad, Merge der Sonden, Runbook-Kennzahlen, sieben Arbeitsschritte, FAQ zu HTTP 401/408. Vertiefung: Gateway-Status-JSON & doctor, nicht-interaktives Onboarding & CI-Gate, Node-24-Rollback-Checkliste, Startseite, Preise.

Typische Brüche, wenn Flag-Webhooks direkt in CI-Skripte feuern

Ohne Zwischenschicht interpretieren Runner JSON.parse vor der Signaturprüfung, verlieren damit Byte-Identität zum LaunchDarkly-Secret und liefern falsche Positiv- oder Negativtests. Auf Remote-Macs verschärft sich das durch geteilte HOME-Caches, nvm-Shims in launchd und parallele npm-Globalpfade.

  • Asynchronität: Preflight zieht Registry-Artefakte; überschreitet die Webhook-Antwortfrist, meldet LaunchDarkly 408 obwohl der Job später grün wäre.
  • Token-Scope: Ein breit gefasstes REST-API-Token im selben Secret-Store wie das Signing Secret erzeugt hohen Blast-Radius, sobald Logs oder Core-Dumps aus dem Handler leakieren.
  • Observability: getrennte Logs für openclaw doctor und Preflight erschweren PR-Bot-Kommentare; ohne gemeinsames JSON bleiben Merge-Entscheider blind.

Umgebungsvorbereitung und Versionspinnung (Node 24, OpenClaw v2026.5.x)

Richten Sie Node 24 LTS systemweit oder per festem Pfad ein, den launchd-Plist referenziert. Installieren Sie openclaw per npm install -g openclaw@^2026.5.0, protokollieren Sie node -v und openclaw --version im Job-Header und setzen Sie OPENCLAW_HOME je Runner isoliert. Führen Sie openclaw onboard sowie openclaw onboard --install-daemon aus und wiederholen Sie openclaw doctor, bis keine harten Warnungen zu Ports nahe 18789, fehlenden Binaries oder Token-Dateirechten mehr erscheinen — konsistent zur offiziellen Dokumentation unter docs.openclaw.ai für die 2026.5.x-Linie.

Komponente Empfohlene Policy Stabilitätsmetrik Rollback-Hebel
Node-Runtime 24.x LTS, kein wechselndes nvm-Default im Daemon Deterministische ABI Checkliste + vorherige PKG-Sicherung
OpenClaw-CLI Semver-Pin 2026.5.x, CI spiegelt dieselbe Range doctor grün vor Webhook-Aktivierung npm -g uninstall + bekannte Tarball-Version
Gateway-Daemon onboard --install-daemon, Health via gateway status JSON-Felder stabil innerhalb SLA launchctl unload + Logs unter OPENCLAW_HOME
Secrets Signing Secret und API-Token getrennt, chmod 600 Keine Klartext-Ausgabe in stdout Rotation im Secret-Store, Handler liest atomar
Preflight-Arbeitsdir Tmpfs oder SSD-Pfad pro deliveryId Keine Quer-Kontamination zwischen Events Verzeichnis nach Run löschen

Gateway-Loopback mit TLS-Terminierung versus SSH-Tunnel — Expositionsmatrix

LaunchDarkly benötigt ein öffentlich erreichbares HTTPS-Ziel. Auf einem Remote-Mac bleibt der OpenClaw-Listener typischerweise auf 127.0.0.1; die Frage ist nur, wo TLS endet und wie eingehende Verbindungen zum Prozess gelangen.

Modus Vorteil Risiko / Kosten Operativer Hinweis
Loopback + Reverse-Proxy Zentrales mTLS, Rate-Limits, saubere Audit-Logs Zusätzlicher Hop, Zertifikatsrotation Upstream-Header strikt filtern; Bearer OPENCLAW_GATEWAY_TOKEN siehe Token-HowTo
SSH-RemoteForward Kein öffentlicher Port auf dem Mac selbst Tunnel-Flaps ⇒ 408 beim Webhook ServerAliveInterval setzen; Keepalive messen
Split: nur Status intern Webhook trifft Edge-Node, Preflight delegiert per interner Queue Höhere Architekturkomplexität Idempotenz über deliveryId zwingend

Webhook-Routing, LaunchDarkly-Änderungs-Signatur und least-privilege-API-Token

Mappen Sie einen dedizierten HTTP-Pfad, der ausschließlich LaunchDarkly-Quell-IPs oder Ihren Proxy akzeptiert. Lesen Sie den Roh-Body als Buffer, berechnen Sie HMAC-SHA256 mit dem Signing Secret und vergleichen Sie konstantzeitig mit dem von LaunchDarkly dokumentierten Signatur-Header — niemals zuerst JSON.parse. Bei Fehlschlag 401 zurückgeben und nur eine Correlation-ID loggen.

Für optionale Metadaten jenseits des Webhook-Payloads verwenden Sie ein read-only-API-Token mit minimalem Scope (Lesen der betroffenen Flags/Umgebungen), getrennt vom Signing Secret und mit kurzer Lebensdauer. Schreibende Operationen gehören nicht in denselben Prozess, der Roh-Webhooks exponiert.

# Pseudocode: Roh-Bytes → HMAC → konstanter Vergleich const sig = hmacSha256Hex(signingSecret, rawBodyBuffer); if (!timingSafeEqual(sig, req.headers['x-ld-signature'])) { return res.status(401).end(); }

Gesundheits-Sonden fusionieren: openclaw gateway status, Preflight-Exit und eine PR-Summary

Nach erfolgreicher Signatur führen Sie zuerst openclaw gateway status mit den in --help dokumentierten JSON- bzw. headless-Flags aus und parsen die Felder, die Ihr Gate benötigt (Listener, Version, letzte Fehler). Anschließend starten Sie den Dependency-Preflight in einem frischen Klon, dessen Branch oder Commit aus dem Webhook-Kontext stammt — typischerweise npm ci --dry-run, pnpm install --frozen-lockfile oder ein firmeninternes Wrapper-Skript.

Schreiben Sie ein JSON-Objekt mit Unterknoten gateway und preflight, jeweils mit Exit-Code, gekürzter stderr und Zeitstempel. Ihr PR-Bot liest nur dieses Artefakt; so bleibt die Merge-Entscheidung nachvollziehbar und entspricht dem Muster aus dem Artikel Status-JSON & doctor als CI-Gate, erweitert um flag-getriebene Trigger.

Begrenzte Backoff-Stufen für ausgehende Summary-Posts

Wenn Ihr Handler Status an eine interne Checks-API oder einen PR-Kommentar-Endpunkt sendet, kapseln Sie maximal drei Versuche mit Pausen 2 s, 4 s und 8 s zwischen aufeinanderfolgenden Fehlversuchen und setzen Sie ein HTTP-Client-Timeout nahe 25 s pro Versuch. Ordnen Sie jedem Versuch dieselbe Idempotency-Key aus der LaunchDarkly-deliveryId zu, damit doppelte Webhook-Lieferungen keine doppelten Kommentare erzeugen.

Drei harte Kennzahlen für Runbooks (zitierfähig)

Leitplanken
  • Backoff-Stufen: 2 / 4 / 8 Sekunden zwischen Retries, maximal drei Zyklen bei 5xx oder Netzreset — kein exponentielles Unendlich-Wachstum.
  • Client-Timeout pro Summary-Versuch: typisch 22–28 Sekunden, abgestimmt auf LaunchDarkly-Lieferfenster und Proxy-read_timeout.
  • Secret-Datei: Dateimodus 600, Besitzer gleich dem Daemon-User; Rotation mindestens vierteljährlich oder bei Personalfluktuation.

Sieben Arbeitsschritte vom leeren Runner bis zur produktiven Webhook-Kette

  1. Baseline: Node 24 installieren, npm -g-Pfad mit which openclaw verifizieren, openclaw doctor bis grün.
  2. Daemon: openclaw onboard --install-daemon ausführen, launchctl print prüfen, Logs auf erste Fehler scannen.
  3. Expose: Loopback+TLS oder SSH-Tunnel wählen, Health extern mit curl gegen den öffentlichen Host testen.
  4. LaunchDarkly: Webhook anlegen, Signing Secret in geschützte Datei, optionales read-only API-Token separat speichern.
  5. Handler: Roh-Body-Signatur, dann Preflight-Skript mit isoliertem Workdir; openclaw gateway status JSON einlesen.
  6. Merge: gemeinsames Summary-JSON erzeugen, an PR-Pipeline senden, Retries 2/4/8 s mit Idempotency-Key.
  7. Abnahme: Simulierte Flag-Änderung, erwarteter PR-Kommentar, Alarm wenn Latenz p95 den SLA-Rand erreicht.

FAQ: HTTP 401 beim Signaturpfad und HTTP 408 bei LaunchDarkly-Zustellung

401 unmittelbar nach Secret-Rotation
Prüfen Sie, ob der Handler noch die alte Datei cached oder ob ein zweiter Prozess mit altem Environment läuft. Vergleichen Sie die Byte-Länge des Roh-Bodies mit den LaunchDarkly-Logs; Abweichungen deuten auf Middleware-Kompression hin, die vor dem HMAC deaktiviert werden muss.
408 oder client timeout trotz korrekter Signatur
Preflight überschreitet das synchrone Antwortfenster — verschieben Sie schwere Schritte in eine Queue und antworten Sie LaunchDarkly zuerst mit 202, sofern Ihre Policy asynchrone Verarbeitung erlaubt, oder verkürzen Sie Clone- und Tar-Schritte aggressiv.
Warum bleibt openclaw doctor rot, obwohl der Webhook trifft?
Der Webhook erreicht nur den Proxy; der Gateway-Daemon auf dem Mac kann weiterhin fehlerhafte PATH-Einträge oder Portkollisionen haben. Beheben Sie doctor zuerst, sonst liefert gateway status irreführende Teilinformationen in Ihrer Summary.

Fazit: Flag-getriebene Gates ohne Pflicht-Login weiterverfolgen

Mit Node 24, gepinnter OpenClaw-2026.5.x-Zeile, sauberem doctor, verifiziertem LaunchDarkly-HMAC und einem fusionierten JSON aus gateway status und Preflight wird Ihr Remote-Mac-CI auditierbar. Die öffentlichen Einstiege bleiben ohne Kontozwang zugänglich.

Weiter ohne Login: Technik-Blog, Pakete kaufen, Hilfezentrum, Preise und Startseite — ergänzt um die verlinkten OpenClaw-Deepdives.

LaunchDarkly × OpenClaw × Remote-Mac 2026

Apple-Silicon-Knoten wählen, dann Webhook-Gates stabil betreiben

Region und Paket an RTT und Registry-Standort koppeln; SSH-Hilfe und Runner-Kontext im Hilfezentrum nachlesen.

Apple-Silicon-Remote-Macs
Signatur-first Webhooks
Support bei Tunnel- & TLS-Fragen