आर्किटेक्चर
Ogma एक स्थानीय डेस्कटॉप एप्लिकेशन के रूप में बनाया गया है, जिसमें Rust बैकएंड, Vue फ्रंटएंड, Electron शेल, स्थानीय प्रोजेक्ट स्टोरेज, प्लगइन रनटाइम और वैकल्पिक MCP एकीकरण शामिल हैं।
मुख्य घटक
| घटक | स्थान | ज़िम्मेदारी |
|---|---|---|
| Rust प्रॉक्सी/API बैकएंड | crates/proxy | MITM प्रॉक्सी, REST API, स्टोरेज, स्कैनर, रीप्ले, स्वचालन, प्लगइन, MCP, OAST और ब्राउज़र नियंत्रण एंडपॉइंट। |
| Vue फ्रंटएंड | frontend/src | कार्यक्षेत्र UI, स्टेट स्टोर, रूट, एडिटर, स्कैनर, प्लगइन iframe, AI कार्यक्षेत्र और उपयोगी उपकरण। |
| Electron डेस्कटॉप शेल | desktop | पैकेज किया गया डेस्कटॉप ऐप, ब्राउज़र विंडो एकीकरण, सेटिंग्स ब्रिज और ऐप का जीवनचक्र। |
| दस्तावेज़ | docs | VitePress दस्तावेज़ साइट। |
| डेटा डायरेक्टरी | ogma-data या प्लेटफ़ॉर्म का ऐप डेटा स्थान | SQLite डेटाबेस, CA सामग्री, प्लगइन, निर्यात, बैकअप और फ़ाइलें। |
बैकएंड
बैकएंड एक REST API और प्रॉक्सी लिसनर उपलब्ध कराता है। मुख्य बैकएंड मॉड्यूल में शामिल हैं:
proxy_server.rs: HTTP इंटरसेप्शन और फ़ॉरवर्डिंग।intercept.rsऔरintercept_rules.rs: इंटरसेप्ट कतार और मिलान।store.rsऔरstore_actor.rs: प्रोजेक्ट डेटाबेस तक पहुँच और एसिंक्रोनस स्टोर हैंडल।api.rs: API रूटिंग और हैंडलर।replay.rs,automate.rsऔरworkflows.rs: अनुरोधों का दोहराया जा सकने वाला निष्पादन।passive_scanner.rsऔरactive_scanner.rs: स्कैनर इंजन।plugins.rsऔरplugin_runtime.rs: प्लगइन मेटाडेटा, सैंडबॉक्स रनटाइम, अनुमतियाँ और इवेंट।mcp.rs: MCP संसाधन और टूल।ca.rs,tls_cert.rs,client_cert.rs: प्रमाणपत्र और TLS समर्थन।ws_history.rs,ws_replay.rsऔरsse.rs: स्ट्रीमिंग ट्रैफ़िक समर्थन।oast.rs: आउट-ऑफ़-बैंड कॉलबैक सेवाएँ।
फ्रंटएंड
फ्रंटएंड एक Vue एप्लिकेशन है, जो कार्यक्षेत्र के अधिकांश दृश्यों के लिए रूट स्तर पर लेज़ी लोडिंग का उपयोग करता है।
मुख्य हिस्से:
router/index.ts: कार्यक्षेत्र और सेटिंग्स के रूट।components/NavSidebar.vue: उत्पाद का मुख्य नेविगेशन।stores/*: इतिहास, रीप्ले, स्वचालन, निष्कर्ष, कार्यप्रवाह, प्लगइन, परीक्षण का दायरा, शेल, AI और अन्य स्टेट के लिए Pinia स्टोर।api/client.tsऔरapi/types.ts: प्रकार-निर्धारित API क्लाइंट इंटरफ़ेस।views/*: कार्यक्षेत्र की सुविधाओं के पेज।components/WorkspacePanel.vue: AI और रिवर्स शेल का कार्यक्षेत्र पैनल।views/PluginsView.vueऔरviews/PluginPageView.vue: प्लगइन इंस्टॉलेशन, प्रबंधन और फ्रंटएंड iframe की होस्टिंग।
डेस्कटॉप शेल
Electron शेल पैकेज किया गया डेस्कटॉप अनुभव और नेटिव ब्रिज फ़ंक्शन उपलब्ध कराता है:
- ऐप विंडो शुरू करना और नियंत्रित करना।
- डेस्कटॉप सेटिंग्स को फ्रंटएंड के स्थानीय स्टोरेज में स्थायी रूप से सहेजना।
- Ogma Browser विंडो और एम्बेड किए गए ब्राउज़र दृश्य खोलना।
- डेस्कटॉप वितरण के लिए एसेट और बाइनरी पैकेज करना।
स्टोरेज मॉडल
Ogma मूल्यांकन डेटा को स्थानीय रखता है। बैकएंड माइग्रेशन हर प्रोजेक्ट के दायरे में इन चीज़ों के लिए टेबल निर्धारित करते हैं:
- HTTP इतिहास और संदेश बॉडी।
- WebSocket और SSE ट्रैफ़िक।
- रीप्ले सत्र और प्रयास।
- स्वचालन सत्र, रन और परिणाम।
- निष्कर्ष और साक्ष्य लिंक।
- कार्यप्रवाह और उनके रन।
- परीक्षण के दायरे के प्रीसेट।
- प्लगइन और उनकी अनुमतियाँ।
- फ़ाइलें, निर्यात, बैकअप और सेटिंग्स।
प्लगइन रनटाइम
प्लगइन में बैकएंड घटक, फ्रंटएंड घटक या दोनों शामिल हो सकते हैं।
बैकएंड प्लगइन JavaScript सैंडबॉक्स में चलते हैं और उन्हें एक sdk ऑब्जेक्ट मिलता है। फ्रंटएंड प्लगइन सैंडबॉक्स किए गए iframe में चलते हैं और Ogma द्वारा नियंत्रित ब्रिज के ज़रिए संवाद करते हैं।
महत्वपूर्ण सीमाएँ:
- फ्रंटएंड प्लगइन पैरेंट DOM तक नहीं पहुँच सकते।
- ब्रिज कमांड का सत्यापन सर्वर पर किया जाता है।
- संरक्षित बैकएंड कार्रवाइयों के लिए घोषित और प्रदान की गई अनुमतियाँ आवश्यक हैं।
- स्थिर रनटाइम व्यवहार के लिए इंस्टॉल किए गए पैकेज Ogma की प्रबंधित प्लगइन डायरेक्टरी में कॉपी किए जाते हैं।
प्लगइन प्रणाली देखें।
MCP एकीकरण
MCP सर्वर बाहरी सहायकों को Ogma प्रोजेक्ट का संदर्भ उपलब्ध कराता है। यह डिफ़ॉल्ट रूप से केवल पढ़ने वाले मोड में शुरू होता है। लिखने, निर्यात करने, अनुरोध भेजने, कार्यप्रवाह चलाने और इंटरसेप्ट नियंत्रित करने की क्षमताओं के लिए स्पष्ट अनुमतियाँ आवश्यक हैं।
MCP सेटअप देखें।
डिज़ाइन सिद्धांत
- डिफ़ॉल्ट रूप से स्थानीय काम को प्राथमिकता।
- साक्ष्य से जुड़े निष्कर्ष।
- स्वचालन से पहले परीक्षण का दायरा तय करना।
- AI, प्लगइन, अनुरोध भेजने और निर्यात के लिए स्पष्ट अनुमति की शर्तें।
- परीक्षकों के दोहराए जाने वाले कार्यप्रवाह के लिए तेज़ नेविगेशन।
- Ogma की विस्तार क्षमता बनाए रखते हुए स्थापित प्रॉक्सी कार्यप्रवाह के साथ संगतता।