البدء السريع للإضافات
ينقلك هذا الدليل بسرعة من مجلد فارغ إلى إضافة تعمل.
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 الكاملة: