Перейти до вмісту

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

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 для історії, повторного надсилання, автоматизації, знахідок, процесів, плагінів, області, оболонки, ШІ та іншого стану.
  • api/client.ts і api/types.ts: типізований інтерфейс клієнта API.
  • views/*: сторінки функцій робочого простору.
  • components/WorkspacePanel.vue: панель простору ШІ й зворотної оболонки.
  • views/PluginsView.vue і views/PluginPageView.vue: установлення й керування плагінами та розміщення iframe їхнього інтерфейсу.

Настільна оболонка ​

Оболонка Electron надає можливості упакованого настільного застосунку й функції нативного мосту:

  • Запуск і керування вікном застосунку.
  • Збереження настільних налаштувань у локальному сховищі фронтенда.
  • Відкриття вікон браузера Ogma й вбудованих браузерних подань.
  • Пакування ресурсів і бінарних файлів для настільного поширення.

Модель зберігання ​

Ogma зберігає дані оцінювання локально. Міграції бекенда визначають таблиці проєкту для:

  • Історії HTTP й тіл.
  • Трафіку WebSocket і SSE.
  • Сеансів і спроб повторного надсилання.
  • Сеансів, запусків і результатів автоматизації.
  • Знахідок і зв’язків із доказами.
  • Робочих процесів та їхніх запусків.
  • Наборів області тестування.
  • Плагінів та їхніх дозволів.
  • Файлів, експортів, резервних копій і налаштувань.

Середовище виконання плагінів ​

Плагіни можуть містити серверні компоненти, компоненти інтерфейсу або обидва типи.

Серверні плагіни виконуються в ізольованому середовищі JavaScript й отримують об’єкт sdk. Плагіни інтерфейсу виконуються в ізольованих iframe й спілкуються через міст, контрольований Ogma.

Важливі межі:

  • Плагіни інтерфейсу не можуть отримати доступ до батьківського DOM.
  • Команди мосту перевіряються на сервері.
  • Захищені серверні дії потребують заявлених і наданих дозволів.
  • Установлені пакети копіюються до керованого каталогу плагінів Ogma для стабільної поведінки під час виконання.

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

Інтеграція MCP ​

MCP-сервер надає контекст проєкту Ogma зовнішнім помічникам. За замовчуванням він запускається лише для читання. Запис, експорт, надсилання запитів, виконання процесів і керування перехопленням потребують явних дозволів.

Див. Налаштування MCP.

Принципи проєктування ​

  • Пріоритет локальної роботи за замовчуванням.
  • Знахідки, пов’язані з доказами.
  • Область тестування перед автоматизацією.
  • Явні дозволи для ШІ, плагінів, надсилання запитів та експорту.
  • Швидка навігація для повторюваних процесів тестувальника.
  • Сумісність з усталеними процесами роботи з проксі зі збереженням розширюваності Ogma.

Пропрієтарне програмне забезпечення. Усі права захищено.