包仓库与信任
插件包的三条分发路径:本机安装、TierFs 卷仓库(write-once)、远端仓库拉取; 签名信任(RSA-SHA256)是安装期的安全闸。
信任公钥(验签闸)
# 登记信任公钥(平台域;租户域走 tenant trust——同 keyId 覆盖=轮换)
traffic-worker plugin trust add --keyId acme-root-2026 \
--algorithm rsa-sha256 --public-key @acme-root.pem --admin http://127.0.0.1:7901
traffic-worker plugin trust list
traffic-worker plugin trust remove --keyId acme-root-2026
- 已签包在安装期验签——验不过即 422 拒绝(不是警告);
- 撤销信任=新安装验签失效(已安装注册不受影响——存量处置是运营决策);
- 租户域包验本租户信任锚(tenant trust 平台/租户双域分离)。
包仓库(卷载体)
# 包体入库(write-once:同版本不可覆盖;租户域受配额闸)
traffic-worker plugin package put --data-base64 <包体base64> \
--admin http://127.0.0.1:7901
# 包读取(清单+包体+指针摘要——pull/远端目录同源)
traffic-worker plugin package get acme/token-check/1.0.0
包体走 TierFs 卷 write-once 载体+KV 指针——大包不膨胀 raft 日志 (与编译产物同一指针模式)。
远端仓库
# 登记仓库源
traffic-worker plugin repo add --body '{ "repoId": "corp", "name": "Corp Registry",
"url": "https://registry.example.com" }'
# 远端目录搜索
traffic-worker plugin search token --repo corp
# 拉取安装(对端 package 取数→验签→落卷→注册——一条命令完成分发四步)
traffic-worker plugin pull --repo corp acme/token-check/1.0.0
对端即另一节点的管理口——repo.url 指向对端 /api/v1/sys/plugin/catalog:
任何节点天然是仓库(plugin catalog 是远端目录的对端面)。
分发全景
开发/CI 签包 ──→ package put(卷仓库)──→ search/pull(远端)──→ install(验签闸)──→ enable(draft→publish)
↑ write-once + KV 指针 ↑ RSA-SHA256 验签 ↑ 热切换
反模式
| 症状 | 原因 | 正确形态 |
|---|---|---|
| 安装 422 验签失败 | 信任锚未登记/keyId 不对 | trust add 后重装;轮换用同 keyId 覆盖 |
| package put 被拒 | 同版本已存在(write-once) | 发新版本号——包不可变是仓库契约 |
| 租户包超限 | 配额闸 | quota-set 调整或清点租户包 |