شروع سریع افزونهها
این راهنما شما را بهسرعت از یک پوشهٔ خالی به افزونهای در حال اجرا میرساند.
1) ساخت یک افزونهٔ ساده فقط برای بکاند
پوشهای با این فایلها بسازید:
text
my-plugin/
manifest.json
backend/
script.jsmanifest.json:
json
{
"id": "my-plugin",
"name": "My Plugin",
"version": "0.1.0",
"plugins": [
{
"kind": "backend",
"id": "my-plugin-backend",
"entrypoint": "backend/script.js"
}
]
}backend/script.js:
js
async function init(sdk) {
sdk.console.log("Plugin started");
sdk.events.onInterceptResponse(function(req, res) {
if (!res) return;
if (res.getCode() === 403) {
sdk.console.warn("403 on " + req.getUrl());
}
});
}از مسیر افزونهها > نصب نصب کنید، پوشه را انتخاب و افزونه را فعال کنید و بررسی کنید که Plugin started در گزارش رویدادها دیده شود.
2) اگر از TypeScript استفاده میکنید
از این ساختار استفاده کنید:
text
my-plugin/
manifest.json
backend/
src/index.tsبا فرمان زیر بستهبندی کنید:
bash
pnpm add -D @ogmabox/ogma-sdk esbuild typescript
pnpm exec esbuild backend/src/index.ts \
--bundle \
--platform=neutral \
--format=iife \
--external:@ogma/sdk --external:@ogmabox/ogma-sdk \
--outfile=backend/script.jsسپس پوشه را مانند بالا نصب کنید.
3) افزودن فرانتاند در آینده
تنها وقتی به پنل نیاز دارید، یک ورودی فرانتاند و فایلهای رابط کاربری اضافه کنید:
text
my-plugin/
frontend/
script.js
style.css # optionalسپس manifest.json را با این موارد گسترش دهید:
json
{
"kind": "frontend",
"id": "my-plugin-frontend",
"entrypoint": "frontend/script.js",
"backend": { "id": "my-plugin-backend" }
}برای ارتباط فرانتاند از window.ogmaSDK.ready(...) استفاده کنید و فراخوانیهای بکاند را در پردازشگرهای sdk.api نگه دارید.
4) مجوزهایی که تقریباً همیشه نیاز دارید
برای نمونهٔ بکاند بالا:
- هیچ مجوزی لازم نیست (مجوزهای پیشفرض ایمن بهطور خودکار اعطا میشوند)
اگر افزونهٔ شما درخواستهای خروجی ارسال میکند، اضافه کنید:
json
"permissions": ["send_requests"]اگر افزونهٔ شما یافتهها را مینویسد، اضافه کنید:
json
"permissions": ["write_findings"]فقط آنچه واقعاً استفاده میکنید درخواست کنید.
رفع اشکال نخستین افزونه
Plugin failed to initialize← گزارش رویدادها را باز کنید و مطمئن شویدinit(sdk)تعریف شده است.Invalid manifest← ویرگولها و علامتهای نقلقول JSON را بررسی کنید.- توابع فراخوانی برگشتی اجرا نمیشوند ← مطمئن شوید افزونه فعال است و رویداد متناظر (
onInterceptResponse) ثبت شده است.
برای مراجع کامل API: