Arsitektur
Ogma dibangun sebagai aplikasi desktop lokal dengan backend Rust, frontend Vue, shell Electron, penyimpanan proyek lokal, runtime plugin, dan integrasi MCP opsional.
Komponen Utama
| Komponen | Lokasi | Tanggung jawab |
|---|---|---|
| Backend proksi/API Rust | crates/proxy | Proksi MITM, API REST, penyimpanan, pemindai, kirim ulang, otomatisasi, plugin, MCP, OAST, endpoint kontrol peramban. |
| Frontend Vue | frontend/src | UI ruang kerja, store, rute, editor, pemindai, iframe plugin, ruang kerja AI, utilitas. |
| Shell desktop Electron | desktop | Aplikasi desktop yang dipaketkan, integrasi jendela peramban, bridge pengaturan, siklus hidup aplikasi. |
| Dokumentasi | docs | Situs dokumentasi VitePress. |
| Direktori data | ogma-data atau data aplikasi platform | Basis data SQLite, materi CA, plugin, ekspor, cadangan, file. |
Backend
Backend menyediakan API REST dan listener proksi. Modul backend utama mencakup:
proxy_server.rs: intersepsi dan penerusan HTTP.intercept.rsdanintercept_rules.rs: antrean intersepsi dan pencocokan.store.rsdanstore_actor.rs: akses basis data proyek dan handle store asinkron.api.rs: perutean dan handler API.replay.rs,automate.rs, danworkflows.rs: eksekusi permintaan yang dapat diulang.passive_scanner.rsdanactive_scanner.rs: mesin pemindai.plugins.rsdanplugin_runtime.rs: metadata plugin, runtime sandbox, izin, dan peristiwa.mcp.rs: sumber daya dan alat MCP.ca.rs,tls_cert.rs,client_cert.rs: dukungan sertifikat dan TLS.ws_history.rs,ws_replay.rs, dansse.rs: dukungan lalu lintas streaming.oast.rs: layanan callback di luar kanal utama.
Frontend
Frontend adalah aplikasi Vue yang memuat sebagian besar tampilan ruang kerja sesuai kebutuhan pada tingkat rute.
Area utama:
router/index.ts: rute ruang kerja dan rute pengaturan.components/NavSidebar.vue: navigasi produk utama.stores/*: store Pinia untuk riwayat, kirim ulang, otomatisasi, temuan, alur kerja, plugin, cakupan, shell, AI, dan status lainnya.api/client.tsdanapi/types.ts: antarmuka klien API bertipe.views/*: halaman fitur ruang kerja.components/WorkspacePanel.vue: panel ruang kerja AI dan shell koneksi balik.views/PluginsView.vuedanviews/PluginPageView.vue: instalasi, pengelolaan plugin, dan hosting iframe frontend.
Shell Desktop
Shell Electron menyediakan pengalaman desktop yang dipaketkan dan fungsi bridge native:
- Menjalankan dan mengendalikan jendela aplikasi.
- Menyimpan pengaturan desktop secara persisten ke penyimpanan lokal frontend.
- Membuka jendela Peramban Ogma dan tampilan peramban tertanam.
- Memaketkan aset dan biner untuk distribusi desktop.
Model Penyimpanan
Ogma menjaga data asesmen tetap lokal. Migrasi backend menentukan tabel yang dibatasi pada proyek untuk:
- Riwayat HTTP dan isi.
- Lalu lintas WebSocket dan SSE.
- Sesi dan percobaan Kirim Ulang.
- Sesi, eksekusi, dan hasil Otomatisasi.
- Temuan dan tautan bukti.
- Alur kerja dan eksekusi alur kerja.
- Prasetel cakupan.
- Plugin dan izin plugin.
- File, ekspor, cadangan, dan pengaturan.
Runtime Plugin
Plugin dapat menyertakan komponen backend, komponen frontend, atau keduanya.
Plugin backend berjalan di dalam sandbox JavaScript dan menerima objek sdk. Plugin frontend berjalan dalam iframe sandbox dan berkomunikasi melalui bridge yang dikendalikan Ogma.
Batas penting:
- Plugin frontend tidak dapat mengakses DOM induk.
- Perintah bridge divalidasi di sisi server.
- Tindakan backend yang dilindungi memerlukan izin yang dideklarasikan dan diberikan.
- Paket yang diinstal disalin ke direktori plugin yang dikelola Ogma agar perilaku runtime stabil.
Lihat Sistem plugin.
Integrasi MCP
Server MCP menyediakan konteks proyek Ogma kepada asisten eksternal. Secara default, server dimulai dalam mode baca saja. Kapabilitas penulisan, ekspor, pengiriman permintaan, eksekusi alur kerja, dan kontrol intersepsi memerlukan izin eksplisit.
Lihat Pengaturan MCP.
Prinsip Desain
- Mengutamakan pemrosesan lokal secara default.
- Temuan yang tertaut ke bukti.
- Cakupan sebelum otomatisasi.
- Pemeriksaan izin eksplisit untuk AI, plugin, pengiriman permintaan, dan ekspor.
- Navigasi cepat untuk alur kerja penguji yang berulang.
- Kompatibilitas dengan alur kerja proksi yang mapan sambil menjaga Ogma tetap dapat diperluas.