feat(documentation): 托管插件静态文档快照 - #41
Merged
Merged
Conversation
- 固定到已确认的静态快照托管合同
- 按 Release 与文档渠道保存不可变静态资源快照 - 提供条件写入、稳定入口与独立内容源访问 - 补齐契约、生成客户端、迁移与行为检查
- 从任意静态站点输出打包文档候选 - 支持查看、创建及条件替换 Registry 文档 - 对丢失响应执行精确候选恢复
This was referenced Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Registry 现在可按精确 Extension Release 和
global、python、module-federationscope 托管作者自行构建的静态文档。作者可修订文档而无需发布新的插件版本,旧快照仍保留完整资源和原所属 Release 的生命周期约束。实现
DocumentationRepository独立拥有文档查询、事务和共享并发额度,使用现有 ArtifactStore。>=0.3,<0.4;提供地址生成、候选打包、幂等发布及发现。expected_etag是必填可空业务字段。snapshot_id与完整不可变请求(含原始前提)共同识别候选;精确重放返回原历史提交回执,不移动 current,也不更新 current 时间。同 ID 改写身份或新候选前提过期返回 409;鉴权和 blocked 检查仍优先。committed_at、snapshot_etag不表示它仍为 current;A 成功后被 B 替换,重试 A 仍确认 A,而不会回滚 B。验证
完整
pnpm check在 Node 22 下通过。新增 wheel 安装检查从构建产物和依赖元数据创建干净环境,执行pip check与服务 import,防止 workspace 隐藏错误版本依赖。一次性 PostgreSQL 17 + Moto 验收覆盖真实迁移、跨 Release/scope 指针拒绝、被引用快照归属修改拒绝、并发条件替换、失败 staging、历史快照、blocked/yanked 及 ZIP 安全边界。新增 A→B→重试 A 的历史回执/current 不变、同 ID 并发只产生一个快照且回执相同、不可变身份冲突与 blocked 重放拒绝。Toolkit 在 HTTP transport 边界模拟响应丢失、503、无效回执和 409,验证最多两次请求及未知结果;这不是实际网络丢包 E2E。配置回归覆盖多级公共后缀、private PSL、同站拒绝、本地例外和大小写域名。原有真实 VitePress 输出打包验收保持有效。
交付与运维
追加
0003文档模型迁移和0004归属约束迁移,运行账号获得文档表所需权限。生产启用还需配置独立内容域 DNS/TLS 和DOCUMENTATION_ORIGIN_TEMPLATE,内容域不得接入 SSO 或共享认证 Cookie。配置校验无法盘点其他服务的 Cookie,因此独立内容域仍是部署责任。本 PR 保持 Draft;本次未部署服务、修改生产域名或发布包。未来合入 protected main 后,现有 package release 流程会发布准备好的 Toolkit 0.3.0;Registry 生产部署另行执行。回滚服务时保留新增表和已发布快照,不通过反向迁移删除文档数据;必要时可暂时关闭内容域入口并修复后重新部署。
相关交付
2026-09-21:Web 消费接口与本轮验证