ข้ามไปยังเนื้อหา

สถาปัตยกรรม ​

Ogma สร้างขึ้นเป็นแอปเดสก์ท็อปที่ทำงานภายในเครื่อง โดยประกอบด้วยแบ็กเอนด์ Rust, ฟรอนต์เอนด์ Vue, เชลล์ Electron, ที่เก็บข้อมูลโครงการภายในเครื่อง, รันไทม์ปลั๊กอิน และการผสานรวม MCP ที่เลือกใช้ได้

องค์ประกอบหลัก ​

องค์ประกอบตำแหน่งหน้าที่
แบ็กเอนด์พร็อกซี/API ที่ใช้ Rustcrates/proxyพร็อกซี MITM, REST API, ที่เก็บข้อมูล, เครื่องมือสแกน, การส่งซ้ำ, ระบบอัตโนมัติ, ปลั๊กอิน, MCP, OAST และเอนด์พอยต์ควบคุมเบราว์เซอร์
ฟรอนต์เอนด์ Vuefrontend/srcUI พื้นที่ทำงาน, ที่เก็บสถานะ, เส้นทาง, ตัวแก้ไข, เครื่องมือสแกน, iframe ของปลั๊กอิน, พื้นที่ทำงาน AI และเครื่องมืออรรถประโยชน์
เชลล์เดสก์ท็อป Electrondesktopแอปเดสก์ท็อปที่จัดแพ็กเกจแล้ว, การผสานรวมหน้าต่างเบราว์เซอร์, บริดจ์การตั้งค่า และวงจรชีวิตแอป
เอกสารdocsเว็บไซต์เอกสาร VitePress
ไดเรกทอรีข้อมูลogma-data หรือตำแหน่งข้อมูลแอปของแพลตฟอร์มฐานข้อมูล SQLite, ข้อมูลของ CA, ปลั๊กอิน, รายการส่งออก, ข้อมูลสำรอง และไฟล์

แบ็กเอนด์ ​

แบ็กเอนด์ให้บริการ REST API และตัวรับการเชื่อมต่อพร็อกซี โมดูลหลักของแบ็กเอนด์ประกอบด้วย:

  • proxy_server.rs: การดักรับและส่งต่อ HTTP
  • intercept.rs และ intercept_rules.rs: คิวดักรับและการจับคู่
  • store.rs และ store_actor.rs: การเข้าถึงฐานข้อมูลโครงการและแฮนเดิลที่เก็บข้อมูลแบบอะซิงโครนัส
  • api.rs: การกำหนดเส้นทาง API และตัวจัดการ
  • replay.rs, automate.rs และ workflows.rs: การดำเนินการคำขอที่ทำซ้ำได้
  • passive_scanner.rs และ active_scanner.rs: เอนจินเครื่องมือสแกน
  • plugins.rs และ plugin_runtime.rs: เมทาดาทาของปลั๊กอิน, รันไทม์แซนด์บ็อกซ์, สิทธิ์ และเหตุการณ์
  • mcp.rs: ทรัพยากรและเครื่องมือ MCP
  • ca.rs, tls_cert.rs, client_cert.rs: การรองรับใบรับรองและ TLS
  • ws_history.rs, ws_replay.rs และ sse.rs: การรองรับทราฟฟิกแบบสตรีม
  • oast.rs: บริการรับการเรียกกลับนอกแบนด์

ฟรอนต์เอนด์ ​

ฟรอนต์เอนด์เป็นแอป Vue ที่ใช้การโหลดเมื่อจำเป็นในระดับเส้นทางสำหรับมุมมองพื้นที่ทำงานส่วนใหญ่

ส่วนสำคัญ:

  • router/index.ts: เส้นทางพื้นที่ทำงานและเส้นทางการตั้งค่า
  • components/NavSidebar.vue: การนำทางหลักของผลิตภัณฑ์
  • stores/*: ที่เก็บสถานะ Pinia สำหรับประวัติ, การส่งซ้ำ, ระบบอัตโนมัติ, ประเด็นที่ตรวจพบ, เวิร์กโฟลว์, ปลั๊กอิน, ขอบเขต, เชลล์, AI และสถานะอื่น ๆ
  • api/client.ts และ api/types.ts: อินเทอร์เฟซไคลเอนต์ API ที่กำหนดชนิดข้อมูล
  • views/*: หน้าฟีเจอร์ของพื้นที่ทำงาน
  • components/WorkspacePanel.vue: แผงพื้นที่ทำงาน AI และเชลล์เชื่อมต่อกลับ
  • views/PluginsView.vue และ views/PluginPageView.vue: การติดตั้งและจัดการปลั๊กอิน รวมถึงการโฮสต์ iframe ของฟรอนต์เอนด์

เชลล์เดสก์ท็อป ​

เชลล์ Electron มอบประสบการณ์เดสก์ท็อปที่จัดแพ็กเกจแล้วและฟังก์ชันบริดจ์ที่เชื่อมกับความสามารถดั้งเดิมของระบบ:

  • เปิดและควบคุมหน้าต่างแอป
  • บันทึกการตั้งค่าเดสก์ท็อปอย่างถาวรในที่เก็บข้อมูลภายในเครื่องของฟรอนต์เอนด์
  • เปิดหน้าต่าง Ogma Browser และมุมมองเบราว์เซอร์ที่ฝังไว้
  • จัดแพ็กเกจแอสเซ็ตและไฟล์ไบนารีเพื่อแจกจ่ายบนเดสก์ท็อป

โมเดลการจัดเก็บข้อมูล ​

Ogma เก็บข้อมูลการประเมินไว้ภายในเครื่อง การย้ายโครงสร้างฐานข้อมูลของแบ็กเอนด์กำหนดตารางแยกตามโครงการสำหรับ:

  • ประวัติ HTTP และเนื้อหาข้อความ
  • ทราฟฟิก WebSocket และ SSE
  • เซสชันและรายการส่งซ้ำ
  • เซสชัน การรัน และผลลัพธ์ของระบบอัตโนมัติ
  • ประเด็นที่ตรวจพบและลิงก์หลักฐาน
  • เวิร์กโฟลว์และการรันเวิร์กโฟลว์
  • ค่าขอบเขตที่ตั้งไว้ล่วงหน้า
  • ปลั๊กอินและสิทธิ์ของปลั๊กอิน
  • ไฟล์, รายการส่งออก, ข้อมูลสำรอง และการตั้งค่า

รันไทม์ปลั๊กอิน ​

ปลั๊กอินสามารถมีองค์ประกอบแบ็กเอนด์ องค์ประกอบฟรอนต์เอนด์ หรือทั้งสองอย่าง

ปลั๊กอินแบ็กเอนด์ทำงานในแซนด์บ็อกซ์ JavaScript และรับออบเจ็กต์ sdk ส่วนปลั๊กอินฟรอนต์เอนด์ทำงานใน iframe ที่อยู่ในแซนด์บ็อกซ์และสื่อสารผ่านบริดจ์ที่ Ogma ควบคุม

ขอบเขตที่สำคัญ:

  • ปลั๊กอินฟรอนต์เอนด์ไม่สามารถเข้าถึง DOM ของหน้าหลักที่ครอบ iframe ได้
  • คำสั่งบริดจ์ได้รับการตรวจสอบฝั่งเซิร์ฟเวอร์
  • การกระทำฝั่งแบ็กเอนด์ที่มีการป้องกันต้องใช้สิทธิ์ที่ประกาศและได้รับอนุมัติแล้ว
  • แพ็กเกจที่ติดตั้งจะถูกคัดลอกไปยังไดเรกทอรีปลั๊กอินที่ Ogma จัดการ เพื่อให้การทำงานขณะรันมีเสถียรภาพ

ดู ระบบปลั๊กอิน

การผสานรวม MCP ​

เซิร์ฟเวอร์ MCP เปิดให้ผู้ช่วยภายนอกเข้าถึงบริบทโครงการของ Ogma โดยเริ่มทำงานในโหมดอ่านอย่างเดียวตามค่าเริ่มต้น ความสามารถในการเขียน ส่งออก ส่งคำขอ รันเวิร์กโฟลว์ และควบคุมการดักรับต้องได้รับสิทธิ์อย่างชัดเจน

ดู การตั้งค่า MCP

หลักการออกแบบ ​

  • ให้ความสำคัญกับการทำงานภายในเครื่องเป็นค่าเริ่มต้น
  • ประเด็นที่ตรวจพบเชื่อมโยงกับหลักฐาน
  • กำหนดขอบเขตก่อนใช้ระบบอัตโนมัติ
  • ต้องได้รับสิทธิ์อย่างชัดเจนสำหรับ AI, ปลั๊กอิน, การส่งคำขอ และการส่งออก
  • การนำทางที่รวดเร็วสำหรับเวิร์กโฟลว์ที่ผู้ทดสอบใช้ซ้ำ
  • รองรับเวิร์กโฟลว์พร็อกซีที่ใช้งานกันอยู่ พร้อมรักษาความสามารถในการขยาย Ogma

ซอฟต์แวร์กรรมสิทธิ์ สงวนลิขสิทธิ์