osFoundry / Platform
इनबाउंड webhooks
इवेंट्स प्राप्त करने के लिए प्रति ऐप या वर्कस्पेस एक URL। सिग्नेचर वेरिफ़िकेशन बेक्ड इन।
यह क्या है
इनबाउंड वेबहुक osFoundry को बाहरी दुनिया के लिए एक रिसीविंग पता देते हैं। आप किसी खास ऐप, इंस्टेंस और चैनल तक सीमित एक टोकन बनाते हैं, और osFoundry /api/v1/webhooks/inbound/{id} के अंतर्गत एक समर्पित URL लौटाता है। बाहरी सिस्टम (Stripe, GitHub, Zapier, कोई CI पाइपलाइन, आपका अपना बैकएंड) उस URL पर JSON POST करते हैं, और इवेंट उसी रियलटाइम चैनल में पहुँचता है जिसे आपने चुना था, जहाँ आपका चैट, एजेंट और ऐप उस पर कार्रवाई कर सकते हैं। न कोई पोलिंग है और न ही चलाने के लिए कोई अलग इंटीग्रेशन सर्वर: एंडपॉइंट ही इंटीग्रेशन है।\n\nसिग्नेचर वेरिफिकेशन बाद में जोड़ा गया फीचर नहीं, बल्कि शुरू से ही अंदर बना हुआ है। हर टोकन एक HMAC-SHA256 साइनिंग सीक्रेट रखता है, जो बनाते समय ठीक एक बार दिखाया जाता है। भेजने वाला पेलोड पर एक सिग्नेचर की गणना करता है और उसे X-OsFoundry-Signature हेडर में पास करता है; osFoundry हर अनुरोध पर इसे वैलिडेट करता है और बिना साइन किए या रास्ते में बदले गए किसी भी पेलोड को अस्वीकार कर देता है। जब आपको किसी भेजने वाले की की बदलनी हो, तो सीक्रेट रोटेट करने पर 7-दिन की एक ग्रेस विंडो खुलती है जिसके दौरान पिछला सीक्रेट भी वैलिड रहता है, इसलिए रोटेशन कभी भी बीच में चल रहे इवेंट को नहीं गिराता। टोकन रिवोक करना तुरंत होता है: एंडपॉइंट उसी क्षण 401 लौटाना शुरू कर देता है, जो लीक हुए सीक्रेट या हटाए गए इंटीग्रेशन के लिए सबसे तेज़ रास्ता है।\n\nचूँकि यह osFoundry के BYOK डेस्कटॉप वर्कस्पेस के भीतर चलता है, इसलिए एक इनबाउंड इवेंट उन्हीं एजेंट, ऐप और नॉलेज को ट्रिगर कर सकता है जिनके साथ आप पहले से काम करते हैं, बिना किसी प्रति-सीट इंटीग्रेशन शुल्क के और बिना आपके डेटा को किसी थर्ड-पार्टी बिचौलिए से घुमाए। हर टोकन अपने अंतिम उपयोग का समय और पिछले 24 घंटे की अनुरोध गिनती ट्रैक करता है ताकि आप देख सकें कि कौन-से भेजने वाले सक्रिय हैं, और प्लेटफ़ॉर्म पिछले 100 इनबाउंड अनुरोधों को रीप्ले के लिए रखता है, जो वेबहुक डिबगिंग को अनुमान लगाने से बदलकर असली पेलोड को दोबारा चलाने में बदल देता है।
मुख्य क्षमताएँ
- प्रति ऐप, इंस्टेंस और चैनल एक समर्पित रिसीविंग URL बनाएँ: बाहरी सिस्टम /api/v1/webhooks/inbound/{id} के अंतर्गत उसी एंडपॉइंट पर सीधे JSON इवेंट POST करते हैं
- हर अनुरोध X-OsFoundry-Signature हेडर में मौजूद HMAC-SHA256 सिग्नेचर के विरुद्ध वेरिफाई होता है, इसलिए बिना साइन किए या छेड़छाड़ किए गए पेलोड आपके चैनल तक पहुँचने से पहले ही अस्वीकार हो जाते हैं
- साइनिंग सीक्रेट को 7-दिन की ग्रेस विंडो के साथ रोटेट करें जिसमें पुराना सीक्रेट भी वैलिड रहता है, ताकि आप इवेंट खोए बिना भेजने वालों की की बदल सकें
- टोकन को तुरंत रिवोक करें: रिवोक होते ही एंडपॉइंट 401 लौटाता है, जिससे लीक हुआ या हटाया गया भेजने वाला कट जाता है
- प्रति टोकन अंतिम उपयोग का समय और 24-घंटे की अनुरोध गिनती देखें, और जब किसी डिलीवरी को डिबग करना हो तो ट्रिगर सेटिंग्स से पिछले 100 इनबाउंड अनुरोध रीप्ले करें
उपयोग के मामले
- Stripe जोड़ने वाला डेवलपर: बिलिंग चैनल तक सीमित एक टोकन बनाता है, Stripe के वेबहुक को उस URL पर पॉइंट करता है, और osFoundry को ऐसे किसी भी POST को अस्वीकार करने देता है जिसका HMAC सिग्नेचर मेल नहीं खाता, इससे पहले कि वह किसी एजेंट तक पहुँचे
- लीक हुए सीक्रेट वाला ऑप्स इंजीनियर: प्रभावित टोकन को रिवोक कर तुरंत 401 पाता है और एक नया बनाता है, वर्कस्पेस को फीड कर रहे बाकी इंटीग्रेशन को गिराए बिना
- CI पाइपलाइन जोड़ने वाला ऑटोमेशन बिल्डर: बिल्ड-स्टेटस इवेंट को एक चैनल में POST करता है जहाँ एक एजेंट विफलताओं को छाँटता है, पेलोड के आकार को डिबग करने के लिए पिछले 100 अनुरोधों के रीप्ले का उपयोग करते हुए
सामान्य प्रश्न
osFoundry यह कैसे वेरिफाई करता है कि कोई इनबाउंड वेबहुक असली है?
हर इनबाउंड टोकन के पास एक HMAC-SHA256 साइनिंग सीक्रेट होता है। भेजने वाला अनुरोध की बॉडी पर एक सिग्नेचर की गणना करता है और उसे X-OsFoundry-Signature हेडर में भेजता है, और osFoundry हर अनुरोध पर उसे दोबारा गणना कर मिलाता है। गायब या अमान्य सिग्नेचर वाले अनुरोध अस्वीकार हो जाते हैं, इसलिए केवल वही सिस्टम आपके चैनल में पब्लिश कर सकता है जिसके पास सीक्रेट है। सीक्रेट बनाते समय एक ही बार दिखाया जाता है, इसलिए उसे उसी समय सहेज लें, क्योंकि बाद में वह दोबारा नहीं दिखाया जाता।
जब मैं किसी टोकन को रोटेट या रिवोक करता हूँ तो बीच में चल रहे इवेंट का क्या होता है?
रोटेशन आपको 7-दिन की एक ग्रेस विंडो देता है जिसमें नया और पिछला दोनों सीक्रेट वैलिड रहते हैं, इसलिए आप बदलाव के दौरान इवेंट खोए बिना हर भेजने वाले को अपडेट कर सकते हैं। रिवोकेशन डिज़ाइन से इसके उलट है: एंडपॉइंट तुरंत 401 लौटाता है, भेजने वाले को उसी क्षण काट देता है, जो तब आप चाहते हैं जब कोई सीक्रेट लीक हो जाए या कोई इंटीग्रेशन हटाया जाए।
क्या मुझे हर चीज़ के लिए एक ही वेबहुक URL मिलता है, या मैं उन्हें सीमित कर सकता हूँ?
हर टोकन किसी खास ऐप, इंस्टेंस और चैनल तक सीमित होता है, और /api/v1/webhooks/inbound/{id} के अंतर्गत अपना खुद का URL बनाता है। इसका मतलब है कि कोई भेजने वाला ऐसे चैनल में पब्लिश नहीं कर सकता जिसकी उसे अनुमति नहीं दी गई, और आप बाकी को छुए बिना किसी एक इंटीग्रेशन को रिवोक या रोटेट कर सकते हैं। हर टोकन अपने अंतिम उपयोग का समय और 24-घंटे की अनुरोध गिनती भी बताता है ताकि आप जान सकें कि कौन-से एंडपॉइंट वास्तव में ट्रैफ़िक पा रहे हैं।