From 976b465e76ada7a18e44fd96793880b990e3f620 Mon Sep 17 00:00:00 2001 From: jyong <718720800@qq.com> Date: Fri, 30 May 2025 00:55:06 +0800 Subject: [PATCH] r2 --- api/models/oauth.py | 2 +- api/services/datasource_provider_service.py | 37 ++++++++++----------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/api/models/oauth.py b/api/models/oauth.py index d662a4b50c..9a070c2fbe 100644 --- a/api/models/oauth.py +++ b/api/models/oauth.py @@ -29,7 +29,7 @@ class DatasourceProvider(Base): ) id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()")) tenant_id = db.Column(StringUUID, nullable=False) - plugin_id: Mapped[str] = db.Column(StringUUID, nullable=False) + plugin_id: Mapped[str] = db.Column(db.TEXT, nullable=False) provider: Mapped[str] = db.Column(db.String(255), nullable=False) auth_type: Mapped[str] = db.Column(db.String(255), nullable=False) encrypted_credentials: Mapped[dict] = db.Column(JSONB, nullable=False) diff --git a/api/services/datasource_provider_service.py b/api/services/datasource_provider_service.py index ef9a56a66e..09c4cca706 100644 --- a/api/services/datasource_provider_service.py +++ b/api/services/datasource_provider_service.py @@ -35,28 +35,28 @@ class DatasourceProviderService: :param credentials: """ credential_valid = self.provider_manager.validate_provider_credentials(tenant_id=tenant_id, - user_id=current_user.id, - provider=provider, - credentials=credentials) + user_id=current_user.id, + provider=provider, + credentials=credentials) if credential_valid: # Get all provider configurations of the current workspace datasource_provider = db.session.query(DatasourceProvider).filter_by(tenant_id=tenant_id, - provider=provider, - plugin_id=plugin_id).first() + provider=provider, + plugin_id=plugin_id).first() provider_credential_secret_variables = self.extract_secret_variables(tenant_id=tenant_id, - provider=provider - ) + provider=provider + ) if not datasource_provider: for key, value in credentials.items(): if key in provider_credential_secret_variables: # if send [__HIDDEN__] in secret input, it will be same as original value credentials[key] = encrypter.encrypt_token(tenant_id, value) datasource_provider = DatasourceProvider(tenant_id=tenant_id, - provider=provider, - plugin_id=plugin_id, - auth_type="api_key", - encrypted_credentials=credentials) + provider=provider, + plugin_id=plugin_id, + auth_type="api_key", + encrypted_credentials=credentials) db.session.add(datasource_provider) db.session.commit() else: @@ -91,7 +91,6 @@ class DatasourceProviderService: return secret_input_form_variables - def get_datasource_credentials(self, tenant_id: str, provider: str, plugin_id: str) -> list[dict]: """ get datasource credentials. @@ -102,9 +101,11 @@ class DatasourceProviderService: :return: """ # Get all provider configurations of the current workspace - datasource_providers: list[DatasourceProvider] = db.session.query(DatasourceProvider).filter_by(tenant_id=tenant_id, - provider=provider, - plugin_id=plugin_id).all() + datasource_providers: list[DatasourceProvider] = db.session.query(DatasourceProvider).filter( + DatasourceProvider.tenant_id == tenant_id, + DatasourceProvider.provider == provider, + DatasourceProvider.plugin_id == plugin_id + ).all() if not datasource_providers: return [] copy_credentials_list = [] @@ -127,7 +128,6 @@ class DatasourceProviderService: return copy_credentials_list - def remove_datasource_credentials(self, tenant_id: str, provider: str, @@ -141,9 +141,8 @@ class DatasourceProviderService: :return: """ datasource_provider = db.session.query(DatasourceProvider).filter_by(tenant_id=tenant_id, - provider=provider, - plugin_id=plugin_id).first() + provider=provider, + plugin_id=plugin_id).first() if datasource_provider: db.session.delete(datasource_provider) db.session.commit() -