प्लगइन बैकएंड SDK संदर्भ
बैकएंड प्लगइन का कोड Ogma के JavaScript सैंडबॉक्स में चलता है और होस्ट एप्लिकेशन से एक sdk ऑब्जेक्ट प्राप्त करता है।
पूरे प्लगइन पैकेज प्रारूप, मैनिफ़ेस्ट फ़ील्ड, अनुमतियों और उदाहरणों के लिए प्लगइन प्रणाली गाइड से शुरू करें।
प्रवेश बिंदु
बैकएंड प्लगइन एक init फ़ंक्शन उपलब्ध कराते हैं:
js
async function init(sdk) {
sdk.console.log("plugin started");
}प्लगइन चालू किए जाने पर Ogma, init(sdk) को कॉल करता है।
मुख्य नेमस्पेस
| नेमस्पेस | उद्देश्य |
|---|---|
sdk.console | प्लगइन के लॉग बफ़र में संदेश लिखना। |
sdk.meta | प्लगइन मेटाडेटा और डेटा पथ पढ़ना। |
sdk.events | Ogma इवेंट के लिए कॉलबैक रजिस्टर करना। |
sdk.requests | HTTP इतिहास और अनुरोध डेटा की क्वेरी करना। |
sdk.findings | अनुमतियाँ मिलने पर निष्कर्षों की क्वेरी करना या उन्हें बनाना। |
sdk.scope | सक्रिय परीक्षण दायरे की जानकारी पढ़ना। |
sdk.storage | प्लगइन स्टेट के लिए स्थायी कुंजी/मान स्टोरेज। |
sdk.fs | प्लगइन की निजी डेटा डायरेक्टरी में फ़ाइल संचालन। |
sdk.path | प्लगइन डेटा डायरेक्टरी में पथ बनाने के सहायक उपकरण। |
sdk.api | प्लगइन फ्रंटएंड को बैकएंड हैंडलर उपलब्ध कराना। |
लॉगिंग
js
sdk.console.log("message")
sdk.console.warn("warning")
sdk.console.error("error")संदेश प्लगइन के लॉग UI में दिखाई देते हैं। लॉग संक्षिप्त रखें और गोपनीय जानकारी लिखने से बचें।
मेटाडेटा
js
sdk.meta.id()
sdk.meta.packageId()
sdk.meta.version()
sdk.meta.path()प्लगइन से संबंधित डेटा के लिए sdk.meta.path() का उपयोग करें। यह न मानें कि सैंडबॉक्स किए गए प्लगइन कोड को फ़ाइल सिस्टम के किसी भी पथ तक पहुँच मिलती है।
js
sdk.storage.set("key", "value")
sdk.storage.get("key")
sdk.storage.keys()
sdk.storage.delete("key")
sdk.storage.clear()js
sdk.fs.readFile("relative/file.txt")
sdk.fs.writeFile("relative/file.txt", "text")
sdk.fs.appendFile("relative/file.txt", "more")
sdk.fs.exists("relative/file.txt")
sdk.fs.existsSync("relative/file.txt")
sdk.fs.mkdir("relative/dir")
sdk.path.join("a", "b", "c")इवेंट
js
sdk.events.onInterceptRequest(function(req) {
return req
})
sdk.events.onInterceptResponse(function(req, res) {
sdk.console.log(res.getCode())
})
sdk.events.onProjectChange(function() {
sdk.console.log("project changed")
})कॉलबैक तेज़ होने चाहिए। लंबे समय तक चलने वाले काम को उपयोगकर्ता की स्पष्ट कार्रवाई या बैकएंड API हैंडलर के ज़रिए शुरू कराएँ।
फ्रंटएंड ब्रिज हैंडलर
बैकएंड प्लगइन, प्लगइन के फ्रंटएंड पैनल के लिए हैंडलर उपलब्ध करा सकते हैं:
js
sdk.api.register("ping", async function(input) {
return { ok: true, input: input };
});फ्रंटएंड, Ogma फ्रंटएंड SDK के ज़रिए हैंडलर को कॉल करता है। फ्रंटएंड SDK संदर्भ देखें।
सुरक्षा संबंधी अपेक्षाएँ
- HTTP ट्रैफ़िक, निष्कर्ष, लॉग और निर्यात को संवेदनशील मानें।
- केवल वही अनुमतियाँ माँगें जिनकी आपके प्लगइन को आवश्यकता है।
- डिफ़ॉल्ट रूप से क्रेडेंशियल, कुकी, Bearer टोकन या निजी ट्रैफ़िक कभी लॉग न करें।
- प्लगइन का व्यवहार उपयोगकर्ता के लिए स्पष्ट और समझने योग्य रखें।