Siapkan tujuan
Anda mengonfigurasi webhook alert di Business Console, bukan melalui API. Anggota yang dapat mengelola pengaturan organisasi dapat menambahkan, mengubah, dan menguji tujuan.1
Tambahkan tujuan
Di Pengaturan organisasi > Notifikasi tim, tambahkan tujuan Webhook alert dengan URL endpoint Anda.
URL harus menggunakan
https:// dan mengarah ke alamat publik.2
Simpan rahasia penandatanganan
Didit hanya menampilkan rahasia penandatanganan lengkap, yang diawali
whsec_, sekali saja.
Simpan sekarang: setelah itu konsol hanya menampilkan empat karakter terakhirnya.3
Arahkan alert ke tujuan
Menambahkan tujuan tidak langsung mengirim apa pun ke tujuan tersebut.
Tambahkan tujuan ke aturan perutean untuk alert yang ingin Anda terima.
4
Kirim tes
Klik Kirim tes untuk mengirim alert
alert.test, lalu pastikan endpoint Anda menerimanya.Jenis alert
Payload
Setiap alert berupaPOST dengan body JSON.
Didit mengirim body sebagai JSON ringkas dengan kunci yang diurutkan.
Contoh ini diformat agar mudah dibaca:
data selalu berisi:
event: kunci event, misalnyasession_in_review.labeldanvalue: hal yang dibahas alert, misalnyaSessiondan#1042.
data:
alert.billing.autorefill_failedmenambahkanpaused, boolean yang bernilaitruejika isi saldo otomatis kini dijeda hingga Anda memperbarui kartu.alert.service.degradeddanalert.service.recoveredmenambahkanservice,status,incident_id,service_name,state,affected,country_name,started_at,resolved_at,duration_minutes,title, danbody.statusbernilaidegradedataudownpadaalert.service.degraded, danrecoveredpadaalert.service.recovered.servicemenggunakan kunci layanan dariGET /v3/status/, danincident_idcocok denganidinsiden di sana.
webhook_type dan kunci data yang tidak Anda kenali, agar nilai atau kunci baru tidak merusak endpoint Anda.
Header permintaan
Verifikasi tanda tangan
X-Signature-V2 adalah HMAC-SHA256 dari string <X-Timestamp>.<raw body> yang dienkode dalam heksadesimal, dengan kunci berupa rahasia penandatanganan tujuan webhook Anda.
- Gunakan rahasia lengkap persis seperti yang ditampilkan Didit, termasuk awalan
whsec_. - Tandatangani byte mentah dari permintaan sebagaimana Anda menerimanya. Mem-parsing JSON lalu men-serialisasi ulang dapat mengubah byte dan membuat pemeriksaan gagal.
- Bandingkan tanda tangan dalam waktu konstan.
- Tolak permintaan yang
X-Timestamp-nya berselisih lebih dari 5 menit dari jam Anda. Didit menandatangani setiap percobaan, termasuk setiap coba lagi, dengan timestamp baru, sehingga jendela ini tidak pernah menolak coba lagi yang sah. - Balas pemeriksaan yang gagal dengan
400. Respons401,403,404atau410menandai tujuan untuk dihubungkan ulang (lihat Coba lagi).
Node.js (Express)
Python (Flask)
Rotasi rahasia penandatanganan
Anda merotasi rahasia pada tujuan di Notifikasi tim. Didit menampilkan rahasia baru sekali saja dan menandatangani setiap percobaan berikutnya dengan rahasia tersebut, termasuk coba lagi untuk alert yang dibuat sebelum rotasi. Rahasia lama langsung berhenti berfungsi. Tidak ada periode tumpang tindih, dan tidak ada header yang memuat tanda tangan yang dibuat dengan rahasia sebelumnya. Terapkan rahasia baru ke endpoint Anda segera setelah Anda merotasinya.Coba lagi
Didit menganggap respons2xx apa pun sebagai terkirim.
Setiap percobaan menunggu hingga 5 detik untuk respons Anda dan tidak mengikuti pengalihan.
Didit mencoba lagi mengirim alert setelah batas waktu, kegagalan koneksi, respons 5xx, atau respons 408, 425 atau 429.
Didit mencoba hingga 5 kali, selama sekitar 24 jam:
Respons lainnya bersifat final, termasuk
3xx dan 4xx lainnya.
Tes yang dikirim dengan Kirim tes mendapat satu percobaan dan tidak pernah dicoba ulang.
Respons 401, 403, 404 atau 410 juga menandai tujuan untuk dihubungkan ulang: konsol menampilkannya dengan status Hubungkan ulang. Hal yang sama berlaku untuk URL yang mengarah ke alamat privat atau alamat lain yang diblokir saat Didit mengirim.
Didit terus mengirim alert baru ke tujuan tersebut, dan tujuan kembali aktif setelah pengiriman berhasil berikutnya atau saat Anda memperbarui URL-nya.
Notifikasi terbaru di Notifikasi tim mencantumkan setiap pengiriman beserta hasilnya, dan Anda dapat mencoba ulang pengiriman yang gagal dari sana.
Terkait
- Webhook verifikasi: hasil sesi, entitas dan transaksi untuk aplikasi Anda.
- Status layanan: umpan publik di balik
alert.service.degradeddanalert.service.recovered. - Peninjauan manual: apa yang harus dilakukan dengan verifikasi dalam peninjauan.