forked from phoenix/litellm-mirror
fix write secret to AWS secret manager on /key/generate
This commit is contained in:
parent
e807d12d2a
commit
42b6b733c5
1 changed files with 25 additions and 1 deletions
|
@ -10,6 +10,7 @@ from fastapi import status
|
||||||
import litellm
|
import litellm
|
||||||
from litellm.proxy._types import (
|
from litellm.proxy._types import (
|
||||||
GenerateKeyRequest,
|
GenerateKeyRequest,
|
||||||
|
KeyManagementSystem,
|
||||||
KeyRequest,
|
KeyRequest,
|
||||||
LiteLLM_AuditLogs,
|
LiteLLM_AuditLogs,
|
||||||
LitellmTableNames,
|
LitellmTableNames,
|
||||||
|
@ -31,7 +32,7 @@ class KeyManagementEventHooks:
|
||||||
litellm_changed_by: Optional[str] = None,
|
litellm_changed_by: Optional[str] = None,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Post /key/generate processing hook
|
Hook that runs after a successful /key/generate request
|
||||||
|
|
||||||
Handles the following:
|
Handles the following:
|
||||||
- Sending Email with Key Details
|
- Sending Email with Key Details
|
||||||
|
@ -70,6 +71,29 @@ class KeyManagementEventHooks:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
# store the generated key in the secret manager
|
||||||
|
_key_management_settings: Optional[dict] = general_settings.get(
|
||||||
|
"key_management", None
|
||||||
|
)
|
||||||
|
if _key_management_settings is not None and isinstance(
|
||||||
|
_key_management_settings, dict
|
||||||
|
):
|
||||||
|
if _key_management_settings.get("store_virtual_keys", None) is True:
|
||||||
|
from litellm.secret_managers.aws_secret_manager_v2 import (
|
||||||
|
AWSSecretsManagerV2,
|
||||||
|
)
|
||||||
|
|
||||||
|
# store the key in the secret manager
|
||||||
|
if (
|
||||||
|
litellm._key_management_system
|
||||||
|
== KeyManagementSystem.AWS_SECRET_MANAGER
|
||||||
|
and isinstance(litellm.secret_manager_client, AWSSecretsManagerV2)
|
||||||
|
):
|
||||||
|
_secret_name = data.key_alias or f"virtual-key-{uuid.uuid4()}"
|
||||||
|
await litellm.secret_manager_client.async_write_secret(
|
||||||
|
secret_name=_secret_name,
|
||||||
|
secret_value=response.get("token_value", ""),
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def async_key_updated_hook(
|
async def async_key_updated_hook(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue