diff --git a/api/services/datasource_provider_service.py b/api/services/datasource_provider_service.py index 4b36b84c6a..f79de4d2bc 100644 --- a/api/services/datasource_provider_service.py +++ b/api/services/datasource_provider_service.py @@ -124,9 +124,10 @@ class DatasourceProviderService: copy_credentials[key] = encrypter.obfuscated_token(value) copy_credentials_list.append( { - "credentials": copy_credentials, + "credential": copy_credentials, "type": datasource_provider.auth_type, "name": datasource_provider.name, + "id": datasource_provider.id, } ) @@ -155,7 +156,57 @@ class DatasourceProviderService: "name": datasource.declaration.identity.name, "description": datasource.declaration.identity.description.model_dump(), "author": datasource.declaration.identity.author, - "credentials": credentials, + "credentials_list": credentials, + "credential_schema": [ + { + "type": credential.type.value, + "name": credential.name, + "required": credential.required, + "default": credential.default, + "options": [ + { + "value": option.value, + "label": option.label.model_dump(), + } + for option in credential.options or [] + ], + } for credential in datasource.declaration.credentials_schema + ], + "oauth_schema": + { + "client_schema": [ + { + "type": client_schema.type.value, + "name": client_schema.name, + "required": client_schema.required, + "default": client_schema.default, + "options": [ + { + "value": option.value, + "label": option.label.model_dump(), + } + for option in client_schema.options or [] + ], + } + for client_schema in datasource.declaration.oauth_schema.client_schema or [] + ], + "credentials_schema": [ + { + "type": credential.type.value, + "name": credential.name, + "required": credential.required, + "default": credential.default, + "options": [ + { + "value": option.value, + "label": option.label.model_dump(), + } + for option in credential.options or [] + ], + } + for credential in datasource.declaration.oauth_schema.credentials_schema or [] + ], + } if datasource.declaration.oauth_schema else None, } ) return datasource_credentials