# 数据研发 V60-V65 验收报告 日期:2026-07-22 ## 1. 验收结论 V60-V65 的非外部依赖开发项全部完成:多源采集、证据治理、数据元素生命周期、本体 MVP、动态本体、交换/知识/MCP 服务、运营对账、Vue 2 完整工作流及发布副本均已交付。最终状态为“代码验收通过;真实外部服务集成待可用 Docker/发布环境补跑”。 ## 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` | | `PATH=:$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 三段采用规范编码,专项测试与全量回归均已通过。 ## 4. 安全与治理断言 - OCR 未配置时失败关闭,HTTP 提供方必须 HTTPS、TLS 校验、超时和响应大小限制。 - 上传文件同时校验扩展名、MIME、文件头、大小/页数;旧 DOC 要求转换为 DOCX。 - 证据预览脱敏,原件下载要求 `evidence:download`。 - 候选项不能直接发布;数据元素和本体发布分别要求独立发布权限。 - 发布版本不可变;回滚创建新版本;Neo4j/知识文档通过 Outbox/对账修复,不覆盖 PostgreSQL 历史。 - AI 建议必须携带证据、置信度、模型/提示版本;未决建议不进入草稿或发布。 - 语义查询使用固定深度与固定 Cypher,只返回已发布、业务域范围内的白名单字段。 ## 5. 环境受限项 `docker compose -f deploy/docker/docker-compose.yml ps` 返回 Docker daemon 未运行。因此以下真实服务测试在本机保持跳过,不用单元假件结果冒充生产集成结果: - Alembic 在临时 PostgreSQL 数据库的重复升级/降级与实际表检查。 - PostgreSQL/MySQL 目录采集及查询超时集成。 - PostgreSQL Outbox 与 Neo4j 投影重试/幂等的真实跨存储验证。 - MinIO 原件上传、哈希复用、缺失工件对账。 - MCP stdio/canary 依赖的外部运行环境及真实服务权限验证。 这些检查不阻断代码验收,但在生产发布前必须在 Docker 或等价预发布环境补跑,并将结果附加到本报告。