Ë
    uPêjª#  ã                   ó¤  — d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZ ddlZddlmZ ddlmZmZ  e
d«      Z G d	„ d
eee   «      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Z G d„ de	«      Zdede fd„Z!	 d%d ed!ed"ed#edz  dedz  f
d$„Z"y)&z^
Secret Manager Handler

Handles retrieving secrets from different secret management systems.
é    N)ÚMapping)ÚAnyÚFinalÚGenericÚProtocolÚTypeVar)ÚReadOnlyÚ	TypedDict)Úprint_verbose)ÚKeyManagementSettingsÚKeyManagementSystemÚ_ClientTc                   ó"   — e Zd ZU dZee   ed<   y)Ú_SecretManagerClientViewzPTyped read of the untyped secret manager handle configured for this key manager.ÚclientN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Ú__annotations__© ó    ús/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/secret_managers/secret_manager_handler.pyr   r      s   … ÙZà�XÑÔr   r   c                   ó(   — e Zd Zededz  fd„«       Zy)Ú_AzureKeyVaultSecretÚreturnNc                  ó   — y ©Nr   ©Úselfs    r   Úvaluez_AzureKeyVaultSecret.value   s   € Ø#&r   )r   r   r   ÚpropertyÚstrr!   r   r   r   r   r      s   „ ØØ&�s˜T‘zÒ&ó Ù&r   r   c                   ó   — e Zd Zdedefd„Zy)Ú_AzureKeyVaultClientÚnamer   c                  ó   — y r   r   )r    r&   s     r   Ú
get_secretz_AzureKeyVaultClient.get_secret!   ó   � r   N)r   r   r   r#   r   r(   r   r   r   r%   r%       s   „ Ø@˜sÐ@Ð';Ô@r   r%   c                   ó"   — e Zd Zedefd„«       Zy)Ú_GoogleKmsDecryptResponser   c                  ó   — y r   r   r   s    r   Ú	plaintextz#_GoogleKmsDecryptResponse.plaintext%   s   € Ø"%r   N)r   r   r   r"   Úbytesr-   r   r   r   r+   r+   $   s   „ ØØ%˜5Ò%ó Ù%r   r+   c                   ó&   — e Zd Zdeeef   defd„Zy)Ú_GoogleKmsClientÚrequestr   c                  ó   — y r   r   )r    r1   s     r   Údecryptz_GoogleKmsClient.decrypt*   r)   r   N)r   r   r   r   r#   Úobjectr+   r3   r   r   r   r0   r0   )   s   „ ØV˜w s¨F {Ñ3ÐVÐ8QÔVr   r0   c                   ó&   — e Zd Zdedeeef   fd„Zy)Ú_AwsKmsClientÚCiphertextBlobr   c                  ó   — y r   r   )r    r7   s     r   r3   z_AwsKmsClient.decrypt.   r)   r   N)r   r   r   r.   r   r#   r3   r   r   r   r6   r6   -   s   „ ØH eÐH°¸¸U¸
Ñ0CÔHr   r6   c                   ó"   — e Zd Zdededz  fd„Zy)Ú_GoogleSecretManagerClientÚsecret_namer   Nc                  ó   — y r   r   ©r    r;   s     r   Ú%get_secret_from_google_secret_managerz@_GoogleSecretManagerClient.get_secret_from_google_secret_manager2   r)   r   )r   r   r   r#   r>   r   r   r   r:   r:   1   s   „ ØXÀÐXÈÈtÉÔXr   r:   c                   ó"   — e Zd Zdededz  fd„Zy)Ú_SyncSecretReaderr;   r   Nc                  ó   — y r   r   r=   s     r   Úsync_read_secretz"_SyncSecretReader.sync_read_secret6   r)   r   )r   r   r   r#   rB   r   r   r   r@   r@   5   s   „ ØC¨CÐC°C¸$±JÔCr   r@   c                   ó(   — e Zd Zededz  fd„«       Zy)Ú_InfisicalSecretr   Nc                  ó   — y r   r   r   s    r   Úsecret_valuez_InfisicalSecret.secret_value:   s   € Ø*-r   )r   r   r   r"   r#   rF   r   r   r   rD   rD   9   s   „ ØØ-˜c D™jÒ-ó Ù-r   rD   c                   ó   — e Zd Zdedefd„Zy)Ú_InfisicalClientr;   r   c                  ó   — y r   r   r=   s     r   r(   z_InfisicalClient.get_secret?   r)   r   N)r   r   r   r#   rD   r(   r   r   r   rH   rH   >   s   „ ØC cÐCÐ.>ÔCr   rH   Úsr   c                 ó¨   — ddl }	 t        j                  t        j                  | «      «      j	                  «       | k(  S # |j
                  $ r Y yw xY w)z"Check if a string is valid base64.r   NF)ÚbinasciiÚbase64Ú	b64encodeÚ	b64decodeÚdecodeÚError)rJ   rL   s     r   Ú
_is_base64rR   B   sJ   € ãðÜ×Ñ¤× 0Ñ 0°Ó 3Ó4×;Ñ;Ó=ÀÑBÐBøØ�>‰>ò Ùðús   †8? ¿AÁAr   Úkey_managerr;   Úkey_management_settingsc                 ó	  — d}d| i}|d   }|t         j                  j                  k(  s1t        |«      j                  dz   t        |«      j
                  z   dk(  r&d| i}|d   }|j                  |«      j                  }|S |t         j                  j                  k(  s|j                  j
                  dk(  r›t        j                  |«      }	|	€t        d«      ‚t        |	«      }
|
du rt        j                  |	«      }nt        d«      ‚d| i}|d   }|j                  t         j"                  |d	œ¬
«      }|j$                  j'                  d«      }|S |t         j(                  j                  k(  r�	 t        j                  |d«      }|€t+        d|› d�«      ‚t        j                  |«      }d| i}|d   }|j                  |¬«      }|d   }|j'                  d«      }t-        |t.        «      r|j1                  «       }|S |t         j2                  j                  k(  rHddlm} t-        | |«      r4d}|�|j8                  }| j;                  ||¬«      }t=        d|du› d�«       |S |t         j>                  j                  k(  r?	 d| i}|d   }|jA                  |«      }t=        d|du› d�«       |€t        d|› �«      ‚	 |S |t         jB                  j                  k(  r/	 d| i}|d   }|j;                  |¬«      }|€t        d|› �«      ‚	 |S |t         jD                  j                  k(  r/	 d| i}|d   }|j;                  |¬«      }|€t        d|› �«      ‚	 |S |t         jF                  j                  k(  rjddl$m%} t-        | |«      r5| j;                  ||r|jM                  «       nd¬«      }|€/t        d|› �«      ‚t        dt        |«      j
                  › �«      ‚|S |dk(  rt        j                  |«      }|S d| i}|d   } | j                  |«      jN                  }|S # t*        $ r}t=        d|› �«       |‚d}~ww xY w# t*        $ r}t=        d|› �«       |‚d}~ww xY w# t*        $ r}t=        d|› �«       |‚d}~ww xY w) aL  
    Get a secret from the configured secret manager.

    Args:
        client: The secret manager client instance
        key_manager: The type of key manager (e.g., "azure_key_vault", "google_kms", etc.)
        secret_name: The name/path of the secret to retrieve
        key_management_settings: Optional settings for the key management system

    Returns:
        The secret value as a string, or None if not found

    Raises:
        ValueError: If the secret cannot be retrieved or required parameters are missing
        Exception: For other errors during secret retrieval
    Nr   ú.z+azure.keyvault.secrets._client.SecretClientÚKeyManagementServiceClientzBGoogle KMS requires the encrypted secret to be in the environment!Tz@Google KMS requires the encrypted secret to be encoded in base64)r&   Ú
ciphertext)r1   zutf-8z!AWS KMS - Encrypted Value of Key=z is None)r7   Ú	Plaintextr   )ÚAWSSecretsManagerV2)r;   Úprimary_secret_namez get_secret_value_response: [set=ú]z(secret from google secret manager: [set=z-No secret found in Google Secret Manager for zAn error occurred - )r;   z0No secret found in Hashicorp Secret Manager for z/No secret found in CyberArk Secret Manager for )ÚCustomSecretManager)r;   Úoptional_paramsz-No secret found in Custom Secret Manager for zMCustom secret manager client must be an instance of CustomSecretManager, got Úlocal)(r   ÚAZURE_KEY_VAULTr!   Útyper   r   r(   Ú
GOOGLE_KMSÚ	__class__ÚosÚgetenvÚ
ValueErrorrR   rM   rO   r3   ÚlitellmÚ_google_kms_resource_namer-   rP   ÚAWS_KMSÚ	ExceptionÚ
isinstancer#   ÚstripÚAWS_SECRET_MANAGERÚ-litellm.secret_managers.aws_secret_manager_v2rZ   r[   rB   r   ÚGOOGLE_SECRET_MANAGERr>   ÚHASHICORP_VAULTÚCYBERARKÚCUSTOMÚ*litellm.integrations.custom_secret_managerr]   Ú
model_dumprF   )!r   rS   r;   rT   ÚsecretÚraw_viewÚclient_objectÚ
azure_viewÚazure_clientÚencrypted_secretÚb64_flagrX   Úgoogle_kms_viewÚgoogle_kms_clientÚgoogle_kms_responseÚencrypted_valueÚciphertext_blobÚaws_kms_viewÚaws_kms_clientÚaws_kms_responser-   rZ   r[   Úgoogle_secret_manager_viewÚgoogle_secret_manager_clientÚeÚhashicorp_viewÚhashicorp_clientÚcyberark_viewÚcyberark_clientr]   Úinfisical_viewÚinfisical_clients!                                    r   Úget_secret_from_managerr�   L   sy  € ð, €FØ9AÀ6Ð8J€HØ# HÑ-€Mð 	Ô*×:Ñ:×@Ñ@Ò@Ü�Ó×)Ñ)¨CÑ/´$°}Ó2E×2NÑ2NÑNØ8ò9ð NVÐW]ÐL^ˆ
Ø(¨Ñ2ˆØ×(Ñ(¨Ó5×;Ñ;ˆðt €Mðo 	Ô*×5Ñ5×;Ñ;Ò;Ø×"Ñ"×+Ñ+Ð/KÒKä"$§)¡)¨KÓ"8ÐØÐ#ÜÐaÓbÐbÜ$Ð%5Ó6ˆØ�tÑÜ &× 0Ñ 0Ð1AÓ B‰JäØRóð ð OWÐX^ÐM_ˆØ#2°8Ñ#<ÐØ%6×%>Ñ%>ä×9Ñ9Ø(ñð &?ó &
Ðð %×.Ñ.×5Ñ5°gÓ>ˆðD €MðA 
Ô+×3Ñ3×9Ñ9Ò	9ð	ô "$§¡¨;¸Ó!=ˆØÐ"ÜÐ?À¸}ÈHÐUÓVÐVä!'×!1Ñ!1°/Ó!Bˆð IQÐRXÐGYˆØ ,¨XÑ 6ˆØ"0×"8Ñ"8ÈÐ"8Ó"XÐð ,¨KÑ8ˆ	Ø×!Ñ! 'Ó*ˆÜ�fœcÔ"Ø—\‘\“^ˆFðZ €MðW 
Ô+×>Ñ>×DÑDÒ	Dõ	
ô �fÐ1Ô2Ø"&ÐØ&Ð2Ø&=×&QÑ&QÐ#à×,Ñ,Ø'Ø$7ð -ó ˆFô Ð<¸VÈ4Ð=OÐ<PÐPQÐRÔSðz €Mðw 
Ô+×AÑA×GÑGÒ	Gð		ØgoÐqwÐfxÐ&Ø2LÈXÑ2VÐ(Ø1×WÑWÐXcÓdˆFÜÐDÀVÐSWÐEWÐDXÐXYÐZÔ[Øˆ~Ü Ð#PÐQ\ÐP]Ð!^Ó_Ð_ð ðj €Mð_ 
Ô+×;Ñ;×AÑAÒ	Að	ØRZÐ\bÐQcˆNØ&4°XÑ&>ÐØ%×6Ñ6À;Ð6ÓOˆFØˆ~Ü Ð#SÐT_ÐS`Ð!aÓbÐbð ðT €MðI 
Ô+×4Ñ4×:Ñ:Ò	:ð	ØQYÐ[aÐPbˆMØ%2°8Ñ%<ˆOØ$×5Ñ5À+Ð5ÓNˆFØˆ~Ü Ð#RÐS^ÐR_Ð!`ÓaÐað ð> €Mð3 
Ô+×2Ñ2×8Ñ8Ò	8åRä�fÐ1Ô2Ø×,Ñ,Ø'ÙI`Ð!8×!CÑ!CÔ!EÐfjð -ó ˆFð ˆ~Ü Ð#PÐQ\ÐP]Ð!^Ó_Ð_äðÜ˜MÓ*×3Ñ3Ð4ð6óð ð €Mð 
˜Ò	Ü—‘˜;Ó'ˆð €Mð	 NVÐW]ÐL^ˆØ"0°Ñ":ÐØ!×,Ñ,¨[Ó9×FÑFˆà€Møôg ò 	ÜÐ0°°Ð4Ô5ØˆGûð	ûô ò 	ÜÐ0°°Ð4Ô5ØˆGûð	ûô ò 	ÜÐ0°°Ð4Ô5ØˆGûð	úsH   Ê;P  Ë+Q Ì)+Q" Ð 	P>Ð)P9Ð9P>Ñ	QÑ
QÑQÑ"	R Ñ+Q;Ñ;R r   )#r   rM   rd   Úcollections.abcr   Útypingr   r   r   r   r   Útyping_extensionsr	   r
   rg   Úlitellm._loggingr   Ú"litellm.types.secret_managers.mainr   r   r   r   r   r%   r+   r0   r6   r:   r@   rD   rH   r#   ÚboolrR   r�   r   r   r   ú<module>r”      s  ðñó Û 	Ý #ß 9Õ 9ç 1ã Ý *ß Yá�:Ó€ô˜y¨'°(Ñ*;ô ô'˜8ô 'ô
A˜8ô Aô& ô &ô
W�xô WôI�Hô IôY ô YôD˜ô Dô.�xô .ô
D�xô Dð�#ð ˜$ó ð =Añ	[Øð[àð[ð ð[ð 3°TÑ9ð	[ð
 	ˆ4�Zô[r   