dcdc8d1ddd
全栈知识治理平台首次入库(P1-P10 + 发布链路模拟验证闭环): - 治理核心:源目录/变更集/人工审核/发布批次/发布执行(fail-closed 闸口) - 测试通道:WeKnora 测试 KB 上传/轮询/验收;poll 完成时写入 parser_generation/index_generation,修复 manual/seed 路径发布闸口永久拦截 - 发布适配器 v071(本地 source=测试角色 / 云端 target=生产角色 模拟验证通过): * ES 导出/导入 mapping 自适应(.keyword 子字段、可选 tenant_id) * OSS locator 支持嵌套 scheme;chunks.seq_id 由目标序列分配 * bundle 归档同身份重试原子替换;verifier 按 bundle chunk_type 计数 * 回滚 job payload 支持 prior_execution_id(strict 解码) - 三通道发布+回滚演练实测:publish 4/4 verified,检索命中, rollback 4/4 rolled_back,目标端 PG is_enabled=false、ES is_enabled=false - 前端 A·Data-console 风格全站统一,120 用例通过 - 门禁:go vet / go test 全包通过,gofmt 干净
3.0 KiB
3.0 KiB
P2.1 来源数据底座验收
范围
本阶段只验证统一来源领域模型和PostgreSQL Migration 2:
- 来源连接、来源对象、内容对象、来源版本、测试发布五层身份分离;
- 来源内
stable_external_id唯一; - 全局内容对象仅按完整64位小写十六进制SHA-256去重;
- 来源变化、内容获取、测试导入、处理和检索状态分开保存;
- 新表初始为空,不读取或导入PP、AList、钉钉数据;
- 不连接测试或生产WeKnora。
静态与单元验证
在项目根目录执行:
/home/zheromiku/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.0.linux-amd64/bin/go test ./... -count=1
/home/zheromiku/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.0.linux-amd64/bin/go vet ./...
/home/zheromiku/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.0.linux-amd64/bin/go build ./cmd/...
在web/执行:
npm test -- --run
npm run typecheck
npm run build
全部命令必须返回exit code 0。
一次性数据库验收
在唯一命名的临时数据库中依次验证:
- 执行Migration 1和Migration 2;
- 再执行一次Migration 2,确认
IF NOT EXISTS允许安全重跑; - 插入一条完整的来源→版本→内容→测试发布链;
- 同一来源内重复
stable_external_id必须被拒绝; - 不同来源可使用相同
stable_external_id; - 重复SHA-256必须被拒绝;
- 非64位、小写十六进制之外的SHA-256必须被拒绝;
- 未声明状态值必须被拒绝;
- 执行Migration 2 down,五张P2表必须按外键依赖反序删除;
- P1的
jobs表必须保留; - 删除临时数据库。
禁止在当前持久本地数据库中执行down验收。
当前本地数据库只读验收
docker compose exec -T postgres psql -U governance -d governance -At -c \
"SELECT string_agg(version::text, ',' ORDER BY version) FROM schema_migrations;"
期望:
1,2
docker compose exec -T postgres psql -U governance -d governance -At -c \
"SELECT COUNT(*) FROM pg_tables WHERE schemaname='public' AND tablename IN ('source_connections','source_items','content_objects','source_item_versions','test_publications');"
期望:5。
docker compose exec -T postgres psql -U governance -d governance -At -c \
"SELECT (SELECT COUNT(*) FROM source_connections),(SELECT COUNT(*) FROM source_items),(SELECT COUNT(*) FROM content_objects),(SELECT COUNT(*) FROM source_item_versions),(SELECT COUNT(*) FROM test_publications);"
在正式导入来源前期望:0|0|0|0|0。
数据保留与运行状态
- Migration前必须创建非空PostgreSQL原生备份,并通过
pg_restore --list校验; - 只替换API容器,PostgreSQL、普通Worker、Release Worker和Web容器ID不得变化;
- Migration后原有
jobs数量和代表任务状态必须保持; /health必须返回{"status":"ok"};- API启动日志不得包含Migration错误;
- 不执行
docker compose down -v、卷删除、提交、推送或外部部署。