feat: 数据源编辑加排除数据库+脱敏字段+审批流关联; 权限组Transfer改为选择实例

- EditInstanceDialog: 新增排除数据库(逗号分隔)、脱敏字段(动态表单+表/字段/规则)、审批流程关联
- Instance: workflow JSON字段改为workflow_id FK关联workflow_definitions表
- InstanceGroupPage: Transfer穿梭框从选数据库改为选实例(数据源)
- 后端instance API返回workflow_name, _get_workflow_names批量查询
- DB迁移: instances表添加workflow_id列
- 37个测试全部通过
This commit is contained in:
logan committed 2026-05-24 19:36:39 +08:00
1 parent 4111e1eee8
commit 128de64592
6 files changed
+268 -211

No files matched your search

+4 -3
View File
@@ -26,7 +26,7 @@ class InstanceCreate(BaseModel):
env: Literal["production", "staging", "development"] = "development"
description: Optional[str] = None
access_mode: Literal["readwrite", "read", "write"] = "readwrite"
workflow: Optional[List[WorkflowStage]] = None
workflow_id: Optional[int] = Field(None, description="关联的审批流程ID")
excluded_databases: Optional[List[str]] = None
mask_fields: Optional[List[MaskFieldRule]] = None
@@ -41,7 +41,7 @@ class InstanceUpdate(BaseModel):
env: Optional[Literal["production", "staging", "development"]] = None
description: Optional[str] = None
access_mode: Optional[Literal["readwrite", "read", "write"]] = None
workflow: Optional[List[WorkflowStage]] = None
workflow_id: Optional[int] = Field(default=None, description="关联的审批流程ID,设为0清除关联")
excluded_databases: Optional[List[str]] = None
mask_fields: Optional[List[MaskFieldRule]] = None
@@ -59,7 +59,8 @@ class InstanceResponse(BaseModel):
status: str
version: Optional[str] = None
access_mode: str = "readwrite"
workflow: Optional[List[dict]] = None
workflow_id: Optional[int] = None
workflow_name: Optional[str] = None
excluded_databases: Optional[List[str]] = None
mask_fields: Optional[List[dict]] = None
created_at: datetime