---
url: https://docs.ogmabox.com/zh-Hant/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/*`：用於歷程記錄、重送、自動化、檢測發現、工作流程、外掛、測試範圍、Shell、AI 及其他狀態的 Pinia 儲存區。
* `api/client.ts` 和 `api/types.ts`：具型別的 API 用戶端介面。
* `views/*`：工作區功能頁面。
* `components/WorkspacePanel.vue`：AI 與反向 Shell 工作區面板。
* `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 的擴充能力。
