Přejít na obsah

Architektura ​

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 ​

KomponentaUmístěníOdpovědnost
Backend proxy/API v Rustucrates/proxyMITM 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 Vuefrontend/srcRozhraní pracovního prostoru, úložiště stavu, trasy, editory, skenery, iframe pluginů, pracovní prostor AI, pomocné nástroje.
Desktopový obal v ElectronudesktopZabalená desktopová aplikace, integrace oken prohlížeče, můstek pro nastavení, životní cyklus aplikace.
DokumentacedocsDokumentač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 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 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 ​

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 ​

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ů ​

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ů.

Integrace MCP ​

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.

Principy návrhu ​

  • 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.

Proprietární software. Všechna práva vyhrazena.