メインコンテンツへスキップ
J

dsh-safebox

jiangzhenguo/dsh-safebox

Adds a DSH Settings panel for write-only local credentials and exposes only secret metadata and references to agents.

インストール

dsh plugin --profile web add github:jiangzhenguo/dsh-safebox

README

DSH Safebox

Safebox 是一个 DeepSeek Harness(DSH)本地密钥管理插件。它在 设置 → Safebox 密钥管理 中提供独立面板,用于保存账号密码、API Token 和加密文本,并向 Agent 暴露不含秘密明文的引用与使用目标。

当前能力

  • 在 DSH 设置中新增、编辑和删除密钥条目;
  • 秘密值通过 DSH 凭据服务单向写入,页面不提供回显或导出;
  • 支持经用户确认的本地 JSON 导入;
  • safebox_list 只返回白名单元数据:名称、类型、账号、使用目标、引用和时间戳;
  • Agent 没有 get_secret、秘密导出或授权修改工具。

安全边界

Safebox 防止秘密通过插件配置、页面、Agent 工具结果进入聊天和模型上下文,但当前版本使用 DSH 默认本地凭据存储。同一 OS 用户运行的进程不是绝对隔离边界,本版本不宣称可以抵御读取本机凭据文件的恶意进程。

本地 JSON 导入文件可能包含明文。导入后请按源产品安全指引入库并妥善处理源文件,不要把真实凭据提交到 Git。

环境与安装

  • DSH(当前验证版本:0.2.2-rc.1)
  • Node.js 20+
  • pnpm 11+

安装依赖:

pnpm install --ignore-scripts

在 DSH 插件管理中选择安装本地 Bundle,并选择本项目根目录。安装成功后,打开 设置 → Safebox 密钥管理。

开发验证

pnpm run verify

该命令执行:

  • Host 与 Client JavaScript 语法检查;
  • Bundle、导出资源、图标和包名一致性检查;
  • Node.js 内置测试,包括 safebox_list 不泄露额外秘密字段的安全回归测试。

项目结构

.
├── .github/workflows/ci.yml  # GitHub Actions 验证
├── locale/                  # 插件管理器显示文本
├── scripts/verify.mjs       # 清单与静态检查
├── test/host.test.mjs       # Host 与安全回归测试
├── client.js                # 设置面板
├── cordis.patch.yml         # DSH Bundle 组合配置
├── icon.svg                 # 插件图标
├── index.js                 # Host 配置和 Agent 工具
├── package.json             # 包、脚本和 DSH Client 声明
└── pnpm-lock.yaml           # 可复现依赖锁

本地 JSON 导入格式

支持 JSON 数组或带 items 数组的对象,每项包含:

{
  "name": "Example API",
  "kind": "api-token",
  "secret": "replace-with-a-test-value",
  "username": "",
  "target": "https://api.example.com"
}

kind 支持 account、api-token、secret-text。单次最多 100 条、文件最大 1 MB。请只使用测试数据验证,不要提交真实导入文件。

发布到 GitHub

项目不需要构建即可使用。推送前运行 pnpm run verify,并确认没有真实凭据、.env、凭据 YAML 或 node_modules 被提交。

当前未指定开源许可证;公开仓库前请根据实际需要添加 LICENSE。

関連プラグイン