feat: 全量功能模块开发与集成测试修复

- 新增后端模块:Alert、APIAsset、Compliance、Lineage、Masking、Risk、SchemaChange、Unstructured、Watermark
- 新增前端模块页面与API接口
- 新增Alembic迁移脚本(002-014)覆盖全量业务表
- 新增测试数据生成脚本与集成测试脚本
- 修复metadata模型JSON类型导入缺失导致启动失败的问题
- 修复前端Alert/APIAsset页面request模块路径错误
- 更新docker-compose与开发计划文档
This commit is contained in:
hiderfong
2026-04-25 08:51:38 +08:00
parent 8b2bc84399
commit 6d70520e79
110 changed files with 6125 additions and 87 deletions
+162
View File
@@ -0,0 +1,162 @@
# DataPointer 开发计划书
> 版本:v1.0 | 日期:2026-04-23
---
## 一、现状评估
| 模块 | 当前状态 | 关键债务/缺口 |
|------|---------|-------------|
| 数据源管理 | MySQL/PG/Oracle/SQLServer + 达梦(mock) | 达梦未真实支持;密码加密密钥运行时随机生成,重启后无法解密 |
| 元数据采集 | 库/表/字段基础采集 | 全量扫描,缺少增量与 Schema 变更追踪 |
| 分类引擎 | 正则/关键词/枚举规则 | scikit-learn 已引入但未使用;Celery 任务为 placeholder |
| 项目管理 | 创建/分配/打标/发布 | 无 ML 辅助推荐 |
| 报告 | Word 导出 | 无 Excel/PDF;无风险摘要 |
| 安全能力 | 无 | 无脱敏、无水印 |
| 风险管理 | 无 | 无量化评分、无合规对标 |
| 非结构化 | 模型已建(UnstructuredFile | 功能未实现 |
---
## 二、整体里程碑
```
第一阶段(核心引擎加固 + 智能化) 4 周
第二阶段(安全能力补齐 + 体验升级) 5 周
第三阶段(风险管理 + 合规 + 血缘) 6 周
------------------------------------------------------------------------
合计 15 周 约 3.5 个月
```
---
## 三、第一阶段:核心引擎加固与智能化(4 周)
### T1.1 修复数据源密码加密(P0)
- **方案**config.py 新增 DB_ENCRYPTION_KEY,读取环境变量;datasource_service.py 改用该密钥;提供 Alembic 迁移脚本处理历史数据。
- **验收**:重启后历史数据源仍可正常连接;密钥外部注入。
- **工时**2d
### T1.2 Celery 异步分类落地(P0
- **方案**:将 run_auto_classification 逻辑迁入 Celery TaskProject 增加 scan_progress 字段;后端提供 progress 轮询接口;前端增加进度条与后台执行开关。
- **验收**:万级字段分类 HTTP 不阻塞;前端实时显示进度。
- **工时**4d
### T1.3 ML 辅助分类原型(P1
- **方案**:新增 MLModelVersion 模型;对字段 name/comment/sample_data 做 TF-IDF;用 LogisticRegression/RandomForest 训练;提供 ml-suggest 接口与前端一键采纳;训练任务封装为 Celery Task。
- **验收**:测试集 Top-1 准确率 >= 70%;前端展示推荐标签与置信度。
- **工时**8d
### T1.4 语义相似度规则(P1
- **方案**:新增 similarity 规则类型;用 TfidfVectorizer + cosine_similarity 计算字段名/注释与基准词相似度;阈值默认 0.75。
- **验收**mobile_no / cell_phone / contact_tel 可被同一条规则命中。
- **工时**3d
### T1.5 增量元数据采集(P1
- **方案**meta 表增加 last_scanned_at 与 checksum;采集时对比 information_schema 仅同步变更;删除对象做软删除保留历史。
- **验收**:重复采集未变更表不写库;源库新增表仅增量写入。
- **工时**4d
---
## 四、第二阶段:安全能力补齐与体验升级(5 周)
### T2.1 数据静态脱敏(P1
- **方案**:新增 MaskingRule 模型,支持 mask/truncate/hash/generalize/replace;脱敏预览与导出 API;前端策略配置与左右对比预览页。
- **验收**:身份证号/手机号按规则掩码导出;支持批量策略应用。
- **工时**8d
### T2.2 数据水印溯源(P2
- **方案**:文本水印采用零宽空格嵌入用户 ID;WatermarkLog 记录导出信息;溯源 API 提取水印追溯到用户。
- **验收**:导出 CSV 可复制后成功溯源到用户;不影响可读性。
- **工时**5d
### T2.3 Excel + PDF 报告(P1
- **方案**Excel 用 openpyxl 带条件格式与图表;PDF 采用前端 html2canvas + jspdf 方案,减少后端依赖。
- **验收**:支持 Word/Excel/PDF 三种导出;PDF 含统计图与 Top20 敏感清单。
- **工时**4d
### T2.4 达梦真实驱动(P2
- **方案**:优先 dmPythonfallback 用 jaydebeapi + JDBC;更新元数据采集适配达梦系统表。
- **验收**:可连接达梦并采集库表字段元数据。
- **工时**4d
### T2.5 非结构化文件识别(P2)
- **方案**:激活 UnstructuredFile;文件存 MinIO;用 python-docx/openpyxl/pdfplumber 解析文本;送入规则引擎识别敏感信息。
- **验收**Word/Excel 中的身份证号/手机号可被识别并建议 L4。
- **工时**6d
### T2.6 Schema 变更追踪(P2
- **方案**:新增 SchemaChangeLog 模型;增量采集时自动比对生成变更记录;前端数据源详情页展示变更历史。
- **验收**:源库新增敏感字段后平台生成变更记录并标红告警。
- **工时**4d
---
## 五、第三阶段:风险管理与合规(6 周)
### T3.1 风险评分模型(P1
- **方案**RiskScore = sum(Li * exposure * (1 - protection_rate));新增 RiskAssessment 模型四级聚合;Celery Beat 每日重算;Dashboard 增加风险趋势与排行。
- **验收**:项目生成 0-100 风险分;未脱敏敏感字段增加时分数上升。
- **工时**7d
### T3.2 合规检查引擎(P1
- **方案**:内置等保/PIPL/GDPR 检查规则;ComplianceChecker 可插拔基类;新增 ComplianceScan/ComplianceIssue;前端规则库与问题清单。
- **验收**:自动扫描出 L5 未脱敏等不合规项;可导出合规差距分析。
- **工时**7d
### T3.3 数据血缘分析(P2
- **方案**:引入 sqlparse 解析 SQL;新增 DataLineage 模型;前端 ECharts 关系图展示表级血缘,支持 3 层展开。
- **验收**:典型 ETL SQL 可正确构建血缘链。
- **工时**8d
### T3.4 风险告警与工单(P1
- **方案**AlertRule 模型配置触发条件;AlertRecord 记录告警;WorkOrder 简易工单流转(open -> in_progress -> resolved);站内消息中心。
- **验收**:新增 5 个 L5 字段自动生成告警并转工单指派。
- **工时**6d
### T3.5 API 资产扫描(P2
- **方案**:新增 ApiAsset 模型;上传 Swagger/OpenAPI 解析参数与响应 schema;规则引擎标记敏感接口。
- **验收**:上传含 phone/idCard 的 Swagger 后标记为暴露 L4 数据。
- **工时**5d
### T3.6 暗黑模式与性能优化(P2)
- **方案**Element Plus 动态主题 + Pinia 持久化;大表格虚拟滚动;路由懒加载。
- **验收**:一键切换暗黑/明亮无闪烁;5 万字段页面滚动 >= 30fps。
- **工时**4d
---
## 六、任务总览
| 编号 | 任务 | 阶段 | 优先级 | 工时 | 依赖 |
|------|------|------|--------|------|------|
| T1.1 | 修复密码加密密钥管理 | P1 | P0 | 2d | 无 |
| T1.2 | Celery 异步分类落地 | P1 | P0 | 4d | T1.1 |
| T1.3 | ML 辅助分类原型 | P1 | P1 | 8d | T1.2 |
| T1.4 | 语义相似度规则 | P1 | P1 | 3d | 无 |
| T1.5 | 增量元数据采集 | P1 | P1 | 4d | 无 |
| T2.1 | 数据静态脱敏 | P2 | P1 | 8d | T1.5 |
| T2.2 | 数据水印溯源 | P2 | P2 | 5d | T2.1 |
| T2.3 | Excel + PDF 报告 | P2 | P1 | 4d | 无 |
| T2.4 | 达梦真实驱动 | P2 | P2 | 4d | 无 |
| T2.5 | 非结构化文件识别 | P2 | P2 | 6d | T1.2 |
| T2.6 | Schema 变更追踪 | P2 | P2 | 4d | T1.5 |
| T3.1 | 风险评分模型 | P3 | P1 | 7d | T2.1, T2.6 |
| T3.2 | 合规检查引擎 | P3 | P1 | 7d | T3.1 |
| T3.3 | 数据血缘分析 | P3 | P2 | 8d | 无 |
| T3.4 | 风险告警与工单 | P3 | P1 | 6d | T3.1, T3.2 |
| T3.5 | API 资产扫描 | P3 | P2 | 5d | T1.4 |
| T3.6 | 暗黑模式与性能优化 | P3 | P2 | 4d | 无 |
**总计约 89 人天(单人约 3.5 个月;双人并行可压缩至 2 个月)**
---
## 七、确认事项
1. 三阶段范围:是否全部 17 项任务均需开发?有无可削减项?
2. 达梦环境:是否有真实达梦环境联调?若无,是否接受 jaydebeapi 桥接方案?
3. ML 训练数据:当前人工标注字段大约多少?若不足,是否构造模拟数据?
4. 启动顺序:是否从 T1.1 开始依次执行,还是允许阶段间少量并行?