Tài liệu tham khảo SDK backend cho plugin
Mã plugin backend chạy trong sandbox JavaScript của Ogma và nhận đối tượng sdk từ ứng dụng chủ.
Để tìm hiểu đầy đủ định dạng gói plugin, trường manifest, quyền và ví dụ, bắt đầu với hướng dẫn hệ thống plugin.
Điểm vào
Plugin backend cung cấp hàm init:
js
async function init(sdk) {
sdk.console.log("plugin started");
}Ogma gọi init(sdk) khi plugin được bật.
Namespace chính
| Namespace | Mục đích |
|---|---|
sdk.console | Ghi thông điệp vào bộ đệm nhật ký của plugin. |
sdk.meta | Đọc siêu dữ liệu và đường dẫn dữ liệu của plugin. |
sdk.events | Đăng ký callback cho các sự kiện Ogma. |
sdk.requests | Truy vấn lịch sử HTTP và dữ liệu yêu cầu. |
sdk.findings | Truy vấn hoặc tạo phát hiện khi quyền cho phép. |
sdk.scope | Đọc thông tin phạm vi đang hoạt động. |
sdk.storage | Lưu bền vững trạng thái plugin dưới dạng khóa/giá trị. |
sdk.fs | Thao tác tệp trong thư mục dữ liệu riêng của plugin. |
sdk.path | Hàm hỗ trợ tạo đường dẫn trong thư mục dữ liệu plugin. |
sdk.api | Cung cấp hàm xử lý backend cho frontend của plugin. |
Ghi nhật ký
js
sdk.console.log("message")
sdk.console.warn("warning")
sdk.console.error("error")Thông điệp xuất hiện trong giao diện nhật ký của plugin. Giữ nhật ký ngắn gọn và tránh ghi dữ liệu bí mật.
Siêu dữ liệu
js
sdk.meta.id()
sdk.meta.packageId()
sdk.meta.version()
sdk.meta.path()Dùng sdk.meta.path() cho dữ liệu riêng của plugin. Không mặc định rằng mã plugin chạy trong sandbox có thể truy cập đường dẫn bất kỳ trong hệ thống tệp.
js
sdk.storage.set("key", "value")
sdk.storage.get("key")
sdk.storage.keys()
sdk.storage.delete("key")
sdk.storage.clear()js
sdk.fs.readFile("relative/file.txt")
sdk.fs.writeFile("relative/file.txt", "text")
sdk.fs.appendFile("relative/file.txt", "more")
sdk.fs.exists("relative/file.txt")
sdk.fs.existsSync("relative/file.txt")
sdk.fs.mkdir("relative/dir")
sdk.path.join("a", "b", "c")Sự kiện
js
sdk.events.onInterceptRequest(function(req) {
return req
})
sdk.events.onInterceptResponse(function(req, res) {
sdk.console.log(res.getCode())
})
sdk.events.onProjectChange(function() {
sdk.console.log("project changed")
})Callback cần chạy nhanh. Công việc kéo dài nên được thực hiện thông qua thao tác rõ ràng của người dùng hoặc hàm xử lý API backend.
Hàm xử lý cầu nối frontend
Plugin backend có thể cung cấp hàm xử lý cho các bảng frontend của plugin:
js
sdk.api.register("ping", async function(input) {
return { ok: true, input: input };
});Frontend gọi hàm xử lý thông qua SDK frontend của Ogma. Xem tài liệu tham khảo SDK frontend.
Yêu cầu bảo mật
- Coi lưu lượng HTTP, phát hiện, nhật ký và bản xuất là dữ liệu nhạy cảm.
- Chỉ yêu cầu các quyền plugin của bạn cần.
- Không bao giờ ghi thông tin đăng nhập, cookie, bearer token hoặc lưu lượng riêng tư vào nhật ký theo mặc định.
- Đảm bảo hoạt động của plugin rõ ràng và dễ hiểu đối với người dùng.