Open source
Webhooks for Laravel
composer require roundly-consulting/webhooks-for-laravelPrehľad
Prijímajte podpísané webhooky od akéhokoľvek odosielateľa a posielajte podpísané webhooky, ktoré si vaši zákazníci overia. Prichádzajúce doručenia sa overia, deduplikujú a raz odovzdajú handleru vo fronte; odchádzajúce dodržiavajú otvorený formát Standard Webhooks a sú podpísané, opakované s rastúcim odstupom, obmedzené na endpoint a chránené pred SSRF — so záznamom doručení v oboch smeroch, rotáciou tajných kľúčov a opätovným spracovaním. Licencia MIT, beží na vašom vlastnom fronte a databáze a stojí len na komponentoch Laravelu a balíkoch Roundly pre bezpečnosť, obmedzenie rýchlosti a bezpečné odchádzajúce požiadavky.
Čo získate
Prijímanie od akéhokoľvek odosielateľa
Jeden endpoint na odosielateľa s neuhádnuteľnou URL adresou a tajným kľúčom zobrazeným iba raz. Každá požiadavka sa skontroluje na veľkosť, typ obsahu, podpis, čerstvosť a duplicity, potom sa uloží a odovzdá handleru vo fronte — raz.
Odosielanie podpísaných webhookov
Webhooks::send() a broadcast() doručia podpísanú obálku na endpointy vašich zákazníkov — odbery so zástupnými znakmi, idempotentné odoslanie a nič sa neodošle, ak sa transakcia vráti späť.
Standard Webhooks, RFC 9421 alebo vlastná schéma
Predvolene otvorený formát Standard Webhooks, podpisy HTTP správ (RFC 9421) cez Sentinel a vlastné schémy — webhooks:make-scheme vám do aplikácie zapíše schému v štýle GitHubu alebo Stripe.
Rozumné opakovanie
8 pokusov počas približne 24 hodín s exponenciálnym odstupom a náhodným rozptylom, rešpektovaný Retry-After, obmedzenie rýchlosti na endpoint, automatické vypnutie po dlhodobom zlyhaní alebo odpovedi 410 a opätovné doručenie všetkého, čo zlyhalo.
Predvolene chránené pred SSRF
URL adresy zákazníkov prechádzajú cez Safe Fetch pri uložení aj pri každom pokuse: len https, privátne, loopback a cloudové metadátové adresy sa odmietnu, DNS sa pripne, presmerovania sú vypnuté alebo sa overia pri každom kroku.
Záznam doručení bez tajomstiev
Oba smery v zázname — stav, pokusy, kódy odpovedí, časy, chyby — so šifrovaným obsahom, sanitizérom, retenciou, JSON resources, opätovným spracovaním a rotáciou tajných kľúčov s prechodným obdobím.
Fasáda, DI alebo akcie
Jedna fasáda Webhooks, injektovateľný manažér alebo jednoúčelové akcie — a k tomu nahrávací fake, podpísané testovacie požiadavky v akejkoľvek schéme a DNS tabuľka pre testy odosielania.
Dokumentácia
Použitie
Kde sa balík hodí — SaaS tímy, ktoré ponúkajú webhooky zákazníkom, a aplikácie, ktoré prijímajú webhooky platobných, Git, e-podpisových či CRM služieb.
Inštalácia
Inštalácia cez Composer, zverejnenie konfigurácie a migrácií príkazom webhooks:install, migrácia, potom worker frontu a plánovač.
Konfigurácia
Každý kľúč config/webhooks.php — kľúče a modely, fronty, prijímanie, odosielanie, SSRF, tajné kľúče, schémy, obsah správ a plánovanie.
Fasáda Webhooks
Prehľad fasády Webhooks — send, broadcast, for($owner), prístupy inbound() a outbound(), registre schém a handlerov, prune a fake.
DI a akcie
Bez fasády: injektujte WebhooksManager alebo zavolajte jednoúčelovú akciu — každá akcia so signatúrou execute() a metódou fasády.
Prijímanie webhookov
Prichádzajúce endpointy, spracovanie v pevnom poradí a jeho stavové kódy, ochrana pred opakovaním a idempotencia a vlastná trasa.
Handlery a spracovanie
Triedy alebo closures handlerov podľa aliasu, čítanie obsahu, hlavičiek a vlastníka, jediné spracovanie vo fronte a replay uložených doručení.
Odosielanie webhookov
Odchádzajúce endpointy s odbermi a vlastnými hlavičkami, send, idempotentné odoslanie, broadcast, udalosti, ktoré sa odošlú samy, ping a obálka.
Doručovanie a opakovania
Jeden pokus krok za krokom, plán opakovaní, obmedzenie na endpoint, automatické vypnutie, opätovné doručenie a hromadné doručenie po výpadku.
Správa endpointov
Hľadanie, výpis, úprava, nulovanie, zapnutie, vypnutie a zmazanie endpointov v oboch smeroch, trait HasWebhooks a všetky limity volieb.
Podpisové schémy
Predvolená schéma Standard Webhooks v1 bajt po bajte s testovacími vektormi, podpisy HTTP správ RFC 9421 a vlastné schémy v štýle GitHubu či Stripe.
Návod pre príjemcov
Stránka pre vašich zákazníkov: čo príde, surové telo v rôznych prostrediach, overenie v PHP, Node, Pythone, Go a Ruby, vektory a ako odpovedať.
Tajné kľúče a rotácia
Vygenerované a importované tajné kľúče, šifrovanie, jednorazové zobrazenie, rotácia s prechodným obdobím v oboch smeroch a čo vymaže zmazanie.
Bezpečnosť odosielania (SSRF)
Ako Safe Fetch chráni každú URL zákazníka pri uložení aj pri každom pokuse — pravidlá, pripnutie DNS, presmerovania a lokálny vývoj.
Obsah a retencia
Prichádzajúci obsah ako nedôveryhodný vstup, sanitizér a jeho náhrada, šifrovanie v pokoji a retencia cez webhooks:prune so skúšobným behom.
Záznam doručení a resources
Vymeniteľné modely a ich pomocníci, dopyty nad záznamom v oboch smeroch, JSON resources pre vlastné obrazovky a zobrazenie vlastníka.
Udalosti
Sedem udalostí pre audit — prijaté, odmietnuté, zlyhané spracovanie, doručené, zlyhané, vypnutý endpoint, rotovaný kľúč — a bezpečné počúvanie.
Príkazy Artisan
Inštalácia, doctor a jeho kontroly, pravidelné opakovanie, čistenie, rotácia, opätovné doručenie, replay, výpis, zapnutie, ping a make-scheme.
Testovanie
Webhooks::fake() so všetkými overeniami a ich negáciami, SignedWebhookRequest pre testy príjmu v akejkoľvek schéme, factories a FakeHostResolver pre DNS.
Model hrozieb
Pred čím balík chráni a ako — podvrh, opakovanie, zisťovanie endpointov, vyčerpanie zdrojov, SSRF, únik kľúčov — a čo zámerne nerieši.
Požiadavky
PHP 8.4+, Laravel 13, ext-curl a ext-json, MySQL alebo PostgreSQL, worker frontu a plánovač a balíky Roundly, na ktorých stojí.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.