# 数据研发 V60-V65 验收报告 日期:2026-07-22(2026-07-23 补充本体工作台完整链路验收) ## 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/test_permission_matrix.py` | `87 passed` | | `PYTHONPATH=. .venv/bin/pytest -q` | `380 passed, 25 skipped, 59 subtests passed` | | Docker 真实服务集成矩阵(含数据源故障恢复、Runner、Kestra、n8n、MCP、RBAC、迁移) | `64 passed` | | 数据研发容器 HTTP 端到端(CSV/MinIO/任务/双业务域本体/Outbox) | `1 passed` | | 启用全部本地集成开关后的全仓回归 | `397 passed, 59 subtests passed` | | `PATH=:$PATH npm --prefix frontend run build` | 构建成功;0 error,21 条既有 `no-console` 警告,另有依赖年龄/CSS 顺序/包体积警告 | | `.venv/bin/python scripts/generate_openapi.py --output docs/architecture/OPENAPI.yaml` | 142 个操作 | | `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 链路。 - n8n 临时流程创建、Kestra 切换失败恢复、成功切换与显式回滚;既有 API Key 仅在测试进程内读取,未显示或落盘。 - 数据研发 CSV 上传到 MinIO、哈希复用、采集任务幂等/取消、双业务域本体创建/校验/发布/导出及 Outbox 事件。 - RBAC、V54 离线模型降级、跨存储 Outbox 失败重试和幂等消费。 本轮本地 Docker 集成矩阵无跳过项。Docker 测试环境保持运行,供后续浏览器验收或继续开发使用。 ## 6. 本体工作台完整链路补充验收 2026-07-23 在 `http://localhost:18183` 完成本体中心与工作台补充验收: - 本体中心支持主责域、协作域建模并进入工作台;viewer 可只读访问,editor 可编辑,admin 可发布和回滚。 - 工作台支持概念、属性、关系、约束、业务域和数据元素映射六类对象的结构化增删改,并保留高级 JSON 入口。 - 详情、图谱、版本列表和 ETag 修订读取完整;保存草稿后数据库内容与页面修订号一致。 - 校验问题以可读结果返回,不再因 422 被前端拦截;补齐主责域后校验通过。 - 版本差异展示新增概念和业务域;发布后版本不可变,回滚从已发布版本创建新草稿。 - 动态建议展示来源、证据和置信度,支持接受、拒绝、编辑后接受及评审意见;接受结果需再次保存草稿。 - JSON/OWL 导出入口可用;JSON multipart 导入通过真实 Docker API 上传、创建新本体并读取新图谱验证,页面导入弹窗和同路由 UID 切换刷新逻辑已验证。 - 浏览器实际捕获并修复请求封装缺少 `patch` 及 `If-Match` 覆盖 `Content-Type` 两个运行时问题;修复后页面保存、数据库图谱、校验和版本记录一致,浏览器控制台无 error/warning。 补充验证证据: | 验收项 | 结果 | |---|---| | 前端本体模型 Node 测试 | `5 passed` | | 前端生产构建 | 成功;0 error,保留 21 条既有 `no-console` 警告及既有依赖/CSS/包体积提示 | | Docker 数据研发 HTTP 集成 | `1 passed`,覆盖详情、图谱、版本、ETag、校验、发布、导出和 multipart 导入 | | 浏览器工作台完整操作 | 草稿修订推进至 5;保存、校验、发布、差异、回滚、建议评审、导出均通过 | | Docker 服务状态 | backend、frontend、PostgreSQL、Neo4j、MinIO 等验收服务 healthy |