Introduce collectionid filter for bitwarden parameters (#454)

This commit is contained in:
Kerem Yilmaz
2024-06-10 22:06:58 -07:00
committed by GitHub
parent bb19a8ab8e
commit 0ede4fdfa0
9 changed files with 56 additions and 10 deletions

View File

@@ -157,12 +157,14 @@ class WorkflowRunContext:
client_secret,
master_password,
url,
collection_id=parameter.bitwarden_collection_id,
)
if secret_credentials:
self.secrets[BitwardenConstants.URL] = url
self.secrets[BitwardenConstants.CLIENT_SECRET] = client_secret
self.secrets[BitwardenConstants.CLIENT_ID] = client_id
self.secrets[BitwardenConstants.MASTER_PASSWORD] = master_password
self.secrets[BitwardenConstants.BW_COLLECTION_ID] = parameter.bitwarden_collection_id
random_secret_id = self.generate_random_secret_id()
# username secret
@@ -181,7 +183,6 @@ class WorkflowRunContext:
"totp": totp_secret_id,
}
except BitwardenBaseError as e:
BitwardenService.logout()
LOG.error(f"Failed to get secret from Bitwarden. Error: {e}")
raise e
elif isinstance(parameter, ContextParameter):

View File

@@ -52,6 +52,9 @@ class BitwardenLoginCredentialParameter(Parameter):
bitwarden_master_password_aws_secret_key: str
# url to request the login credentials from bitwarden
url_parameter_key: str
# bitwarden collection id to filter the login credentials from,
# if not provided, no filtering will be done
bitwarden_collection_id: str | None = None
created_at: datetime
modified_at: datetime

View File

@@ -36,6 +36,9 @@ class BitwardenLoginCredentialParameterYAML(ParameterYAML):
bitwarden_master_password_aws_secret_key: str
# parameter key for the url to request the login credentials from bitwarden
url_parameter_key: str
# bitwarden collection id to filter the login credentials from,
# if not provided, no filtering will be done
bitwarden_collection_id: str | None = None
class WorkflowParameterYAML(ParameterYAML):

View File

@@ -450,6 +450,7 @@ class WorkflowService:
url_parameter_key: str,
key: str,
description: str | None = None,
bitwarden_collection_id: str | None = None,
) -> Parameter:
return await app.DATABASE.create_bitwarden_login_credential_parameter(
workflow_id=workflow_id,
@@ -459,6 +460,7 @@ class WorkflowService:
url_parameter_key=url_parameter_key,
key=key,
description=description,
bitwarden_collection_id=bitwarden_collection_id,
)
async def create_output_parameter(
@@ -833,6 +835,7 @@ class WorkflowService:
url_parameter_key=parameter.url_parameter_key,
key=parameter.key,
description=parameter.description,
bitwarden_collection_id=parameter.bitwarden_collection_id,
)
elif parameter.parameter_type == ParameterType.WORKFLOW:
parameters[parameter.key] = await self.create_workflow_parameter(