# 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 Task；Project 增加 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）
- **方案**：优先 dmPython，fallback 用 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 开始依次执行，还是允许阶段间少量并行？
