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 干净
5.3 KiB
5.3 KiB
工程实施行动清单:第12项至结束验收
范围
本轮从“来源与目录”的第8项(全局第12项:来源快照差异 ChangeSet)继续到清单结束。来源与目录现有浏览和标注界面保持不变;解析监控、发布管理、系统设置继续完善。生产发布请求与 Release Worker 保持关闭,本验收不代表生产上线。
第12项:来源快照 ChangeSet
- Migration 15 新增
source_catalog_change_sets与source_catalog_change_items。 - 每次快照激活前持久计算
add / update / move_scope / delete / no_change。 - Migration 16 为现有7个来源回填最新快照差异。
- 提供只读安全 API:
GET /api/v1/source-catalog/change-sets/latest。 - 解析监控页展示各来源最新持久 ChangeSet 和变更文件预览,不返回 locator hash、snapshot hash 或凭据。
- 真实读回:国内工业新增80、更新3、删除18、未变化4859。
第13–22项:解析链路与监控
已验证:
- Spool 文件上传前计算并校验完整 SHA-256、字节数和格式;流式上传后再次校验。
source_items与source_item_versions分离文件身份和版本;content_objects.sha256全局唯一。- 标注只创建计划;
processing_confirmations人工确认后才创建test.uploadJob。 target_scope明确对内/对外;禁止导入进入test.remove并读回确认。- Publication、Job、轮询序列和人工重试均有幂等键或唯一约束。
- Worker 支持租约、心跳、退避重试、最大尝试次数和失败终态;页面支持单个/批量重试。
- WeKnora 上传、轮询、最终 completed、Knowledge/Chunk 验收已经接通;当前测试编排开关为启用状态。
- 解析监控已切换为真实 Provider:主机 CPU、内存、磁盘和可见 GPU;PostgreSQL、任务队列与 WeKnora 健康探测;未配置的 MinerU、OSS、Redis/消息队列明确显示未配置/未部署,不再模拟正常。
第23–28项:发布管理
已验证:
GET /api/v1/release-plan根据来源最终策略、测试终态和最近生产状态生成 add/update/delete/blocked/unchanged。- 发布前 bundle 保存完整 manifest、三通道摘要和 SHA-256;生产恢复验证未通过时授权门禁阻断。
- Migration 17 新增
batch_size/current_batch/total_batches;发布默认每50项一批并持久显示批次进度。 - 一项永久失败后,当前项之后和后续批次停止;未执行项记录
release_stopped_after_failure。 - 已成功项才进入自动回滚范围;回滚结果区分 restored/rolled_back/failed。
- PostgreSQL、Elasticsearch、对象存储完成后均读回验证;不以 HTTP 200 代替一致性验收。
- 发布计划、审核、封批、执行历史、逐项结果和固定错误码均可从页面查看。
- 修复发布计划安全投影省略空
publication_id/blocker导致前端拒绝整个计划的问题。
第29项:系统设置
- 来源列表从真实来源配置动态生成,不写死具体来源名称。
- Test/Production WeKnora、OSS/备份、刷新与告警参数分区显示。
- AList 显示直连 API Token;密钥值不回传、不写任务载荷、不进入页面。
- 页面仅允许修改低风险刷新/告警参数;端点、凭据、生产开关继续由管理员受限配置管理。
- 系统设置使用真实服务健康结果,不再混用解析监控模拟数据。
第30项:本地故障演练
通过的自动化场景:
- 目录标注重复确认不会重复创建上传任务。
- SHA/大小/格式不一致时上传前失败;流式过程中文件改变时失败。
- 上传完成后进入轮询;WeKnora completed 后创建验收任务,不继续无效轮询。
- 禁止导入调用测试删除并读回确认。
- Worker 失败按固定延迟重试,达到最大次数进入失败终态。
- 105项发布计划分成3批(50/50/5)。
- 永久失败立即停止后续项目和批次,并只为已验证项目创建一次自动回滚。
- Migration 17→16→17 往返和 Migration 11 历史范围回填均在独立临时数据库通过。
- 解析监控、发布管理、系统设置在 1440/1024/768 三种宽度无页面级横向溢出。
当前真实运行状态
- schema migration:17。
- Monitor:
mode=real、simulated=false。 - PostgreSQL、任务队列、WeKnora API:真实健康。
- Test Publications:537条,均处于 completed。
- Release Plan:新增4、阻断614。
- Production release executions:0。
PRODUCTION_RELEASE_REQUESTS_ENABLED=false。RELEASE_WORKER_ENABLED=false,进程确认未加载生产凭据。
验证命令结果
- Go:
go test ./... && go vet ./... && go build ./cmd/...通过。 - Web:22个测试文件、90项测试通过;TypeScript检查和生产构建通过。
- PostgreSQL:ChangeSet、标注/确认幂等、发布授权/自动回滚、Migration往返均在一次性临时数据库通过。
- Browser:三个剩余页面真实内容加载成功,响应式检查通过。
仍需生产负责人单独确认的外部验收
生产发布和真实生产回滚没有执行,也不应由本轮开发授权隐含开启。上线前仍需生产负责人提供独立授权,并完成:生产三通道备份恢复验证、代表性小批发布、故障注入和真实回滚读回。当前页面与后端会在该门禁未满足时持续阻断生产操作。