[P1] 保持重新发布后的调用密钥稳定,提供停用、轮换和回滚
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust, typescript, wasm
Research direction
Start with server.mjs publish and the existing CLI/API deployment commands on main, then run the command-line v1→v2→rollback acceptance flow. The remaining work is the release-event history and deployment/run association, with the full acceptance matrix passing without exposing historical plaintext keys.
Written by the indexing model from the issue text.
Description
用户问题与代码依据
server.mjs publish 每次 randomBytes 后覆盖 keyHash;前端没有停用、独立轮换、回滚或可复制 curl;Editor 切应用未清 deployment 状态。
评估基线:2026-09-06,Hosta 666eca9 / Hoya 2234baa。此项记录待实现目标,不表示已完成。
验收标准
- 普通版本发布保持调用 URL 与 key 不变;CLI/API 独立提供显式 key 轮换,仅轮换时使旧 key 失效,并说明影响。
- CLI/API 提供发布历史、回滚到曾验证版本、停用/恢复;并发调用锁定开始时版本,返回部署和版本 ID。
- 首次发布/轮换仅本次响应返回密钥,CLI 可按用户选择输出且不写入常规日志;提供可运行的 curl 示例,状态查询和 UI 不返回历史明文密钥。
- 纯命令行端到端验证 v1 发布→v2 发布旧 key 可用→回滚→停用拒绝→轮换旧 key 失效;不要求网页操作。
归属与范围
归属:worktools/hosta。阶段:A1 · 开发者闭环。维护者已确认:CLI/API 优先,前期全命令行验收,UI 先只读展示,网页交互后续评估。沿用独立 Hoya 引擎与 Hosta 控制面边界;本项不扩展到多租户、计费、DAG 或全球调度。
依赖
下游验收
实施进展(2026-09-06)
PR #14 已要求显式 versionId,普通重新发布保留密钥,首次发布才返回明文 key,并从应用查询中移除 keyHash。CLI/API 回归已覆盖重复发布和旧 key 调用。基线纠正:远端 main a1bba14 已有独立 key 轮换、停用、回滚 API,现已保留并为回滚补充手动运行门槛;尚需 CLI 暴露这些操作、发布历史和完整 v1→v2→回滚验收矩阵,保持开启。
部署 CLI 进展(PR #15)
新增 deployments get/rollback/disable/rotate-key;回滚要求显式版本,拒绝跨应用、未验证版本和停用部署。恢复使用 publish 指定版本。真实 Hoya JS/Rust WASM 回归已覆盖 v1→v2(旧 key 可用)→回滚→停用拒绝→恢复→轮换旧 key 失效。4 组测试全部通过,无跳过。PR #15 基于 #14;发布事件历史与部署/运行关联仍待完成,父 issue 保持开放。移除已发布的 issue JSON 中间导出,后续以 GitHub issues 为状态来源。
合并跟进(2026-09-06 10:22 CST)
Hosta #15 已合入 #14,#14 已合入 main(160f0d3),部署 CLI 与独立引擎接入均已进入主分支。Hosta main 的真实双运行时集成 CI 通过;Hoya #12/#13/#14 均已合并,最新 main Test 通过。无未解决审查意见。两仓库的 issue 中间导出已清理,构建/缓存忽略规则已补充。本项剩余验收继续按既定范围跟踪,不因首轮 PR 合并而提前关闭。
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 18m
- Merged PRs (30d)
- 7
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from worktools/hosta
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
-
priority:P1 type:feature
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
priority:P2 type:feature
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
priority:P1 type:chore
Difficulty 5/5 Over a week Newbie friendliness 30/100
-
priority:P1 type:feature
Difficulty 5/5 Over a week Newbie friendliness 30/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
bcgov/bc-wallet-mobile#4761 · 1 comment ·
-
external-issue to-triage
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
area-deployment area-integrations triage:bot-seen
Difficulty 2/5 Half a day Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
refactor
Difficulty 2/5 1-3 hours Newbie friendliness 84/100