Add workflow parameter type credential_id (#1896)

This commit is contained in:
Shuchang Zheng
2025-03-06 09:53:11 -08:00
committed by GitHub
parent da3d8dbbbb
commit 67e50e0d0e
2 changed files with 17 additions and 4 deletions

View File

@@ -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

View File

@@ -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))