Skip to content

Commit fd7204f

Browse files
committed
feat: Knowledge workflow import and export
1 parent 4fecd47 commit fd7204f

File tree

16 files changed

+477
-36
lines changed

16 files changed

+477
-36
lines changed

apps/common/constants/permission_constants.py

Lines changed: 68 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,9 @@ def get_workspace_role(self):
406406
Group.SYSTEM_RES_APPLICATION_ACCESS.value: _("Application Access"),
407407
Group.SYSTEM_RES_APPLICATION_CHAT_USER.value: _("Dialogue users"),
408408
Group.SYSTEM_RES_APPLICATION_CHAT_LOG.value: _("Conversation log"),
409+
Group.APPLICATION_FOLDER.value: _("Folder"),
410+
Group.KNOWLEDGE_FOLDER.value: _("Folder"),
411+
Group.TOOL_FOLDER.value: _("Folder"),
409412
# SystemGroup.RESOURCE.value: _("Resource"),
410413
}
411414

@@ -468,31 +471,6 @@ class PermissionConstants(Enum):
468471
TOOL = Permission(
469472
group=Group.TOOL, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
470473
)
471-
APPLICATION_FOLDER_READ = Permission(
472-
group=Group.APPLICATION_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
473-
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW]
474-
)
475-
APPLICATION_FOLDER_EDIT = Permission(
476-
group=Group.APPLICATION_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
477-
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
478-
)
479-
KNOWLEDGE_FOLDER_READ = Permission(
480-
group=Group.KNOWLEDGE_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
481-
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW]
482-
)
483-
KNOWLEDGE_FOLDER_EDIT = Permission(
484-
group=Group.KNOWLEDGE_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
485-
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE]
486-
)
487-
TOOL_FOLDER_READ = Permission(
488-
group=Group.TOOL_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
489-
resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
490-
)
491-
TOOL_FOLDER_EDIT = Permission(
492-
group=Group.TOOL_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
493-
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
494-
)
495-
496474
USER_READ = Permission(
497475
group=Group.USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
498476
parent_group=[SystemGroup.USER_MANAGEMENT]
@@ -578,6 +556,26 @@ class PermissionConstants(Enum):
578556
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
579557
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
580558
)
559+
TOOL_FOLDER_READ = Permission(
560+
group=Group.TOOL_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
561+
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
562+
resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
563+
)
564+
TOOL_FOLDER_CREATE = Permission(
565+
group=Group.TOOL_FOLDER, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
566+
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
567+
resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
568+
)
569+
TOOL_FOLDER_EDIT = Permission(
570+
group=Group.TOOL_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
571+
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
572+
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
573+
)
574+
TOOL_FOLDER_DELETE = Permission(
575+
group=Group.TOOL_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
576+
parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
577+
resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
578+
)
581579
KNOWLEDGE_READ = Permission(
582580
group=Group.KNOWLEDGE, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
583581
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
@@ -623,6 +621,26 @@ class PermissionConstants(Enum):
623621
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
624622
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
625623
)
624+
KNOWLEDGE_FOLDER_READ = Permission(
625+
group=Group.KNOWLEDGE_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
626+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
627+
parent_group = [WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
628+
)
629+
KNOWLEDGE_FOLDER_CREATE = Permission(
630+
group=Group.KNOWLEDGE_FOLDER, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
631+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
632+
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
633+
)
634+
KNOWLEDGE_FOLDER_EDIT = Permission(
635+
group=Group.KNOWLEDGE_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
636+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
637+
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
638+
)
639+
KNOWLEDGE_FOLDER_DELETE = Permission(
640+
group=Group.KNOWLEDGE_FOLDER, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
641+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
642+
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
643+
)
626644
KNOWLEDGE_WORKFLOW_READ = Permission(
627645
group=Group.KNOWLEDGE_WORKFLOW, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
628646
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
@@ -633,6 +651,11 @@ class PermissionConstants(Enum):
633651
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
634652
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
635653
)
654+
KNOWLEDGE_WORKFLOW_EXPORT = Permission(
655+
group=Group.KNOWLEDGE_WORKFLOW, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
656+
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
657+
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
658+
)
636659
KNOWLEDGE_DOCUMENT_READ = Permission(
637660
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.READ,
638661
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
@@ -926,6 +949,26 @@ class PermissionConstants(Enum):
926949
resource_permission_group_list=[
927950
ResourcePermissionConst.APPLICATION_MANGE],
928951
)
952+
APPLICATION_FOLDER_READ = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.READ,
953+
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
954+
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
955+
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW]
956+
)
957+
APPLICATION_FOLDER_CREATE = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.EDIT,
958+
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
959+
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
960+
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
961+
)
962+
APPLICATION_FOLDER_EDIT = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.EDIT,
963+
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
964+
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
965+
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
966+
)
967+
APPLICATION_FOLDER_DELETE = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.DELETE,
968+
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
969+
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
970+
resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
971+
)
929972
APPLICATION_OVERVIEW_READ = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.READ,
930973
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
931974
parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],

apps/common/utils/common.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ def get_sha256_hash(_v: str | bytes):
298298
("builtins", "dict"),
299299
('uuid', 'UUID'),
300300
("application.serializers.application", "MKInstance"),
301-
("tools.serializers.tool", "ToolInstance")
301+
("tools.serializers.tool", "ToolInstance"),
302+
("knowledge.serializers.knowledge_workflow", "KBWFInstance")
302303
}
303304

304305

apps/knowledge/api/knowledge_workflow.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
from drf_spectacular.utils import OpenApiParameter
44

55
from common.mixins.api_mixin import APIMixin
6-
from knowledge.serializers.knowledge_workflow import KnowledgeWorkflowActionRequestSerializer
6+
from common.result import DefaultResultSerializer
7+
from knowledge.serializers.knowledge_workflow import KnowledgeWorkflowActionRequestSerializer, \
8+
KnowledgeWorkflowImportRequest
79
from knowledge.serializers.knowledge_workflow import KnowledgeWorkflowActionListQuerySerializer
810

911

@@ -71,3 +73,39 @@ def get_parameters():
7173
required=True,
7274
)
7375
]
76+
77+
class KnowledgeWorkflowExportApi(APIMixin):
78+
@staticmethod
79+
def get_parameters():
80+
return [
81+
OpenApiParameter(
82+
name="workspace_id",
83+
description="工作空间id",
84+
type=OpenApiTypes.STR,
85+
location='path',
86+
required=True,
87+
),
88+
OpenApiParameter(
89+
name="knowledge_id",
90+
description="知识库id",
91+
type=OpenApiTypes.STR,
92+
location='path',
93+
required=True,
94+
),
95+
]
96+
@staticmethod
97+
def get_response():
98+
return DefaultResultSerializer
99+
100+
class KnowledgeWorkflowImportApi(APIMixin):
101+
@staticmethod
102+
def get_parameters():
103+
return KnowledgeWorkflowExportApi.get_parameters()
104+
105+
@staticmethod
106+
def get_request():
107+
return KnowledgeWorkflowImportRequest
108+
109+
@staticmethod
110+
def get_response():
111+
return DefaultResultSerializer

0 commit comments

Comments
 (0)