FrankEberle/CycloneDX_Editor
GitHub: FrankEberle/CycloneDX_Editor
一个基于Web的CycloneDX SBOM编辑器,支持手动创建、审查和增强符合BSI规范的软件物料清单。
Stars: 0 | Forks: 0
# CycloneDX 编辑器 - 一个基础的 CycloneDX 编辑器
## 项目目标
本项目的目标是开发一个 CycloneDX 编辑器,用于手动生成 CycloneDX SBOM。
该编辑器仅支持 [CycloneDX](https://cyclonedx.org/) 标准的一个子集。但该子集足以生成符合德国联邦信息安全办公室 (BSI) 的[技术指南 TR-03183-2](https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TR03183/BSI-TR-03183-2_v2_1_0.pdf?__blob=publicationFile&v=5) 的 SBOM。
通常,SBOM 会基于所用包的元数据(Maven、NPM、PIP 等)在软件构建过程中自动生成。但在小型嵌入式系统领域,软件仅基于少数几个依赖项,这些依赖项无法通过使用包来满足。在此类项目中,手动创建 SBOM 可能就足够了,特别是当依赖项不经常变动时。
即使 SBOM 是自动生成的,该编辑器也可用于审查 SBOM 或手动增强它。
## 构建
构建软件需要使用 NPM。请使用以下命令来构建软件:
```
cd CycloneDX_Editor
npm install
npm run build
```
构建结果保存在 *dist* 目录中。
## 开发
```
cd CycloneDX_Editor
npm install
npm run dev
```
仓库中包含 Dockerfile.development,用于构建一个简单的开发容器。
使用以下命令构建容器镜像:
```
cd CycloneDX_Editor
docker build -f Dockerfile.development -t cyclonedx_editor_dev .
```
以下命令用于在容器内启动 Vite 开发服务器:
```
cd CycloneDX_Editor
docker run --rm -t -i -p 5173:5173 -v ${PWD}:/work cyclonedx_editor_dev npm run dev -- --host
```
使用以下命令来构建软件:
```
cd CycloneDX_Editor
docker run --rm -t -v ${PWD}:/work cyclonedx_editor_dev npm run build
```
### 自定义数据
CycloneDX 允许通过 *properties* 数组在各个位置以键值对的形式存储自定义信息。
示例:
```
{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"metadata": {
"component": {
"properties": [
{
"name": "prop1",
"value": "value1"
},
{
"name": "prop2",
"value": "value2"
}
]
}
}
}
```
可以配置 CycloneDX 编辑器以显示用于输入自定义数据的其他输入字段,这些数据将作为属性存储。
支持以下类型的输入字段:
* 单行文本;可选输入验证
* 多行文本
* 下拉选择
* 由上述多个字段组成的记录
## 配置
可以通过名为 *config.js* 的 JavaScript 文件配置应用程序。在开发环境中,该文件必须位于 *src* 子文件夹中。在生产环境中,该文件必须存储在 *assets* 子文件夹中。
配置文件必须导出一个提供配置选项的对象作为其属性:
```
export default {
}
```
**更多内容即将推出...**
## 部署
### Docker 容器
仓库中包含一个 Dockerfile,可用于构建用于部署应用程序的容器镜像。
#### 构建容器镜像
输入以下命令来构建容器镜像:
```
cd CycloneDX_Editor
docker build -f Dockerfile.deployment -t cyclonedx_editor .
```
#### 运行容器镜像
可以使用以下命令运行容器:
```
docker run --rm -p :8080 -v :/var/www/html/assets/config.js cyclonedx_editor
```
将 *\* 替换为 Web 服务器应可达的 TCP 端口。如果不使用配置文件,则可以省略 *-v* 选项。否则,必须将 *\* 替换为配置文件的完整路径。
### 手动部署
可以使用任何能够提供静态文件的 Web 服务器来部署应用程序。
必须将 *dist* 目录的内容复制到服务器的文档根目录中。复制文件时必须保留 *dist* 内的目录结构。
如果要将应用程序部署到子目录,则必须在构建应用程序之前修改 *vite.config.js* 中的 *base* 属性。
标签:BOM生成, BSI合规, Cilium, CMS安全, CycloneDX, Docker, JavaScript, JSON, NPM, SBOM, SOC Prime, TR-03183-2, Vite, Web编辑器, XML, 合规工具, 安全合规, 安全防御评估, 嵌入式系统, 开发工具, 手动创建, 数据可视化, 硬件无关, 组件管理, 网络代理, 自定义脚本, 请求拦截, 跌倒检测, 软件物料清单, 软件资产管理