رفتن به محتوا

معماری ​

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

اجزای اصلی ​

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

بک‌اند ​

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

پوستهٔ دسکتاپ ​

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

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

مدل ذخیره‌سازی ​

Ogma داده‌های ارزیابی را محلی نگه می‌دارد. مهاجرت‌های بک‌اند جدول‌هایی در محدودهٔ هر پروژه برای موارد زیر تعریف می‌کنند:

  • تاریخچه و بدنه‌های HTTP.
  • ترافیک WebSocket و SSE.
  • نشست‌ها و تلاش‌های بازپخش.
  • نشست‌ها، اجراها و نتایج خودکارسازی.
  • یافته‌ها و پیوندهای شواهد.
  • گردش‌های کار و اجراهای آن‌ها.
  • پیش‌تنظیم‌های محدودهٔ آزمون.
  • افزونه‌ها و مجوزهای آن‌ها.
  • فایل‌ها، خروجی‌ها، نسخه‌های پشتیبان و تنظیمات.

محیط اجرای افزونه‌ها ​

افزونه‌ها می‌توانند شامل اجزای بک‌اند، اجزای فرانت‌اند یا هر دو باشند.

افزونه‌های بک‌اند در یک محیط ایزولهٔ JavaScript اجرا می‌شوند و یک شیء sdk دریافت می‌کنند. افزونه‌های فرانت‌اند در iframeهای ایزوله اجرا می‌شوند و از طریق پلی که Ogma کنترل می‌کند ارتباط برقرار می‌کنند.

مرزهای مهم:

  • افزونه‌های فرانت‌اند نمی‌توانند به DOM والد دسترسی داشته باشند.
  • فرمان‌های پل در سمت سرور اعتبارسنجی می‌شوند.
  • اقدامات محافظت‌شدهٔ بک‌اند به مجوزهایی نیاز دارند که هم اعلام شده و هم اعطا شده باشند.
  • بسته‌های نصب‌شده در پوشهٔ افزونه‌های تحت مدیریت Ogma کپی می‌شوند تا رفتار زمان اجرا پایدار بماند.

به نظام افزونه‌ها مراجعه کنید.

یکپارچه‌سازی MCP ​

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

به راه‌اندازی MCP مراجعه کنید.

اصول طراحی ​

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

نرم‌افزار اختصاصی. تمامی حقوق محفوظ است.