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