---
url: https://docs.ogmabox.com/nl/development/architecture.md
description: >-
  Leer hoe de Rust-backend, Vue-frontend, Electron-shell, lokale opslag,
  pluginruntime, MCP-server en verpakking van de desktopapp van Ogma zijn
  opgebouwd.
---

# Architectuur {#architecture}

Ogma is gebouwd als een lokale desktopapplicatie met een Rust-backend, Vue-frontend, Electron-shell, lokale projectopslag, een pluginruntime en optionele MCP-integratie.

## Hoofdcomponenten {#high-level-components}

| Component | Locatie | Verantwoordelijkheid |
| --- | --- | --- |
| Rust-proxy-/API-backend | `crates/proxy` | MITM-proxy, REST-API, opslag, scanners, replay, automatisering, plugins, MCP, OAST, eindpunten voor browserbesturing. |
| Vue-frontend | `frontend/src` | Werkruimte-interface, stores, routes, editors, scanners, plugin-iframes, AI-werkruimte, hulpprogramma's. |
| Electron-desktopshell | `desktop` | Verpakte desktopapp, integratie van browservensters, instellingenbridge, levenscyclus van de app. |
| Documentatie | `docs` | VitePress-documentatiesite. |
| Gegevensmap | `ogma-data` of de appgegevensmap van het platform | SQLite-database, CA-materiaal, plugins, exports, back-ups, bestanden. |

## Backend {#backend}

De backend biedt een REST-API en een proxylistener. De belangrijkste backendmodules zijn:

* `proxy_server.rs`: HTTP-interceptie en doorsturen.
* `intercept.rs` en `intercept_rules.rs`: interceptiewachtrij en selectie op basis van regels.
* `store.rs` en `store_actor.rs`: toegang tot de projectdatabase en een asynchrone store-handle.
* `api.rs`: API-routering en handlers.
* `replay.rs`, `automate.rs` en `workflows.rs`: herhaalbare uitvoering van verzoeken.
* `passive_scanner.rs` en `active_scanner.rs`: scannerengines.
* `plugins.rs` en `plugin_runtime.rs`: pluginmetadata, sandboxruntime, machtigingen en gebeurtenissen.
* `mcp.rs`: MCP-resources en -tools.
* `ca.rs`, `tls_cert.rs`, `client_cert.rs`: ondersteuning voor certificaten en TLS.
* `ws_history.rs`, `ws_replay.rs` en `sse.rs`: ondersteuning voor streamingverkeer.
* `oast.rs`: diensten voor out-of-bandcallbacks.

## Frontend {#frontend}

De frontend is een Vue-applicatie die de meeste werkruimteweergaven pas laadt wanneer de bijbehorende route wordt geopend.

Belangrijke onderdelen:

* `router/index.ts`: routes voor de werkruimte en instellingen.
* `components/NavSidebar.vue`: hoofdnavigatie van het product.
* `stores/*`: Pinia-stores voor HTTP-geschiedenis, Opnieuw versturen, Automatiseren, bevindingen, workflows, plugins, scope, shell, AI en andere toestand.
* `api/client.ts` en `api/types.ts`: getypeerde API-clientinterface.
* `views/*`: functiepagina's van de werkruimte.
* `components/WorkspacePanel.vue`: werkruimtepaneel voor AI en reverse shells.
* `views/PluginsView.vue` en `views/PluginPageView.vue`: installatie en beheer van plugins en hosting van frontend-iframes.

## Desktopshell {#desktop-shell}

De Electron-shell biedt de verpakte desktopervaring en native bridgefuncties:

* Het appvenster starten en besturen.
* Desktopinstellingen bewaren in de lokale opslag van de frontend.
* Ogma-browservensters en ingesloten browserweergaven openen.
* Assets en uitvoerbare bestanden verpakken voor desktopdistributie.

## Opslagmodel {#storage-model}

Ogma bewaart onderzoeksgegevens lokaal. De backendmigraties definiëren tabellen per project voor:

* HTTP-geschiedenis en bodies.
* WebSocket- en SSE-verkeer.
* Sessies en pogingen in Opnieuw versturen.
* Sessies, uitvoeringen en resultaten in Automatiseren.
* Bevindingen en koppelingen naar bewijsmateriaal.
* Workflows en workflowuitvoeringen.
* Scopevoorinstellingen.
* Plugins en pluginmachtigingen.
* Bestanden, exports, back-ups en instellingen.

## Pluginruntime {#plugin-runtime}

Plugins kunnen backendcomponenten, frontendcomponenten of beide bevatten.

Backendplugins worden in een JavaScript-sandbox uitgevoerd en ontvangen een `sdk`-object. Frontendplugins worden in afgeschermde iframes uitgevoerd en communiceren via een bridge die Ogma beheert.

Belangrijke grenzen:

* Frontendplugins hebben geen toegang tot de DOM van de bovenliggende pagina.
* Bridgeopdrachten worden aan de serverzijde gevalideerd.
* Beschermde backendacties vereisen machtigingen die zijn gedeclareerd en verleend.
* Geïnstalleerde pakketten worden gekopieerd naar de pluginmap die Ogma beheert, zodat de runtime stabiel blijft werken.

Zie [Pluginsysteem](../plugins/README.md).

## MCP-integratie {#mcp-integration}

De MCP-server stelt Ogma-projectcontext beschikbaar aan externe assistenten. Standaard start hij in de alleen-lezenmodus. Schrijven, exporteren, verzoeken versturen, workflows uitvoeren en interceptie besturen vereisen expliciete machtigingen.

Zie [MCP instellen](../mcp-setup.md).

## Ontwerpprincipes {#design-principles}

* Standaard primair lokaal werken.
* Bevindingen met koppelingen naar bewijsmateriaal.
* Scope bepalen vóór automatisering.
* Expliciete machtigingscontroles voor AI, plugins, het versturen van verzoeken en exports.
* Snelle navigatie voor terugkerende workflows van testers.
* Compatibiliteit met gevestigde proxyworkflows, terwijl Ogma uitbreidbaar blijft.
