স্থাপত্য
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 ব্রাউজারের উইন্ডো ও এমবেডেড ব্রাউজার দৃশ্য খোলা।
- ডেস্কটপ বিতরণের জন্য অ্যাসেট ও বাইনারি প্যাকেজ করা।
স্টোরেজ মডেল
Ogma মূল্যায়নের তথ্য স্থানীয় রাখে। ব্যাকএন্ড মাইগ্রেশন প্রজেক্টভিত্তিক সারণি নির্ধারণ করে:
- HTTP ইতিহাস ও বডি।
- WebSocket ও SSE ট্রাফিক।
- পুনঃপ্রেরণ সেশন ও প্রচেষ্টা।
- স্বয়ংক্রিয় পরীক্ষা সেশন, রান ও ফল।
- পর্যবেক্ষণ (নিরাপত্তা পরীক্ষার ফলাফল) ও প্রমাণের লিংক।
- কর্মপ্রবাহ ও তার রান।
- স্কোপ প্রিসেট।
- প্লাগইন ও প্লাগইনের অনুমতি।
- ফাইল, এক্সপোর্ট, ব্যাকআপ ও সেটিংস।
প্লাগইন রানটাইম
প্লাগইনে ব্যাকএন্ড উপাদান, ফ্রন্টএন্ড উপাদান বা উভয় থাকতে পারে।
ব্যাকএন্ড প্লাগইন JavaScript স্যান্ডবক্সে চলে এবং sdk অবজেক্ট পায়। ফ্রন্টএন্ড প্লাগইন স্যান্ডবক্স করা iframe-এ চলে এবং Ogma নিয়ন্ত্রিত ব্রিজ দিয়ে যোগাযোগ করে।
গুরুত্বপূর্ণ সীমা:
- ফ্রন্টএন্ড প্লাগইন মূল পৃষ্ঠার DOM-এ অ্যাক্সেস করতে পারে না।
- ব্রিজ কমান্ড সার্ভার-পক্ষে যাচাই করা হয়।
- সুরক্ষিত ব্যাকএন্ড কাজের জন্য ঘোষণা করা ও প্রদান করা অনুমতি দরকার।
- স্থিতিশীল রানটাইম আচরণের জন্য ইনস্টল করা প্যাকেজ Ogma পরিচালিত প্লাগইন ডিরেক্টরিতে কপি করা হয়।
প্লাগইন ব্যবস্থা দেখুন।
MCP ইন্টিগ্রেশন
MCP সার্ভার বাহ্যিক সহকারীকে Ogma প্রজেক্টের প্রসঙ্গ দেয়। ডিফল্টভাবে শুধু পড়ার অনুমতি নিয়ে শুরু হয়। লেখা, এক্সপোর্ট, অনুরোধ পাঠানো, কর্মপ্রবাহ চালানো ও ইন্টারসেপ্ট নিয়ন্ত্রণের জন্য সুস্পষ্ট অনুমতি দরকার।
MCP সেটআপ দেখুন।
নকশার নীতি
- ডিফল্টভাবে স্থানীয় কাজকে অগ্রাধিকার।
- প্রমাণ-সংযুক্ত নিরাপত্তা পরীক্ষার ফলাফল।
- অটোমেশনের আগে স্কোপ।
- AI, প্লাগইন, অনুরোধ পাঠানো ও এক্সপোর্টে সুস্পষ্ট অনুমতির নিয়ন্ত্রণ।
- পরীক্ষকের বারবার করা কাজের জন্য দ্রুত নেভিগেশন।
- Ogma সম্প্রসারণযোগ্য রেখে প্রতিষ্ঠিত প্রক্সি কর্মপ্রবাহের সঙ্গে সামঞ্জস্য।