انتقل إلى المحتوى

اصطلاح — تعايش الإدارة/الإنتاج

ما هو

قاعدة إضافة سطح إدارة لكيان له بالفعل سطح إنتاج/وقت تشغيل، بحيث يتعايش الاثنان دون تصادم. الحالة القانونية هي Skill: استهلك التطبيق العامل المهارات بالفعل (التخصيص، الطلب، مهارات الموظف) قبل أن يضيف MIQ-133 CRUD إدارة لـ Skill بوقت طويل — كان على مسار الإدارة أن يندرج بجانب نقاط النهاية الإنتاجية القائمة، لا أن يستبدلها أو يزعجها.

متى يُستخدم

عندما تضيف CRUD/إدارة لكيان تُقرأ بياناته أو تُنفَّذ بالفعل في مكان آخر من النظام العامل — خصوصًا البيانات المرجعية المزروعة التي يعتمد عليها وقت التشغيل.

النمط

1. افصل مسار الإدارة عن مسار الإنتاج.

  • متحكّم ومسار متمايزان — تعيش نقاط نهاية الإدارة تحت /api/admin/<entity> (مثلًا SkillsAdminController عند /api/admin/skills)، منفصلة عن متحكّم الإنتاج (SkillsController).
  • مساحة اسم cache متمايزة لـ React Query — تمرّر hooks الإدارة resourceKey مختلفًا (مثلًا useSkillsAdmin يستخدم resourceKey: 'skills-admin') بحيث لا تدوس طفرات الإدارة على cache القراءة الإنتاجي. انظر كتالوج المساعدات.
  • صلاحيات RBAC متمايزة — تبوّب إجراءات الإدارة على <entity>.config / .view؛ يحتفظ سطح الإنتاج بصلاحياته القائمة الخاصة.

2. احمِ الصفوف المزروعة التي يعتمد عليها وقت التشغيل. تُزرَع البيانات المرجعية غالبًا كـ صفوف نظام (IsSystem = true) يفترض منطق وقت التشغيل وجودها. يُرفَض تحرير/حذف الإدارة لتلك الصفوف بـ SystemRowProtectedException<T> (409 <ENTITY>_PROTECTED) بحيث لا يستطيع مسؤول سحب صف من تحت النظام العامل. انظر الاستثناءات.

3. احترم المراجع القائمة عند الحذف. لأن جانب الإنتاج قد يشير إلى الصف، يُحجَب الحذف بحارس عدّ المفاتيح الأجنبية (<Entity>ReferencedException، 409) — لا يستطيع مسار الإدارة أن ييتّم بيانات الإنتاج.

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

مزالق / قيود

  • صف النظام ≠ الصف العام. صف النظام (IsSystem = true) غير قابل للتغيير بنيويًا لإبقاء الإنتاج مستقرًّا. الصف العام (business_unit_id IS NULL) هو بيانات مرجعية مشتركة قد تمدّها وحدة عمل. إنهما فكرتان مختلفتان — لا تخلطهما (انظر تعدّد المستأجرين).
  • لا تعد استخدام متحكّم الإنتاج لكتابات الإدارة. أبقِ مسار الإدارة في متحكّمه/مساره الخاص بحيث تبقى صلاحياته وتحقّقه وسلوك cache معزولة.
  • قسّم cache الواجهة الأمامية. إذا استعلمت الإدارة والإنتاج الكيان نفسه، فأعطِ hooks الإدارة resourceKey الخاص بها، وإلّا أبطلت طفرة إدارة (أو أُبطِلت بفعل) cache الإنتاج على نحو غير متوقَّع.

ملاحظة عن وسم "Path A". تشير بعض مواد الجولة إلى تطبيق طبقات مسار الإدارة بوسوم "Path"؛ وورقة الحقائق الداعمة (AdminTrack_FactSheet.md) تستخدم فعلًا "Path 0/1/2" لـ ترتيب-الإعداد للتزويد (متطلّبات النظام المسبقة → سقالة وحدة العمل → بيانات التشغيل)، وهي فكرة ذات صلة لكن متمايزة. اصطلاح التعايش المُوثَّق هنا هو الملموس المُتحقَّق منه بالشيفرة: مسار إدارة منفصل يتعايش مع الإنتاج عبر متحكّمات/مسارات/مفاتيح-cache منفصلة إضافةً إلى حماية صف-النظام والمفتاح الأجنبي.

حالة البناء

Available — مُنفَّذ لإدارة Skill (MIQ-133 المرحلة Phase 2) متعايشًا مع سطح المهارات الإنتاجي؛ حارسا صف-النظام/المفتاح الأجنبي حيّان عبر كيانات البيانات المرجعية.

ذات صلة