feat: 项目重命名 SQL-Platform + 数据源表单重写(连接模式/流程/排除DB/脱敏)

- 项目名称 Web-Lite Pro → SQL-Platform 全局替换(13处)
- Instance 模型新增: access_mode, workflow, excluded_databases, mask_fields
- 创建数据源表单: 分区卡片(数据源信息/连接模式/流程/高级配置)
- 后端 JSON 字段序列化/反序列化
- 新增 5 个 Instance 字段测试 (133 total)
This commit is contained in:
logan committed 2026-05-22 22:08:05 +08:00
1 parent 1877522239
commit d5d19d6be4
16 files changed
+366 -73

No files matched your search

+25 -1
View File
@@ -1,6 +1,18 @@
from datetime import datetime
from pydantic import BaseModel, Field
from typing import Optional, Literal
from typing import Optional, Literal, List, Any
class WorkflowStage(BaseModel):
stage: str = Field(..., description="阶段名称,如:提交阶段、审核阶段、执行阶段")
role: str = Field(..., description="角色,如:提交人、开发负责人、执行人")
assignee: Optional[str] = Field(None, description="负责人用户名")
class MaskFieldRule(BaseModel):
table: str = Field(..., description="表名")
field: str = Field(..., description="字段名")
rule: str = Field(default="mask", description="脱敏规则:mask/hide/hash")
class InstanceCreate(BaseModel):
@@ -13,6 +25,10 @@ class InstanceCreate(BaseModel):
database: Optional[str] = None
env: Literal["production", "staging", "development"] = "development"
description: Optional[str] = None
access_mode: Literal["readwrite", "read", "write"] = "readwrite"
workflow: Optional[List[WorkflowStage]] = None
excluded_databases: Optional[List[str]] = None
mask_fields: Optional[List[MaskFieldRule]] = None
class InstanceUpdate(BaseModel):
@@ -24,6 +40,10 @@ class InstanceUpdate(BaseModel):
database: Optional[str] = None
env: Optional[Literal["production", "staging", "development"]] = None
description: Optional[str] = None
access_mode: Optional[Literal["readwrite", "read", "write"]] = None
workflow: Optional[List[WorkflowStage]] = None
excluded_databases: Optional[List[str]] = None
mask_fields: Optional[List[MaskFieldRule]] = None
class InstanceResponse(BaseModel):
@@ -38,6 +58,10 @@ class InstanceResponse(BaseModel):
description: Optional[str] = None
status: str
version: Optional[str] = None
access_mode: str = "readwrite"
workflow: Optional[List[dict]] = None
excluded_databases: Optional[List[str]] = None
mask_fields: Optional[List[dict]] = None
created_at: datetime
class Config: