Skip to content

Latest commit

 

History

History
60 lines (43 loc) · 1.89 KB

File metadata and controls

60 lines (43 loc) · 1.89 KB

Contributing to KeyBroker

感谢你帮助改进 KeyBroker。该项目处理凭据使用边界,因此“方便”不能以新增明文传输能力为代价。

开始之前

  1. 阅读 架构说明威胁模型
  2. 搜索现有 Issue,避免重复工作。
  3. 对较大的功能或安全边界变化,先提交设计 Issue,说明用户场景、数据流和替代方案。
  4. 任何测试、截图和日志只能使用合成密钥。

不接受的设计

  • 通过 CLI、MCP、日志、剪贴板或调试接口返回原始密钥。
  • 任意命令执行、任意参数追加或全局占位符替换。
  • 默认跳过本机审批或 TLS 验证。
  • 为了“兼容”而允许调用方覆盖密钥注入 Header。
  • 将 Vault、DPAPI Blob、TOTP 种子或真实凭据加入测试夹具。

开发环境

Node.js 原型:

npm ci
npm run check
npm test

Windows 原生实现:

cd native
cargo fmt --all -- --check
cargo clippy --locked --all-targets -- -D warnings
cargo test --locked

固定的发布工具链见 native/TOOLCHAIN.md

提交规范

  • 一次提交解决一个清晰问题。
  • 标题使用祈使语气,例如 Reject redirected credential requests
  • 说明行为变化、风险和验证方式。
  • 安全修复必须添加能够失败于旧实现的回归测试。
  • 不提交 dist/target-*、Vault、备份、证书或本地日志。

Pull Request 检查表

  • 我没有增加任何明文密钥返回路径。
  • 我检查了 MCP、日志、审计和错误信息。
  • 我使用的全是合成测试数据。
  • 格式、Clippy 和测试全部通过。
  • 用户行为变化已更新文档。
  • 安全边界变化已更新威胁模型。

安全问题

不要用公开 Issue 披露可利用漏洞或真实数据。参阅 SECURITY.md