Xpertians/ossbomer-schema
GitHub: Xpertians/ossbomer-schema
一个用于验证SPDX和CycloneDX格式的SBOM文件是否符合标准Schema的Python库,确保软件物料清单在进行深度分析前格式正确。
Stars: 0 | Forks: 0
# ossbomer-schema
针对 SPDX 和 CycloneDX 的 SBOM Schema 验证。
ossbomer-schema 是一个 Python 库,用于根据 SPDX 和 CycloneDX schema 验证软件物料清单。它确保 SBOM 在进行进一步分析之前,已正确格式化为 JSON 和 XML 格式。
## 功能特性
* 支持 SPDX 3.0、SPDX 2.3 以及 CycloneDX 1.3–1.6
* 同时验证 JSON 和 XML 格式
* 使用本地 schema(无远程依赖问题)
* 以人类可读和 JSON 格式输出结果,便于 API 集成
## 用法
您还可以将 ossbomer-schema 作为 Python 库使用:
```
from ossbomer_schema.validator import SBOMSchemaValidator
validator = SBOMSchemaValidator()
```
### 验证 SPDX JSON
```
result = validator.validate_spdx_json("test_sbom.spdx.json")
print(result) # "Valid" or error message
```
### 验证 CycloneDX XML
```
result = validator.validate_cyclonedx_xml("test_sbom.cdx.xml")
print(result) # "Valid" or error message
```
📂 SBOM Schema 支持
| SBOM 格式 | 版本 | JSON | XML |
| ----------- | ------- | ---- | --- |
| SPDX | 2.3 | ✅ | 🚫 (无官方 schema) |
| SPDX | 3.0 | ✅ | 🚫 (无官方 schema) |
| CycloneDX | 1.3 | ✅ | ✅ |
| CycloneDX | 1.4 | ✅ | ✅ |
| CycloneDX | 1.5 | ✅ | ✅ |
| CycloneDX | 1.6 | ✅ | ✅ |
注:SPDX 3.0 没有官方的 XML schema,因此无法对该版本进行 XML 验证。
### 测试
使用以下命令运行测试套件:
```
$ python3 -m unittest discover tests
$ python3 -m tests.test_schema
```
## 许可证
本项目基于 MIT 许可证授权。
## 未来改进
* 添加官方的 SPDX 3.0 XML 验证(可用时)。
* 扩展针对新版 CycloneDX 版本的 schema 验证。
* 与 ossbomer-conformance 集成,以进行法规合规性检查。
## 有疑问?
欢迎提出 issue 或为项目做出贡献!🚀
标签:API集成, CycloneDX, DevSecOps, JSON格式, Python, SBOM, SBOM分析, Schema验证, SPDX, Svelte, XML格式, 上游代理, 可观测性, 安全合规, 数据校验, 无后门, 本地校验, 格式验证, 硬件无关, 组件安全分析, 网络代理, 跌倒检测, 软件物料清单, 逆向工具