---
url: https://docs.ogmabox.com/uk/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 для історії, повторного надсилання, автоматизації, знахідок, процесів, плагінів, області, оболонки, ШІ та іншого стану.
* `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.
* Сеансів і спроб повторного надсилання.
* Сеансів, запусків і результатів автоматизації.
* Знахідок і зв’язків із доказами.
* Робочих процесів та їхніх запусків.
* Наборів області тестування.
* Плагінів та їхніх дозволів.
* Файлів, експортів, резервних копій і налаштувань.

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

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

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

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

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

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

## Інтеграція MCP {#mcp-integration}

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

Див. [Налаштування MCP](../mcp-setup.md).

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

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