add credential id

This commit is contained in:
jyong 2025-08-08 14:18:30 +08:00
parent e6f1bc165c
commit d07ce809be
2 changed files with 6 additions and 2 deletions

View File

@ -28,6 +28,7 @@ class DataSourceContentPreviewApi(Resource):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument("inputs", type=dict, required=True, nullable=False, location="json") parser.add_argument("inputs", type=dict, required=True, nullable=False, location="json")
parser.add_argument("datasource_type", type=str, required=True, location="json") parser.add_argument("datasource_type", type=str, required=True, location="json")
parser.add_argument("credential_id", type=str, required=False, location="json")
args = parser.parse_args() args = parser.parse_args()
inputs = args.get("inputs") inputs = args.get("inputs")
@ -45,6 +46,7 @@ class DataSourceContentPreviewApi(Resource):
account=current_user, account=current_user,
datasource_type=datasource_type, datasource_type=datasource_type,
is_published=True, is_published=True,
credential_id=args.get("credential_id"),
) )
return preview_content, 200 return preview_content, 200

View File

@ -628,6 +628,7 @@ class RagPipelineService:
account: Account, account: Account,
datasource_type: str, datasource_type: str,
is_published: bool, is_published: bool,
credential_id: Optional[str] = None,
) -> Mapping[str, Any]: ) -> Mapping[str, Any]:
""" """
Run published workflow datasource Run published workflow datasource
@ -665,13 +666,14 @@ class RagPipelineService:
datasource_type=DatasourceProviderType(datasource_type), datasource_type=DatasourceProviderType(datasource_type),
) )
datasource_provider_service = DatasourceProviderService() datasource_provider_service = DatasourceProviderService()
credentials = datasource_provider_service.get_real_datasource_credentials( credentials = datasource_provider_service.get_real_credential_by_id(
tenant_id=pipeline.tenant_id, tenant_id=pipeline.tenant_id,
provider=datasource_node_data.get("provider_name"), provider=datasource_node_data.get("provider_name"),
plugin_id=datasource_node_data.get("plugin_id"), plugin_id=datasource_node_data.get("plugin_id"),
credential_id=credential_id,
) )
if credentials: if credentials:
datasource_runtime.runtime.credentials = credentials[0].get("credentials") datasource_runtime.runtime.credentials = credentials
match datasource_type: match datasource_type:
case DatasourceProviderType.ONLINE_DOCUMENT: case DatasourceProviderType.ONLINE_DOCUMENT:
datasource_runtime = cast(OnlineDocumentDatasourcePlugin, datasource_runtime) datasource_runtime = cast(OnlineDocumentDatasourcePlugin, datasource_runtime)