---
url: https://docs.ogmabox.com/he/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.
