merge: SQL平台代码v1 优化包合并 — 193条审核规则 + 16页面UI优化

后端新增 (Step 1):
- mysql_audit_rules.py: 63条 MySQL审核规则 (DDL 36 + DML 9 + 命名 5 + 性能 5 + 安全 5)
- redis_audit_rules.py: 43条 Redis审核规则 (KEY管理 10 + 命令安全 12 + 数据结构 8 + 性能 8 + 安全 5)
- mongodb_audit_rules.py: 42条 MongoDB审核规则 (集合管理 + 查询安全 + 聚合管道 + 写入安全 + 性能)
- postgres_audit_rules.py: 45条 PostgreSQL审核规则 (DDL 18 + DML 8 + DQL 6 + 安全 6 + 性能 7)

后端合并 (Step 2):
- audit_engine_v2.py: 新增4个DB规则模块import (100+→200+规则)
- audit_rule_seeds.py: 新增30条MongoDB种子规则 + 别名映射
- audit_rule.py: 新增数据库类型别名 (postgresql→postgres, pg→postgres, mongo→mongodb)

前端优化 (Step 4) — 16页面全覆盖:
- InstancePage, WorkflowPage, TicketsPage, TicketCreatePage, TicketDetailPage
- UsersPage, SlowQueryPage, DataDictionaryPage, Dashboard
- InstanceGroupPage, AuditLogsPage, QueriesPage, AuditRulesPage, RolesPage
- useAuth.tsx, SqlEditor.tsx

后端测试 895/895 通过, 前端 tsc --noEmit 通过
This commit is contained in:
logan committed 2026-05-23 16:46:13 +08:00
1 parent e1ba8b3327
commit 58eb78c987
24 files changed
+16333 -2225

No files matched your search

+20 -2
View File
@@ -31,7 +31,10 @@ async def list_audit_rules(
if severity:
stmt = stmt.where(AuditRule.severity == severity)
if db_type:
stmt = stmt.where((AuditRule.db_type == db_type) | (AuditRule.db_type == "all"))
# 支持类型别名: postgresql -> postgres, mongo -> mongodb
db_type_aliases = {"postgresql": "postgres", "pg": "postgres", "mongo": "mongodb"}
resolved = db_type_aliases.get(db_type.lower(), db_type.lower())
stmt = stmt.where((AuditRule.db_type == resolved) | (AuditRule.db_type == db_type) | (AuditRule.db_type == "all"))
if is_enabled is not None:
stmt = stmt.where(AuditRule.is_enabled == is_enabled)
@@ -80,8 +83,23 @@ async def seed_audit_rules(
db: AsyncSession = Depends(get_db),
current_user: User = Depends(require_role("admin")),
):
"""批量初始化预设审核规则种子数据。"""
"""批量初始化预设审核规则种子数据。
支持4种数据库类型:
- mysql: MySQL 专用规则 (60+ 条)
- postgres: PostgreSQL 专用规则 (45+ 条)
- redis: Redis 专用规则 (43+ 条)
- mongodb: MongoDB 专用规则 (42+ 条)
"""
db_type_lower = db_type.lower()
# 别名映射
db_type_aliases = {
"postgresql": "postgres",
"pg": "postgres",
"mongo": "mongodb",
}
db_type_lower = db_type_aliases.get(db_type_lower, db_type_lower)
if db_type_lower not in SEED_RULES_MAP:
raise HTTPException(
status_code=400,