عن المشروع

هذا المشروع يُدار تحت مظلة Linux Foundation ضمن لجنة أدوات الامتثال الآلي (Automating Compliance Tooling TAC)، وقد طُوّر أصلاً لتوليد قوائم SBOM لمشروع Kubernetes. تشمل قدراته الأساسية ثلاثة مجالات رئيسية. أولاً: توليد قوائم SBOM. يدعم الأمر الفرعي `bom generate` إنشاء قوائم SBOM بصيغة SPDX من مصادر متعددة، بما في ذلك الدلائل المحلية، والملفات الفردية، وصور الحاويات المسحوبة عن بُعد، وأرشيفات Docker المحلية بصيغة tar، وملفات الأرشيف المضغوطة (tar/tar.gz). افتراضياً، يُخرج مستندات بصيغة SPDX 2.3 بصيغة JSON أو tag-value، مع دعم تجريبي لإخراج SPDX 3.0.1 بصيغة JSON-LD عبر protobom. عند فحص الدلائل المحلية، يتبع قواعد .gitignore افتراضياً، ويدعم أنماط الاستثناء المخصصة عبر الخيار `--ignore`، ويمكن تعطيل تطبيق قواعد gitignore عبر الخيار `--no-gitignore`. تحتوي الأداة على مصنّف تراخيص مدمج يتعرف على أكثر من 400 ترخيص في كتالوج SPDX. يمكنها تلقائياً حل تبعيات وحدات Go، وتحديد الحزم النظامية في صور الحاويات المستندة إلى Alpine وDebian وRPM، واستخراج معلومات البناء المضمنة في ملفات Go الثنائية لربط وحداتها التابعة. كما تدعم تصدير قوائم SBOM كبيانات إثبات (in-toto provenance) عبر الخيار `--provenance`، والتي يمكن دمجها مباشرة في خطوط أنابيب CI/CD للمعالجة اللاحقة. ثانياً: عمليات مستندات SBOM. يوفر الأمر الفرعي `bom document` ثلاث وظائف. الأمر الفرعي `outline` يعرض هيكل محتوى SBOM كشجرة، مع دعم تسمية عناوين الحزم عبر `--purl`، وتحديد عمق العرض عبر `--depth`، وتحديد موقع الفرع المصدر لحزمة معينة عبر `--find`. الأمر الفرعي `query` يبحث عن عناصر في SBOM باستخدام عوامل تصفية مثل العمق أو الاسم أو عنوان الحزمة. الأمر الفرعي `dot` يُصدّر مخطط علاقات SBOM بصيغة Graphviz DOT، مع دعم العرض من عنصر جذر محدد عبر `--root`، وتحديد عمق اجتياز العلاقات عبر `--depth`، واستبعاد عناصر الملفات عبر `--no-files`. ثالثاً: التحقق من السلامة. يتحقق الأمر الفرعي `bom validate` من سلامة الملفات الفردية أو الدلائل الكاملة مقابل المجاميع الاختبارية المسجلة في SBOM. بالإضافة إلى ذلك، يمكن استخدام الأداة كمكتبة برمجية بلغة Go عبر حزمة `sigs.k8s.io/bom/pkg/bom`، والتي تدعم توليد وقراءة وكتابة قوائم SBOM بناءً على نموذج الكائنات المحايد للصيغة من protobom، ويمكنها تسلسل الإخراج إلى صيغ SPDX أو CycloneDX أخرى. نموذج الكائنات القديم `sigs.k8s.io/bom/pkg/spdx` أصبح مهملاً، مع توفير دليل ترقية رسمي. يمكن تثبيت الأداة بتشغيل الأمر `go install sigs.k8s.io/bom/cmd/bom@latest` للحصول على أحدث إصدار.