From 4f6feae03ef0da5b01ac50ca6eec419c490d415f Mon Sep 17 00:00:00 2001 From: Kerem Yilmaz Date: Wed, 2 Oct 2024 14:02:49 -0700 Subject: [PATCH] if bitwarden TOTP is not defined, do not pass totp as part of the credential to llm (#899) --- skyvern/forge/sdk/services/bitwarden.py | 4 +++- skyvern/forge/sdk/workflow/context_manager.py | 11 ++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/skyvern/forge/sdk/services/bitwarden.py b/skyvern/forge/sdk/services/bitwarden.py index c7d05cea..9573faeb 100644 --- a/skyvern/forge/sdk/services/bitwarden.py +++ b/skyvern/forge/sdk/services/bitwarden.py @@ -177,11 +177,13 @@ class BitwardenService: { BitwardenConstants.USERNAME: item["login"]["username"], BitwardenConstants.PASSWORD: item["login"]["password"], - BitwardenConstants.TOTP: totp_code, } for item in items if "login" in item ] + if totp_code: + for credential in credentials: + credential[BitwardenConstants.TOTP] = totp_code if len(credentials) == 0: return {} diff --git a/skyvern/forge/sdk/workflow/context_manager.py b/skyvern/forge/sdk/workflow/context_manager.py index b555350e..ded0367e 100644 --- a/skyvern/forge/sdk/workflow/context_manager.py +++ b/skyvern/forge/sdk/workflow/context_manager.py @@ -182,15 +182,16 @@ class WorkflowRunContext: # password secret password_secret_id = f"{random_secret_id}_password" self.secrets[password_secret_id] = secret_credentials[BitwardenConstants.PASSWORD] - - totp_secret_id = f"{random_secret_id}_totp" - self.secrets[totp_secret_id] = BitwardenConstants.TOTP - self.values[parameter.key] = { "username": username_secret_id, "password": password_secret_id, - "totp": totp_secret_id, } + + if BitwardenConstants.TOTP in secret_credentials and secret_credentials[BitwardenConstants.TOTP]: + totp_secret_id = f"{random_secret_id}_totp" + self.secrets[totp_secret_id] = BitwardenConstants.TOTP + self.values[parameter.key]["totp"] = totp_secret_id + except BitwardenBaseError as e: LOG.error(f"Failed to get secret from Bitwarden. Error: {e}") raise e