Introduce collectionid filter for bitwarden parameters (#454)
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user