---
url: https://docs.ogmabox.com/bn/development/architecture.md
description: >-
  Ogma-র Rust ব্যাকএন্ড, Vue ফ্রন্টএন্ড, Electron শেল, স্থানীয় স্টোরেজ, প্লাগইন
  রানটাইম, MCP সার্ভার ও ডেস্কটপ প্যাকেজিংয়ের স্থাপত্য বুঝুন।
---

# স্থাপত্য {#architecture}

Ogma স্থানীয় ডেস্কটপ অ্যাপ্লিকেশন হিসেবে তৈরি। এতে Rust ব্যাকএন্ড, Vue ফ্রন্টএন্ড, Electron শেল, স্থানীয় প্রজেক্ট স্টোরেজ, প্লাগইন রানটাইম ও ঐচ্ছিক MCP ইন্টিগ্রেশন আছে।

## প্রধান উপাদান {#high-level-components}

| উপাদান | অবস্থান | দায়িত্ব |
| --- | --- | --- |
| Rust প্রক্সি/API ব্যাকএন্ড | `crates/proxy` | MITM প্রক্সি, REST API, স্টোরেজ, স্ক্যানার, পুনঃপ্রেরণ, অটোমেশন, প্লাগইন, MCP, OAST, ব্রাউজার নিয়ন্ত্রণের এন্ডপয়েন্ট। |
| Vue ফ্রন্টএন্ড | `frontend/src` | ওয়ার্কস্পেস UI, স্টোর, রুট, এডিটর, স্ক্যানার, প্লাগইন iframe, AI ওয়ার্কস্পেস, সহায়ক সরঞ্জাম। |
| Electron ডেস্কটপ শেল | `desktop` | প্যাকেজ করা ডেস্কটপ অ্যাপ, ব্রাউজার উইন্ডো ইন্টিগ্রেশন, সেটিংস ব্রিজ, অ্যাপের জীবনচক্র। |
| ডকুমেন্টেশন | `docs` | VitePress ডকুমেন্টেশন সাইট। |
| তথ্যের ডিরেক্টরি | `ogma-data` বা প্ল্যাটফর্মের অ্যাপ তথ্য | SQLite ডেটাবেস, CA উপাদান, প্লাগইন, এক্সপোর্ট, ব্যাকআপ, ফাইল। |

## ব্যাকএন্ড {#backend}

ব্যাকএন্ড 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`: আউট-অব-ব্যান্ড কলব্যাক সেবা।

## ফ্রন্টএন্ড {#frontend}

ফ্রন্টএন্ড 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 হোস্টিং।

## ডেস্কটপ শেল {#desktop-shell}

Electron শেল প্যাকেজ করা ডেস্কটপ অভিজ্ঞতা ও নেটিভ ব্রিজ ফাংশন দেয়:

* অ্যাপের উইন্ডো চালু ও নিয়ন্ত্রণ।
* ফ্রন্টএন্ডের স্থানীয় স্টোরেজে ডেস্কটপ সেটিংস সংরক্ষণ।
* Ogma ব্রাউজারের উইন্ডো ও এমবেডেড ব্রাউজার দৃশ্য খোলা।
* ডেস্কটপ বিতরণের জন্য অ্যাসেট ও বাইনারি প্যাকেজ করা।

## স্টোরেজ মডেল {#storage-model}

Ogma মূল্যায়নের তথ্য স্থানীয় রাখে। ব্যাকএন্ড মাইগ্রেশন প্রজেক্টভিত্তিক সারণি নির্ধারণ করে:

* HTTP ইতিহাস ও বডি।
* WebSocket ও SSE ট্রাফিক।
* পুনঃপ্রেরণ সেশন ও প্রচেষ্টা।
* স্বয়ংক্রিয় পরীক্ষা সেশন, রান ও ফল।
* পর্যবেক্ষণ (নিরাপত্তা পরীক্ষার ফলাফল) ও প্রমাণের লিংক।
* কর্মপ্রবাহ ও তার রান।
* স্কোপ প্রিসেট।
* প্লাগইন ও প্লাগইনের অনুমতি।
* ফাইল, এক্সপোর্ট, ব্যাকআপ ও সেটিংস।

## প্লাগইন রানটাইম {#plugin-runtime}

প্লাগইনে ব্যাকএন্ড উপাদান, ফ্রন্টএন্ড উপাদান বা উভয় থাকতে পারে।

ব্যাকএন্ড প্লাগইন JavaScript স্যান্ডবক্সে চলে এবং `sdk` অবজেক্ট পায়। ফ্রন্টএন্ড প্লাগইন স্যান্ডবক্স করা iframe-এ চলে এবং Ogma নিয়ন্ত্রিত ব্রিজ দিয়ে যোগাযোগ করে।

গুরুত্বপূর্ণ সীমা:

* ফ্রন্টএন্ড প্লাগইন মূল পৃষ্ঠার DOM-এ অ্যাক্সেস করতে পারে না।
* ব্রিজ কমান্ড সার্ভার-পক্ষে যাচাই করা হয়।
* সুরক্ষিত ব্যাকএন্ড কাজের জন্য ঘোষণা করা ও প্রদান করা অনুমতি দরকার।
* স্থিতিশীল রানটাইম আচরণের জন্য ইনস্টল করা প্যাকেজ Ogma পরিচালিত প্লাগইন ডিরেক্টরিতে কপি করা হয়।

[প্লাগইন ব্যবস্থা](../plugins/README.md) দেখুন।

## MCP ইন্টিগ্রেশন {#mcp-integration}

MCP সার্ভার বাহ্যিক সহকারীকে Ogma প্রজেক্টের প্রসঙ্গ দেয়। ডিফল্টভাবে শুধু পড়ার অনুমতি নিয়ে শুরু হয়। লেখা, এক্সপোর্ট, অনুরোধ পাঠানো, কর্মপ্রবাহ চালানো ও ইন্টারসেপ্ট নিয়ন্ত্রণের জন্য সুস্পষ্ট অনুমতি দরকার।

[MCP সেটআপ](../mcp-setup.md) দেখুন।

## নকশার নীতি {#design-principles}

* ডিফল্টভাবে স্থানীয় কাজকে অগ্রাধিকার।
* প্রমাণ-সংযুক্ত নিরাপত্তা পরীক্ষার ফলাফল।
* অটোমেশনের আগে স্কোপ।
* AI, প্লাগইন, অনুরোধ পাঠানো ও এক্সপোর্টে সুস্পষ্ট অনুমতির নিয়ন্ত্রণ।
* পরীক্ষকের বারবার করা কাজের জন্য দ্রুত নেভিগেশন।
* Ogma সম্প্রসারণযোগ্য রেখে প্রতিষ্ঠিত প্রক্সি কর্মপ্রবাহের সঙ্গে সামঞ্জস্য।
