fix(release):完善当前分发证明与质量门禁
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s

This commit is contained in:
2026-09-14 06:39:47 +08:00
parent c17904ee1c
commit 13b0bd5b45
39 changed files with 1590 additions and 228 deletions
@@ -371,10 +371,10 @@ JSON-RPC 2.0 服务,是面向上层服务(Go 层)的**主要跨语言边
- CDN path 支持 `GET` / `HEAD` / Range / 条件请求;ETag 优先使用 download
manifest 中的 BLAKE3,响应包含 Last-Modified、Accept-Ranges 和长期缓存头。
- 版本/清单发现优先走 RPC:先 `daemon.status`,再 `daemon.doctor`,再读取
Rust `release.status` 的 whole-release `official_distribution_ready`,最后
读取 `catalog.status` / `resource.manifest`(可用 `--socket` 指定 socket 文件)。
Go 不重新实现 release verifier;普通 current CDN 只有在该 Rust health fact
和本地只读 manifest 快照都允许时才分发。
Rust 轻量 `release.attestation`,最后按 attested release/publication/manifest
identity 读取 `catalog.status` / `resource.manifest`(可用 `--socket` 指定 socket
文件)。Go 不重新实现 release verifier;普通 current CDN 只有在 attestation
fresh/ready、分页快照完整且本地只读路径检查都允许时才分发。
- `/v1/releases``/v1/distribution` 和受保护的 `/admin/releases/status`
`/admin/releases` 只转发 `release.status/list/distribution` 的 Rust typed
结果;localized 或历史分发不会绕过 Rust 完整性判断。
+5 -4
View File
@@ -92,7 +92,7 @@
### 2.1 双 release 读写边界
Rust `bat``release.status` 是 official/localized 的统一只读视图,基于既有
Rust `bat``release.status` 是 official/localized 的统一重型只读视图,基于既有
version state、current symlink、release manifest、文件系统和必要的 CAS/reference
元数据计算,不建立第二个 release 数据库。`release.list` 返回两个 namespace 的当前
与历史 release,包含稳定 ID、created/published、source official relation、生命周期、
@@ -382,10 +382,11 @@ Addressables 改写后客户端拼接:
1. `daemon.status`
2. `daemon.doctor`
3. `release.status`,消费 Rust 返回的当前 official `official_distribution_ready`
及其 `status` / `status_code` / integrity 事实
3. `release.attestation`,消费 Rust 当前 official `ready`、release/publication/
manifest identity、verification generation、freshness 和 integrity 事实
4. `catalog.status``version.resource_root``addressables_root`、app/bundle
5. `resource.manifest` 分页(url / destination / bytes / blake3
5. `resource.manifest` 分页(请求携带 release/publication/manifest identity;响应每页
返回同一组 identity、generation、total、offset、limit
6.`resource_root` 上 Lstat 校验 Present / size;该检查只验证 Go 读快照,
不替代 Rust release verifier