跳至主要內容

架構 ​

Ogma 是本機桌面應用程式,由 Rust 後端、Vue 前端、Electron 外殼、本機專案儲存、外掛執行環境,以及選用的 MCP 整合組成。

高層元件 ​

元件位置職責
Rust 代理/API 後端crates/proxyMITM 代理、REST API、儲存、掃描器、重送、自動化、外掛、MCP、OAST、瀏覽器控制端點。
Vue 前端frontend/src工作區 UI、狀態儲存區、路由、編輯器、掃描器、外掛 iframe、AI 工作區、實用工具。
Electron 桌面外殼desktop封裝後的桌面應用程式、瀏覽器視窗整合、設定橋接、應用程式生命週期。
文件docsVitePress 文件網站。
資料目錄ogma-data 或平台應用程式資料目錄SQLite 資料庫、CA 相關資料、外掛、匯出、備份、檔案。

後端 ​

後端提供 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/*:用於歷程記錄、重送、自動化、檢測發現、工作流程、外掛、測試範圍、Shell、AI 及其他狀態的 Pinia 儲存區。
  • api/client.ts 和 api/types.ts:具型別的 API 用戶端介面。
  • views/*:工作區功能頁面。
  • components/WorkspacePanel.vue:AI 與反向 Shell 工作區面板。
  • views/PluginsView.vue 和 views/PluginPageView.vue:外掛安裝、管理及前端 iframe 承載。

桌面外殼 ​

Electron 外殼提供封裝後的桌面體驗及原生橋接功能:

  • 啟動及控制應用程式視窗。
  • 將桌面設定持久儲存於前端本機儲存空間。
  • 開啟 Ogma 瀏覽器視窗及嵌入式瀏覽器檢視。
  • 封裝資源及二進位檔,以供桌面版本散布。

儲存模型 ​

Ogma 將評估資料保留在本機。後端遷移定義了以下以專案為範圍的資料表:

  • HTTP 歷程記錄與本文。
  • WebSocket 與 SSE 流量。
  • 重送工作階段與嘗試紀錄。
  • 自動化工作階段、執行紀錄與結果。
  • 檢測發現與證據連結。
  • 工作流程與工作流程執行紀錄。
  • 測試範圍預設集。
  • 外掛與外掛權限。
  • 檔案、匯出、備份與設定。

外掛執行環境 ​

外掛可包含後端元件、前端元件,或兩者兼具。

後端外掛在 JavaScript 沙箱內執行,並接收 sdk 物件。前端外掛在沙箱 iframe 中執行,透過 Ogma 控制的橋接通訊。

重要界線:

  • 前端外掛無法存取父層 DOM。
  • 橋接命令會在伺服器端驗證。
  • 受保護的後端操作需要已宣告且已授予的權限。
  • 已安裝的套件會複製至 Ogma 管理的外掛目錄,以確保執行環境的行為穩定。

參閱外掛系統。

MCP 整合 ​

MCP 伺服器向外部助手提供 Ogma 專案情境資訊,預設以唯讀模式啟動。寫入、匯出、傳送請求、執行工作流程及控制攔截的能力,都需要明確授權。

參閱 MCP 設定。

設計原則 ​

  • 預設採本機優先。
  • 檢測發現連結至證據。
  • 先確定測試範圍,再進行自動化。
  • 對 AI、外掛、請求傳送及匯出設置明確的權限限制。
  • 為測試人員反覆使用的工作流程提供快速導覽。
  • 相容於既有成熟的代理工作流程,同時保留 Ogma 的擴充能力。

專有軟體。保留所有權利。