Webhook'lar. Gerçek zamanlı olaylar, güvenilir bir şekilde teslim edilir.
Çalışma alanı başına webhook uç noktaları; tıklama, dönüşüm ve bağlantı yönetimi olaylarını HMAC-SHA256 imzalarıyla alır. Üstel geri çekilmeyle otomatik yeniden denemeler. SIEM modu olayları güvenlik platformunuza akıtır.
- 10'dan fazla olay türü - tıklamalar, dönüşümler, alan adı değişiklikleri
- Her teslimde HMAC-SHA256 imzası
- 72 saatlik üstel geri çekilme yeniden deneme
- Tek tıkla tekrar oynatma özellikli teslim günlüğü
Olay türleri
Kutudan çıktığı gibi 10'dan fazla olay türü
Uç nokta başına abone olun - yalnızca önemsediğiniz olayları alın. Yüksek hacimli tıklama olayları varsayılan olarak 5 saniyelik toplu bir pencerede gönderilir; ham-tıklama modu akış işlemcileri için tıklama başına teslim eder.
- link.clicked
Her yönlendirme tıklaması. Toplu (5s pencere) veya ham-tıklama modu.
- link.created
Çalışma alanında yeni bir kısa bağlantı oluşturuldu.
- link.updated
Bağlantı metadata'sı, hedef URL'si veya kuralları değişti.
- link.deleted
Bağlantı kaldırıldı - aşağı akış referanslarını güncelleyin.
- domain.verified
Özel alan adı DNS doğrulamasını geçti.
- conversion.attributed
Stripe veya Shopify üzerinden bir tıklamaya eşleşen gelir olayı.
- campaign.completed
Kampanya bitiş tarihine veya tıklama sınırına ulaştı.
- member.invited
Çalışma alanı üyesi eklendi veya SCIM ile provizyonlandı.
Ayrıca link.expired, link.click_cap_reached, domain.ssl_issued ve daha fazlası - bkz. tam olay kataloğu.
Teslim garantileri
Üstel geri çekilme. 72 saatlik pencere.
2xx olmayan bir yanıt veya 30 saniyelik bir zaman aşımı, otomatik yeniden denemeleri tetikler: 30 s → 2 dk → 10 dk → 30 dk → 2 sa → 8 sa → 24 sa → 48 sa. 72 saatten sonra teslim kalıcı olarak başarısız olur ve kuyruktan kaldırılır - ama manuel tekrar oynatma için teslim günlüğünde kalır.
- 30 saniyelik yanıt zaman aşımıHemen 200 döndürün; işleyiciniz yavaşsa asenkron işleyin.
- 72 saat içinde 8 yeniden deneme girişimiÜstel geri çekilme - yeniden başlatmada çığ etkisi yok.
- Art arda 30 hatadan sonra otomatik duraklatmaÇalışma alanı yöneticisi e-posta ile bilgilendirilir. Panelden yeniden başlatın.
- Günlükten tek tıkla tekrar oynatmaOrijinal yük, aynı event_id - alıcı idempotent olmalıdır.
| Olay | Uç nokta | Durum | Gecikme | Zaman | |
|---|---|---|---|---|---|
link.clicked | api.acme.com/wh | 200 | 142ms | 14:04:31 | |
link.created | api.acme.com/wh | 200 | 88ms | 14:03:19 | |
conversion.attributed | logs.acme.com | 500 | 30001ms | 14:02:01 | |
domain.verified | api.acme.com/wh | 200 | 67ms | 13:58:44 | |
link.deleted | logs.acme.com | timeout | 30000ms | 13:55:12 |
Teslim günlüğü
Tam günlük. Filtreleyin, inceleyin, tekrar oynatın.
Her girişim kaydedilir: olay kimliği, olay türü, uç nokta URL'si, HTTP durumu, yanıt gövdesi (4KB'ye kadar) ve gecikme. Saklama süresi Pro'da 30 gün, Business'ta 90 gündür.
- Olay türüne, uç noktaya, duruma ve tarih aralığına göre filtreleyin
- Başarısız girişler hata ayıklama için tam istek gövdesini gösterir
- Tekrar oynatma orijinal yükü gönderir - aynı event_id
- API: POST /v1/webhooks/deliveries/:id/replay
- SIEM modu: 7 günlük yeniden deneme garantisiyle yapılandırılmış JSON
Neler yapabilirsiniz
- Tıklama, dönüşüm, bağlantı ve alan adı olayları
- HMAC-SHA256 istek imzalama
- Otomatik yeniden denemeler - 72 saate kadar
- Güvenlik olayı iletimi için SIEM modu
- Olay türü başına konu filtreleme
- Tekrar oynatma özellikli webhook teslim günlüğü
Elido webhook'larının ne sunduğu ve teslimin nasıl çalıştığı
Webhook'lar, ancak güvenilirlikleri kadar faydalıdır. Aşağıdaki bölümler; teslim garantilerini, imza doğrulamayı, yeniden deneme davranışını ve SIEM modunu kapsar.
Tıklama olayları, dönüşüm olayları, bağlantı yaşam döngüsü olayları ve alan adı olayları - uç nokta başına yapılandırılabilir
Her webhook uç noktası bir veya daha fazla olay türüne abone olabilir: click.created (her yönlendirme tıklaması), conversion.created (Stripe, Shopify veya özel uç noktadan alınan dönüşüm olayı), link.created, link.updated, link.deleted, link.expired, link.click_cap_reached, domain.verified, domain.ssl_issued, domain.ssl_error, workspace.member.added, workspace.member.removed. Yüksek hacimli tıklama olayları gürültülü olabilir - varsayılan olarak, click.created webhook'ları 5 saniyelik bir birleştirme penceresiyle (yükte 100 olaya kadar toplu teslim) gönderilir. Tıklama başına gerçek zamanlı teslime ihtiyacınız varsa (örneğin, bir akış işlemciyi besliyorsanız), uç noktada ham-tıklama modunu etkinleştirin; bunun yoğun çalışma alanları için dakikada binlerce istek üretebileceğini ve yalnızca bu verimi kaldırabilen uç noktalar için etkinleştirilmesi gerektiğini unutmayın.
Her istek HMAC-SHA256 ile imzalanır - işlemeden önce X-Elido-Signature başlığını doğrulayın
Elido, uç noktada yapılandırılan paylaşılan sırrı kullanarak her webhook istek gövdesini HMAC-SHA256 ile imzalar. İmza, X-Elido-Signature başlığında 'sha256=<hex_digest>' olarak dahildir. Doğrulamak için: paylaşılan sırrı kullanarak ham istek gövdesi üzerinde HMAC-SHA256 hesaplayın, sonucu (zamanlama saldırılarını önlemek için) sabit zamanlı bir karşılaştırma fonksiyonu kullanarak başlık değeriyle karşılaştırın. Bir webhook yükünü imzayı doğrulamadan önce hiçbir zaman işlemeyin. Sır, uç nokta oluşturma anında bir kez gösterilir; panelde sıfır kesinti örtüşme penceresiyle (yeni bir sır oluşturulduktan sonra eski sır 15 dakika geçerliliğini korur) döndürün. Node.js, Python ve Go'da imza doğrulama için kod örnekleri /docs/guides/webhooks adresindeki webhook kılavuzundadır.
Üstel geri çekilmeyle otomatik yeniden denemeler - bir teslim başarısız olarak işaretlenmeden önce 72 saate kadar
Bir uç nokta 2xx olmayan bir durum kodu döndürürse veya zaman aşımına uğrarsa (30 saniyelik yanıt zaman aşımı), Elido teslimi üstel geri çekilmeyle yeniden dener: 30 saniye, 2 dakika, 10 dakika, 30 dakika, 2 saat, 8 saat, 24 saat, 48 saat. 72 saatlik pencereden sonra, teslim kalıcı olarak başarısız olarak işaretlenir ve yeniden deneme kuyruğundan kaldırılır. Başarısız teslimler, webhook teslim günlüğünde nihai HTTP durum koduyla (veya 'zaman aşımı') görünür. Panelden veya API'den (POST /v1/webhooks/deliveries/:id/replay) herhangi bir başarısız teslimi tekrar oynatabilirsiniz - aşağı akış kesintisinden sonra bir olay grubunu kurtarmak için faydalıdır. Art arda 30'dan fazla teslimde 5xx döndüren uç noktalar otomatik olarak duraklatılır ve çalışma alanı yöneticisine e-posta ile bildirilir. Temel sorun düzeltildikten sonra uç noktayı panelden yeniden başlatın.
SIEM modu, çalışma alanı denetim olaylarını Splunk, Datadog veya herhangi bir HTTPS günlük alım uç noktasına akıtır
SIEM modu, güvenlik olayı iletimi için özel bir webhook yapılandırmasıdır. Uygulama olayları (tıklamalar, dönüşümler) yerine, SIEM modu çalışma alanı denetim olaylarını teslim eder: SSO oturum açmaları, başarısız oturum açmalar, API anahtarı oluşturma/döndürme/silme, SCIM provizyon olayları, rol değişiklikleri, webhook sır döndürmeleri ve yönetici eylemleri (bağlantı silme, toplu dışa aktarma). Yük formatı, yaygın SIEM platformlarına alım için tasarlanmış standart bir şemaya (zaman damgası, aktör, eylem, hedef, workspace_id, ip_address, user_agent) sahip yapılandırılmış JSON'dır. SIEM webhook'ları, 7 güne kadar yeniden denemeyle teslim garantilidir ve uygulama webhook'larından ayrı olarak imzalanır. Test edilmiş entegrasyonlar: Splunk HTTP Event Collector (HEC), Datadog Logs API, Elastic Logstash HTTP girişi ve herhangi bir genel HTTPS günlük uç noktası. SIEM modu yalnızca Business özelliğidir.
İstek gövdesi, yanıt kodu ve başarısız teslimler için tek tıkla tekrar oynatma özellikli tam teslim günlüğü
Her webhook teslim girişimi kaydedilir: olay kimliği, olay türü, uç nokta URL'si, teslim zaman damgası, HTTP durum kodu, yanıt gövdesi (4KB'ye kadar) ve gecikme. Teslim günlüğü, olay türüne, uç noktaya, tarih aralığına ve duruma (teslim edildi, yeniden deneniyor, başarısız) göre sorgulanabilir. Başarısız teslimler, tekrar oynatmadan başarısız olan olayı inceleyebilmeniz için tam istek gövdesini içerir. Tekrar oynatma: POST /v1/webhooks/deliveries/:id/replay, orijinal yükü (yeni bir olay değil) uç noktaya gönderir - alıcınızda idempotentlik gereklidir. Teslim günlüğü saklama süresi Pro'da 30 gün, Business'ta 90 gündür. Webhook olaylarının kalıcı denetimi için, bir SIEM uç noktası yapılandırın veya denetim günlüğünün planlanmış dışa aktarımını etkinleştirin.
Üretimde Elido webhook'larını kullanan mühendislik ekipleri
Adlar yer tutucudur - gerçek müşteri vaka çalışmaları yayınlandıkça buraya eklenecektir.
“Kendi analitik hattımızı doldurmak için click.created webhook'larını toplu modda tüketiyoruz. HMAC imza doğrulaması ve tekrar oynatma özellikli teslim günlüğü, kısmi bir kesinti hatası ayıklarken saatlerce vakit kazandırdı - kaçırılan olay grubunu, olayı kaynaktan yeniden oluşturmadan panelden tekrar oynattık.”
“Çalışma alanı denetim olaylarını Splunk HEC'imize akıtan SIEM modu, InfoSec ekibimizin gerektirdiği kurumsal özellikti. Splunk'ta doğru şemayla SSO oturum açma olayları ve API anahtarı döndürmeleri, Elido erişim olaylarını kurulumdan bir gün içinde SIEM uyarı kurallarımızla ilişkilendirebileceğimiz anlamına geliyordu.”
“link.expired webhook'ları, basılı materyal veritabanımızı güncellemek için dahili iş akışımızı tetikliyor - bir QR kod bağlantısının süresi dolduğunda, operasyon ekibimiz fiziksel etiketi güncellemek için otomatik bir görev alıyor. Bağlantı süre sonu durumlarının sıfır manuel izlenmesi.”
Elido webhook'ları vs Bitly vs Short.io
Ne Bitly ne de Short.io, HMAC imzalama ve yeniden deneme garantileri olan giden webhook'lar sunuyor. Bu karşılaştırma bu boşluk konusunda açık sözlüdür.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Giden webhook'lar | Var - çalışma alanı başına uç noktalar, olay türü başına abonelik | Yok | Var - tıklamada temel webhook |
| HMAC-SHA256 imzalama | Var - her teslim imzalı, kod örnekleri sağlanır | Geçerli değil | Kısmi - imza başlığı mevcut, belgelenmemiş |
| Otomatik yeniden denemeler | Var - üstel geri çekilme, 72 saatlik pencere | Geçerli değil | Yeniden deneme yok - gönder ve unut |
| Tekrar oynatma özellikli teslim günlüğü | Var - Pro'da 30 gün, Business'ta 90 gün, tek tıkla tekrar oynatma | Geçerli değil | Teslim günlüğü yok |
| SIEM denetim olayı modu | Var - Business, SIEM alımı için yapılandırılmış JSON | Yok | Yok |
| Hatada uç nokta otomatik duraklatma | Var - 30 art arda hatadan sonra duraklatılır, yönetici bilgilendirilir | Geçerli değil | Yok |
| Olay türleri | Tıklama, dönüşüm, bağlantı yaşam döngüsü, alan adı, denetim olayları | Geçerli değil | Yalnızca tıklama |
Webhook soruları
HMAC-SHA256 imzasını nasıl doğrularım?
Ham istek gövdesini bayt olarak okuyun (herhangi bir JSON ayrıştırmasından önce), uç noktanızın paylaşılan sırrını kullanarak ham baytlar üzerinde HMAC-SHA256 hesaplayın, sonucu base16 (hex) kodlayın ve 'sha256=' önekini kaldırdıktan sonra X-Elido-Signature başlığındaki değerle karşılaştırın. Zamanlama saldırılarını önlemek için sabit zamanlı bir karşılaştırma fonksiyonu kullanın (örneğin, Python'da hmac.compare_digest, Node.js'te crypto.timingSafeEqual). İmzayı hiçbir zaman standart bir string eşitlik operatörüyle karşılaştırmayın. Node.js, Python ve Go için kod örnekleri /docs/guides/webhooks#verification adresindedir.
Webhook alıcım ne döndürmeli?
30 saniye içinde HTTP 200 (veya herhangi bir 2xx durum kodu) döndürün. Yanıt gövdesi göz ardı edilir - boş bir gövde veya { ok: true } döndürebilirsiniz. İşlemeniz 30 saniyeden uzun sürüyorsa, hemen 200 döndürün ve olayı asenkron olarak işleyin (dahili bir kuyruğa alın, 200 döndürün, istek yolunun dışında işleyin). 4xx döndürmek, yeniden deneme amaçları için 5xx ile aynı kabul edilir - her ikisi de bir yeniden denemeyi tetikler. Gereksiz yeniden denemelerden kaçınmak için, olay entegrasyonunuzla ilgili olmasa bile (örneğin, ihtiyacınız olmayan bir link.created olayı) 200 döndürün.
Webhook olayları için idempotentlik nasıl çalışır?
Her webhook yükü bir event_id alanı (UUID) içerir. Bunu alıcınızda idempotentlik anahtarı olarak kullanın: aynı event_id'yi (kısmi bir hatadan sonra bir yeniden deneme nedeniyle) iki kez alırsanız, yalnızca bir kez işleyin. Alınan olay kimliklerini, en az 72 saatlik (yeniden deneme penceresi) bir TTL ile bir tekilleştirme tablosunda saklayın. Yeniden deneme yükü orijinaliyle aynıdır - aynı event_id, aynı gövde - bu nedenle basit bir 'bu event_id'yi gördüm mü?' kontrolü yeterlidir.
Uç noktam neden otomatik olarak duraklatılıyor?
Uç noktalar, art arda 30 teslim hatasından (2xx olmayan veya zaman aşımı) sonra otomatik olarak duraklatılır. Bu, Elido'nun bozuk bir uç noktayı süresiz olarak zorlamasını önler. Temel sorunu düzeltin (genellikle: uç nokta URL'si değişti, sunucu çalışmıyor veya yavaş işleme nedeniyle 30 saniyelik zaman aşımı aşılıyor), ardından uç noktayı panelden yeniden başlatın. Yeniden başlatıldığında, Elido duraklatma sırasında atlanan olayları otomatik olarak tekrar oynatmaz - o olayları kurtarmanız gerekiyorsa teslim günlüğünden manuel olarak tekrar oynatın.
Her bir tıklama için gerçek zamanlı tıklama olayları alabilir miyim?
Evet - uç noktada ham-tıklama modunu etkinleştirin. Ham-tıklama modunda, Elido click.created olaylarını birleştirme penceresi olmadan, tıklamadan sonraki 2 saniye içinde tek tek teslim eder. Yoğun bir çalışma alanının ham-tıklama modunda dakikada binlerce olay üretebileceğinin farkında olun; alıcınızın verimi kaldırabildiğinden emin olun. Çoğu analitik kullanım durumu için, varsayılan 5 saniyelik toplu birleştirme (yük başına 100 tıklamaya kadar) yeterlidir ve çok daha az HTTP isteği üretir.
Webhook olayları için yük boyutu sınırı nedir?
Tekil olay yükleri 10KB'nin altındadır. Toplu tıklama yükleri (varsayılan mod), toplam yük boyutu sınırı 100KB olmak üzere grup başına 100 olaya kadar olabilir. Bir grup 100KB'yi aşarsa, otomatik olarak birden çok teslime bölünür. Tıklamalardaki büyük metadata alanları (örneğin, uzun yönlendiren URL'leri) alan başına 2KB'de kesilir. Alıcınız sıkı bir yük boyutu sınırı uyguluyorsa, toplu mod yerine ham-tıklama modunu (teslim başına bir olay) yapılandırın.
Geliştirme sırasında webhook'ları yerel olarak test etmenin bir yolu var mı?
Yerel sunucunuzu genel bir HTTPS URL'siyle açığa çıkarmak için ngrok, Cloudflare Tunnel veya localtunnel gibi bir araç kullanın, ardından bu URL'yi test çalışma alanınızda bir webhook uç noktası olarak kaydedin. Alternatif olarak, gerçek bir olay tetiklemeden kayıtlı bir uç noktaya herhangi bir olay türü için örnek bir yük göndermek üzere paneldeki webhook test tetikleme düğmesini kullanın. Elido CLI'si (elido webhook test --event click.created --endpoint https://...) de betiklenmiş yerel test için çalışır.
Planlanmış bir bakım penceresi sırasında webhook olaylarına ne olur?
Bakım penceresi sırasında oluşturulan olaylar olay akışımızda kuyruğa alınır ve bakım penceresi bittikten sonra teslim edilir. Elido durum sayfası (status.elido.app) planlanan bakım pencerelerini önceden duyurur. Webhook teslim SLA'sı duyurulan bakım pencerelerini hariç tutar. Tipik 30-60 dakikalık bakım penceresi için, 72 saatlik yeniden deneme penceresi hiçbir olayın kalıcı olarak kaybolmayacağı anlamına gelir - uç nokta yeniden erişilebilir olduğunda oluşturuldukları sırayla teslim edilirler.
Okumaya devam edin
Asenkron webhook'ların eşzamanlı API tamamlayıcısı - bağlantıları programatik olarak oluşturun ve sorgulayın.
Stripe ve Shopify'dan webhook'lar aracılığıyla dönüşüm olayları alın - gelen webhook tarafı.
SIEM modu, çalışma alanı denetim olaylarını teslim eder - SSO oturum açmaları, SCIM provizyonu, rol değişiklikleri.
Analitik deponuzdaki tıklama olayları - webhook üzerinden tıklama almanın sorgu tarafı alternatifi.
Denemeye hazır mısınız?
Ücretsiz planla başlayın, özel bir alan adına ihtiyacınız olduğunda yükseltin.