dsh-sbom: Generating CycloneDX 1.5 SBOMs for DSH Plugin Packages

前言

在 DSH 生态里,插件往往自带 package.json 和本地 node_modules,依赖清单分散在目录里,而不是一份现成的、可对外交换的 SBOM。要做合规归档、交付前清单核对,或把「这个插件装了哪些顶层库」说清楚,手工翻 node_modules 既慢又容易漏。

下面介绍社区插件 lengrufeng2008/dsh-sbom:从当前 DSH 插件包及其已安装的顶层依赖生成 CycloneDX 1.5 格式 SBOM,离线运行,不做完整传递依赖解析,也不做漏洞断言。维护者为 GitHub 用户 lengrufeng2008,在 SkillHub 目录中归类为安全管理(admin-security),许可证为 MIT(见仓库 README 与 package.json)。

这是什么

dsh-sbom 是一个体量较小的 CycloneDX 导出工具,同时提供 DSH 插件入口与命令行 bin/dsh-sbom.mjs。它解决的是:把「本插件根组件 + 顶层已安装 npm 包」整理成标准 SBOM JSON,便于存档或与现有 CycloneDX 工具链对接。

与「全量供应链证明」类方案相比,作者明确划定了边界:仅顶层已安装包、无传递依赖图、无 lockfile 专解析、无漏洞库、无签名——不能当作完整的供应链 attestation。

核心功能

根据仓库 README 与 package.json 描述,已核实能力如下。

  1. CycloneDX 1.5 输出:生成符合 CycloneDX 1.5 的 SBOM 文档。
  2. 根组件与依赖列表:
    - metadata.component:表示根应用(当前插件包)。
    - components[]:来自顶层已安装 node_modules 的库,字段包括 name、version、license、purl。
  3. 离线:README 写明 No network;不拉取外部漏洞或元数据。
  4. 双入口:
    - 独立 CLI(dsh-sbom 指向 bin/dsh-sbom.mjs)。
    - DSH 内通过技能/工具 sbom_export 对当前包导出(见下文用法)。
  5. 运行环境:package.json 要求 Node >=20;当前发布版本为 0.1.0。

安装与启用

SkillHub 目录页(https://www.skillhub.cn/plugins/lengrufeng2008/dsh-sbom)给出的安装方式,是向 DeepSeek Harness 说明要安装的插件标识,而不是仓库 README 里的一条 shell 安装命令。目录页示例表述如下(与页面「发送给 DeepSeek Harness 安装」一致,插件 ID 为 lengrufeng2008/dsh-sbom):

请安装 DSH 插件 lengrufeng2008/dsh-sbom。

DeepSeek Harness 社区目录(SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系;安装前请自行查看 GitHub 源码与 MIT 许可证。插件在 DSH 进程权限下运行,安装与启用前应确认你信任维护者与代码内容。

仓库地址:https://github.com/lengrufeng2008/dsh-sbom

典型用法

命令行(仓库 README)

在插件包根目录(或任意含 package.json 与已安装顶层依赖的路径)执行:

node bin/dsh-sbom.mjs . --json --output sbom.json

快速查看 JSON 前几行:

node bin/dsh-sbom.mjs . --json | head

上述命令把 SBOM 写到 sbom.json,或经标准输出打印 JSON。

在 DSH 会话中

README 给出的自然语言用法:

Use sbom_export on this package, format=json.

即对当前插件包调用 sbom_export,并指定 format=json,得到与 CLI 同类的 CycloneDX 导出(具体交互以你本地的 DSH 与插件 bundle 为准)。

自测

维护者在 README 中提供的测试命令:

npm test

对应 package.json 中的 node --test test/*.test.mjs。

适用场景与注意

适合谁

  • 需要为某个 DSH 插件包留档「安装了哪些顶层 npm 依赖」的开发者或运维。
  • 已有 CycloneDX 1.5 消费方(合规模板、内部清单工具),只需一层依赖快照、且接受离线、无漏洞评级的场景。

务必知道的限制(README「Limits」)

  • 只统计已安装的顶层包,不包含传递依赖图。
  • 不做 lockfile 专用解析、不连漏洞库、不做签名。
  • 不是完整的供应链 attestation;不能替代专业 SC A 或签名制品审计。

权限与安全

插件随 DSH 运行,能读取你指定路径下的 package.json 与 node_modules 元数据。仅在可信环境中对可信项目启用;导出结果中的 license、purl 来自包内声明,工具本身不对许可证合规或漏洞做结论。

结尾

dsh-sbom 把 DSH 插件包与其顶层已安装依赖收敛成一份 CycloneDX 1.5 JSON,步骤简单、边界清晰,适合作为清单快照而非全链路安全证明。目录与源码:

  • 目录页:https://www.skillhub.cn/plugins/lengrufeng2008/dsh-sbom
  • GitHub:https://github.com/lengrufeng2008/dsh-sbom
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye