---
url: https://docs.ogmabox.com/cs/development/architecture.md
description: >-
  Seznamte se s architekturou Ogma zahrnující backend v Rustu, frontend ve Vue,
  desktopový obal v Electronu, místní úložiště, běhové prostředí pluginů, server
  MCP a balení desktopové aplikace.
---

# Architektura {#architecture}

Ogma je místní desktopová aplikace s backendem v Rustu, frontendem ve Vue, desktopovým obalem v Electronu, místním úložištěm projektů, běhovým prostředím pluginů a volitelnou integrací MCP.

## Hlavní komponenty {#high-level-components}

| Komponenta | Umístění | Odpovědnost |
| --- | --- | --- |
| Backend proxy/API v Rustu | `crates/proxy` | MITM proxy, REST API, úložiště, skenery, opětovné odesílání, automatizace, pluginy, MCP, OAST, koncové body pro ovládání prohlížeče. |
| Frontend ve Vue | `frontend/src` | Rozhraní pracovního prostoru, úložiště stavu, trasy, editory, skenery, iframe pluginů, pracovní prostor AI, pomocné nástroje. |
| Desktopový obal v Electronu | `desktop` | Zabalená desktopová aplikace, integrace oken prohlížeče, můstek pro nastavení, životní cyklus aplikace. |
| Dokumentace | `docs` | Dokumentační web ve VitePress. |
| Datový adresář | `ogma-data` nebo adresář dat aplikace na dané platformě | Databáze SQLite, materiál certifikační autority, pluginy, exporty, zálohy, soubory. |

## Backend {#backend}

Backend poskytuje REST API a naslouchající rozhraní proxy. Mezi hlavní backendové moduly patří:

* `proxy_server.rs`: zachytávání a předávání HTTP.
* `intercept.rs` a `intercept_rules.rs`: fronta zachycených zpráv a vyhodnocování shody.
* `store.rs` a `store_actor.rs`: přístup k databázi projektu a asynchronní rozhraní úložiště.
* `api.rs`: směrování API a obslužné funkce.
* `replay.rs`, `automate.rs` a `workflows.rs`: opakovatelné provádění požadavků.
* `passive_scanner.rs` a `active_scanner.rs`: jádra skenerů.
* `plugins.rs` a `plugin_runtime.rs`: metadata pluginů, běhové prostředí sandboxu, oprávnění a události.
* `mcp.rs`: zdroje a nástroje MCP.
* `ca.rs`, `tls_cert.rs`, `client_cert.rs`: podpora certifikátů a TLS.
* `ws_history.rs`, `ws_replay.rs` a `sse.rs`: podpora streamovaného provozu.
* `oast.rs`: služby pro zpětná volání mimo hlavní komunikační kanál.

## Frontend {#frontend}

Frontend je aplikace ve Vue, která většinu pohledů pracovního prostoru načítá odloženě na úrovni tras.

Klíčové oblasti:

* `router/index.ts`: trasy pracovního prostoru a nastavení.
* `components/NavSidebar.vue`: hlavní navigace produktu.
* `stores/*`: úložiště Pinia pro historii, opakované odesílání, automatizaci, nálezy, pracovní postupy, pluginy, rozsah testování, shell, AI a další stav.
* `api/client.ts` a `api/types.ts`: typované rozhraní klienta API.
* `views/*`: stránky funkcí pracovního prostoru.
* `components/WorkspacePanel.vue`: panel pracovního prostoru pro AI a reverzní shell.
* `views/PluginsView.vue` a `views/PluginPageView.vue`: instalace a správa pluginů a hostování frontendových iframe.

## Desktopový obal {#desktop-shell}

Obal v Electronu zajišťuje prostředí zabalené desktopové aplikace a nativní funkce můstku:

* Spouštění a ovládání okna aplikace.
* Trvalé ukládání desktopových nastavení do místního úložiště frontendu.
* Otevírání oken prohlížeče Ogma a vložených pohledů prohlížeče.
* Balení prostředků a binárních souborů pro distribuci desktopové aplikace.

## Model ukládání dat {#storage-model}

Ogma uchovává data bezpečnostního testování místně. Backendové migrace definují tabulky vázané na projekt pro:

* Historii HTTP a těla zpráv.
* Provoz WebSocket a SSE.
* Relace funkce Opakované odesílání a jednotlivé pokusy.
* Relace, běhy a výsledky funkce Automatizace.
* Nálezy a odkazy na důkazy.
* Pracovní postupy a jejich běhy.
* Předvolby rozsahu testování.
* Pluginy a oprávnění pluginů.
* Soubory, exporty, zálohy a nastavení.

## Běhové prostředí pluginů {#plugin-runtime}

Pluginy mohou zahrnovat backendové komponenty, frontendové komponenty nebo obojí.

Backendové pluginy běží v JavaScriptovém sandboxu a dostávají objekt `sdk`. Frontendové pluginy běží v izolovaných iframe a komunikují prostřednictvím můstku řízeného aplikací Ogma.

Důležité hranice:

* Frontendové pluginy nemají přístup k nadřazenému DOM.
* Příkazy můstku se validují na straně serveru.
* Chráněné backendové akce vyžadují deklarovaná a udělená oprávnění.
* Nainstalované balíčky se kopírují do adresáře pluginů spravovaného aplikací Ogma, aby bylo chování za běhu stabilní.

Viz [Systém pluginů](../plugins/README.md).

## Integrace MCP {#mcp-integration}

Server MCP zpřístupňuje kontext projektu Ogma externím asistentům. Ve výchozím nastavení se spouští pouze pro čtení. Zápis, export, odesílání požadavků, spouštění pracovních postupů a ovládání zachytávání vyžadují explicitní oprávnění.

Viz [Nastavení MCP](../mcp-setup.md).

## Principy návrhu {#design-principles}

* Ve výchozím nastavení upřednostňovat místní zpracování.
* Propojovat nálezy s důkazy.
* Vymezit rozsah testování před automatizací.
* Explicitně vynucovat oprávnění pro AI, pluginy, odesílání požadavků a exporty.
* Umožnit rychlou navigaci při opakovaných pracovních postupech testerů.
* Zachovat kompatibilitu se zavedenými pracovními postupy s proxy a současně rozšiřitelnost Ogma.
