Zum Inhalt springen

Basis · jeder Tarif

Was JSON posten kann, kann hier posten

Eingehende Webhooks in Enclessa geben einem Kanal einen Endpunkt, in den jedes System posten kann, das JSON senden kann: Monitoring, CI, ein Deployment-Skript, ein Formular auf Ihrer eigenen Website. Beim Anlegen wird ein Bot-Konto eingerichtet und dem Raum hinzugefügt, sodass der Beitrag einen echten Autor hat und das Berechtigungsmodell des Kanals selbst entscheidet, ob er erlaubt ist. Die Nutzlast hat die Form, die Slack etabliert hat, sodass die meisten Werkzeuge, die schon mit Slack sprechen, nur eine neue URL brauchen und sonst nichts.

Aktualisiert

Angelegt von
Allen, die den Kanal verwalten dürfen
Zugangsdaten
Ein Bearer-Geheimnis, einmal angezeigt, im Header gesendet
Nutzlast
Slack-förmig: Text, Benutzername, Icon, Anhänge
Autor
Ein Bot-Konto, das mit dem Hook eingerichtet wird
Raumtyp
Nur verwaltete Räume
Größengrenze
8 KiB, gekürzt statt abgelehnt

Wie lege ich einen eingehenden Webhook an?

Im Kanal, sofern Sie diesen Kanal verwalten dürfen. Beim Anlegen erhalten Sie eine URL und ein Geheimnis, und das Geheimnis wird genau einmal angezeigt. Die Zugangsdaten reisen in einem Authorization-Header statt in der URL, weil eine URL mit Zugangsdaten in jedem Proxy-Zugriffsprotokoll zwischen Aufrufer und uns landet.

  • Erfordert die Berechtigung, genau diesen Kanal zu verwalten, und nichts darüber hinaus
  • Das Geheimnis wird einmal angezeigt und nur als Hash gespeichert
  • Als Bearer-Token im Header gesendet, nie als Query-String
  • Ein unbekannter Hook, ein widerrufener Hook und ein falsches Geheimnis antworten alle mit demselben 404
  • Wer einen Hook widerruft, deaktiviert den Bot dahinter

Was darf die Nutzlast enthalten?

Nachrichtentext, einen Anzeigenamen, der den des Bots überschreibt, ein Icon und Anhänge mit Titel, Link, Fließtext, Feldern und Fußzeile. Anhänge werden beim Eingang zu reinem Text zusammengeführt — der Titel in einer Zeile, seine URL in der nächsten, damit die Linkerkennung sie aufgreift, Felder als Name und Wert —, weil die Nachrichtenanzeige zeigt, was sie bekommt, statt Markup zu interpretieren, das sie nicht selbst geschrieben hat.

  • text, username, icon und attachments, in der Form, die Slack etabliert hat
  • Ein Hook kann für mehrere Systeme sprechen, indem er pro Beitrag einen anderen Benutzernamen setzt
  • Der Raum zeigt neben dem Namen ein Webhook-Abzeichen, damit ihn niemand für eine Person hält
  • Anhänge werden zu lesbarem Text statt als rohes Markup anzukommen
  • Ein Beitrag über 8 KiB wird gekürzt, weil ein Alarm um drei Uhr nachts nicht an einem 422 verloren gehen darf

Warum braucht ein Webhook ein Bot-Konto?

Weil die Alternative eine zweite, schwächere Vorstellung davon wäre, wer eine Nachricht geschrieben hat. Die Beiträge eines Hooks stammen von einem echten Konto, das echtes Mitglied des Raums ist. Damit entscheidet das gewöhnliche Berechtigungsmodell, ob der Beitrag erlaubt ist, der gewöhnliche Audit-Pfad erfasst ihn, und den Bot aus dem Raum zu entfernen bewirkt genau das, was das Entfernen einer beliebigen Person aus einem Raum bewirkt.

  • Der Autor ist ein Konto, kein Sonderfall in der Nachrichtentabelle
  • Die Berechtigungen des Kanals regeln den Hook, ohne dass daneben etwas angeschraubt ist
  • Bot-Konten zählen nicht als abrechenbare Plätze
  • Wird der Bot deaktiviert, stoppt der Hook beim nächsten Aufruf

Welche Ratengrenzen gelten?

Ratengrenzen gelten pro Organisation über Klassen von Anfragen hinweg statt pro Endpunkt, und sie wachsen mit der Zahl der Plätze. Jede Ablehnung trägt die Header, die ein gut erzogener Client braucht, um richtig zurückzuweichen — ein System, das sie beachtet, braucht also keine Aufsicht.

  • Budgets pro Organisation, skaliert nach Plätzen, mit einer Obergrenze pro Mitglied
  • Ein 429 trägt RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset und Retry-After
  • Eine leere Nutzlast wird mit 422 abgelehnt, statt eine leere Nachricht zu posten

Was es nicht leistet

Hier gesagt, statt erst nach der Anmeldung entdeckt.

  • Nur verwaltete Räume. Ein Ende-zu-Ende-verschlüsselter Raum hat keinen serverseitigen Schlüssel, also kann der Server darin keine Nachricht verfassen — das ist der Sinn des Raums, keine Lücke.
  • Nur eingehend. Es gibt keine ausgehenden Webhooks: Nichts überträgt Enclessa-Ereignisse an einen Endpunkt von Ihnen.
  • Ein Webhook postet. Er kann keinen Verlauf lesen, keine Mitglieder auflisten, nicht reagieren und keinen Thread öffnen — dafür gibt es ein Bot-Konto mit einem Token begrenzten Umfangs.
  • Anhänge werden als reiner Text dargestellt. Es gibt keine interaktiven Schaltflächen, Menüs oder Formulare in einer Nachricht.
  • Das Geheimnis ist ein Bearer-Token, keine HMAC-Signatur über den Inhalt. Behandeln Sie URL und Geheimnis zusammen als Zugangsdaten.

Fragen

Eingehende Webhooks: häufige Fragen

  • Ja. Wer einen Kanal verwalten darf, kann dafür einen eingehenden Webhook anlegen und erhält eine URL und ein Bearer-Geheimnis, die jedes System nutzen kann, das JSON posten kann. Das Nutzlastformat folgt der Form von Slack, sodass die meisten bestehenden Integrationen nur eine neue URL brauchen.
  • In den meisten Fällen ja. Enclessa akzeptiert die Slack-förmige Nutzlast — Text, Benutzername, Icon und Anhänge —, sodass ein Werkzeug, das schon in Slack postet, meist eine neue URL und einen Header mit dem Geheimnis braucht. Interaktive Komponenten werden nicht unterstützt, weil Enclessa-Nachrichten keine Schaltflächen oder Menüs haben.
  • Nein. Ende-zu-Ende-verschlüsselte Räume halten keinen serverseitigen Schlüssel, also kann der Server darin keine Nachricht verfassen. Webhooks funktionieren in verwalteten Räumen, in denen der Server Nachrichteninhalte lesen und schreiben kann.
  • Sie wird auf 8 KiB gekürzt und gepostet statt abgelehnt. Ein Monitoring-System, das mitten in der Nacht ein 422 erhält, hat den Alarm verloren — und das ist schlimmer als eine gekürzte Nachricht.
  • Nein. Webhooks sind nur eingehend — Systeme posten in Enclessa hinein. Nichts überträgt Enclessa-Ereignisse an einen Endpunkt, den Sie betreiben, und eigene Slash-Befehle sind der einzige ausgehende HTTP-Aufruf, den die Plattform macht.

Verschlüsselte Zusammenarbeit, gehostet in Europa.

Legen Sie in ein paar Minuten einen Workspace an. Er gehört Ihnen, erreichbar unter your-team.enclessa.app, betrieben in der Europäischen Union, mit Ende-zu-Ende-verschlüsselten Direktnachrichten ab der ersten.