Files
knowledge-governance/docs/P1_ACCEPTANCE_TEST_PLAN.md
zheromiku dcdc8d1ddd feat: 知识治理平台(含已验证发布/回滚契约)
全栈知识治理平台首次入库(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 干净
2026-09-30 10:54:06 +08:00

3.1 KiB
Raw Permalink Blame History

P1 独立验收计划

1. 范围

验证独立治理平台基础骨架:PostgreSQL持久队列、API、普通Worker、默认关闭的Release Worker、React状态页,以及Worker异常中断后的租约恢复。

明确不验收:PP/AList/钉钉Connector、测试WeKnora导入、生产WeKnora发布、PG/ES/OSS跨环境复制。

2. 前置条件

  • 在/home/zheromiku/knowledge-governance执行。
  • Go 1.26、Node.js 22、npm和Docker Compose可用。
  • 不使用生产凭据,不连接测试或生产环境。
  • secrets/postgres_password和secrets/pgpass使用同一个随机本地密码,权限为600。

3. 自动化检查

make test
make vet
make build
make web-test
make web-typecheck
make web-build

通过标准:全部退出码为0。

4. 启动与健康检查

由操作者执行:

docker compose up --build -d
docker compose ps
curl -fsS http://127.0.0.1:8088/health

通过标准:PostgreSQL和API健康;Web可访问;健康响应为{"status":"ok"}。

5. 幂等入队

连续两次发送完全相同的请求:

for n in 1 2; do
  curl -fsS -X POST http://127.0.0.1:8088/api/v1/jobs \
    -H 'Content-Type: application/json' \
    -d '{"type":"demo","payload":{"round":1},"idempotency_key":"acceptance:idempotent:001"}'
done

通过标准:两次响应中的任务ID相同;列表中该幂等键只有一个任务;任务最终为completed。

6. Worker租约恢复

  1. 创建60秒本地任务:
curl -fsS -X POST http://127.0.0.1:8088/api/v1/jobs \
  -H 'Content-Type: application/json' \
  -d '{"type":"demo.sleep","payload":{"sleep_ms":60000},"idempotency_key":"acceptance:lease:001"}'
  1. 在状态页或列表API确认任务进入running且attempt=1。
  2. 强制终止普通Worker:
docker compose kill -s KILL worker
  1. 重新启动Worker:
docker compose up -d worker
  1. 等待原租约到期(最多35秒)并持续查询:
curl -fsS 'http://127.0.0.1:8088/api/v1/jobs?limit=50'

通过标准:同一个任务被重新领取,attempt=2;继续等待后进入completed。不得产生第二条同幂等键任务。

7. Release Worker默认关闭

docker compose logs --no-color release-worker

通过标准:日志包含release worker disabled;没有release worker started in probe-only mode;没有任何测试或生产外部连接配置。

8. 状态页

打开http://127.0.0.1:8088/:

  • 页面标题为“知识同步治理平台”。
  • 显示任务总数、运行中、待重试、失败、已完成。
  • 显示最近50条任务及尝试次数。
  • 页面明确显示“Release Worker 默认关闭”。
  • 桌面端无页面级横向溢出;窄屏仅任务表自身可横向滚动。

9. 停止与保留数据

docker compose down

通过标准:容器停止,governance-pgdata卷保留。未经单独确认不得执行docker compose down -v。

10. 验收记录

记录每一步的时间、退出码、任务ID和最终状态。任何步骤失败时停止扩展,不连接WeKnora或来源系统,以失败证据定位P1本身。