跳转到内容

签名与来源

插件目录安装必须能回答三个问题:下载了什么、是否被篡改、由哪个受信任 key 签名。

每个版本都要记录:

字段 要求
fileName 包含 pack id 和版本,后缀 .jarvispack
mediaType application/vnd.jarvis.extension-pack+zip
size 字节数,不能依赖下载时猜测
sha256 对最终 artifact 计算
url 指向不可变下载对象

本地计算:

终端窗口
shasum -a 256 dist/PACK_ID-VERSION.jarvispack
wc -c dist/PACK_ID-VERSION.jarvispack

公开 Registry envelope 使用 Ed25519 签名。Jarvis 本机客户端只信任 JARVIS_EXTENSION_REGISTRY_TRUSTED_PUBLIC_KEYS_JSON 中列出的 key。

签名对象应覆盖:

  • registry URL;
  • pack id;
  • version;
  • artifact metadata;
  • native dependency metadata;
  • review state;
  • yanked、deprecated、blocked 状态。

不要签名一个会被发布流程二次修改的临时 JSON。

发布 PR 或审核记录应保留:

  • artifact 的 commit SHA;
  • 生成 artifact 的命令;
  • hash 和大小;
  • 审核人和审核时间;
  • 变更的 catalog 条目;
  • 本机 preview/install 验收结果。

新增 key 时,先把公钥加入 Jarvis 受信任列表,再用新 key 签新版本。撤销 key 时,已发布版本需要重新签名或停止安装。