[{"data":1,"prerenderedAt":94},["ShallowReactive",2],{"docs:de:webhooks":3},{"id":4,"meta":5,"intro":8,"contractVersion":11,"contractVersionLabel":12,"contractNotice":13,"contractDownload":14,"labels":17,"sections":29},"webhooks",{"title":6,"lead":7},"Webhooks","Fehlerwarnungen auf einen eigenen Kanal geschoben: wie man einen anlegt, was hinausgeht und warum keine Signatur mitkommt.",{"title":9,"lead":10},"Warn-Webhooks","Ein zweiter Kanal für die Warnung, dass ein Cronjob gescheitert ist — neben der E-Mail und nie an ihrer Stelle.","1.15.0","Vertragsversion","Die Referenz unten wird aus dem OpenAPI-Vertrag gelesen, der auf Englisch verfasst ist. Sie ist bewusst nicht übersetzt: eine Übersetzung wäre eine Kopie, und eine Kopie läuft irgendwann auseinander.",{"href":15,"label":16},"\u002Fopenapi.json","Den öffentlichen Vertrag herunterladen (OpenAPI, JSON)",{"method":18,"path":19,"summary":20,"scope":21,"authentication":22,"form":23,"name":24,"type":25,"notes":26,"description":27,"downloadContract":16,"contractVersion":12,"command":28},"Methode","Pfad","Wozu sie dient","Geltungsbereich des Schlüssels","Akzeptiert","In der Anfrage","Name","Typ","Hinweise","Beschreibung","Befehl",[30,38,44,56,86],{"id":31,"title":32,"paragraphs":33,"block":37},"overview","Was hier ein Webhook ist",[34,35,36],"Sie hinterlegen eine https-Adresse; wenn ein Cronjob endgültig gescheitert ist, schicken wir ihr ein POST. Slack und Discord lesen ein einziges Feld und bekommen eine Textzeile; jedes andere Ziel bekommt das unten beschriebene JSON.","Der Kanal gehört Ihnen und nicht dem Arbeitsbereich. Zwei Personen im selben Team haben zwei verschiedene Ziele, und keine Rolle — auch Admin nicht — kann das eines anderen Mitglieds lesen. Ein scheiternder Cronjob soll die Person wecken, die Bereitschaft hat.","Es ist ein Kanal zusätzlich, nie ein Kanal anstelle von: die E-Mail bleibt standardmäßig eingeschaltet, denn sonst schaltete ein Webhook, der nicht mehr funktioniert, die Warnungen unbemerkt ab.",null,{"id":39,"title":40,"paragraphs":41,"block":37},"configuration","Einen Kanal anlegen und einsehen",[42,43],"Ein Kanal wird im Dashboard angelegt, aufgelistet und entfernt, und jene Routen stehen nicht auf dieser Seite, weil kein Schlüssel sie erreicht. Sie verlangen eine Sitzung und keinen API-Schlüssel, und die Asymmetrie ist gewollt: ein Schlüssel, der die Adresse eines Webhooks ersetzen könnte, ließe sich die Warnungen des Arbeitsbereichs auf ein eigenes Ziel umleiten — und erführe, welche Cronjobs wann scheitern — während die Inhaberin oder der Inhaber weiterhin einen scheinbar eingerichteten Kanal sieht.","Keine Route gibt je eine Adresse zurück, nicht einmal deren letzte Zeichen. Was einen Kanal in einer Liste kenntlich macht, sind der von Ihnen gewählte Name und der Host.",{"id":45,"title":46,"paragraphs":47,"block":50},"events","Die Ereignisse, die hinausgehen",[48,49],"The events that may leave towards an external webhook. There is one, and it is what R29 asks for: \"failure notifications\".","Plan changes, welcomes and account security events stay out on purpose. A Slack channel is shared and sits outside our perimeter: those events concern a person and their relationship with us, and announcing them in a shared channel would hand them to colleagues who have nothing to do with it. Security is the least obvious of the four — an unauthorised sign-in is *the* thing one would want to know quickly — and it stays out because to be useful it would have to say *what* happened to the account, and that, in a channel, is an invitation.",{"kind":51,"definitions":52},"definitions",[53],{"name":54,"type":55,"description":55},"job_failed","",{"id":57,"title":58,"paragraphs":59,"block":63},"body","Was der Rumpf trägt",[60,61,62],"Die Liste ist vollständig: sie wird aus der Struktur gelesen, die dieses JSON erzeugt, kann also nicht kürzer sein als das Gesendete. Als optional markierte Felder fehlen, wenn sie nichts zu sagen haben.","Was fehlt, fehlt nicht aus Versehen. Kein Fehlertext, kein Antwortrumpf, keine Ziel-URL — denn diese können eine Adresse zitieren, in der bereits aufgelöste Geheimnisse des Arbeitsbereichs stecken — keine E-Mail-Adresse und keine Kennung einer Person. Ein geteilter Kanal liegt außerhalb unseres Bereichs, und ein POST kann nicht tragen, was die Struktur nicht hat.","The body shape the target expects. It decides only the shape, never the destination: webhook sends the payload as JSON to any compatible endpoint.",{"kind":51,"definitions":64},[65,69,72,74,76,79,82,84],{"name":66,"type":67,"description":68},"event","string","always present",{"name":70,"type":67,"description":71},"job_id","optional",{"name":73,"type":67,"description":71},"job_name",{"name":75,"type":67,"description":71},"environment",{"name":77,"type":78,"description":71},"failures","integer",{"name":80,"type":81,"description":71},"last_attempt_at","string (date-time)",{"name":83,"type":67,"description":71},"failure_kind",{"name":85,"type":78,"description":71},"http_status",{"id":87,"title":88,"paragraphs":89,"block":37},"signature","Signatur und Prüfung",[90,91,92,93],"Es gibt keine Signatur und keinen Kopf zum Prüfen. Die Adresse ist das Geheimnis: die Token von Slack und Discord stecken in ihrem Pfad, und darum wird nur https akzeptiert, darum wird die Adresse verschlüsselt gespeichert, und darum liest Ihnen keine Route sie je zurück.","Worauf Sie stattdessen bauen können, ist wenig und lohnt sich zu wissen. Der Aufruf kommt über TLS und weist sich als Postqron-Alerts\u002F1 aus. Keiner Weiterleitung wird je gefolgt: ein 3xx gilt als endgültige und fehlgeschlagene Antwort, also kann nach dem Absenden nichts den Rumpf woandershin lenken.","Wenn Sie Gewissheit brauchen, dass ein Aufruf von uns kommt, legen Sie ein eigenes Geheimnis in den Pfad der Adresse, die Sie hinterlegen, und prüfen Sie es beim Eintreffen. Das ist dieselbe Eigenschaft, die eine Signatur gebracht hätte, und sie ist heute schon da.","Eine Zustellung, die nicht hinausgeht, ist kein Schweigen: sie ist eine Zeile mit ihrem Grund und dem Status der letzten Antwort, lesbar im Dashboard neben dem Kanal. Nach genügend aufeinanderfolgenden Fehlschlägen wird der Kanal ausgesetzt, mit dem Grund dabei.",1788438713218]