Kiến trúc
Ogma được xây dựng dưới dạng ứng dụng máy tính chạy cục bộ với backend Rust, frontend Vue, lớp vỏ Electron, lưu trữ dự án cục bộ, môi trường chạy plugin và tích hợp MCP tùy chọn.
Các thành phần chính
| Thành phần | Vị trí | Trách nhiệm |
|---|---|---|
| Backend proxy/API Rust | crates/proxy | Proxy MITM, API REST, lưu trữ, trình quét, gửi lại, tự động hóa, plugin, MCP, OAST và điểm cuối điều khiển trình duyệt. |
| Frontend Vue | frontend/src | Giao diện không gian làm việc, kho trạng thái, tuyến, trình chỉnh sửa, trình quét, iframe của plugin, không gian làm việc AI và tiện ích. |
| Lớp vỏ ứng dụng máy tính Electron | desktop | Ứng dụng máy tính đã đóng gói, tích hợp cửa sổ trình duyệt, cầu nối cài đặt và vòng đời ứng dụng. |
| Tài liệu | docs | Trang tài liệu VitePress. |
| Thư mục dữ liệu | ogma-data hoặc thư mục dữ liệu ứng dụng của nền tảng | Cơ sở dữ liệu SQLite, dữ liệu CA, plugin, bản xuất, bản sao lưu và tệp. |
Backend
Backend cung cấp API REST và dịch vụ lắng nghe proxy. Các mô-đun backend chính gồm:
proxy_server.rs: chặn bắt và chuyển tiếp HTTP.intercept.rsvàintercept_rules.rs: hàng đợi chặn bắt và đối chiếu điều kiện.store.rsvàstore_actor.rs: truy cập cơ sở dữ liệu dự án và tham chiếu bất đồng bộ đến kho lưu trữ.api.rs: định tuyến và hàm xử lý API.replay.rs,automate.rsvàworkflows.rs: thực thi yêu cầu có thể lặp lại.passive_scanner.rsvàactive_scanner.rs: bộ máy quét.plugins.rsvàplugin_runtime.rs: siêu dữ liệu plugin, môi trường chạy sandbox, quyền và sự kiện.mcp.rs: tài nguyên và công cụ MCP.ca.rs,tls_cert.rs,client_cert.rs: hỗ trợ chứng chỉ và TLS.ws_history.rs,ws_replay.rsvàsse.rs: hỗ trợ lưu lượng truyền luồng.oast.rs: dịch vụ callback ngoài băng.
Frontend
Frontend là ứng dụng Vue sử dụng tải trì hoãn theo tuyến cho phần lớn các chế độ xem trong không gian làm việc.
Các khu vực chính:
router/index.ts: các tuyến của không gian làm việc và cài đặt.components/NavSidebar.vue: điều hướng chính của sản phẩm.stores/*: kho trạng thái Pinia cho lịch sử, Replay, Automate, phát hiện, quy trình, plugin, phạm vi, shell, AI và các trạng thái khác.api/client.tsvàapi/types.ts: giao diện máy khách API có định kiểu.views/*: các trang tính năng trong không gian làm việc.components/WorkspacePanel.vue: bảng không gian làm việc AI và shell kết nối ngược.views/PluginsView.vuevàviews/PluginPageView.vue: cài đặt và quản lý plugin, đồng thời cung cấp iframe frontend.
Lớp vỏ ứng dụng máy tính
Lớp vỏ Electron cung cấp trải nghiệm ứng dụng máy tính đã đóng gói và các chức năng cầu nối gốc:
- Mở và điều khiển cửa sổ ứng dụng.
- Lưu bền vững cài đặt ứng dụng máy tính vào bộ nhớ cục bộ của frontend.
- Mở cửa sổ Ogma Browser và các chế độ xem trình duyệt nhúng.
- Đóng gói tài nguyên và tệp nhị phân để phân phối ứng dụng máy tính.
Mô hình lưu trữ
Ogma giữ dữ liệu đánh giá ở máy cục bộ. Các bản di trú của backend định nghĩa bảng có phạm vi theo dự án cho:
- Lịch sử HTTP và nội dung thông điệp.
- Lưu lượng WebSocket và SSE.
- Phiên và lần thử Replay.
- Phiên, lượt chạy và kết quả Automate.
- Phát hiện và liên kết bằng chứng.
- Quy trình và lượt chạy quy trình.
- Bộ thiết lập sẵn cho phạm vi.
- Plugin và quyền của plugin.
- Tệp, bản xuất, bản sao lưu và cài đặt.
Môi trường chạy plugin
Plugin có thể bao gồm thành phần backend, thành phần frontend hoặc cả hai.
Plugin backend chạy trong sandbox JavaScript và nhận đối tượng sdk. Plugin frontend chạy trong iframe được cách ly bằng sandbox và giao tiếp qua cầu nối do Ogma kiểm soát.
Các ranh giới quan trọng:
- Plugin frontend không thể truy cập DOM của trang cha.
- Lệnh cầu nối được kiểm tra tính hợp lệ ở phía máy chủ.
- Thao tác backend được bảo vệ cần quyền đã khai báo và được cấp.
- Gói đã cài đặt được sao chép vào thư mục plugin do Ogma quản lý để đảm bảo hoạt động ổn định khi chạy.
Xem Hệ thống plugin.
Tích hợp MCP
Máy chủ MCP cung cấp ngữ cảnh dự án Ogma cho trợ lý bên ngoài. Theo mặc định, máy chủ khởi động ở chế độ chỉ đọc. Khả năng ghi, xuất dữ liệu, gửi yêu cầu, chạy quy trình và điều khiển chặn bắt cần quyền được cấp rõ ràng.
Xem Thiết lập MCP.
Nguyên tắc thiết kế
- Mặc định ưu tiên xử lý cục bộ.
- Phát hiện có liên kết bằng chứng.
- Xác định phạm vi trước khi tự động hóa.
- Kiểm soát quyền rõ ràng đối với AI, plugin, gửi yêu cầu và xuất dữ liệu.
- Điều hướng nhanh cho các quy trình kiểm thử thường xuyên lặp lại.
- Tương thích với các quy trình proxy đã được sử dụng rộng rãi, đồng thời giữ khả năng mở rộng của Ogma.