محتويات الدورة

CI/CD / أسس الدمج والمرشح / الدرس 6

النواتج والبيانات وهوية الإصدار

انتقل من ملفات في مساحة العمل إلى مرشحين محفوظين بعلاقات قابلة للتحقق.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تمييز ملفات العمل والنواتج المؤقتة والذاكرة المخبأة وحزم الإصدار.
  • التحقق من حمولة افتراضية بتجزئة محفوظة.

اختر التخزين وفق ضمانه

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

صف العلاقات لا الأسماء فقط

يربط البيان المفيد هوية الحزمة ومراجعة المصدر وتشغيل البناء وسجل الاعتمادات والأدلة المطلوبة. تساعد الأسماء البشر لكنها قد تتحرك؛ ليس parcel-latest.zip هوية ثابتة. تصف التجزئة بايتات، وقد تصف إفادة منشأ موثقة منتجها ومدخلاتها. افصل المفاهيم. يبقى ملف يقول source=main ادعاءً حتى يتحقق المستهلك من منشئه الموثوق ويربطه بالحزمة المنزلة فعلاً.

قارن البايتات المستلمة فعلاً

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

python كشف حمولة افتراضية مختلفة
import hashlib
payload = b"parcel-lab\n"
expected = hashlib.sha256(payload).hexdigest()
print(hashlib.sha256(payload).hexdigest() == expected)
print(hashlib.sha256(b"parcel-lab!\n").hexdigest() == expected)
الناتج المتوقع
True
False

المقارنتان حتميتان. يوضح المثال هوية البايتات فقط؛ تُولّد القيمة المتوقعة محلياً وليست ادعاء إصدار موثقاً مستقلاً.

الاحتفاظ جزء من التعافي

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

json سجل علاقات توضيحي
{"candidate":"parcel-lab-r7","source":"lab-r7","package_location":"reviewed-release-store","evidence_record":"lab-checks-r7"}

القيم أسماء افتراضية وليست روابط أو التزامات أو تجزئات فعلية. يحتاج البيان الفعلي هوية حزمة ثابتة ومنشأ موثقاً. السجل المختصر ليس إفادة SLSA ولا يدعي مطابقتها.

تحقق قبل التبني

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

الأخطاء الشائعة وإصلاحها

ينزّل الإصدار أحدث ناتج ناجح.

لماذا يحدث؟
استُبدلت هوية المرشح الصريحة باختيار متغير للأحدث.
كيف تصلحه؟
اختر المرشح الثابت المقصود وتحقق من علاقة أدلته.
كيف تتجنب تكراره؟
مرر هوية الإصدار صراحة عبر الترقية.

يفشل الرجوع لانتهاء الحزمة.

لماذا يحدث؟
كانت مدة ناتج المهمة أقصر من عقد التعافي.
كيف تصلحه؟
احفظ الحزم الموافق عليها والبيانات اللازمة للأفق المتفق.
كيف تتجنب تكراره؟
راجع التنظيف وفق متطلبات الإصدار والحوادث.

تُعامل التجزئات المتطابقة كمنشأ موثوق.

لماذا يحدث؟
اختلط تطابق البايتات بتوثيق المنشأ.
كيف تصلحه؟
تحقق من مصدر البيانات وسياسة البناء بجانب التجزئة.
كيف تتجنب تكراره؟
وثق قناة الثقة للقيم المتوقعة.

اختبر فهمك

1. هل تصلح ذاكرة الاعتماد المخبأة نسخة وحيدة لحزمة الإنتاج؟

اعرض الحل المشروح

لا. فقد الذاكرة المخبأة ينبغي ألا يضر الصحة. احفظ حزمة إصدار محددة بضمانات ثبات ووصول واحتفاظ مناسبة. لا تجعل الصحة والتعافي رهينتي إصابة الذاكرة.

2. تطابق التجزئة لكن البيان يسمي مراجعة أخرى. هل نتبنى؟

اعرض الحل المشروح

يثبت الفحص تطابق البايتات مع القيمة فقط، بينما تخالف علاقة المصدر عقد الإصدار. أوقف الترقية وحقق البيان والمنتج والاختيار بدلاً من اعتبار التجزئة موافقة شاملة.

أهم ما تعلمته

  • احفظ المرشحين بعقد دورة حياة صريح.
  • تحقق من الهوية والمنشأ والأدلة والتبني كخطوات مستقلة.

المراجع الرسمية