وبهوک ها: مقررات
قواعد امنیت، retry، پاسخ موفق، توقف خودکار و چرخش secret.
امنیت URL
URL وبهوک مسیر ورود رویدادهای نویدا به محصول شماست؛ بنابراین قبل از ذخیره و همچنین قبل از هر ارسال، چند کنترل امنیتی روی آن انجام می شود.
- ۱Scheme معتبرآدرس باید با
https://شروع شود. در production، آدرس هایhttp://پذیرفته نمی شوند. - ۲بدون userinfoآدرس هایی مثل
https://user:pass@example.comمعتبر نیستند، چون اطلاعات حساس نباید داخل URL قرار بگیرد. - ۳بدون fragmentبخش
#...در URL وبهوک استفاده نمی شود و برای جلوگیری از ابهام رد می شود. - ۴بررسی DNS و شبکه خصوصینویدا hostname را هنگام ارسال دوباره resolve می کند. اگر آدرس به شبکه خصوصی، localhost یا آدرس های blocked برسد، ارسال انجام نمی شود.
- ۵بدون دنبال کردن redirectاگر endpoint پاسخ redirect بدهد، نویدا آن را دنبال نمی کند؛ چون redirect می تواند کنترل های امنیتی آدرس مقصد را دور بزند.
retry
اگر endpoint پاسخ ۲xx ندهد یا timeout شود، همان رویداد دوباره ارسال می شود. مقدار event_id در همه تلاش های یک رویداد ثابت می ماند.
| تلاش | زمان تقریبی | نکته |
|---|---|---|
| ۱ | بلافاصله | ارسال اولیه پس از ایجاد رویداد. |
| ۲ | حدود ۳۰ ثانیه بعد | برای خطاهای کوتاه مدت. |
| ۳ | حدود ۲ دقیقه بعد | فاصله بیشتر برای بازیابی سرویس دریافت کننده. |
| ۴ | حدود ۱۰ دقیقه بعد | ادامه تلاش بدون فشار زیاد روی endpoint. |
| ۵ | حدود ۱ ساعت بعد | برای قطعی های طولانی تر. |
| ۶ | حدود ۶ ساعت بعد | تلاش دیرتر برای رویدادهای هنوز تحویل نشده. |
| ۷ | حدود ۲۴ ساعت بعد | تلاش روز بعد. |
| ۸ | حدود ۲۴ ساعت بعد از تلاش قبلی | آخرین تلاش در تنظیمات پیش فرض. |
روی زمان ها کمی jitter اعمال می شود؛ بنابراین زمان دقیق ممکن است چند ثانیه یا چند دقیقه جابه جا شود.
پاسخ موفق
هر status code در بازه ۲۰۰ تا ۲۹۹ موفق محسوب می شود. محتوای body پاسخ شما برای منطق نویدا استفاده نمی شود؛ فقط قطعه ای کوتاه برای عیب یابی ذخیره می شود.
چرخش کلید
هنگام چرخش secret، نویدا برای دوره گذار با secret جدید و قبلی امضا می کند. در این حالت header می تواند چند مقدار v1 داشته باشد. گیرنده باید اگر یکی از v1 ها معتبر بود درخواست را بپذیرد.