@@ -445,11 +445,19 @@ def get_installed_provider(
445
445
BaseProvider: The instantiated provider class.
446
446
"""
447
447
context_manager = ContextManager (tenant_id = tenant_id )
448
- secret_manager = SecretManagerFactory .get_secret_manager (context_manager )
449
- provider_config = secret_manager .read_secret (
450
- secret_name = f"{ tenant_id } _{ provider_type } _{ provider_id } " ,
451
- is_json = True ,
452
- )
448
+
449
+ # check if the provider is linked,
450
+ # if provider is linked it means the provider config is not stored in the secret manager
451
+ if not ProvidersFactory .check_if_linked_providers (tenant_id , provider_id , provider_type ):
452
+ logger .debug ("Provider not linked, trying to read secret from secret manager" )
453
+ secret_manager = SecretManagerFactory .get_secret_manager (context_manager )
454
+ provider_config = secret_manager .read_secret (
455
+ secret_name = f"{ tenant_id } _{ provider_type } _{ provider_id } " ,
456
+ is_json = True ,
457
+ )
458
+ else :
459
+ logger .debug ("Provider linked, no need to read secret from secret manager" )
460
+ provider_config = {"authentication" : {}}
453
461
provider_class = ProvidersFactory .get_provider (
454
462
context_manager = context_manager ,
455
463
provider_id = provider_id ,
@@ -501,3 +509,25 @@ def get_linked_providers(tenant_id: str) -> list[Provider]:
501
509
_linked_providers .append (provider )
502
510
503
511
return _linked_providers
512
+
513
+ @staticmethod
514
+ def check_if_linked_providers (tenant_id : str , provider_id : str , provider_type : str ) -> bool :
515
+ """
516
+ Check if the provider is linked.
517
+
518
+ Args:
519
+ tenant_id (str): The tenant id.
520
+ provider_id (str): The provider id.
521
+ provider_type (str): The provider type.
522
+
523
+ Returns:
524
+ bool: True if the provider is linked, otherwise False.
525
+ """
526
+ linked_providers = get_linked_providers (tenant_id )
527
+
528
+ for p in linked_providers :
529
+ p_type , p_id , _ = p
530
+ if p_id == provider_id and p_type == provider_type :
531
+ return True
532
+
533
+ return False
0 commit comments