رفتن به محتوا

مرجع SDK بک‌اند افزونه‌ها ​

کد افزونهٔ بک‌اند در محیط ایزولهٔ JavaScript در Ogma اجرا می‌شود و یک شیء sdk از برنامهٔ میزبان دریافت می‌کند.

برای قالب کامل بستهٔ افزونه، فیلدهای مانیفست، مجوزها و نمونه‌ها، از راهنمای نظام افزونه‌ها شروع کنید.

نقطهٔ ورود ​

افزونه‌های بک‌اند یک تابع init ارائه می‌کنند:

js
async function init(sdk) {
  sdk.console.log("plugin started");
}

Ogma هنگام فعال‌سازی افزونه، init(sdk) را فراخوانی می‌کند.

فضاهای نام اصلی ​

فضای نامکاربرد
sdk.consoleنوشتن پیام در بافر گزارش رویدادهای افزونه.
sdk.metaخواندن فرادادهٔ افزونه و مسیرهای داده.
sdk.eventsثبت توابع فراخوانی برگشتی برای رویدادهای Ogma.
sdk.requestsجست‌وجو در تاریخچهٔ HTTP و داده‌های درخواست.
sdk.findingsجست‌وجو یا ایجاد یافته‌ها در صورت اجازهٔ مجوزها.
sdk.scopeخواندن اطلاعات محدودهٔ آزمون فعال.
sdk.storageذخیره‌سازی پایدار کلید/مقدار برای وضعیت افزونه.
sdk.fsعملیات فایل در پوشهٔ خصوصی داده‌های افزونه.
sdk.pathابزارهای کمکی مسیر برای ساخت مسیرها در پوشهٔ داده‌های افزونه.
sdk.apiدر اختیار گذاشتن پردازشگرهای بک‌اند برای فرانت‌اند افزونه.

ثبت رویدادها ​

js
sdk.console.log("message")
sdk.console.warn("warning")
sdk.console.error("error")

پیام‌ها در رابط گزارش رویدادهای افزونه دیده می‌شوند. گزارش‌ها را مختصر نگه دارید و از نوشتن اطلاعات محرمانه خودداری کنید.

فراداده ​

js
sdk.meta.id()
sdk.meta.packageId()
sdk.meta.version()
sdk.meta.path()

از sdk.meta.path() برای داده‌های مختص افزونه استفاده کنید. فرض نکنید کد افزونهٔ ایزوله به مسیرهای دلخواه سیستم فایل دسترسی دارد.

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")

رویدادها ​

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")
})

توابع فراخوانی برگشتی باید سریع باشند. کارهای طولانی را به اقدامات صریح کاربر یا پردازشگرهای API بک‌اند منتقل کنید.

پردازشگرهای پل فرانت‌اند ​

افزونه‌های بک‌اند می‌توانند پردازشگرهایی برای پنل‌های فرانت‌اند افزونه ارائه کنند:

js
sdk.api.register("ping", async function(input) {
  return { ok: true, input: input };
});

فرانت‌اند پردازشگر را از طریق SDK فرانت‌اند Ogma فراخوانی می‌کند. به مرجع SDK فرانت‌اند مراجعه کنید.

انتظارات امنیتی ​

  • ترافیک HTTP، یافته‌ها، گزارش رویدادها و خروجی‌ها را حساس در نظر بگیرید.
  • فقط مجوزهای مورد نیاز افزونهٔ خود را درخواست کنید.
  • به‌طور پیش‌فرض هرگز اطلاعات احراز هویت، کوکی‌ها، توکن‌های Bearer یا ترافیک خصوصی را ثبت نکنید.
  • رفتار افزونه را برای کاربر صریح و قابل فهم نگه دارید.

نرم‌افزار اختصاصی. تمامی حقوق محفوظ است.