文件最后提交记录最后更新时间
feat(notification): 添加通知渠道和告警规则关联表 新增notification_channels表用于管理通知渠道配置, 新增alert_rule_channels表用于建立告警规则与通知渠道的多对多关系, 支持webhook类型的通知渠道配置和激活状态管理。 2 天前
fix: 修复MySQL元数据同步失败 5 小时前
fix: 修复MySQL元数据同步失败 5 小时前
feat: 完善管理功能 — 用户管理优化、元数据搜索、查询历史、API Key 可重复查看 主要变更: - 用户管理:管理员可编辑用户(角色/状态/重置密码)、按账号生成/撤销 API Key - API Key:改为加密存储,支持重复查看;重新生成时旧 Key 失效并弹确认框 - 权限控制:非管理员设置页面隐藏用户管理,仅显示修改密码和我的 API Key - 元数据搜索:支持按表名/列名关键词搜索,结果分表和列两组展示 - SQL 查询:新增查询历史面板(右侧抽屉)、CSV 导出、历史记录回放和删除 - 脱敏规则管理:CRUD API + 列规则分配 + 前端管理页面 - 自定义 API 管理:CRUD API + 测试调用 + SSRF 防护 + 前端管理页面 - Docker 部署:前后端 Dockerfile + docker-compose + nginx 反向代理 + 健康检查 - 安全增强:SSRF 防护(阻止 RFC1918/回环/链路本地/云元数据地址) 4 天前
feat: Oracle 11g thick 模式支持 — 同步引擎包装、方言感知行数限制、表注释同步 - pool_manager: Oracle 使用同步 engine + asyncio.to_thread 包装,解决 thick 模式与 async 不兼容问题 - security: apply_row_limit 支持 dialect 参数,Oracle 使用 ROWNUM 包装替代 LIMIT/FETCH FIRST - metadata: 四种数据源(PG/MySQL/MSSQL/Oracle)元数据同步均采集表注释 - query: 行数限制移至数据源类型确定后执行,确保方言正确 - datasource API: 测试连接兼容 sync/async engine,Oracle 使用 SELECT 1 FROM DUAL - config: 新增 oracle_client_dir 配置项 2 天前
feat: DataNexus 企业AI统一数据网关平台初始提交 后端(FastAPI + SQLAlchemy 2.0 async + PostgreSQL): - JWT 认证 + RBAC 权限控制(admin/analyst/viewer) - 数据源管理(CRUD + 连接测试 + 密码加密存储) - 元数据同步(表结构 + 列信息从真实数据源拉取) - SQL 查询服务(sqlglot AST 风控 + 行数限制 + 数据脱敏) - MCP 协议出口(SSE transport + get_database_schema/query_database/call_custom_api) - 审计日志(全操作记录) - 仪表盘统计 API - 用户管理 API(CRUD + 修改密码) - 启动时自动创建默认管理员和角色 - Alembic 数据库迁移 前端(Vue 3 + TypeScript + Vite 8 + Naive UI + Pinia): - 登录/登出 + Token 管理 - 监控仪表盘(统计卡片 + ECharts 查询趋势图) - 数据源管理(列表 + 新增/编辑 + 测试连接) - 元数据浏览(数据源选择 + 表列表 + 列信息) - SQL 查询(Monaco Editor + 结果表格) - 审计日志(筛选 + 分页) - 系统设置(用户管理 + 修改密码) 4 天前
feat: 增强监控告警、限流与元数据治理 3 天前
fix: 优化数据源连接超时配置 5 小时前
feat: DataNexus 企业AI统一数据网关平台初始提交 后端(FastAPI + SQLAlchemy 2.0 async + PostgreSQL): - JWT 认证 + RBAC 权限控制(admin/analyst/viewer) - 数据源管理(CRUD + 连接测试 + 密码加密存储) - 元数据同步(表结构 + 列信息从真实数据源拉取) - SQL 查询服务(sqlglot AST 风控 + 行数限制 + 数据脱敏) - MCP 协议出口(SSE transport + get_database_schema/query_database/call_custom_api) - 审计日志(全操作记录) - 仪表盘统计 API - 用户管理 API(CRUD + 修改密码) - 启动时自动创建默认管理员和角色 - Alembic 数据库迁移 前端(Vue 3 + TypeScript + Vite 8 + Naive UI + Pinia): - 登录/登出 + Token 管理 - 监控仪表盘(统计卡片 + ECharts 查询趋势图) - 数据源管理(列表 + 新增/编辑 + 测试连接) - 元数据浏览(数据源选择 + 表列表 + 列信息) - SQL 查询(Monaco Editor + 结果表格) - 审计日志(筛选 + 分页) - 系统设置(用户管理 + 修改密码) 4 天前
feat: DataNexus 企业AI统一数据网关平台初始提交 后端(FastAPI + SQLAlchemy 2.0 async + PostgreSQL): - JWT 认证 + RBAC 权限控制(admin/analyst/viewer) - 数据源管理(CRUD + 连接测试 + 密码加密存储) - 元数据同步(表结构 + 列信息从真实数据源拉取) - SQL 查询服务(sqlglot AST 风控 + 行数限制 + 数据脱敏) - MCP 协议出口(SSE transport + get_database_schema/query_database/call_custom_api) - 审计日志(全操作记录) - 仪表盘统计 API - 用户管理 API(CRUD + 修改密码) - 启动时自动创建默认管理员和角色 - Alembic 数据库迁移 前端(Vue 3 + TypeScript + Vite 8 + Naive UI + Pinia): - 登录/登出 + Token 管理 - 监控仪表盘(统计卡片 + ECharts 查询趋势图) - 数据源管理(列表 + 新增/编辑 + 测试连接) - 元数据浏览(数据源选择 + 表列表 + 列信息) - SQL 查询(Monaco Editor + 结果表格) - 审计日志(筛选 + 分页) - 系统设置(用户管理 + 修改密码) 4 天前
feat: DataNexus 企业AI统一数据网关平台初始提交 后端(FastAPI + SQLAlchemy 2.0 async + PostgreSQL): - JWT 认证 + RBAC 权限控制(admin/analyst/viewer) - 数据源管理(CRUD + 连接测试 + 密码加密存储) - 元数据同步(表结构 + 列信息从真实数据源拉取) - SQL 查询服务(sqlglot AST 风控 + 行数限制 + 数据脱敏) - MCP 协议出口(SSE transport + get_database_schema/query_database/call_custom_api) - 审计日志(全操作记录) - 仪表盘统计 API - 用户管理 API(CRUD + 修改密码) - 启动时自动创建默认管理员和角色 - Alembic 数据库迁移 前端(Vue 3 + TypeScript + Vite 8 + Naive UI + Pinia): - 登录/登出 + Token 管理 - 监控仪表盘(统计卡片 + ECharts 查询趋势图) - 数据源管理(列表 + 新增/编辑 + 测试连接) - 元数据浏览(数据源选择 + 表列表 + 列信息) - SQL 查询(Monaco Editor + 结果表格) - 审计日志(筛选 + 分页) - 系统设置(用户管理 + 修改密码) 4 天前
feat: DataNexus 企业AI统一数据网关平台初始提交 后端(FastAPI + SQLAlchemy 2.0 async + PostgreSQL): - JWT 认证 + RBAC 权限控制(admin/analyst/viewer) - 数据源管理(CRUD + 连接测试 + 密码加密存储) - 元数据同步(表结构 + 列信息从真实数据源拉取) - SQL 查询服务(sqlglot AST 风控 + 行数限制 + 数据脱敏) - MCP 协议出口(SSE transport + get_database_schema/query_database/call_custom_api) - 审计日志(全操作记录) - 仪表盘统计 API - 用户管理 API(CRUD + 修改密码) - 启动时自动创建默认管理员和角色 - Alembic 数据库迁移 前端(Vue 3 + TypeScript + Vite 8 + Naive UI + Pinia): - 登录/登出 + Token 管理 - 监控仪表盘(统计卡片 + ECharts 查询趋势图) - 数据源管理(列表 + 新增/编辑 + 测试连接) - 元数据浏览(数据源选择 + 表列表 + 列信息) - SQL 查询(Monaco Editor + 结果表格) - 审计日志(筛选 + 分页) - 系统设置(用户管理 + 修改密码) 4 天前
README.md

DataNexus 后端

企业AI统一数据网关平台后端服务,提供 MCP 协议 + HTTP REST API 双出口能力。

技术栈

  • Python 3.11+
  • FastAPI + Uvicorn
  • SQLAlchemy 2.0 (async) + PostgreSQL
  • 官方 MCP Python SDK
  • Pydantic V2

环境管理

本项目使用 uv 管理 Python 环境和依赖。

初始化环境

cd backend
uv venv
uv pip install -e ".[dev]"

运行服务

uv run uvicorn app.main:app --reload --port 8000

运行测试

uv run pytest -v

项目结构

backend/
├── app/
│   ├── main.py          # FastAPI 入口
│   ├── core/            # 核心配置(settings、数据库、安全)
│   ├── models/          # SQLAlchemy 数据模型
│   ├── schemas/         # Pydantic 请求/响应模型
│   ├── services/        # 核心业务逻辑(双出口共用)
│   ├── api/             # HTTP REST API 路由
│   ├── mcp/             # MCP 协议出口
│   ├── datasource/      # 多数据源连接池管理
│   └── middleware/      # 中间件(限流等)
├── tests/               # 测试
├── pyproject.toml       # 项目配置
└── Dockerfile

API 端点

路径 说明
GET /health 健康检查
POST /api/v1/auth/login 用户登录
GET /api/v1/datasources 数据源列表
POST /api/v1/datasources 创建数据源
GET /api/v1/metadata/tables/{id} 获取表列表
GET /api/v1/metadata/columns/{id} 获取字段列表
POST /api/v1/query/execute 执行SQL查询
GET /api/v1/audit/logs 审计日志查询

MCP 工具

工具名 说明
get_database_schema 获取数据库元数据
query_database 安全SQL查询(仅SELECT)
call_custom_api 调用封装的内部API

环境变量

参考 .env.example 配置 .env 文件。