feat: add release identity manifest
This commit is contained in:
@@ -1,3 +1,40 @@
|
||||
# 发布物身份清单
|
||||
|
||||
`orbit-admin release manifest` 不连接数据库,输出当前二进制内置的构建身份、协议版本和完整迁移名称/校验和。它用于在构建阶段冻结发布证据;输出不含 DSN、凭据、迁移 SQL 或业务数据。
|
||||
|
||||
```sh
|
||||
docker run --rm --entrypoint /usr/local/bin/orbit-admin registry.example/orbit:1.0.0 release manifest > orbit-release-manifest.json
|
||||
# 本地工作区也可执行:
|
||||
make release-manifest > orbit-release-manifest.json
|
||||
```
|
||||
|
||||
清单中的 `build.revision` 应与源码提交和镜像 OCI revision 标签一致,`schema` 应与部署前 `orbit-admin verify` 返回的迁移账本逐项一致。清单只证明发布物声明的身份,不能证明目标数据库已切换、备份可恢复或目标拓扑满足 RPO/RTO。
|
||||
|
||||
示例结构:
|
||||
|
||||
```json
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"build": {
|
||||
"version": "1.0.0",
|
||||
"revision": "<immutable-commit>",
|
||||
"built_at": "2026-09-20T00:00:00Z",
|
||||
"go_version": "go1.27.1",
|
||||
"http_protocol_version": "1",
|
||||
"worker_protocol_version": "1",
|
||||
"event_protocol_version": "1",
|
||||
"workflow_schema_version": 1
|
||||
},
|
||||
"schema": {
|
||||
"current_version": 28,
|
||||
"migration_count": 28,
|
||||
"migrations": [
|
||||
{"version": 1, "name": "000001_initial.up.sql", "checksum": "<sha256>"}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 发布前结构核验
|
||||
|
||||
`orbit-admin verify` 是只读的发布、迁移和恢复前置检查。它不会执行迁移、修复脏账本、删除数据或修改权限;数据库账户通过 `ORBIT_MYSQL_DSN` 注入,建议使用受限只读账户。
|
||||
|
||||
Reference in New Issue
Block a user