Przejdź do treści

Architektura ​

Ogma jest lokalną aplikacją desktopową z backendem w Rust, frontendem w Vue, powłoką Electron, lokalnym przechowywaniem danych projektów, środowiskiem wykonawczym wtyczek i opcjonalną integracją MCP.

Główne komponenty ​

KomponentLokalizacjaOdpowiedzialność
Backend proxy/API w Rustcrates/proxyProxy MITM, REST API, przechowywanie danych, skanery, ponowne wysyłanie, automatyzacja, wtyczki, MCP, OAST, punkty końcowe sterowania przeglądarką.
Frontend w Vuefrontend/srcInterfejs obszaru roboczego, magazyny stanu, trasy, edytory, skanery, ramki iframe wtyczek, obszar roboczy AI, narzędzia pomocnicze.
Powłoka desktopowa ElectrondesktopSpakowana aplikacja desktopowa, integracja okien przeglądarki, most ustawień, cykl życia aplikacji.
DokumentacjadocsWitryna dokumentacji oparta na VitePress.
Katalog danychogma-data lub katalog danych aplikacji właściwy dla platformyBaza danych SQLite, materiały urzędu certyfikacji (CA), wtyczki, eksporty, kopie zapasowe, pliki.

Backend ​

Backend udostępnia REST API i nasłuch proxy. Do jego głównych modułów należą:

  • proxy_server.rs: przechwytywanie i przekazywanie ruchu HTTP.
  • intercept.rs i intercept_rules.rs: kolejka przechwytywania i dopasowywanie.
  • store.rs i store_actor.rs: dostęp do bazy danych projektu i asynchroniczny uchwyt magazynu danych.
  • api.rs: routing API i procedury obsługi.
  • replay.rs, automate.rs i workflows.rs: powtarzalne wykonywanie żądań.
  • passive_scanner.rs i active_scanner.rs: silniki skanerów.
  • plugins.rs i plugin_runtime.rs: metadane wtyczek, środowisko wykonawcze w piaskownicy, uprawnienia i zdarzenia.
  • mcp.rs: zasoby i narzędzia MCP.
  • ca.rs, tls_cert.rs, client_cert.rs: obsługa certyfikatów i TLS.
  • ws_history.rs, ws_replay.rs i sse.rs: obsługa ruchu strumieniowego.
  • oast.rs: usługi obsługi połączeń zwrotnych poza głównym kanałem komunikacji.

Frontend ​

Frontend jest aplikacją Vue, która dla większości widoków obszaru roboczego stosuje leniwe ładowanie na poziomie tras.

Główne obszary:

  • router/index.ts: trasy obszaru roboczego i ustawień.
  • components/NavSidebar.vue: główna nawigacja produktu.
  • stores/*: magazyny Pinia dla historii, ponownego wysyłania, automatyzacji, ustaleń, przepływów pracy, wtyczek, zakresu testów, powłoki, AI i pozostałego stanu.
  • api/client.ts i api/types.ts: typowany interfejs klienta API.
  • views/*: strony funkcji obszaru roboczego.
  • components/WorkspacePanel.vue: panel obszaru roboczego AI i powłoki zwrotnej.
  • views/PluginsView.vue i views/PluginPageView.vue: instalowanie wtyczek i zarządzanie nimi oraz osadzanie ich frontendów w ramkach iframe.

Powłoka desktopowa ​

Powłoka Electron zapewnia obsługę spakowanej aplikacji desktopowej i natywne funkcje mostu:

  • Uruchamianie okna aplikacji i sterowanie nim.
  • Zapisywanie ustawień aplikacji desktopowej w lokalnym magazynie frontendu.
  • Otwieranie okien Przeglądarki Ogma i osadzonych widoków przeglądarki.
  • Pakowanie zasobów i plików binarnych do dystrybucji desktopowej.

Model przechowywania danych ​

Ogma przechowuje dane oceny bezpieczeństwa lokalnie. Migracje backendu definiują tabele przypisane do projektów dla:

  • Historii HTTP i treści wiadomości.
  • Ruchu WebSocket i SSE.
  • Sesji i prób ponownego wysyłania.
  • Sesji, uruchomień i wyników automatyzacji.
  • Ustaleń i powiązań z dowodami.
  • Przepływów pracy i ich uruchomień.
  • Zapisanych konfiguracji zakresu testów.
  • Wtyczek i ich uprawnień.
  • Plików, eksportów, kopii zapasowych i ustawień.

Środowisko wykonawcze wtyczek ​

Wtyczki mogą zawierać komponenty backendu, frontendu lub oba rodzaje.

Wtyczki backendu działają w piaskownicy JavaScript i otrzymują obiekt sdk. Wtyczki frontendu działają w izolowanych ramkach iframe i komunikują się przez most kontrolowany przez Ogma.

Istotne granice:

  • Wtyczki frontendu nie mają dostępu do nadrzędnego DOM.
  • Polecenia mostu są sprawdzane po stronie serwera.
  • Chronione operacje backendu wymagają zadeklarowanych i przyznanych uprawnień.
  • Instalowane pakiety są kopiowane do katalogu wtyczek zarządzanego przez Ogma, aby zapewnić stabilne działanie środowiska wykonawczego.

Zobacz System wtyczek.

Integracja MCP ​

Serwer MCP udostępnia kontekst projektów Ogma zewnętrznym asystentom. Domyślnie uruchamia się w trybie tylko do odczytu. Zapisywanie danych, eksportowanie, wysyłanie żądań, uruchamianie przepływów pracy i sterowanie przechwytywaniem wymagają jawnych uprawnień.

Zobacz Konfiguracja MCP.

Zasady projektowe ​

  • Domyślnie priorytet dla pracy lokalnej.
  • Ustalenia powiązane z dowodami.
  • Określenie zakresu testów przed automatyzacją.
  • Jawne wymaganie uprawnień dla AI, wtyczek, wysyłania żądań i eksportów.
  • Szybka nawigacja przy powtarzalnych zadaniach testera.
  • Zgodność z ustalonymi sposobami pracy z proxy przy zachowaniu możliwości rozszerzania Ogma.

Oprogramowanie własnościowe. Wszelkie prawa zastrzeżone.