refactor: mock清理+安全配置+通用组件+菜单优化

P0安全: SECRET_KEY/ADMIN_PASSWORD/CORS环境变量化, seed仅admin

P1Mock: mock.ts 301->88行, 删8数据mock+5generateMock, net-1300行

P2组件: useToast/useFetchList+ConfirmDialog/FormDialog

P3菜单: menuSections/menuItems->constants/menu.ts

P4API: NotificationsPage/WorkflowPage重写+RolesPage演示

测试: 1050passed, tsc clean
This commit is contained in:
logan committed 2026-05-24 02:42:29 +08:00
1 parent ec3a03cf38
commit 8b921c6c83
33 files changed
+1734 -2006

No files matched your search

+24
View File
@@ -65,6 +65,30 @@ async def execute_query(
if current_user.role == "guest":
raise HTTPException(status_code=403, detail="访客无权执行查询,请联系管理员申请权限")
# ── 系统设置集成 ──
from app.api.v1.endpoints.settings import get_setting_value
require_approval = await get_setting_value(db, "query_require_approval", False)
max_limit = await get_setting_value(db, "query_max_limit", 10000)
query_timeout = await get_setting_value(db, "query_timeout", 30)
max_length = await get_setting_value(db, "query_max_length", 10000)
auto_limit = await get_setting_value(db, "query_auto_limit", True)
enable_masking = await get_setting_value(db, "query_enable_masking", True)
save_hist = await get_setting_value(db, "query_save_history", True)
# 查询审批检查
if require_approval and current_user.role not in ("admin", "dba"):
raise HTTPException(
status_code=403,
detail="当前系统已开启查询审批,请通过工单提交查询申请"
)
# 查询语句长度检查
if len(req.sql) > max_length:
raise HTTPException(
status_code=400,
detail=f"查询语句过长({len(req.sql)} 字符),上限 {max_length} 字符"
)
# 查询实例信息
result = await db.execute(select(Instance).where(Instance.id == req.instance_id))
instance = result.scalar_one_or_none()