Vai al contenuto

Architettura ​

Ogma è un’applicazione desktop locale con un backend Rust, un frontend Vue, una shell Electron, archiviazione locale dei progetti, un ambiente di esecuzione dei plugin e integrazione MCP opzionale.

Componenti principali ​

ComponentePosizioneResponsabilità
Backend proxy/API Rustcrates/proxyProxy MITM, API REST, archiviazione, scanner, ripetizione delle richieste, automazione, plugin, MCP, OAST ed endpoint di controllo del browser.
Frontend Vuefrontend/srcInterfaccia dell’area di lavoro, store, rotte, editor, scanner, iframe dei plugin, area di lavoro IA e utilità.
Shell desktop ElectrondesktopApplicazione desktop distribuita come pacchetto, integrazione delle finestre del browser, bridge delle impostazioni e ciclo di vita dell’applicazione.
DocumentazionedocsSito di documentazione VitePress.
Directory dei datiogma-data o directory dei dati delle applicazioni della piattaformaDatabase SQLite, materiale della CA, plugin, esportazioni, backup e file.

Backend ​

Il backend espone un’API REST e un servizio di ascolto del proxy. I principali moduli del backend includono:

  • proxy_server.rs: intercettazione e inoltro HTTP.
  • intercept.rs e intercept_rules.rs: coda di intercettazione e verifica delle corrispondenze.
  • store.rs e store_actor.rs: accesso al database del progetto e riferimento asincrono allo store.
  • api.rs: instradamento e gestori dell’API.
  • replay.rs, automate.rs e workflows.rs: esecuzione ripetibile delle richieste.
  • passive_scanner.rs e active_scanner.rs: motori di scansione.
  • plugins.rs e plugin_runtime.rs: metadati dei plugin, ambiente di esecuzione in sandbox, autorizzazioni ed eventi.
  • mcp.rs: risorse e strumenti MCP.
  • ca.rs, tls_cert.rs, client_cert.rs: supporto per certificati e TLS.
  • ws_history.rs, ws_replay.rs e sse.rs: supporto per il traffico in streaming.
  • oast.rs: servizi di callback fuori banda.

Frontend ​

Il frontend è un’applicazione Vue che utilizza il caricamento differito a livello di rotta per la maggior parte delle viste dell’area di lavoro.

Aree principali:

  • router/index.ts: rotte dell’area di lavoro e delle impostazioni.
  • components/NavSidebar.vue: navigazione principale del prodotto.
  • stores/*: store Pinia per cronologia, ripetizione, automazione, rilievi di sicurezza, flussi di lavoro, plugin, ambito, shell, IA e altri stati.
  • api/client.ts e api/types.ts: interfaccia tipizzata del client dell’API.
  • views/*: pagine delle funzionalità dell’area di lavoro.
  • components/WorkspacePanel.vue: pannello dell’area di lavoro IA e shell inversa.
  • views/PluginsView.vue e views/PluginPageView.vue: installazione e gestione dei plugin e hosting degli iframe frontend.

Shell desktop ​

La shell Electron offre l’esperienza desktop distribuita come pacchetto e funzioni native di bridge:

  • Apertura e controllo della finestra dell’applicazione.
  • Persistenza delle impostazioni desktop nell’archiviazione locale del frontend.
  • Apertura delle finestre del Browser Ogma e delle viste browser integrate.
  • Creazione dei pacchetti di risorse e binari per la distribuzione desktop.

Modello di archiviazione ​

Ogma conserva localmente i dati delle valutazioni. Le migrazioni del backend definiscono tabelle limitate a ciascun progetto per:

  • Cronologia HTTP e corpi dei messaggi.
  • Traffico WebSocket e SSE.
  • Sessioni e tentativi di Ripetizione.
  • Sessioni, esecuzioni ed esiti di Automazione.
  • Rilievi di sicurezza e collegamenti alle evidenze.
  • Flussi di lavoro e relative esecuzioni.
  • Preimpostazioni di ambito.
  • Plugin e relative autorizzazioni.
  • File, esportazioni, backup e impostazioni.

Ambiente di esecuzione dei plugin ​

I plugin possono includere componenti backend, componenti frontend o entrambi.

I plugin backend vengono eseguiti in una sandbox JavaScript e ricevono un oggetto sdk. I plugin frontend vengono eseguiti in iframe con isolamento sandbox e comunicano tramite un bridge controllato da Ogma.

Limiti importanti:

  • I plugin frontend non possono accedere al DOM della pagina principale.
  • I comandi del bridge vengono convalidati sul server.
  • Le azioni backend protette richiedono autorizzazioni dichiarate e concesse.
  • I pacchetti installati vengono copiati nella directory dei plugin gestita da Ogma per garantire un comportamento stabile durante l’esecuzione.

Consulta Sistema di plugin.

Integrazione MCP ​

Il server MCP espone il contesto dei progetti Ogma agli assistenti esterni. Per impostazione predefinita si avvia in modalità di sola lettura. Le capacità di scrittura, esportazione, invio di richieste, esecuzione dei flussi di lavoro e controllo dell’intercettazione richiedono autorizzazioni esplicite.

Consulta Configurazione di MCP.

Principi di progettazione ​

  • Priorità al funzionamento locale per impostazione predefinita.
  • Rilievi di sicurezza collegati alle evidenze.
  • Definizione dell’ambito prima dell’automazione.
  • Controlli espliciti delle autorizzazioni per IA, plugin, invio di richieste ed esportazioni.
  • Navigazione rapida per i flussi di lavoro ricorrenti di chi esegue i test.
  • Compatibilità con i flussi di lavoro proxy consolidati, mantenendo Ogma estensibile.

Software proprietario. Tutti i diritti riservati.