For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhooks

Erfahren Sie alles über die Integration von Webhooks in Dastra

Konzept 👓

Einfach ausgedrückt ermöglichen Webhooks das Auslösen einer Aktion nach einem Ereignis. Sie werden in der Regel verwendet, um Systeme miteinander kommunizieren zu lassen. Es ist die einfachste Art, eine Warnung zu erhalten, wenn etwas in Dastra passiert. Das Ziel ist die Benachrichtigung von Drittanwendungen (API, CRM, Serverless-Funktionen...) in Echtzeit.

Konfiguration 🛠️

Um Ihre Webhooks zu konfigurieren, gehen Sie auf die Seite: https://app.dastra.eu/general-settings/webhooks

  • Klicken Sie auf „Erstellen Sie eine Webhook-URL"

  • Geben Sie die Empfangs-URL Ihres Webhooks ein. Weitere Informationen finden Sie im Abschnitt Webhook empfangen.

  • Geben Sie den betroffenen Mandanten an

  • Wählen Sie das oder die Ereignisse, die Sie abonnieren möchten. Der Typ der zurückgegebenen Daten unterscheidet sich je nach Ereignistyp. Zum Beispiel können Sie den Webhook bei der Erstellung einer neuen Rechteausübungsanfrage auslösen. In diesem Fall enthält der Body der Anfrage ein JSON

  • Speichern Sie den Webhook

Sie gelangen zum Detailbildschirm des Webhooks.

Webhook empfangen 🛬

Um die Webhook-Anfragen zu empfangen, müssen Sie einen API-Endpoint zur Erfassung des Ereignisses erstellen. Die durchgeführte Anfrage ist ein POST und ist immer wie folgt strukturiert. Der Body der Anfrage enthält ein JSON mit den Details des ausgelösten Ereignisses.

Hier ist die allgemeine Struktur der gesendeten Antwort:

Ein Timeout von 10 Sekunden wird auf die Anfrage angewendet, nach Ablauf dieser Zeit wird die Anfrage als Fehler gewertet. Der Antwortcode muss 200 sein.

Es kann eine kleine Verzögerung zwischen dem Zeitpunkt des Ereignisses in der Anwendung und dem Auslösen des Webhooks geben (diese Verzögerung ist auf die asynchrone Natur der Webhook-Ausführung in unserer Infrastruktur zurückzuführen). Diese Verzögerung variiert je nach Auslastung unserer Infrastruktur und kann maximal 60-120 Sekunden betragen.

Es gibt derzeit kein System zum erneuten Abspielen fehlgeschlagener Webhooks und damit zur Kompensation einer eventuellen Nichtverfügbarkeit der Webhook-Empfangsserver. In diesem Fall empfehlen wir eine manuelle Synchronisation der fehlgeschlagenen Ereignisse.

Ihre Webhook-URL testen 🧪

Sie können Ihren Webhook unter realen Bedingungen testen, indem Sie auf die Schaltfläche „Testen" klicken.

Webhook absichern 🛡️

Obwohl nicht verpflichtend, wird empfohlen, die eingehende Webhook-Anfrage zu validieren, um potenzielle Angriffe eines Hackers zu vermeiden, der das Netzwerk ausspioniert hat und somit in der Lage wäre, beliebige Daten auf Ihre Webhook-URL zu posten und damit die Erstellung von Elementen in Ihrem System auszulösen oder zu spammen.

Jedes Mal, wenn eine Anfrage zur Änderung oder Löschung eines Dastra-Elements durchgeführt wird, posten wir ein Objekt auf alle URLs, die Sie für das gewünschte Ereignis konfiguriert haben. In jeder POST-Anfrage befindet sich ein Header Dastra-Signature, der serverseitig abgerufen werden kann.

Dieser Header entspricht dem gesamten geposteten JSON, gehasht mit dem Algorithmus HMAC-Sha256 unter Verwendung des Webhook-Validierungsschlüssels.

DastraSignature = HMAC256(<serialisiertes JSON des POST>,<Webhook-Validierungsschlüssel>)

Hier einige Beispiele zur Validierung der Anfrage-Signatur:

Was passiert, wenn die URL etwas anderes als 200 antwortet

Der Webhook wird automatisch blockiert und als fehlerhaft betrachtet, wenn die Schwelle von 5 Fehlern überschritten wird.

Webhooks mit den APIs einrichten

Die mit Ihrem Konto verknüpften Webhooks abrufen (in allen Mandanten)

Get all webhooks urls configured in workspace

get
Erforderliche Scopes
Dieser Endpunkt erfordert die folgenden Scopes:
  • : Access database operations
Autorisierungen
OAuth2clientCredentialsErforderlich
Authorization URL: Token URL:

OAuth2authorizationCodeErforderlich
Authorization URL: Token URL:
Abfrageparameter
workspaceIdinteger · int32Optional
Antworten
200

Success

application/json
signatureKeystring · uuidOptional
errorMessagestring · nullableOptional
nbErrorsinteger · int32Optional
dateLastErrorstring · date-time · nullableOptional
inErrorbooleanOptional
idinteger · int32Optional
urlstringErforderlich
workSpaceIdinteger · int32 · nullableOptional
get
/v1/WebHookUrls
200

Success

Erstellen Sie eine neue Webhook-URL mit dem POST-Endpoint. Geben Sie die Ereignisse an, die Sie mit dem Parameter subscribedEvents abonnieren möchten.

Post a new webhook url

post
Erforderliche Scopes
Dieser Endpunkt erfordert die folgenden Scopes:
  • : Access database operations
Autorisierungen
OAuth2clientCredentialsErforderlich
Authorization URL: Token URL:

OAuth2authorizationCodeErforderlich
Authorization URL: Token URL:
Body
idinteger · int32Optional
urlstringErforderlich
workSpaceIdinteger · int32 · nullableOptional
Antworten
200

Success

application/json
signatureKeystring · uuidOptional
errorMessagestring · nullableOptional
nbErrorsinteger · int32Optional
dateLastErrorstring · date-time · nullableOptional
inErrorbooleanOptional
idinteger · int32Optional
urlstringErforderlich
workSpaceIdinteger · int32 · nullableOptional
post
/v1/WebHookUrls
200

Success

Eine Webhook-ID wird Ihnen zurückgegeben

Get webhook by id

get
Erforderliche Scopes
Dieser Endpunkt erfordert die folgenden Scopes:
  • : Access database operations
Autorisierungen
OAuth2clientCredentialsErforderlich
Authorization URL: Token URL:

OAuth2authorizationCodeErforderlich
Authorization URL: Token URL:
Pfadparameter
idinteger · int32Erforderlich
Antworten
200

Success

application/json
signatureKeystring · uuidOptional
errorMessagestring · nullableOptional
nbErrorsinteger · int32Optional
dateLastErrorstring · date-time · nullableOptional
inErrorbooleanOptional
idinteger · int32Optional
urlstringErforderlich
workSpaceIdinteger · int32 · nullableOptional
get
/v1/WebHookUrls/{id}
200

Success

Delete webhook url

delete
Erforderliche Scopes
Dieser Endpunkt erfordert die folgenden Scopes:
  • : Access database operations
Autorisierungen
OAuth2clientCredentialsErforderlich
Authorization URL: Token URL:

OAuth2authorizationCodeErforderlich
Authorization URL: Token URL:
Pfadparameter
idinteger · int32Erforderlich
Antworten
200

Success

Kein Inhalt

delete
/v1/WebHookUrls/{id}
200

Success

Kein Inhalt

Zuletzt aktualisiert

War das hilfreich?