---
url: https://docs.ogmabox.com/ru/development/architecture.md
description: >-
  Изучите архитектуру сервера Rust, интерфейса Vue, оболочки Electron,
  локального хранения, среды плагинов, MCP и десктопных пакетов Ogma.
---

# Архитектура {#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, материалы 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/*`: хранилища Pinia для истории, Replay, Automate, результатов, рабочих процессов, плагинов, области, оболочки, ИИ и другого состояния.
* `api/client.ts` и `api/types.ts`: типизированный интерфейс клиента API.
* `views/*`: страницы функций пространства.
* `components/WorkspacePanel.vue`: панель ИИ и обратной оболочки.
* `views/PluginsView.vue` и `views/PluginPageView.vue`: установка и управление плагинами, размещение iframe интерфейса.

## Десктопная оболочка {#desktop-shell}

Electron предоставляет упакованное десктопное приложение и функции нативного моста:

* Запуск и управление окном приложения.
* Сохранение десктопных настроек в локальном хранилище интерфейса.
* Открытие окон и встроенных представлений браузера Ogma.
* Упаковка ресурсов и бинарных файлов для распространения.

## Модель хранения {#storage-model}

Ogma хранит данные исследования локально. Миграции сервера задают таблицы проектов для:

* Истории и тел HTTP.
* Трафика WebSocket и SSE.
* Сессий и попыток Replay.
* Сессий, запусков и результатов Automate.
* Результатов и ссылок на доказательства.
* Рабочих процессов и их запусков.
* Наборов области.
* Плагинов и разрешений.
* Файлов, экспорта, резервных копий и настроек.

## Среда плагинов {#plugin-runtime}

Плагины могут включать серверные компоненты, интерфейсные или оба типа.

Серверные плагины работают в изолированной среде JavaScript и получают объект `sdk`. Интерфейсные — в изолированных iframe и общаются через контролируемый Ogma мост.

Основные границы:

* Интерфейсные плагины не имеют доступа к родительскому DOM.
* Команды моста проверяются на сервере.
* Защищённые серверные действия требуют объявленных и выданных разрешений.
* Пакеты копируются в управляемый каталог Ogma для стабильной работы.

См. [Система плагинов](../plugins/README.md).

## Интеграция MCP {#mcp-integration}

MCP-сервер предоставляет контекст проекта внешним помощникам. По умолчанию он запускается только для чтения. Запись, экспорт, отправка запросов, запуск рабочих процессов и управление перехватом требуют явных разрешений.

См. [Настройка MCP](../mcp-setup.md).

## Принципы проектирования {#design-principles}

* Локальная работа по умолчанию.
* Результаты с привязанными доказательствами.
* Область перед автоматизацией.
* Явные разрешения для ИИ, плагинов, отправки запросов и экспорта.
* Быстрая навигация для повторяемых задач тестировщика.
* Совместимость с привычными сценариями прокси при сохранении расширяемости Ogma.
