diff --git a/api/controllers/console/__init__.py b/api/controllers/console/__init__.py index 1cf987050a..d17d5bc827 100644 --- a/api/controllers/console/__init__.py +++ b/api/controllers/console/__init__.py @@ -58,6 +58,7 @@ from .tag import tags # Import workspace controllers from .workspace import ( account, + endpoint, load_balancing_config, members, model_providers, diff --git a/api/controllers/console/workspace/endpoint.py b/api/controllers/console/workspace/endpoint.py new file mode 100644 index 0000000000..668e4ea953 --- /dev/null +++ b/api/controllers/console/workspace/endpoint.py @@ -0,0 +1,62 @@ +from flask_restful import Resource + +from controllers.console import api +from controllers.console.setup import setup_required +from controllers.console.wraps import account_initialization_required +from libs.login import login_required + + +class EndpointCreateApi(Resource): + @setup_required + @login_required + @account_initialization_required + def post(self): + pass + + +class EndpointListApi(Resource): + @setup_required + @login_required + @account_initialization_required + def get(self): + pass + + +class EndpointDeleteApi(Resource): + @setup_required + @login_required + @account_initialization_required + def post(self): + pass + + +class EndpointUpdateApi(Resource): + @setup_required + @login_required + @account_initialization_required + def post(self): + pass + + +class EndpointEnableApi(Resource): + @setup_required + @login_required + @account_initialization_required + def post(self): + pass + + +class EndpointDisableApi(Resource): + @setup_required + @login_required + @account_initialization_required + def post(self): + pass + + +api.add_resource(EndpointCreateApi, "/workspaces/current/endpoints/create") +api.add_resource(EndpointListApi, "/workspaces/current/endpoints/list") +api.add_resource(EndpointDeleteApi, "/workspaces/current/endpoints/delete") +api.add_resource(EndpointUpdateApi, "/workspaces/current/endpoints/update") +api.add_resource(EndpointEnableApi, "/workspaces/current/endpoints/enable") +api.add_resource(EndpointDisableApi, "/workspaces/current/endpoints/disable") \ No newline at end of file diff --git a/api/controllers/console/workspace/tool_providers.py b/api/controllers/console/workspace/tool_providers.py index 68ad383a74..1b49103ced 100644 --- a/api/controllers/console/workspace/tool_providers.py +++ b/api/controllers/console/workspace/tool_providers.py @@ -24,8 +24,10 @@ class ToolProviderListApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id req = reqparse.RequestParser() req.add_argument( @@ -46,8 +48,10 @@ class ToolBuiltinProviderListToolsApi(Resource): @login_required @account_initialization_required def get(self, provider): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id return jsonable_encoder( BuiltinToolManageService.list_builtin_tool_provider_tools( @@ -63,11 +67,13 @@ class ToolBuiltinProviderDeleteApi(Resource): @login_required @account_initialization_required def post(self, provider): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id return BuiltinToolManageService.delete_builtin_tool_provider( user_id, @@ -81,11 +87,13 @@ class ToolBuiltinProviderUpdateApi(Resource): @login_required @account_initialization_required def post(self, provider): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() parser.add_argument("credentials", type=dict, required=True, nullable=False, location="json") @@ -105,8 +113,10 @@ class ToolBuiltinProviderGetCredentialsApi(Resource): @login_required @account_initialization_required def get(self, provider): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id return BuiltinToolManageService.get_builtin_tool_provider_credentials( user_id, @@ -118,7 +128,10 @@ class ToolBuiltinProviderGetCredentialsApi(Resource): class ToolBuiltinProviderIconApi(Resource): @setup_required def get(self, provider): - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id icon_bytes, mimetype = BuiltinToolManageService.get_builtin_tool_provider_icon(provider, tenant_id) icon_cache_max_age = dify_config.TOOL_ICON_CACHE_MAX_AGE @@ -130,11 +143,13 @@ class ToolApiProviderAddApi(Resource): @login_required @account_initialization_required def post(self): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() parser.add_argument("credentials", type=dict, required=True, nullable=False, location="json") @@ -167,6 +182,11 @@ class ToolApiProviderGetRemoteSchemaApi(Resource): @login_required @account_initialization_required def get(self): + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id + parser = reqparse.RequestParser() parser.add_argument("url", type=str, required=True, nullable=False, location="args") @@ -174,8 +194,8 @@ class ToolApiProviderGetRemoteSchemaApi(Resource): args = parser.parse_args() return ApiToolManageService.get_api_tool_provider_remote_schema( - current_user.id, - current_user.current_tenant_id, + user_id, + tenant_id, args["url"], ) @@ -185,8 +205,10 @@ class ToolApiProviderListToolsApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() @@ -208,11 +230,13 @@ class ToolApiProviderUpdateApi(Resource): @login_required @account_initialization_required def post(self): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() parser.add_argument("credentials", type=dict, required=True, nullable=False, location="json") @@ -247,11 +271,13 @@ class ToolApiProviderDeleteApi(Resource): @login_required @account_initialization_required def post(self): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() @@ -271,8 +297,10 @@ class ToolApiProviderGetApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() @@ -292,7 +320,11 @@ class ToolBuiltinProviderCredentialsSchemaApi(Resource): @login_required @account_initialization_required def get(self, provider): - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id + return BuiltinToolManageService.list_builtin_provider_credentials_schema(provider, tenant_id) @@ -344,11 +376,13 @@ class ToolWorkflowProviderCreateApi(Resource): @login_required @account_initialization_required def post(self): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id reqparser = reqparse.RequestParser() reqparser.add_argument("workflow_app_id", type=uuid_value, required=True, nullable=False, location="json") @@ -381,11 +415,13 @@ class ToolWorkflowProviderUpdateApi(Resource): @login_required @account_initialization_required def post(self): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id reqparser = reqparse.RequestParser() reqparser.add_argument("workflow_tool_id", type=uuid_value, required=True, nullable=False, location="json") @@ -421,11 +457,13 @@ class ToolWorkflowProviderDeleteApi(Resource): @login_required @account_initialization_required def post(self): - if not current_user.is_admin_or_owner: + user = current_user + + if not user.is_admin_or_owner: raise Forbidden() - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user_id = user.id + tenant_id = user.current_tenant_id reqparser = reqparse.RequestParser() reqparser.add_argument("workflow_tool_id", type=uuid_value, required=True, nullable=False, location="json") @@ -444,8 +482,10 @@ class ToolWorkflowProviderGetApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() parser.add_argument("workflow_tool_id", type=uuid_value, required=False, nullable=True, location="args") @@ -476,8 +516,10 @@ class ToolWorkflowProviderListToolApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id parser = reqparse.RequestParser() parser.add_argument("workflow_tool_id", type=uuid_value, required=True, nullable=False, location="args") @@ -498,8 +540,10 @@ class ToolBuiltinListApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id return jsonable_encoder( [ @@ -517,8 +561,10 @@ class ToolApiListApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id return jsonable_encoder( [ @@ -536,8 +582,10 @@ class ToolWorkflowListApi(Resource): @login_required @account_initialization_required def get(self): - user_id = current_user.id - tenant_id = current_user.current_tenant_id + user = current_user + + user_id = user.id + tenant_id = user.current_tenant_id return jsonable_encoder( [ diff --git a/api/services/plugin/endpoint_service.py b/api/services/plugin/endpoint_service.py new file mode 100644 index 0000000000..e9b395efcc --- /dev/null +++ b/api/services/plugin/endpoint_service.py @@ -0,0 +1,2 @@ +class EndpointService: + pass \ No newline at end of file