---
url: https://docs.ogmabox.com/de/development/architecture.md
description: >-
  Lernen Sie Ogmas Architektur mit Rust-Backend, Vue-Frontend, Electron-Shell,
  lokalem Speicher, Plugin-Laufzeit, MCP-Server und Desktop-Paketierung kennen.
---

# Architektur {#architecture}

Ogma ist als lokale Desktop-Anwendung aufgebaut und umfasst ein Rust-Backend, ein Vue-Frontend, eine Electron-Shell, lokalen Projektspeicher, eine Plugin-Laufzeit und eine optionale MCP-Integration.

## Hauptkomponenten {#high-level-components}

| Komponente | Speicherort | Aufgabe |
| --- | --- | --- |
| Rust-Proxy-/API-Backend | `crates/proxy` | MITM-Proxy, REST-API, Speicher, Scanner, Replay, Automatisierung, Plugins, MCP, OAST, Endpunkte zur Browsersteuerung. |
| Vue-Frontend | `frontend/src` | Benutzeroberfläche des Arbeitsbereichs, Stores, Routen, Editoren, Scanner, Plugin-Iframes, KI-Arbeitsbereich, Hilfswerkzeuge. |
| Electron-Desktop-Shell | `desktop` | Paketierte Desktop-Anwendung, Integration von Browserfenstern, Bridge für Einstellungen, Anwendungslebenszyklus. |
| Dokumentation | `docs` | VitePress-Dokumentationswebsite. |
| Datenverzeichnis | `ogma-data` oder plattformspezifische Anwendungsdaten | SQLite-Datenbank, CA-Material, Plugins, Exporte, Sicherungen, Dateien. |

## Backend {#backend}

Das Backend stellt eine REST-API und einen Proxy-Listener bereit. Zu den wichtigsten Backend-Modulen gehören:

* `proxy_server.rs`: Abfangen und Weiterleiten von HTTP-Verkehr.
* `intercept.rs` und `intercept_rules.rs`: Warteschlange und Abgleich für die Funktion Abfangen (Intercept).
* `store.rs` und `store_actor.rs`: Zugriff auf die Projektdatenbank und asynchrones Store-Handle.
* `api.rs`: API-Routing und Handler.
* `replay.rs`, `automate.rs` und `workflows.rs`: wiederholbare Ausführung von Anfragen.
* `passive_scanner.rs` und `active_scanner.rs`: Scanner-Engines.
* `plugins.rs` und `plugin_runtime.rs`: Plugin-Metadaten, Sandbox-Laufzeit, Berechtigungen und Ereignisse.
* `mcp.rs`: MCP-Ressourcen und -Tools.
* `ca.rs`, `tls_cert.rs`, `client_cert.rs`: Unterstützung für Zertifikate und TLS.
* `ws_history.rs`, `ws_replay.rs` und `sse.rs`: Unterstützung für Streaming-Verkehr.
* `oast.rs`: Dienste für Out-of-Band-Callbacks.

## Frontend {#frontend}

Das Frontend ist eine Vue-Anwendung, die für die meisten Ansichten des Arbeitsbereichs Lazy Loading auf Routenebene verwendet.

Wichtige Bereiche:

* `router/index.ts`: Routen für den Arbeitsbereich und die Einstellungen.
* `components/NavSidebar.vue`: Hauptnavigation der Anwendung.
* `stores/*`: Pinia-Stores für Verlauf, Replay, Automate, Befunde, Workflows, Plugins, Scope, Shell, KI und weitere Zustände.
* `api/client.ts` und `api/types.ts`: typisierte API-Client-Schnittstelle.
* `views/*`: Funktionsseiten des Arbeitsbereichs.
* `components/WorkspacePanel.vue`: Panel für den KI- und Reverse-Shell-Arbeitsbereich.
* `views/PluginsView.vue` und `views/PluginPageView.vue`: Installation und Verwaltung von Plugins sowie Hosting von Frontend-Iframes.

## Desktop-Shell {#desktop-shell}

Die Electron-Shell stellt die paketierte Desktop-Anwendung und native Bridge-Funktionen bereit:

* Starten und Steuern des Anwendungsfensters.
* Dauerhaftes Speichern der Desktop-Einstellungen im lokalen Speicher des Frontends.
* Öffnen von Browserfenstern mit Ogma Browser und von eingebetteten Browseransichten.
* Paketieren von Assets und Binärdateien für die Desktop-Distribution.

## Speichermodell {#storage-model}

Ogma speichert die Daten von Sicherheitsprüfungen lokal. Die Backend-Migrationen definieren projektbezogene Tabellen für:

* HTTP-Verlauf und Nachrichteninhalte.
* WebSocket- und SSE-Verkehr.
* Replay-Sitzungen und -Versuche.
* Automate-Sitzungen, -Ausführungen und -Ergebnisse.
* Befunde und Verknüpfungen zu Nachweisen.
* Workflows und Workflow-Ausführungen.
* Scope-Voreinstellungen.
* Plugins und Plugin-Berechtigungen.
* Dateien, Exporte, Sicherungen und Einstellungen.

## Plugin-Laufzeit {#plugin-runtime}

Plugins können Backend-Komponenten, Frontend-Komponenten oder beides enthalten.

Backend-Plugins laufen in einer JavaScript-Sandbox und erhalten ein `sdk`-Objekt. Frontend-Plugins laufen in Iframes mit Sandbox und kommunizieren über eine von Ogma kontrollierte Bridge.

Wichtige Grenzen:

* Frontend-Plugins können nicht auf das übergeordnete DOM zugreifen.
* Bridge-Befehle werden serverseitig validiert.
* Geschützte Backend-Aktionen erfordern deklarierte und erteilte Berechtigungen.
* Installierte Pakete werden in Ogmas verwaltetes Plugin-Verzeichnis kopiert, um ein stabiles Laufzeitverhalten zu gewährleisten.

Siehe [Plugin-System](../plugins/README.md).

## MCP-Integration {#mcp-integration}

Der MCP-Server stellt externen Assistenten Ogmas Projektkontext bereit. Er startet standardmäßig im schreibgeschützten Modus. Funktionen zum Schreiben, Exportieren, Senden von Anfragen, Ausführen von Workflows und Steuern der Funktion Abfangen erfordern ausdrückliche Berechtigungen.

Siehe [MCP-Einrichtung](../mcp-setup.md).

## Designprinzipien {#design-principles}

* Standardmäßig lokale Datenhaltung.
* Mit Nachweisen verknüpfte Befunde.
* Scope-Festlegung vor der Automatisierung.
* Ausdrückliche Berechtigungsprüfungen für KI, Plugins, das Senden von Anfragen und Exporte.
* Schnelle Navigation für wiederkehrende Testabläufe.
* Kompatibilität mit etablierten Proxy-Arbeitsabläufen bei gleichzeitiger Erweiterbarkeit von Ogma.
