डेवलपर्स
आपका फार्म घटनाओं का उत्सर्जन करता है। उन्हें अपने इच्छित किसी भी यूआरएल पर इंगित करें।
प्रत्येक फार्म अंततः कुछ ऐसा चाहता है जिसे विक्रेता नहीं भेजता: खलिहान टीवी पर एक डैशबोर्ड, एक घरेलू सिंचाई नियंत्रक जो अलर्ट पर प्रतिक्रिया करता है, एक काउंटी रिपोर्टिंग स्क्रिप्ट, सॉफ़्टवेयर के लिए एक पुल जिसके बारे में हमने कभी नहीं सुना है। सामान्य उत्तर एक टाइमर पर एक एपीआई को पोल करना है और उम्मीद करना है कि आप पोल के बीच कुछ भी नहीं चूकेंगे।
बेहतर उत्तर वह है जिसे उत्पादन प्रणालियाँ एक-दूसरे के साथ उपयोग करती हैं: जब कुछ होता है, तो उसे धक्का दें, उस पर हस्ताक्षर करें, और उसके उतरने तक पुनः प्रयास करें।
यह वास्तव में कैसे काम करता है
FarmHub आपके द्वारा कॉन्फ़िगर किए गए किसी भी HTTPS URL पर हस्ताक्षरित JSON POST करता है, जब भी आपके लिए महत्वपूर्ण घटनाएँ घटित होती हैं।
- छह घटना प्रकार, जैसे ही वे घटित होते हैं, उन्हें आगे बढ़ाया जाता है। फसल रिकॉर्ड की गई, अलर्ट जारी किया गया, अलर्ट का समाधान किया गया, सुधारात्मक कार्रवाई का समाधान किया गया, रिकॉल शुरू किया गया और रिपोर्ट तैयार की गई। प्रत्येक ईवेंट हेडर में ईवेंट नाम के साथ JSON के रूप में आपके एंडपॉइंट पर पोस्ट होता है।
- प्रत्येक पेलोड पर HMAC-SHA256 हस्ताक्षरित है। FarmHub कनेक्शन के लिए एक साइनिंग कुंजी उत्पन्न करता है और प्रत्येक अनुरोध बॉडी पर हस्ताक्षर करता है, हस्ताक्षर को X-FarmHub-Signature हेडर में भेजता है। कच्चे बॉडी पर HMAC की पुनर्गणना करें और तुलना करें। यदि यह मेल नहीं खाता है, तो यह हम से नहीं है।
- डिलिवरी बैकऑफ़ के साथ पुनः प्रयास करती है। यदि आपका एंडपॉइंट डाउन है या त्रुटि लौटाता है, तो FarmHub बैकऑफ़ के साथ पुनः प्रयास करता है। प्रत्येक डिलीवरी एक अद्वितीय डिलीवरी आईडी हेडर ले जाती है ताकि आपका हैंडलर डुप्लिकेट प्रयासों को हटा सके।
- पेलोड संस्करणित हैं, और आप अपग्रेड को नियंत्रित करते हैं। जब पेलोड आकार बदलता है, तो संस्करण बाधित हो जाता है, और मौजूदा कनेक्शन उनके संस्करण पर तब तक पिन किए रहते हैं जब तक आप ऑप्ट इन नहीं करते। आपका एकीकरण नहीं टूटता क्योंकि हमने एक फ़ील्ड भेज दिया है।
यह Slack, टीम्स और PagerDuty इंटीग्रेशन के पीछे वही डिलीवरी मशीनरी है, जिसमें गंतव्य आपको सौंप दिया गया है।
आप किस पर भरोसा कर सकते हैं
आप किस पर भरोसा कर सकते हैं
गारंटी, सटीक रूप से:
- FarmHub साइनिंग कुंजी उत्पन्न करता है। HMAC कुंजी कनेक्ट समय पर बनाई जाती है और कनेक्शन पर एन्क्रिप्टेड संग्रहीत की जाती है। कोई साझा वैश्विक रहस्य नहीं है, और किसी कनेक्शन की कुंजी को घुमाने से केवल वह कनेक्शन प्रभावित होता है।
- हेडर वास्तविक हैंडलर के लिए बनाए गए हैं। प्रत्येक अनुरोध में हस्ताक्षर, ईवेंट नाम और एक अद्वितीय डिलीवरी आईडी होती है, ताकि आप पहले मुख्य भाग को पार्स किए बिना सत्यापित, रूट और डीडुप्लिकेट कर सकें।
- किल स्विच। तुरंत कनेक्शन अक्षम करें और डिलीवरी बंद हो जाएगी। तब उपयोगी जब आपका समापन बिंदु गलत व्यवहार कर रहा हो या आप बुनियादी ढांचे को घुमा रहे हों।
- हैश-चेन्ड ऑडिट पंक्तियाँ। प्रत्येक डिलीवरी प्रयास को ऑडिट लॉग में दर्ज किया जाता है, जिसकी पंक्तियाँ हैश-चेन होती हैं, इसलिए जो भेजा गया था उसका इतिहास छेड़छाड़-स्पष्ट है।
हम क्या नहीं करते
ईमानदार सीमाएँ:
- डिलिवरी कम से कम एक बार होती है, बिल्कुल एक बार नहीं। पुनः प्रयास का मतलब है कि आपका हैंडलर एक डिलीवरी को दो बार देख सकता है। डिलिवरी आईडी पर डिडुप्लिकेट करें।
- वेबहुक केवल आउटबाउंड हैं। यह इंटीग्रेशन इनबाउंड डेटा स्वीकार नहीं करता है; यह आपके सिस्टम को बताता है कि FarmHub में क्या हुआ।
- ऊपर दिए गए छह इवेंट प्रकार ही आज उपलब्ध हैं। हम उस कैटलॉग का वादा करने के बजाय छह वास्तविक घटनाओं को सूचीबद्ध करना पसंद करेंगे जिन्हें हमने नहीं बनाया है।
सेटअप, ईमानदारी से
आपको एक HTTPS एंडपॉइंट की आवश्यकता है जो JSON पोस्ट प्राप्त कर सके।
- FarmHub में, इंटीग्रेशन खोलें, कस्टम वेबहुक चुनें, और अपना एंडपॉइंट URL दर्ज करें। FarmHub HMAC साइनिंग कुंजी उत्पन्न करता है।
- अपने हैंडलर में, साइनिंग कुंजी के साथ कच्चे अनुरोध निकाय पर HMAC-SHA256 की पुनः गणना करके X-FarmHub-सिग्नेचर हेडर को सत्यापित करें।
- शीघ्रता से 2xx के साथ उत्तर दें; हेवी प्रोसेसिंग एसिंक करें। गैर-2xx प्रतिक्रियाओं को बैकऑफ़ के साथ पुनः प्रयास किया जाता है।
- फ़ीड पर भरोसा करने से पहले एक परीक्षण डिलीवरी ट्रिगर करें और पुष्टि करें कि आपका हस्ताक्षर सत्यापन पास हो गया है।
प्रश्न किसान पूछते हैं
मैं कैसे सत्यापित करूँ कि वेबहुक FarmHub से आया है?
कनेक्शन की साइनिंग कुंजी का उपयोग करके कच्चे अनुरोध निकाय पर HMAC-SHA256 की गणना करें और इसकी तुलना X-FarmHub-सिग्नेचर हेडर से करें, जो sha256= के साथ पूर्वलग्न हेक्स डाइजेस्ट को वहन करता है। जो भी चीज़ मेल न खाए उसे अस्वीकार करें.
मैं किन आयोजनों की सदस्यता ले सकता हूं?
फसल रिकॉर्ड की गई, अलर्ट जारी किया गया, अलर्ट का समाधान किया गया, सुधारात्मक कार्रवाई का समाधान किया गया, रिकॉल शुरू किया गया और रिपोर्ट तैयार की गई। इवेंट का नाम X-FarmHub-इवेंट हेडर में आता है।
यदि मेरा समापन बिंदु नीचे है तो क्या होगा?
फ़ार्महब बैकऑफ़ के साथ डिलीवरी का पुनः प्रयास करता है। क्योंकि डिलीवरी कम से कम एक बार होती है, आपके हैंडलर को X-FarmHub-डिलीवरी आईडी हेडर का उपयोग करके डुप्लिकेट करना चाहिए।
क्या पेलोड परिवर्तन से मेरा एकीकरण टूट जाएगा?
नहीं, पेलोड संस्करणित हैं, और जब तक आप नया विकल्प नहीं चुनते, तब तक आपका कनेक्शन इसके पेलोड संस्करण पर पिन किया हुआ रहता है।
क्या मैं हस्ताक्षर कुंजी को घुमा सकता हूँ?
प्रत्येक कनेक्शन की अपनी FarmHub-जनित कुंजी एन्क्रिप्टेड रूप से संग्रहीत है। पुन: कनेक्ट करने पर एक नई कुंजी जारी की जाती है, और किल स्विच रोटेशन करते समय तुरंत डिलीवरी को रोक देता है।
अगली शिफ्ट के लिए तैयार
वह चीज़ बनाएं जिसके बारे में हमने नहीं सोचा था
अपने स्वयं के एंडपॉइंट पर FarmHub के हस्ताक्षरित इवेंट स्ट्रीम को इंगित करें और खेत को आप जो भी कल्पना कर सकते हैं उससे जोड़ें: खलिहान डैशबोर्ड, नियंत्रक, रिपोर्ट बॉट। आपको हमारी अनुमति की आवश्यकता नहीं है, बस एक URL।
निःशुल्क प्रारंभ करें