---
url: https://docs.ogmabox.com/ar/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 ومواد سلطة التصديق 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/*`: مخازن 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 قابلًا للتوسعة.
