بنية بوابة القرار لتشغيل الحزم
Audience: Engineers implementing runpack export/verification and الجمهور: المهندسون الذين يقومون بتنفيذ تصدير/تحقق runpack والتعامل مع ملفات النظام/تخزين الكائنات.
جدول المحتويات
- نظرة عامة تنفيذية
- هيكل بيان تشغيل الحزمة
- خط أنابيب تصدير Runpack
- نموذج سلامة الأثر
- تدفق التحقق من حزمة التشغيل
- أمان نظام الملفات Sink/Reader
- أمان مستودع الكائنات (Object Store) - المصدر/القارئ
- مرجع متقاطع ملف بملف
نظرة عامة تنفيذية
Runpacks هي حزم حتمية من مواصفات السيناريو، سجلات التحكم، وبيانات النزاهة. يقوم الباني بكتابة قطع JSON معيارية وحساب تجزئة لكل ملف، بالإضافة إلى تجزئة جذرية على قائمة تجزئات الملفات. تتحقق عملية التحقق من النزاهة، وتتحقق من تفرد سجلات القرارات، وتتحقق اختياريًا من نقاط الأدلة عندما تكون سياسة النقطة موجودة. F:crates/decision-gate-core/src/runtime/runpack.rs L83-L374
تُخزَّن مرجعيات الأدلة كما هي في سجلات runpack. بالنسبة للمرجعيات المعتمدة على الملفات (file_path_rooted)، تتضمن المرجعيات معرف جذر ثابت root_id بالإضافة إلى مسار نسبي بأسلوب POSIX لضمان اتساق التجزئات عبر أنظمة التشغيل.
تقوم تصديرات Runpack باختيار وجهة بهذا الترتيب: واجهة RunpackStorage الخلفية الاختيارية (تقوم بالتصدير إلى دليل مؤقت وتفوض التخزين)، واجهة تخزين كائن OSS عند تكوينها، أو تصدير نظام الملفات الذي يتطلب output_dir. F:crates/decision-gate-mcp/src/runpack_storage.rs L31-L67 F:crates/decision-gate-mcp/src/tools.rs L2342-L2480
هيكل بيان Runpack
المخطط هو الفهرس القياسي لقطع العمل في runpack. تشمل الحقول الرئيسية:
- معرفات السيناريو / التشغيل وهاش المواصفات
- خوارزمية التجزئة ووضع التحقق
- سياسة الربط الاختيارية وسياق الأمان
- قائمة تجزئة الملفات وتجميع الجذر
- إدخالات فهرس الأثر
F:crates/decision-gate-core/src/core/runpack.rs L57-L116
نسخة البيان واضحة. يدعم المدقق حاليًا v1 ويفشل في حالة القيم غير المعروفة لـ manifest_version للحفاظ على ضمانات التوافق مع الإصدارات السابقة مع تقديم إصدارات جديدة. F:crates/decision-gate-core/src/runtime/runpack.rs L60-L374
تلتقط بيانات السياق الأمني الوضعية المسموح بها من قبل المطور وسلطة مساحة الأسماء عند توفيرها من قبل خادم MCP. F:crates/decision-gate-core/src/core/runpack.rs L94-L104
خط أنابيب تصدير Runpack
يتم بدء تصدير Runpack عبر أداة MCP runpack_export:
- يقوم جهاز التوجيه للأدوات بتحميل حالة التشغيل من المتجر المكون.
- A
RunpackBuilderis created with the active anchor policy and optional يتم إنشاءRunpackBuilderمع سياسة الربط النشطة وبيانات السياق الأمنية الاختيارية. - Artifacts are written via filesystem or object-store sinks depending on يتم كتابة العناصر عبر أنظمة الملفات أو مخازن الكائنات حسب التكوين.
- يمكن طلب التحقق الاختياري أثناء التصدير.
F:crates/decision-gate-mcp/src/tools.rs L2342-L2480 F:crates/decision-gate-mcp/src/runpack_object_store.rs L94-L260
عند تكوين تجاوز RunpackStorage، يقوم MCP ببناء الحزمة على القرص ويفوض التخزين إلى الواجهة الخلفية. خلاف ذلك، تقوم صادرات تخزين الكائنات بكتابة كائنات لكل عنصر مباشرة؛ تتطلب صادرات نظام الملفات output_dir.
يكتب الباني مخرجات JSON الحتمية لـ:
- مواصفات السيناريو
- سجل التشغيل
- سجل تقييم البوابة
- سجل القرارات
- سجل الحزمة
- سجل التقديم
- سجل استدعاء الأداة
F:crates/decision-gate-core/src/runtime/runpack.rs L130-L214
نموذج سلامة الأثر
لكل عنصر، يقوم الباني:
- يتم تسلسل البيانات باستخدام JCS
- يرفض القيم العائمة غير المنتهية أثناء التحويل القياسي (NaN/±Infinity)
- يحسب تجزئة الملف
- يضيف إدخال تجزئة ملف وسجل عنصر
يتم حساب تجزئة الجذر على القائمة القياسية لتجزئات الملفات للحماية من إعادة ترتيب العناصر أو حذفها. F:crates/decision-gate-core/src/runtime/runpack.rs L433-L480
تدفق التحقق من حزمة التشغيل
التحقق يؤكد سلامة وثوابت الهيكلية:
- تتطابق جميع تجزئات الأصول مع البيان.
- يتطابق جذر الهاش مع قائمة هاش الملفات.
- سجل القرارات لا يحتوي على قرارات مكررة لكل معرف حدث.
- يتم تشغيل تحقق سياسة الربط عند وجوده في البيان.
F:crates/decision-gate-core/src/runtime/runpack.rs L314-L567
أداة runpack_verify تقوم بتحليل البيان، وتقرأ العناصر من القرص، وتعيد تقرير تحقق منظم. F:crates/decision-gate-mcp/src/tools.rs L2497-L2513
ملاحظة التفاعل (checked_files semantics): runpack_export مع include_verification = true يولد تقرير التحقق قبل إضافة عنصر verifier_report.json إلى البيان. بسبب ذلك، يقوم runpack_export.report.checked_files بحساب ملفات البيان قبل التقرير.
runpack_verify يتحقق من قائمة تجزئة ملف البيان النهائي (بما في ذلك verifier_report.json)، لذا من المتوقع أن تكون runpack_verify.report.checked_files بالضبط runpack_export.report.checked_files + 1 لنفس الـ runpack عندما يكون التحقق في وقت التصدير مفعلًا.
أمان نظام الملفات Sink/Reader
تُعالج عناصر نظام الملفات بواسطة تنفيذات مُعزَّزة للقراءة/الكتابة:
- يجب أن تكون المسارات نسبية ولا يمكنها الهروب من جذر التشغيل.
- يتم تطبيق حدود مكونات المسار وطول المسار الكلي.
- يتم تطبيق حدود الحد الأقصى لعدد البايتات وتفشل في حالة الانتهاكات.
F:crates/decision-gate-mcp/src/runpack.rs L43-L217
أمان مستودع الكائنات (Object Store) للقراءة/الكتابة
تفرض محولات تشغيل تخزين الكائنات نفس ضمانات الأمان كما هو الحال في تخزين نظام الملفات:
- يتم اشتقاق المفاتيح من المستأجر/مساحة الأسماء/السيناريو/تشغيل/هاش_المواصفات.
- يتم التحقق من مقاطع المسار وتحديد طولها.
- يتم تحديد الحد الأقصى للقطع الأثرية عند
MAX_RUNPACK_ARTIFACT_BYTES. - تقرأ الفشل مغلقًا عندما يتم تجاوز حدود الحجم.
F:crates/decision-gate-mcp/src/runpack_object_store.rs L94-L260
مرجع متقاطع لكل ملف
| المنطقة | الملف | الملاحظات |
|---|---|---|
| مخطط البيان | crates/decision-gate-core/src/core/runpack.rs | حقول البيان، السلامة، سياق الأمان. |
| الباني + المدقق | crates/decision-gate-core/src/runtime/runpack.rs | منطق كتابة والتحقق من الأرتيفكت. |
| تكامل الأدوات | crates/decision-gate-mcp/src/tools.rs | تدفقات runpack_export/runpack_verify. |
| إدخال وإخراج نظام الملفات | crates/decision-gate-mcp/src/runpack.rs | مصب/قارئ الأرتيفكت الآمن مع التحقق من المسار. |
| إدخال وإخراج تخزين الكائنات | crates/decision-gate-mcp/src/runpack_object_store.rs | مصب/قارئ تخزين الكائنات لأرتيفكتات runpack. |