Add workflow parameter type credential_id (#1896)
This commit is contained in:
@@ -179,12 +179,22 @@ class WorkflowRunContext:
|
||||
organization: Organization,
|
||||
) -> None:
|
||||
LOG.info(f"Fetching credential parameter value for credential: {parameter.credential_id}")
|
||||
db_credential = await app.DATABASE.get_credential(
|
||||
parameter.credential_id, organization_id=organization.organization_id
|
||||
)
|
||||
if db_credential is None:
|
||||
|
||||
credential_id = None
|
||||
if parameter.credential_id:
|
||||
if self.has_parameter(parameter.credential_id) and self.has_value(parameter.credential_id):
|
||||
credential_id = self.values[parameter.credential_id]
|
||||
else:
|
||||
credential_id = parameter.credential_id
|
||||
|
||||
if credential_id is None:
|
||||
LOG.error(f"Credential ID not found for credential: {parameter.credential_id}")
|
||||
raise CredentialParameterNotFoundError(parameter.credential_id)
|
||||
|
||||
db_credential = await app.DATABASE.get_credential(credential_id, organization_id=organization.organization_id)
|
||||
if db_credential is None:
|
||||
raise CredentialParameterNotFoundError(credential_id)
|
||||
|
||||
bitwarden_credential = await BitwardenService.get_credential_item(db_credential.item_id)
|
||||
|
||||
credential_item = bitwarden_credential.credential
|
||||
|
||||
@@ -132,6 +132,7 @@ class WorkflowParameterType(StrEnum):
|
||||
BOOLEAN = "boolean"
|
||||
JSON = "json"
|
||||
FILE_URL = "file_url"
|
||||
CREDENTIAL_ID = "credential_id"
|
||||
|
||||
def convert_value(self, value: Any) -> str | int | float | bool | dict | list | None:
|
||||
if value is None:
|
||||
@@ -154,6 +155,8 @@ class WorkflowParameterType(StrEnum):
|
||||
return json.loads(value)
|
||||
elif self == WorkflowParameterType.FILE_URL:
|
||||
return value
|
||||
elif self == WorkflowParameterType.CREDENTIAL_ID:
|
||||
return value
|
||||
except Exception:
|
||||
raise InvalidWorkflowParameter(expected_parameter_type=self, value=str(value))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user