mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 10:04:55 +08:00
fix(release): 完成分发证明代际绑定与质量门禁收口
This commit is contained in:
@@ -94,11 +94,13 @@ CDN distribution gate
|
||||
* bootstrap 不应报告 distributable;
|
||||
* CDN 不应继续从该 release 分发任意文件。
|
||||
|
||||
`release.attestation` 必须由 Rust 维护 publication anchor、manifest identity、
|
||||
verification generation、verified_at、integrity/status code 和 diagnostics;轻量读取
|
||||
`release.attestation` 必须由 Rust 维护 canonical resource root、publication anchor、
|
||||
mapping/manifest identity、verification generation、verified_at、integrity/status code 和
|
||||
diagnostics;轻量读取
|
||||
只检查 current、anchor、manifest 元数据和 freshness,不遍历历史 release,不计算资源
|
||||
文件 BLAKE3。`resource.manifest` 请求绑定 attested `release_id`、
|
||||
`publication_identity`、`manifest_identity`,每页返回相同代际信息;Go 逐页验证
|
||||
文件 BLAKE3。`resource.manifest` 请求必须绑定 attested `release_id`、
|
||||
`publication_identity`、`manifest_identity`、`expected_verification_generation`,每页返回相同
|
||||
代际信息;Go 逐页验证
|
||||
release/root/identity/version/total/offset/limit,任何混页都丢弃候选快照。
|
||||
|
||||
保持现有:
|
||||
@@ -151,12 +153,15 @@ B 同大小内容损坏,Rust health=false
|
||||
|
||||
## 完成记录
|
||||
|
||||
当前已完成 Rust current attestation、manifest 代际绑定、Go typed mirror、分页一致性和
|
||||
A→B 切换 fail-closed 测试;`readyz`、bootstrap、release summary 和普通 current CDN
|
||||
共用 `attestation ready + exact manifest generation + complete local snapshot` gate。
|
||||
刷新失败会清空旧 index,恢复后重新建立快照;显式 official/localized/historical 分发
|
||||
仍经 Rust `release.distribution`。`make ci-check`、`make test-go-api` 和
|
||||
`make check-docs` 均已通过。
|
||||
已收口 Rust current official attestation 到 canonical `versions/<id>` root:publication
|
||||
在 staging 写入但 JSON root 绑定最终 versions path,rename 不增加 verification
|
||||
generation;full audit、显式 verify/repair、watch current audit 的 verified/invalid 均写入
|
||||
新 generation。`resource.manifest` 请求和响应按 release/publication/mapping/manifest/
|
||||
generation 严格绑定,Go 分页逐页及最终 entry count 校验;freshness 按
|
||||
`2 * verification_interval + error_retry` 计算,默认 `7260` 秒,`max_age_seconds=0`
|
||||
fail closed。`readyz`、bootstrap 和普通 current CDN 共用 Rust attestation、完整分页及
|
||||
安全本地快照 gate;失败 verification 会立即失效旧 ready generation。已增加 staging
|
||||
transition、generation race、过期和失败失效回归,并验证现有 CDN/历史分发路径未改语义。
|
||||
|
||||
---
|
||||
|
||||
@@ -560,11 +565,12 @@ CI 检查必须:
|
||||
## 完成记录
|
||||
|
||||
`make format` / `make fmt` 保留为显式写入命令,`make ci-check` 和兼容的
|
||||
`make ci` 只执行 read-only required gates;`golangci-lint 2.12.2` 由
|
||||
`scripts/ci-versions.sh` 固定,缺失或版本不匹配失败;OpenAPI、RPC contract 和文档
|
||||
一致性由 `make check-docs` 纳入。Gitea self-hosted runner 执行相同的 required
|
||||
Rust/Go/docs 语义,不添加 GitHub Actions。`make ci-check`、`make test-go-api` 和
|
||||
`make check-docs` 均已通过。
|
||||
`make ci` 只执行 read-only required gates;共享 `scripts/check-go-format.sh` 由
|
||||
`make check-go-format`、本地 `scripts/ci-check.sh` 和 Gitea workflow 共用。`golangci-lint
|
||||
2.12.2` 由 `scripts/ci-versions.sh` 固定,缺失或版本不匹配失败;OpenAPI、RPC contract
|
||||
和文档一致性由 `make check-docs` 纳入。Gitea self-hosted runner 执行相同的 required
|
||||
Rust/Go/docs 语义,不添加 GitHub Actions。最终 workspace gates、`make test-go-api`、
|
||||
`make check-docs` 和 `make ci-check` 均已通过。
|
||||
|
||||
建议统一覆盖:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user