Zum Hauptinhalt springen

Workspace Webhooks

Ein Webhook meldet einem System, das Sie betreiben, dass eine Prüfung eine Antwort braucht oder dass ein Urteil erfasst wurde. RateLoop signiert jede Zustellung, wiederholt eine fehlgeschlagene und verbindet sich mit genau der Adresse, die aufgelöst wurde, sodass niemand das Ziel während einer laufenden Anfrage verschieben kann.

Wo ein Webhook eingerichtet wird

Öffnen Sie Einstellungen → Integrationen und dort den Bereich Webhooks . Eigentümer und Administratoren können Endpunkte anlegen und deaktivieren, andere Mitglieder nicht. Das Signaturgeheimnis wird einmal beim Anlegen angezeigt und ist danach nie wieder lesbar.

Ein Endpunkt kann kein neues Signaturgeheimnis erhalten, und eine Deaktivierung hält seine URL weiterhin belegt; dieselbe URL erneut anzulegen wird deshalb abgelehnt. Um ein verlorenes Geheimnis zu ersetzen, registrieren Sie das Ziel unter einer anderen URL und deaktivieren Sie den alten Endpunkt.

Ein registrierter Endpunkt gilt für den Workspace, nicht für eine einzelne Prüfung. Jedes Ereignis, das Sie ihm zuordnen, wird an ihn zugestellt; eine Deaktivierung beendet künftige Zustellungen, ohne die in RateLoop gehaltenen Nachweise zu berühren.

Testen und wiederherstellen

In den Workspace-Einstellungen kann ein signiertes synthetisches Ereignis an einen vorhandenen aktiven Endpunkt eingereiht werden. Das Ereignis ist eindeutig als synthetisch gekennzeichnet, verwendet das echte Signaturgeheimnis dieses Endpunkts und durchläuft denselben adressgebundenen Zustellprozess wie Prüfereignisse. Es erstellt oder ändert keinen Prüfstatus.

Die Zustellaktivität zeigt nur Ereignistyp, Zustell-ID, Status, Anzahl der Versuche, HTTP-Status und Aktualisierungszeit. Endpunktpfade, Nutzdaten, Antwortrümpfe, Signaturdetails, Prüfinhalte oder Identitäten werden nie angezeigt.

Eine manuelle Wiederholung ist erst verfügbar, nachdem eine Zustellung den endgültig fehlgeschlagenen Zustand erreicht hat. Sie sendet den unveränderlichen gespeicherten Inhalt an denselben aktiven Endpunkt mit derselben Zustell-ID. Ein mehrfacher Empfang ist möglich; Empfangssysteme müssen anhand von rateloop-delivery-id deduplizieren.

Was ein Workspace senden kann

Die gewünschten Ereignisse werden bei der Registrierung ausgewählt. Ein Ereignis ohne Abonnement wird in RateLoop trotzdem erfasst; es wird lediglich nicht an Sie zugestellt.

ai.rateloop.review.decision_neededEine Prüfung ist offen, und die benannten Prüfenden können nun antworten.
ai.rateloop.review.verdictEine Freigabe wurde erfasst. Die schriftliche Begründung bleibt in RateLoop.
ai.rateloop.review.completedDie Prüfung hat ihr Ergebnis erreicht und wurde geschlossen.
ai.rateloop.review.failedDie Prüfung endete aus einem anderen Grund ohne Ergebnis.
ai.rateloop.review.expiredNiemand hat rechtzeitig geantwortet, oder alle Zuweisungen sind verfallen.
ai.rateloop.review.inconclusiveDas Gremium hat geantwortet, aber nicht die Übereinstimmung erreicht, die die Vorlage verlangt.
ai.rateloop.review.cancelledEine dazu berechtigte Person hat die Prüfung abgebrochen.
ai.rateloop.packet.anchoredDas Nachweispaket einer abgeschlossenen Prüfung wurde geschrieben und festgeschrieben.
ai.rateloop.gate.blockedEine Prüfanforderung hat eine Handlung abgelehnt, weil keine gültige Prüfung sie deckte.

Der Umschlag

Der Rumpf ist ein CloudEvent in JSON. Er trägt die Kurzfassung des Geschehens — Workspace, Vorgang, Zustand, Begründungscodes — und niemals die schriftlichen Begründungen der Prüfenden, deren Namen oder den Inhalt des Nachweispakets. Das bleibt hinter einem angemeldeten Zugriff, bei dem die Sitzung der lesenden Person entscheidet, was sichtbar ist.

content-typeapplication/cloudevents+json für jedes Ereignis in der Tabelle oben.
rateloop-signaturev1= gefolgt vom HMAC-SHA256 in Hexadezimal.
rateloop-timestampUnix-Sekunden. Wird zusammen mit dem Rumpf signiert.
rateloop-delivery-idJe Zustellung stabil, über alle Wiederholungen hinweg unverändert. Darauf entduplizieren.
rateloop-event-idJe Ereignis stabil, für alle darauf abonnierten Endpunkte identisch.

Vor der Verarbeitung prüfen

Die Signatur ist ein HMAC-SHA256 über Zeitstempel, Punkt und den exakten Rohrumpf, geschlüsselt mit dem Geheimnis aus der Registrierung. Berechnen Sie sie über die empfangenen Bytes, nicht über ein neu serialisiertes Objekt, und vergleichen Sie sie in konstanter Zeit. Weisen Sie eine Zustellung ab, deren Zeitstempel außerhalb des von Ihnen akzeptierten Fensters liegt, und behandeln Sie eine wiederholte rateloop-delivery-id als das, was sie ist: eine Wiederholung.

const expected = "v1=" + createHmac("sha256", secret)
  .update(`${headers["rateloop-timestamp"]}.${rawBody}`)
  .digest("hex");

Das n8n-Hilfspaket ist noch nicht öffentlich installierbar. Verwenden Sie den vollständigen Empfänger auf der Integrationsrezepte Seite in Ihrem eigenen Dienst.

Der n8n-Knoten und seine Signaturprüfung sind noch nicht öffentlich installierbar. Verwenden Sie bis zur Veröffentlichung eines kompatiblen Pakets den vollständigen Empfänger mit Prüfung des unveränderten Anfragerumpfs aus dem Integrationsbeispiel.

Wiederholungen, und wann RateLoop aufgibt

Antworten Sie binnen zehn Sekunden mit einem beliebigen 2xx-Status. Alles andere gilt als Fehlschlag. RateLoop unternimmt insgesamt höchstens acht Versuche, wartet nach dem ersten Fehlschlag 30 Sekunden und verdoppelt die Wartezeit danach bis höchstens einer Stunde. Nach dem achten fehlgeschlagenen Versuch gelangt die Zustellung in den Dead-Letter-Zustand und automatische Wiederholungen enden. Der Endpunkt bleibt für spätere Ereignisse aktiv. Einer Weiterleitung wird nicht gefolgt — sie gilt als Fehlschlag, damit ein verschobener Endpunkt auffällt und nicht unbemerkt bleibt.

Prüfereignisse werden zuerst gespeichert. Ein Wartungsprozess überführt sie danach in Zustellungen und wertet die zum Projektionszeitpunkt aktiven Abonnements aus. Deshalb kann es einige Minuten dauern, bis ein neues Ereignis die Zustellungswarteschlange erreicht. Die Projektion ist idempotent und verändert das gespeicherte Ereignis nicht. Eine fehlgeschlagene Zustellung ändert nichts in RateLoop: Prüfung, Urteil und Nachweis bleiben davon unberührt, ob Ihr Dienst erreichbar war.

Was eine URL erfüllen muss

Der Endpunkt muss HTTPS verwenden, darf weder Benutzernamen noch Passwort noch Fragment enthalten und muss im Produktivbetrieb den Standard-HTTPS-Port nutzen. Er darf nicht auf eine private, lokale oder anderweitig nicht öffentlich erreichbare Adresse auflösen.

Den Hostnamen nur einmal zu prüfen würde nicht genügen, weil sich die Antwort zwischen Prüfung und Anfrage ändern kann. RateLoop löst den Hostnamen bei jedem Versuch auf, verweigert die Zustellung, sobald eine zurückgegebene Adresse nicht öffentlich erreichbar ist, und öffnet die Verbindung dann zu genau dieser Adresse — Ihr Hostname bleibt für TLS und den Host -Kopf erhalten. Ein Wechsel der Namensauflösung kann eine Zustellung damit nicht auf etwas hinter einer Netzgrenze von uns lenken.

Wenn Sie benachrichtigt statt beliefert werden möchten

Wer einen Kanal verfolgt, braucht nichts davon. RateLoop sendet für die beiden Ereignisse, die sich an Menschen richten, eine Karte nach Microsoft Teams oder Slack, mit einer Schaltfläche, die die Prüfung öffnet. Siehe Teams & Slack für die Einrichtung. Diese Kanal-URLs tragen keine Signatur, die ein Empfänger prüfen könnte — genau deshalb verwendet ein System, das dem Empfangenen vertrauen muss, stattdessen einen Webhook.

Lesen Sie die Belegreferenz dazu, was ein Paket enthält und wie es geprüft wird.

Webhooks | RateLoop