---
url: https://docs.ogmabox.com/pl/development/architecture.md
description: >-
  Poznaj architekturę Ogma — backend w Rust, frontend w Vue, powłokę Electron,
  lokalne przechowywanie danych, środowisko wykonawcze wtyczek, serwer MCP i
  pakowanie aplikacji desktopowej.
---

# Architektura {#architecture}

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 {#high-level-components}

| Komponent | Lokalizacja | Odpowiedzialność |
| --- | --- | --- |
| Backend proxy/API w Rust | `crates/proxy` | Proxy MITM, REST API, przechowywanie danych, skanery, ponowne wysyłanie, automatyzacja, wtyczki, MCP, OAST, punkty końcowe sterowania przeglądarką. |
| Frontend w Vue | `frontend/src` | Interfejs obszaru roboczego, magazyny stanu, trasy, edytory, skanery, ramki iframe wtyczek, obszar roboczy AI, narzędzia pomocnicze. |
| Powłoka desktopowa Electron | `desktop` | Spakowana aplikacja desktopowa, integracja okien przeglądarki, most ustawień, cykl życia aplikacji. |
| Dokumentacja | `docs` | Witryna dokumentacji oparta na VitePress. |
| Katalog danych | `ogma-data` lub katalog danych aplikacji właściwy dla platformy | Baza danych SQLite, materiały urzędu certyfikacji (CA), wtyczki, eksporty, kopie zapasowe, pliki. |

## Backend {#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}

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 {#desktop-shell}

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 {#storage-model}

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 {#plugin-runtime}

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](../plugins/README.md).

## Integracja MCP {#mcp-integration}

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](../mcp-setup.md).

## Zasady projektowe {#design-principles}

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