Перейти к содержимому

Архитектура ​

Ogma — локальное десктопное приложение с сервером Rust, интерфейсом Vue, оболочкой Electron, локальным хранением проектов, средой плагинов и необязательной интеграцией MCP.

Основные компоненты ​

КомпонентРасположениеОтветственность
Сервер прокси/API Rustcrates/proxyMITM-прокси, REST API, хранение, сканеры, повторная отправка, автоматизация, плагины, MCP, OAST, конечные точки управления браузером.
Интерфейс Vuefrontend/srcИнтерфейс пространства, хранилища, маршруты, редакторы, сканеры, iframe плагинов, ИИ-пространство, утилиты.
Десктопная оболочка ElectrondesktopУпакованное приложение, интеграция окон браузера, мост настроек, жизненный цикл.
ДокументацияdocsСайт документации VitePress.
Каталог данных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/*: хранилища Pinia для истории, Replay, Automate, результатов, рабочих процессов, плагинов, области, оболочки, ИИ и другого состояния.
  • api/client.ts и api/types.ts: типизированный интерфейс клиента API.
  • views/*: страницы функций пространства.
  • components/WorkspacePanel.vue: панель ИИ и обратной оболочки.
  • views/PluginsView.vue и views/PluginPageView.vue: установка и управление плагинами, размещение iframe интерфейса.

Десктопная оболочка ​

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

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

Модель хранения ​

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

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

Среда плагинов ​

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

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

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

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

См. Система плагинов.

Интеграция MCP ​

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

См. Настройка MCP.

Принципы проектирования ​

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

Проприетарное ПО. Все права защищены.