---
url: https://docs.ogmabox.com/zh/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 的可扩展性。
