data-research-v60-v65-acceptance.md 4.1 KB

数据研发 V60-V65 验收报告

日期:2026-07-22

1. 验收结论

V60-V65 全部完成:多源采集、证据治理、数据元素生命周期、本体 MVP、动态本体、交换/知识/MCP 服务、运营对账、Vue 2 完整工作流及发布副本均已交付。本地 Docker 隔离栈已启动,真实 PostgreSQL/MySQL、Neo4j、MinIO、Kestra、n8n、Runner、后端和前端集成验收通过。

2. 阶段交付

阶段 核心交付 阶段提交
V60 采集控制面、任务状态机、权限、API/OpenAPI 3b004fa
V61 SQL/CSV/Excel、目录采集、数据元素与候选决策 6bcd697
V62 DOCX/PDF、OCR、统一文件策略、MinIO/证据 cf464b2
V63 本体控制面、校验、发布/回滚、Vue 本体中心 b804f9e
V64 动态建议、变更集、JSON/OWL、知识/MCP/语义查询 d32b4ce
V65 运营对账、数据研发中心、发布同步、综合验收 本阶段最终提交

3. 最终测试矩阵

验收命令 结果
PYTHONPATH=. .venv/bin/pytest -q tests/data_research tests/acceptance/test_data_research_v60_v65.py 79 passed
PYTHONPATH=. .venv/bin/pytest -q 372 passed, 23 skipped, 59 subtests passed
Docker 真实服务集成矩阵(含数据源故障恢复、Runner、Kestra、MCP、RBAC、迁移) 62 passed, 1 skipped
数据研发容器 HTTP 端到端(CSV/MinIO/任务/双业务域本体/Outbox) 1 passed
启用全部本地集成开关后的全仓回归 396 passed, 1 skipped, 59 subtests passed
PATH=<bundled-node-24>:$PATH npm --prefix frontend run build 构建成功;0 error,21 条既有 no-console 警告,另有依赖年龄/CSS 顺序/包体积警告
python scripts/generate_openapi.py --output docs/architecture/OPENAPI.yaml 138 个操作
PYTHONPATH=. .venv/bin/pytest -q tests/test_architecture_artifacts.py 通过
diff -qr app deployment/app 无差异
git diff --check 通过

验收期间全量测试曾捕获任务令牌尾字符的非规范 Base64URL 别名问题;验证器现强制 JWT 三段采用规范编码,专项测试与全量回归均已通过。Docker 集成进一步捕获并修复了后端/Runner 并发 Alembic 迁移竞争,以及本体主记录与业务域关联记录的写入顺序问题;两项均已增加回归测试。

4. 安全与治理断言

  • OCR 未配置时失败关闭,HTTP 提供方必须 HTTPS、TLS 校验、超时和响应大小限制。
  • 上传文件同时校验扩展名、MIME、文件头、大小/页数;旧 DOC 要求转换为 DOCX。
  • 证据预览脱敏,原件下载要求 evidence:download
  • 候选项不能直接发布;数据元素和本体发布分别要求独立发布权限。
  • 发布版本不可变;回滚创建新版本;Neo4j/知识文档通过 Outbox/对账修复,不覆盖 PostgreSQL 历史。
  • AI 建议必须携带证据、置信度、模型/提示版本;未决建议不进入草稿或发布。
  • 语义查询使用固定深度与固定 Cypher,只返回已发布、业务域范围内的白名单字段。

5. Docker 集成范围与剩余人工项

已验证:

  • Alembic 在临时 PostgreSQL 数据库中的升级、重复升级、降级,以及两个进程并发升级互斥。
  • PostgreSQL/MySQL 外部数据源并发连接池、凭据轮换、MySQL 停机隔离和恢复。
  • Runner 真实读取两类受治理数据源、任务令牌防重放、Kestra 到 Runner 调用链。
  • Kestra 流程验证/部署、官方 MCP stdio、DataOps MCP 持久化与 V53 L3 链路。
  • 数据研发 CSV 上传到 MinIO、哈希复用、采集任务幂等/取消、双业务域本体创建/校验/发布/导出及 Outbox 事件。
  • RBAC、V54 离线模型降级、跨存储 Outbox 失败重试和幂等消费。

唯一自动跳过项为 V55 的 n8n 真实切换/回滚演练。它要求先在本地 n8n 完成 owner 初始化并生成 N8N_API_KEY,属于必须人工提供凭据的破坏性切换演练;当前未伪造该凭据。Docker 测试环境保持运行,完成 n8n 初始化后可单独补跑该用例。