MingJie 数据分类分级治理平台
数据资产发现 · 自动分类分级 · 敏感数据识别 · 脱敏加密策略 · 全链路审计
MingJie 是一款面向数据安全合规场景的数据分类分级治理平台。通过自动化的数据资产发现、智能分类分级引擎和灵活的保护策略,帮助快速建立数据安全治理体系。
|
多维度数据资产统计仪表盘,支持全量数据、表级数据、遗漏数据等视图,一目了然掌握数据治理全局。 |
树形资产分组体系,自动采集数据库/表/列元数据,构建完整的数据资产目录。 |
|
多源数据库连接,批量导入任务编排,字段级采样策略,实时进度追踪与异常处理。 |
基于 Cron 表达式的定时扫描规则,自动发现新增数据资产,扫描结果可一键认领入库。 |
|
模板化分类框架 + 正则规则引擎,支持公开/内部/机密/绝密四级数据分级,任务化批量执行。 |
基于数据级别的脱敏与加密策略定义,关联分类结果自动匹配保护规则。 |
|
全操作审计追踪,覆盖认证、资产管理、分类任务、自动扫描等完整业务链路。 |
RBAC 细粒度权限模型,8 个权限组 23 项权限,内置四种预设角色开箱即用。 |
Docker 部署成功后访问 http://localhost:8000,可以看到以下产品界面:
默认模板的标准依据、分级边界和规则维护方法见 分类分级基线说明。 内置加密与脱敏识别范围、格式来源和识别边界见 加密与脱敏特征基线。
┌─────────────────────────────────────────────────────┐
│ 前端 (React 19) │
│ UMI Max · Ant Design 5 · Pro Components │
└──────────────────────┬──────────────────────────────┘
│ HTTP / REST API
┌──────────────────────▼──────────────────────────────┐
│ 后端 (NestJS 11) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │ 认证鉴权 │ │ 资产管理 │ │ 分类引擎 │ │ 自动扫描│ │
│ │ JWT+RBAC │ │ 导入/发现 │ │ 模板/规则 │ │ 定时任务│ │
│ └──────────┘ └──────────┘ └──────────┘ └────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │ 脱敏加密 │ │ 审计日志 │ │ 用户角色 │ │ 任务调度│ │
│ └──────────┘ └──────────┘ └──────────┘ └────────┘ │
│ │
│ Prisma ORM · Swagger/OpenAPI │
└──────────────────────┬──────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────┐
│ MySQL 8.4 │
│ Docker Compose 容器编排 │
└─────────────────────────────────────────────────────┘
| 依赖 | 版本要求 |
|---|---|
| Docker & Docker Compose | latest |
| 系统内存 | >= 3.6 GB |
git clone https://github.com/Junp0/MingJie.git
cd MingJie
docker compose -f docker-compose.prod.yml up -d --build启动后,前端、后端、数据库分别运行在独立容器中:
容器与端口:
| 容器 | 地址 | 说明 |
|---|---|---|
mingjie-frontend |
http://localhost:8000 | nginx 静态站点,反代 /api 到后端 |
mingjie-backend |
http://localhost:3001 | NestJS API,启动时自动执行 Prisma 迁移 |
mingjie-mysql |
127.0.0.1:3307 | MySQL 8.4 |
常用命令:
# 查看日志
docker compose -f docker-compose.prod.yml logs -f
# 停止服务
docker compose -f docker-compose.prod.yml down
# 停止并清理数据库卷
docker compose -f docker-compose.prod.yml down -v如果构建时卡在 failed to fetch anonymous token、TLS handshake timeout 或基础镜像 metadata 拉取阶段,说明当前网络无法稳定访问 Docker Hub。可以先验证基础镜像:
docker pull node:22-alpine
docker pull nginx:1.27-alpine
docker pull mysql:8.4也可以通过环境变量替换基础镜像来源,例如使用企业内网 registry 或已配置好的镜像源:
NODE_IMAGE=your-registry/library/node:22-alpine \
NGINX_IMAGE=your-registry/library/nginx:1.27-alpine \
docker compose -f docker-compose.prod.yml up -d --build| 服务 | 地址 | 说明 |
|---|---|---|
| 前端界面 | http://localhost:8000 | 数据治理操作台 |
| 后端 API | http://localhost:3001 | RESTful 接口 |
| API 文档 | http://localhost:3001/docs | Swagger UI |
| 数据库 | 127.0.0.1:3307 | MySQL 实例 |
Docker Compose 会读取项目根目录 .env 中的环境变量;未配置时使用下表默认值:
| 变量 | 说明 | 默认值 |
|---|---|---|
MYSQL_ROOT_PASSWORD |
MySQL root 密码 | root_password |
MYSQL_DATABASE |
应用数据库名 | my_ant_design_pro |
MYSQL_USER |
应用数据库用户 | app |
MYSQL_PASSWORD |
应用数据库密码 | app_password |
JWT_SECRET |
JWT 签名密钥(生产环境务必替换) | replace-with-your-jwt-secret |
NODE_IMAGE |
后端/前端构建使用的 Node.js 基础镜像 | node:22-alpine |
NGINX_IMAGE |
前端运行使用的 Nginx 基础镜像 | nginx:1.27-alpine |
系统采用 RBAC 权限模型,共 8 个权限组、23 项细粒度权限。
| 预设角色 | 权限范围 | 适用场景 |
|---|---|---|
| 超级管理员 | 全部 23 项权限 | 系统管理、全局配置 |
| 数据管理员 | 数据资产 + 分类分级完整权限 | 日常数据治理操作 |
| 审计员 | 各模块只读 + 审计日志查看 | 合规审计、安全审查 |
| 只读用户 | 基础模块只读权限 | 数据浏览、报告查看 |
支持自定义角色创建,灵活组合权限项。
MingJie/
├── backend/ # 后端服务
│ ├── src/
│ │ ├── auth/ # JWT 认证 & RBAC 鉴权
│ │ ├── users/ # 用户管理
│ │ ├── roles/ # 角色 & 权限管理
│ │ ├── asset-groups/ # 资产分组(树形结构)
│ │ ├── data-assets/ # 数据资产目录
│ │ ├── import-tasks/ # 数据导入任务
│ │ ├── classification-tasks/ # 分类分级任务执行
│ │ ├── classification-templates/ # 分类模板管理
│ │ ├── auto-scan/ # 自动扫描引擎
│ │ ├── protection-features/ # 脱敏 & 加密策略
│ │ ├── data-overview/ # 数据总览统计
│ │ ├── audit-logs/ # 审计日志
│ │ └── task-scheduler/ # 后台任务调度
│ └── prisma/
│ ├── schema.prisma # 数据模型定义
│ └── migrations/ # 数据库迁移记录
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ ├── services/ # API 调用层
│ │ └── components/ # 公共组件
│ └── config/
│ ├── routes.ts # 路由配置
│ └── config.ts # UMI 配置
├── scripts/ # 运维脚本
│ └── monitor.sh # 系统资源监控
├── docker-compose.prod.yml # Docker 启动编排
├── docker-compose.yml # 数据库容器编排
└── docker-compose.import-test.yml # 测试数据库编排
提供独立的 MySQL 实例用于导入功能测试,不影响主业务数据库:
# 启动测试实例
docker compose -f docker-compose.import-test.yml up -d
# 清理并重建
docker compose -f docker-compose.import-test.yml down -v
docker compose -f docker-compose.import-test.yml up -d| 实例 | 端口 | 数据库 | 用户名 | 密码 |
|---|---|---|---|---|
| 测试库 A | 3308 | import_demo_mysql_3308 | importer | importer123 |
| 测试库 B | 3310 | import_demo_mysql_3310 | importer | importer123 |
| 层级 | 技术 | 版本 |
|---|---|---|
| 前端框架 | React + UMI Max | 19 / 4.3 |
| UI 组件 | Ant Design + Pro Components | 5.x / 2.x |
| 数据可视化 | Ant Design Charts | 2.6 |
| 后端框架 | NestJS | 11 |
| ORM | Prisma | 6.x |
| 数据库 | MySQL | 8.4 |
| 认证 | JWT + Passport.js | — |
| API 文档 | Swagger / OpenAPI | — |
| 容器化 | Docker Compose | — |
| 语言 | TypeScript | 5.x |
MingJie 采用 MIT License 开源协议。