C cenaly.com
ابدأ مجانًا

محررات مخصصة

محررات مصغرة مخصصة داخل لوحة التحكم في بيئة تجريبية معزولة: للمالك أو المطور الخارجي، ووصول إلى بيانات الحساب وفق الصلاحيات

On this page 14

المحررات المخصصة

ثمة أعمال لا توجد في أي لوحة، لأنها خاصة بك وحدك: إعادة حساب الأسعار وفق معادلة المورّد، ومطابقة الكتالوج مع نظام محاسبي آخر، وشاشة «تعبئة خصائص الدفعة في مرور واحد». يتيح قسم «المحررات المخصصة» كتابة محرر مصغّر كهذا بنفسك (أو طلبه من مطوّر) وتشغيله داخل لوحة الإدارة — في بيئة معزولة، بوصول إلى البيانات التي سمحت بها فقط.

للفتح: لوحة الإدارة → المحررات المخصصة (admin.cenaly.com/custom-editors). يُفعَّل القسم عبر بطاقة «المحررات المخصصة (SDK)» في متجر التطبيقات — وهو مخفي افتراضيًا. وزر «📌 إلى الشريط الجانبي» في الصفحة نفسها يضيفه إلى القائمة الجانبية عندما تحتاج إليه كثيرًا.


ما هذا القسم#

الإضافة عبارة عن سكربت مُجمَّع (index.js) ووصفه (manifest.json). تحمّل اللوحة السكربت في إطار معزول: فلا وصول له إلى جلستك، ولا إلى كود لوحة الإدارة، ولا إلى الشبكة. ولا يمكنه التخاطب مع البيانات إلا عبر الجسر — مجموعة من الطلبات المسموح بها، يُتحقق من كل واحد منها وفق الصلاحيات الممنوحة.

تتكوّن الصفحة من الكتل التالية:

الكتلة ما فيها
المحررات المثبَّتة بطاقة لكل إضافة: الاسم، «الإصدار»، «الصلاحيات»، «الموضع»، «المضيفات الشبكية المسموح بها»، «آخر تحديث»، والمصدر (المستودع والوسم برابط). الإجراءات: «فتح»، «تفعيل» / «إيقاف»، والتحقق من التحديثات، و«حذف»
تثبيت محرر التثبيت من ملفات على القرص
التثبيت من GitHub التثبيت عبر عنوان مستودع عام ووسم
🤖 التطوير بالذكاء الاصطناعي (البرمجة بالوصف) قالب المشروع، وموجّه للوكيل الذكي، ولقطة من الكتالوج كبيانات اختبار
👩‍💻 وصول المطوّر منح مؤقتة للمتعهد لتشغيل وضع المطوّر
🛠️ وضع المطوّر تشغيل الإضافة مباشرة من حاسوبك، دون تثبيت

المحرر المفتوح يشغل الشاشة كاملة، ويحصل عنوان الصفحة على لاحقة ?app=<المعرّف> — ويمكنك مشاركة هذا الرابط مع من لديه صلاحية الوصول.


ما يلزم للتشغيل#

ما يلزم لماذا
بطاقة «المحررات المخصصة (SDK)» في متجر التطبيقات القسم متخصص ومُعطَّل افتراضيًا
أن تكون مالك الحساب تثبيت الإضافات وتفعيلها وحذفها ومنح الصلاحيات من اختصاص المالك وحده؛ أما الموظفون فيرون القائمة للقراءة فقط
إضافة مُجمَّعة: index.js + manifest.json إما من إعدادك، أو من مطوّر، أو إصدار في مستودع GitHub عام
للتطوير — حساب موظف للمطوّر يُمنح وضع المطوّر عبر البريد الإلكتروني لتسجيل دخوله الوظيفي

الخطوة 1. تحديد من سيكتب المحرر#

ثمة ثلاثة مسارات، وتختلف بحسب من يملك الكود:

المسار لمن يناسب الكيفية
وكيل ذكاء اصطناعي وفق قالبنا مالك مستعد لشرح المهمة بالكلمات كتلة «التطوير بالذكاء الاصطناعي»: قالب + موجّه → يجمع الوكيل إصدارًا → تثبّته أنت
مطوّر خاص بك أو مستعان به لديك متعهد أو مطوّر في الفريق امنحه صلاحية وضع المطوّر، فيكتب ويصحّح على حساب حقيقي، وتثبّت أنت الإصدار الجاهز
إصدار جاهز من GitHub الإضافة مكتوبة بالفعل (بواسطتك أو لك) «التثبيت من GitHub»: عنوان المستودع والوسم

في المسارات الثلاثة جميعًا يبقى التثبيت بيد المالك: فحتى المطوّر الحاصل على صلاحية لا يستطيع إلا تشغيل كوده في وضع المطوّر عنده، لا تثبيته في الحساب.


الخطوة 2. التطوير بالذكاء الاصطناعي (البرمجة بالوصف)#

توفّر كتلة «🤖 التطوير بالذكاء الاصطناعي (البرمجة بالوصف)» أربعة أشياء لتسليم المهمة إلى وكيل ذكاء اصطناعي (Claude Code وCursor وما شابههما) دون شرح العقد له من الصفر:

  1. «⬇️ تنزيل قالب المشروع (zip)» — هيكل جاهز للإضافة: البيان، ونقطة الدخول، ووصف العقد (GUIDE.en.md)، وتعليمات للوكيل. يُجمَّع الأرشيف في المتصفح مباشرة، دون تنزيل أي شيء من الخارج.
  2. «📋 نسخ الموجّه للوكيل» — نص المهمة بالإنجليزية: الانطلاق من القالب، والرجوع إلى الدليل، وكيفية التحقق من النتيجة.
  3. إعداد مجموعة أدوات للوكيل — وبها يجمع الوكيل الإضافة، ويقيم نسخة محلية من البيئة المعزولة، ويلتقط صورًا ولقطات للحالة، ويجمع في النهاية إصدارًا: ملف zip للتثبيت اليدوي أو إصدار في GitHub.
  4. «⬇️ تنزيل لقطة الكتالوج (بيانات اختبار)» — فئاتك وعناصرك في ملف، ليختبر الوكيل على بيانات حقيقية لا على بيانات مُتخيَّلة.

⚠️ تُقتطع من اللقطة كليًا الحقول المخصصة لإضافات أخرى: فالبيانات التي يحفظها امتداد غيرك على بطاقاتك لا تخرج من الحساب مع بيانات الاختبار.


الخطوة 3. تثبيت المحرر#

من الملفات. كتلة «تثبيت محرر»: اختر «الحزمة (index.js)» و«البيان (manifest.json)» → «تحقق وثبّت». تتحقق اللوحة أولًا من البيان — المعرّف، والاسم المترجم، والإصدار، والحد الأدنى لإصدار SDK، والمواضع، والصلاحيات، وقائمة المضيفات الشبكية — ثم تعرض الموافقة: «يطلب هذا المحرر:» وقائمة الصلاحيات بلغة واضحة. وما لم تضغط «تثبيت»، لا يُثبَّت أي شيء.

من GitHub. كتلة «التثبيت من GitHub»: حقل «المستودع (URL أو owner/repo)»، وحقل «الوسم (فارغ = آخر إصدار)»، وزر «تحقق من المستودع». والاصطلاح بسيط: manifest.json في جذر المستودع، وdist/index.js المُجمَّع في الوسم، والوسم بصيغة v{الإصدار}. يُسحب البيان والحزمة من متصفحك مباشرة. وفي الحالتين يُحسب عند التثبيت ويُحفظ بصمة الحزمة (sha256): فإذا استُبدل الملف لاحقًا، يُحظر التشغيل وتطلب اللوحة إعادة تثبيت المحرر.


الحقوق وأماكن النشر#

الحقوق (وتسمى أيضًا النطاقات) يطلبها الملحق في ملف التعريف، وأنت تؤكدها عند التثبيت. القائمة الكاملة هي هذه، ولا يستطيع الجسر فعل أي شيء أكثر من ذلك:

الحق ما يُتاح
قراءة الكتالوج الفئات والعناصر والخصائص والحقول المخصصة لبطاقات المنتجات
إنشاء عناصر الكتالوج وتعديلها إنشاء العناصر وتعديلها، واستيراد دفعة، وحقولك الخاصة وتعريفات الخصائص
تغيير الأسعار والتوافر وقوائم الإيقاف حسب الفروع نفس ما تفعله اللوحة في قائمة الفرع
قراءة دليل أصناف المخزون أصناف المخزون للقراءة
حفظ إعداداتك في مساحة التخزين الخاصة بك مفاتيح الملحق الخاصة به في حسابك (حتى 1 ميجابايت لكل مفتاح)
الجزء الخادمي للإضافة استدعاءات كود الملحق على خادمنا — وهي الطريقة الوحيدة للاتصال بالإنترنت

وما ليس في القائمة إطلاقًا لن يحصل عليه الملحق بأي إعدادات: الضيوف والعملاء، والطلبات، والإيصالات، والبيانات المالية، والموظفون، والمراسلات والمكالمات — لا يمنحها الجسر.

أماكن النشر (الفتحات) ثلاث:

الفتحة أين تظهر
صفحة خاصة عنصر داخل قسم «المحررات المخصصة»، يُفتح بملء الشاشة
زر في صفحة الكتالوج أداة بجوار كتالوج العناصر
علامة تبويب في قسم «المخزون» يُرسم الملحق كعلامة تبويب في المخزون — وهكذا حُزمت إضافتنا المدمجة «VetIS»

وضع المطوّر والوصول للمتعهد#

وضع المطوّر (كتلة «🛠️ وضع المطوّر») يثبّت الملحق مباشرة من حاسوبك: حقل «URL الحزمة» لا يقبل إلا عناوين localhost / 127.0.0.1، وبجواره «JSON ملف التعريف»، وزر «بدء جلسة التطوير». وفي هذه الحالة لا يُثبَّت البصمة، وتبقى الجلسة حتى إغلاق علامة التبويب؛ و«إيقاف جلسة التطوير» يوقفها فورًا.

منح المطوّر (كتلة «👩‍💻 وصول المطوّر») مطلوبة عندما لا يكون الكاتب هو المالك. يُنشأ للمطوّر حساب موظف عادي، ثم يمنح المالك المنحة: «البريد الإلكتروني للمطوّر (تسجيل دخوله كموظف)»، و«الحقوق المسموح بها»، و«مدة الصلاحية (بالأيام)» وملاحظة اختيارية → «منح الوصول». ويمكن الإلغاء في أي لحظة بزر «إلغاء».

ما تمنحه المنحة وما لا تمنحه:

  • تمنح — وضع المطوّر فقط بالحقوق التي حددتها (المدة الافتراضية 14 يومًا، والحد الأقصى 90)؛
  • تُقصّ الحقوق بالتقاطع: ما يطلبه ملف التعريف و ما مُنح في المنحة؛ فلن يحصل الملحق على أكثر من ذلك، حتى لو طلبه في ملف التعريف؛
  • لا تمنح — تثبيت الملحقات وتشغيلها وحذفها: يبقى ذلك للمالك.

التحديث والتشغيل والحذف#

الإجراء الكيفية
فتح زر «فتح» على البطاقة (أو رابط بـ ?app=…)
إيقاف مؤقت «إيقاف» — يبقى الملحق مثبّتًا، لكنه لا يُنفَّذ ولا يظهر في أماكنه
تحديث للملحقات من GitHub — «التحقق من التحديثات» ثم «التحديث إلى …»؛ وإذا كانت النسخة حديثة، ستقول اللوحة «أحدث نسخة مثبّتة». أما الملحقات من الملفات فتُحدَّث بإعادة التثبيت
حذف «حذف» مع تأكيد: تُزال الإعدادات والعنصر، وتبقى الإصدارات المحمّلة في مساحة التخزين

لا يوجد تحديث تلقائي عن قصد: فالنسخة الجديدة من كود شخص آخر هي بصمة جديدة، وربما حقوق جديدة، لذلك يكون التحديث دائمًا إجراءً واعيًا من المالك.


الإضافات المدمجة#

بعض وحداتنا الخاصة محزومة بالصيغة نفسها — ويظهر ذلك من السلوك، لكن لا حاجة لتثبيتها: فهي تأتي مع اللوحة وتُشغَّل من بطاقة في متجر التطبيقات، لا في هذا القسم.

وحاليًا هناك وحدة واحدة من هذا النوع — «Mercury/VetIS» لروسيا: تعمل كعلامة تبويب في قسم «المخزون»، وتُنفَّذ في الرملة نفسها وبفحوص البصمة نفسها. ولا تدخل الإضافات المدمجة في قائمة المحررات المثبّتة.


ما يستطيع المحرر فعله وما لا يستطيع#

يستطيع لا يستطيع
قراءة الكتالوج وتعديله في حدود الحقوق الممنوحة معرفة كلمة مرورك أو استخدام جلستك
عرض واجهته وإشعاراته وطلبات التأكيد فتح كود لوحة الإدارة أو بياناتها المحيطة به
فتح محرر العنصر الأصلي في اللوحة الاتصال بالإنترنت مباشرة من نافذة الملحق
حفظ إعداداته في حسابك رؤية بيانات ملحق آخر على بطاقاتك
الاتصال بالإنترنت عبر الجزء الخادمي — وفقط عبر عناوين https المذكورة في ملف التعريف (ولا تزيد على ثمانية) التنفيذ بعد استبدال الملف: فعدم تطابق البصمة يمنع التشغيل

تُوسم ملحقات الطرف الثالث على البطاقة بتحذير: «تطبيق طرف ثالث في الرملة — لا يطلب كلمة المرور أبدًا». وإذا طلب الملحق بيانات دخول اللوحة أو بيانات الدفع أو رمزًا من رسالة SMS — فهذا احتيال، وليس عمل الإضافة.


القيود#

  • القسم مُعطَّل افتراضيًا وهو موجَّه لمن يكتبون الكود (أو يطلبونه): لا شأن للمالك العادي به هنا.
  • كل شيء عدا العرض متاح لمالك الحساب فقط. يرى الموظف المركز بصلاحية قراءة فقط؛ ووضع المطوّر لا يُفعَّل إلا بمنحة سارية.
  • مستودعات GitHub الخاصة غير مدعومة — يجب أن يكون المستودع عامًّا، ويتم التثبيت عبر وسم الإصدار.
  • لا توجد تحديثات تلقائية: تحديث الإضافة يشغّله المالك دائمًا.
  • لا يوجد متجر لإضافات الآخرين. لا تُنشر الإضافات الجاهزة ولا تُباع عبر اللوحة — المصدر هو ملفك أو مستودعك فقط.
  • هناك ثلاث خانات (صفحة خاصة، زر الكتالوج، تبويب المخزون) — لا يمكن للإضافة أن تتوضع في أي شاشة عشوائية من اللوحة.
  • الجسر لا يمنح الوصول إلى الضيوف أو الطلبات أو المالية أو الموظفين أو المراسلات — ولا يمكن تجاوز ذلك بالصلاحيات، إذ لا وجود لمثل هذه الطلبات أصلًا.
  • لا يوجد سجل منفصل بعنوان «الإضافة فعلت كذا». تظهر الصلاحيات على البطاقة، وتدخل تعديلات الكتالوج في سجل العناصر المعتاد؛ وإن أردت تحكمًا، فابدأ بإضافة مُنحت صلاحية القراءة فقط.
  • الحدود التقنية: حزمة حتى 4 ميجابايت، وحتى 8 عناوين شبكية في البيان، وحتى 1 ميجابايت لكل مفتاح تخزين؛ والتشغيل من الخادم حتى 30 ثانية وحتى 50 اتصالًا بالإنترنت في المرة الواحدة.
  • تبقى بيانات الإضافة في سحابة علامتك التجارية: بالنسبة لحساب على cenaly.ru يقع وضع الجزء الخادمي في المحيط الروسي.

استكشاف الأخطاء وإصلاحها#

العَرَض تحقَّق من
القسم غير موجود في القائمة هل بطاقة «محررات مخصصة (SDK)» مُفعَّلة في متجر التطبيقات؛ وهل أُخرج القسم بزر «📌 إلى الشريط الجانبي»
الموظف لا يرى أزرار التثبيت هذا مقصود: التثبيت والحذف والمنح متاحة لمالك الحساب فقط
«الحزمة في التخزين لا تطابق البصمة المثبَّتة. تم حظر التشغيل» استُبدل ملف الإضافة بعد التثبيت — أعد تثبيت المحرر لتسجيل بصمة جديدة
«لم يبدأ المحرر في الوقت المحدد (لا يوجد connect() خلال 10 ثوانٍ)» الإضافة لم تتصل: خطأ في كودها أو الملف المُجمَّع غير الصحيح
«تعذّر تحميل حزمة المحرر» الإصدار غير متاح أو الملف تالف — أعد التثبيت
«المحرر غير موجود أو مُعطَّل» عند الانتقال عبر الرابط ?app=… الإضافة محذوفة أو مُعطَّلة على البطاقة
«تعذّر الحصول على المحرر من GitHub» المستودع خاص، أو لا يوجد manifest.json في الجذر، أو لا يوجد dist/index.js في وسم الإصدار، أو أن الوسم لا يتبع الاصطلاح v{الإصدار}
«العناوين المسموح بها هي localhost / 127.0.0.1 فقط» وضع المطوّر لا يقبل العناوين الخارجية عن قصد — شغّل البناء محليًا
الإضافة لا ترى البيانات المطلوبة راجع «الصلاحيات» على البطاقة؛ ولدى المطوّر الحاصل على منحة تُقتطع الصلاحيات إضافةً بالتقاطع مع المنحة
الإضافة لا تستطيع الوصول إلى خدمة خارجية لا توجد شبكة مباشرة من البيئة المعزولة: يتم الوصول عبر الجزء الخادمي، ويجب أن يكون العنوان في البيان
«يُبلّغ المحرر عن تغييرات غير محفوظة. هل تريد الإغلاق على أي حال؟» الإضافة أبلغت عن مسودة — احفظ عملك داخلها قبل الإغلاق

الأسئلة الشائعة#

هل يجب أن أعرف البرمجة؟#

لتثبيت إصدار جاهز — لا. وللحصول على الإصدار نفسه — نعم: يكتبه مطوّر أو وكيل ذكاء اصطناعي وفق قالبنا من قسم «التطوير بالذكاء الاصطناعي». القسم أداة للكود، وليس مُنشئًا يعمل «بالفأرة».

هل يمكن لإضافة تابعة لطرف آخر رؤية عملائي أو إيراداتي؟#

لا. تعمل الإضافة في بيئة معزولة ولا تتلقى البيانات إلا عبر الجسر، والجسر قادر على ستة أمور فقط: الكتالوج، والأسعار وقوائم الإيقاف، ودليل المخزون، وتخزينها الخاص، واستدعاء جزءها الخادمي، وعناصر الواجهة. أما الضيوف والطلبات والإيصالات والمالية والموظفون والمراسلات فغير موجودة هناك مبدئيًا. وما هو مسموح تحديدًا لإضافة معيّنة يظهر دائمًا على بطاقتها في سطر «الصلاحيات».

كيف أسلّم التطوير لمتعهد دون إدخاله إلى الحساب بالكامل؟#

أنشئ له حساب موظف، ثم امنحه منحة في قسم «وصول المطوّر»: حدِّد الصلاحيات المطلوبة فقط واضبط المدة (14 يومًا افتراضيًا، و90 كحد أقصى). سيحصل على وضع المطوّر ولا شيء غيره؛ ويبقى تثبيت الإضافة من نصيبك على أي حال. وتُسحب المنحة بزر واحد.

هل ستُحدَّث الإضافة تلقائيًا عندما يصدر المؤلف إصدارًا جديدًا؟#

لا. المالك هو من يشغّل التحديث: «التحقق من التحديثات» ← «التحديث إلى …». وهكذا لا يظهر إصدار جديد في الحساب دون علم أحد — فقد تتغير الصلاحيات المطلوبة مع الإصدار.

أين تحفظ الإضافة إعداداتها وبياناتها؟#

في حسابك، في تخزين منفصل تحت معرّفها (حتى 1 ميجابايت لكل مفتاح)، وإضافةً إلى ذلك، إن كانت تستخدمها، في الحقول المخصصة لبطاقاتك — وكل إضافة ترى مساحتها فقط. وبالنسبة لحساب على cenaly.ru يبقى الجزء الخادمي وحالته في المحيط الروسي.

كيف يختلف هذا عن API وMCP؟#

API للمطورين وMCP لمقسمك ضروريان عندما يعمل البرنامج من الخارج: موقعك الخاص، أو نظام محاسبة لطرف آخر، أو وكيل ذكاء اصطناعي. أما المحرر المخصص فهو على العكس واجهة داخل اللوحة: يفتحه الموظف كصفحة عادية من صفحات لوحة الإدارة ولا يغادر نافذة العمل.


أقسام ذات صلة#

Was this article helpful?