feat: add custom credential service (#4129)
Co-authored-by: Stanislav Novosad <stas@skyvern.com>
This commit is contained in:
@@ -11,6 +11,7 @@ from skyvern.forge.agent import ForgeAgent
|
||||
from skyvern.forge.agent_functions import AgentFunction
|
||||
from skyvern.forge.forge_openai_client import ForgeAsyncHttpxClientWrapper
|
||||
from skyvern.forge.sdk.api.azure import AzureClientFactory
|
||||
from skyvern.forge.sdk.api.custom_credential_client import CustomCredentialAPIClient
|
||||
from skyvern.forge.sdk.api.llm.api_handler_factory import LLMAPIHandlerFactory
|
||||
from skyvern.forge.sdk.api.llm.models import LLMAPIHandler
|
||||
from skyvern.forge.sdk.api.real_azure import RealAzureClientFactory
|
||||
@@ -27,6 +28,7 @@ from skyvern.forge.sdk.schemas.organizations import AzureClientSecretCredential,
|
||||
from skyvern.forge.sdk.services.credential.azure_credential_vault_service import AzureCredentialVaultService
|
||||
from skyvern.forge.sdk.services.credential.bitwarden_credential_service import BitwardenCredentialVaultService
|
||||
from skyvern.forge.sdk.services.credential.credential_vault_service import CredentialVaultService
|
||||
from skyvern.forge.sdk.services.credential.custom_credential_vault_service import CustomCredentialVaultService
|
||||
from skyvern.forge.sdk.settings_manager import SettingsManager
|
||||
from skyvern.forge.sdk.workflow.context_manager import WorkflowContextManager
|
||||
from skyvern.forge.sdk.workflow.service import WorkflowService
|
||||
@@ -69,6 +71,7 @@ class ForgeApp:
|
||||
PERSISTENT_SESSIONS_MANAGER: PersistentSessionsManager
|
||||
BITWARDEN_CREDENTIAL_VAULT_SERVICE: BitwardenCredentialVaultService
|
||||
AZURE_CREDENTIAL_VAULT_SERVICE: AzureCredentialVaultService | None
|
||||
CUSTOM_CREDENTIAL_VAULT_SERVICE: CustomCredentialVaultService | None
|
||||
CREDENTIAL_VAULT_SERVICES: dict[str, CredentialVaultService | None]
|
||||
scrape_exclude: ScrapeExcludeFunc | None
|
||||
authentication_function: Callable[[str], Awaitable[Organization]] | None
|
||||
@@ -191,9 +194,20 @@ def create_forge_app() -> ForgeApp:
|
||||
if settings.AZURE_CREDENTIAL_VAULT
|
||||
else None
|
||||
)
|
||||
app.CUSTOM_CREDENTIAL_VAULT_SERVICE = (
|
||||
CustomCredentialVaultService(
|
||||
CustomCredentialAPIClient(
|
||||
api_base_url=settings.CUSTOM_CREDENTIAL_API_BASE_URL, # type: ignore
|
||||
api_token=settings.CUSTOM_CREDENTIAL_API_TOKEN, # type: ignore
|
||||
)
|
||||
)
|
||||
if settings.CUSTOM_CREDENTIAL_API_BASE_URL and settings.CUSTOM_CREDENTIAL_API_TOKEN
|
||||
else CustomCredentialVaultService() # Create service without client for organization-based configuration
|
||||
)
|
||||
app.CREDENTIAL_VAULT_SERVICES = {
|
||||
CredentialVaultType.BITWARDEN: app.BITWARDEN_CREDENTIAL_VAULT_SERVICE,
|
||||
CredentialVaultType.AZURE_VAULT: app.AZURE_CREDENTIAL_VAULT_SERVICE,
|
||||
CredentialVaultType.CUSTOM: app.CUSTOM_CREDENTIAL_VAULT_SERVICE,
|
||||
}
|
||||
|
||||
app.scrape_exclude = None
|
||||
|
||||
Reference in New Issue
Block a user