前言¶
在 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 描述,已核实能力如下。
- CycloneDX 1.5 输出:生成符合 CycloneDX 1.5 的 SBOM 文档。
- 根组件与依赖列表:
-metadata.component:表示根应用(当前插件包)。
-components[]:来自顶层已安装node_modules的库,字段包括 name、version、license、purl。 - 离线:README 写明 No network;不拉取外部漏洞或元数据。
- 双入口:
- 独立 CLI(dsh-sbom指向bin/dsh-sbom.mjs)。
- DSH 内通过技能/工具sbom_export对当前包导出(见下文用法)。 - 运行环境:
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