---
url: https://docs.ogmabox.com/fa/development/architecture.md
description: >-
  با معماری Ogma شامل بک‌اند Rust، فرانت‌اند Vue، پوستهٔ Electron، ذخیره‌سازی
  محلی، محیط اجرای افزونه‌ها، سرور MCP و بسته‌بندی برنامهٔ دسکتاپ آشنا شوید.
---

# معماری {#architecture}

Ogma به‌صورت یک برنامهٔ دسکتاپ محلی ساخته شده است و از بک‌اند Rust، فرانت‌اند Vue، پوستهٔ Electron، ذخیره‌سازی محلی پروژه‌ها، محیط اجرای افزونه‌ها و یکپارچه‌سازی اختیاری با MCP تشکیل می‌شود.

## اجزای اصلی {#high-level-components}

| جزء | محل | مسئولیت |
| --- | --- | --- |
| بک‌اند پراکسی و API با Rust | `crates/proxy` | پراکسی MITM، رابط REST API، ذخیره‌سازی، اسکنرها، بازپخش، خودکارسازی، افزونه‌ها، MCP، OAST و نقاط پایانی کنترل مرورگر. |
| فرانت‌اند Vue | `frontend/src` | رابط کاربری فضای کار، مخازن وضعیت، مسیرها، ویرایشگرها، اسکنرها، iframeهای افزونه‌ها، فضای کار هوش مصنوعی و ابزارهای کمکی. |
| پوستهٔ دسکتاپ Electron | `desktop` | برنامهٔ دسکتاپ بسته‌بندی‌شده، یکپارچه‌سازی پنجرهٔ مرورگر، پل تنظیمات و چرخهٔ عمر برنامه. |
| مستندات | `docs` | سایت مستندات VitePress. |
| پوشهٔ داده‌ها | `ogma-data` یا پوشهٔ داده‌های برنامه در سیستم‌عامل | پایگاه دادهٔ SQLite، داده‌های مرجع صدور گواهی، افزونه‌ها، خروجی‌ها، نسخه‌های پشتیبان و فایل‌ها. |

## بک‌اند {#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/*`: مخازن Pinia برای تاریخچه، بازپخش، خودکارسازی، یافته‌ها، گردش‌های کار، افزونه‌ها، محدودهٔ آزمون، شل، هوش مصنوعی و دیگر وضعیت‌ها.
* `api/client.ts` و `api/types.ts`: رابط کلاینت API با نوع‌های مشخص.
* `views/*`: صفحات قابلیت‌های فضای کار.
* `components/WorkspacePanel.vue`: پنل فضای کار هوش مصنوعی و شل معکوس.
* `views/PluginsView.vue` و `views/PluginPageView.vue`: نصب و مدیریت افزونه‌ها و میزبانی iframe فرانت‌اند.

## پوستهٔ دسکتاپ {#desktop-shell}

پوستهٔ Electron تجربهٔ دسکتاپ بسته‌بندی‌شده و توابع پل بومی را فراهم می‌کند:

* راه‌اندازی و کنترل پنجرهٔ برنامه.
* ذخیرهٔ پایدار تنظیمات دسکتاپ در ذخیره‌سازی محلی فرانت‌اند.
* باز کردن پنجره‌های Ogma Browser و نماهای مرورگر تعبیه‌شده.
* بسته‌بندی منابع و فایل‌های اجرایی برای توزیع دسکتاپ.

## مدل ذخیره‌سازی {#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}

* اولویت با اجرای محلی به‌طور پیش‌فرض.
* یافته‌های مرتبط با شواهد.
* تعیین محدودهٔ آزمون پیش از خودکارسازی.
* الزام مجوزهای صریح برای هوش مصنوعی، افزونه‌ها، ارسال درخواست و خروجی گرفتن.
* پیمایش سریع برای گردش‌های کار تکراری آزمونگر.
* سازگاری با گردش‌های کار رایج پراکسی، در عین حفظ توسعه‌پذیری Ogma.
