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, 合规工具, 安全合规, 安全防御评估, 嵌入式系统, 开发工具, 手动创建, 数据可视化, 硬件无关, 组件管理, 网络代理, 自定义脚本, 请求拦截, 跌倒检测, 软件物料清单, 软件资产管理