From ef0e41de07a7e7d3ae5de5fed3796f9bfbc2e502 Mon Sep 17 00:00:00 2001 From: jyong <718720800@qq.com> Date: Mon, 26 May 2025 16:02:11 +0800 Subject: [PATCH] r2 --- .../console/auth/data_source_oauth.py | 23 +++++++++---------- .../app/apps/pipeline/pipeline_generator.py | 13 ++++++----- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/api/controllers/console/auth/data_source_oauth.py b/api/controllers/console/auth/data_source_oauth.py index 8da29093fd..0f3e2582c4 100644 --- a/api/controllers/console/auth/data_source_oauth.py +++ b/api/controllers/console/auth/data_source_oauth.py @@ -8,7 +8,7 @@ from werkzeug.exceptions import Forbidden from configs import dify_config from controllers.console import api -from core.plugin.impl.datasource import PluginDatasourceManager +from core.plugin.impl.oauth import OAuthHandler from libs.login import login_required from libs.oauth_data_source import NotionOAuth @@ -118,18 +118,17 @@ class DatasourcePluginOauthApi(Resource): # Check user role first if not current_user.is_editor: raise Forbidden() - # get all builtin providers - manager = PluginDatasourceManager() - # Fix: use correct method name or implement the missing method - try: - providers = manager.get_providers() # or whatever the correct method is - # Filter by datasource_type and datasource_name if needed - oauth_config = {} # Build appropriate OAuth URL response - return oauth_config - except AttributeError: - # Method doesn't exist, return empty response or implement - return {"oauth_url": None, "supported": False} + oauth_handler = OAuthHandler() + providers = oauth_handler.get_authorization_url( + current_user.current_tenant.id, + current_user.id, + datasource_type, + datasource_name, + system_credentials={} + ) + return providers + api.add_resource(OAuthDataSource, "/oauth/data-source/") diff --git a/api/core/app/apps/pipeline/pipeline_generator.py b/api/core/app/apps/pipeline/pipeline_generator.py index 55a8b96d06..120927516b 100644 --- a/api/core/app/apps/pipeline/pipeline_generator.py +++ b/api/core/app/apps/pipeline/pipeline_generator.py @@ -22,13 +22,13 @@ from core.app.apps.pipeline.pipeline_queue_manager import PipelineQueueManager from core.app.apps.pipeline.pipeline_runner import PipelineRunner from core.app.apps.workflow.app_config_manager import WorkflowAppConfigManager from core.app.apps.workflow.generate_response_converter import WorkflowAppGenerateResponseConverter +from core.app.apps.workflow.generate_task_pipeline import WorkflowAppGenerateTaskPipeline from core.app.entities.app_invoke_entities import InvokeFrom, RagPipelineGenerateEntity, WorkflowAppGenerateEntity from core.app.entities.task_entities import WorkflowAppBlockingResponse, WorkflowAppStreamResponse from core.model_runtime.errors.invoke import InvokeAuthorizationError from core.rag.index_processor.constant.built_in_field import BuiltInField from core.repositories import SQLAlchemyWorkflowNodeExecutionRepository from core.workflow.repository.workflow_node_execution_repository import WorkflowNodeExecutionRepository -from core.workflow.workflow_app_generate_task_pipeline import WorkflowAppGenerateTaskPipeline from extensions.ext_database import db from models import Account, App, EndUser, Workflow, WorkflowNodeExecutionTriggeredFrom from models.dataset import Document, Pipeline @@ -108,16 +108,17 @@ class PipelineGenerator(BaseAppGenerator): for datasource_info in datasource_info_list: workflow_run_id = str(uuid.uuid4()) document_id = None - + # Add null check for dataset - if not pipeline.dataset: + dataset = pipeline.dataset + if not dataset: raise ValueError("Pipeline dataset is required") - + if invoke_from == InvokeFrom.PUBLISHED: - position = DocumentService.get_documents_position(pipeline.dataset_id) + position = DocumentService.get_documents_position(dataset.id) document = self._build_document( tenant_id=pipeline.tenant_id, - dataset_id=pipeline.dataset_id, + dataset_id=dataset.id, built_in_field_enabled=pipeline.dataset.built_in_field_enabled, datasource_type=datasource_type, datasource_info=datasource_info,