add 1Password credential parameter support to workflow editor (#2657)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> Co-authored-by: Shuchang Zheng <wintonzheng0325@gmail.com>
This commit is contained in:
committed by
GitHub
parent
39a830ef6c
commit
3559e2572c
@@ -48,6 +48,7 @@ import {
|
|||||||
BlockYAML,
|
BlockYAML,
|
||||||
ContextParameterYAML,
|
ContextParameterYAML,
|
||||||
CredentialParameterYAML,
|
CredentialParameterYAML,
|
||||||
|
OnePasswordCredentialParameterYAML,
|
||||||
ParameterYAML,
|
ParameterYAML,
|
||||||
WorkflowCreateYAMLRequest,
|
WorkflowCreateYAMLRequest,
|
||||||
WorkflowParameterYAML,
|
WorkflowParameterYAML,
|
||||||
@@ -68,6 +69,12 @@ import {
|
|||||||
} from "./nodes";
|
} from "./nodes";
|
||||||
import { WorkflowNodeLibraryPanel } from "./panels/WorkflowNodeLibraryPanel";
|
import { WorkflowNodeLibraryPanel } from "./panels/WorkflowNodeLibraryPanel";
|
||||||
import { WorkflowParametersPanel } from "./panels/WorkflowParametersPanel";
|
import { WorkflowParametersPanel } from "./panels/WorkflowParametersPanel";
|
||||||
|
import {
|
||||||
|
ParametersState,
|
||||||
|
parameterIsSkyvernCredential,
|
||||||
|
parameterIsOnePasswordCredential,
|
||||||
|
parameterIsBitwardenCredential,
|
||||||
|
} from "./types";
|
||||||
import "./reactFlowOverrideStyles.css";
|
import "./reactFlowOverrideStyles.css";
|
||||||
import {
|
import {
|
||||||
convertEchoParameters,
|
convertEchoParameters,
|
||||||
@@ -84,7 +91,7 @@ import {
|
|||||||
nodeAdderNode,
|
nodeAdderNode,
|
||||||
startNode,
|
startNode,
|
||||||
} from "./workflowEditorUtils";
|
} from "./workflowEditorUtils";
|
||||||
import { parameterIsBitwardenCredential, ParametersState } from "./types";
|
|
||||||
import { useAutoPan } from "./useAutoPan";
|
import { useAutoPan } from "./useAutoPan";
|
||||||
|
|
||||||
function convertToParametersYAML(
|
function convertToParametersYAML(
|
||||||
@@ -95,86 +102,133 @@ function convertToParametersYAML(
|
|||||||
| ContextParameterYAML
|
| ContextParameterYAML
|
||||||
| BitwardenSensitiveInformationParameterYAML
|
| BitwardenSensitiveInformationParameterYAML
|
||||||
| BitwardenCreditCardDataParameterYAML
|
| BitwardenCreditCardDataParameterYAML
|
||||||
|
| OnePasswordCredentialParameterYAML
|
||||||
| CredentialParameterYAML
|
| CredentialParameterYAML
|
||||||
> {
|
> {
|
||||||
return parameters.map((parameter) => {
|
return parameters
|
||||||
if (parameter.parameterType === WorkflowEditorParameterTypes.Workflow) {
|
.map(
|
||||||
return {
|
(
|
||||||
parameter_type: WorkflowParameterTypes.Workflow,
|
parameter: ParametersState[number],
|
||||||
key: parameter.key,
|
):
|
||||||
description: parameter.description || null,
|
| WorkflowParameterYAML
|
||||||
workflow_parameter_type: parameter.dataType,
|
| BitwardenLoginCredentialParameterYAML
|
||||||
...(parameter.defaultValue === null
|
| ContextParameterYAML
|
||||||
? {}
|
| BitwardenSensitiveInformationParameterYAML
|
||||||
: { default_value: parameter.defaultValue }),
|
| BitwardenCreditCardDataParameterYAML
|
||||||
};
|
| OnePasswordCredentialParameterYAML
|
||||||
} else if (
|
| CredentialParameterYAML
|
||||||
parameter.parameterType === WorkflowEditorParameterTypes.Context
|
| undefined => {
|
||||||
) {
|
if (parameter.parameterType === WorkflowEditorParameterTypes.Workflow) {
|
||||||
return {
|
return {
|
||||||
parameter_type: WorkflowParameterTypes.Context,
|
parameter_type: WorkflowParameterTypes.Workflow,
|
||||||
key: parameter.key,
|
key: parameter.key,
|
||||||
description: parameter.description || null,
|
description: parameter.description || null,
|
||||||
source_parameter_key: parameter.sourceParameterKey,
|
workflow_parameter_type: parameter.dataType,
|
||||||
};
|
...(parameter.defaultValue === null
|
||||||
} else if (
|
? {}
|
||||||
parameter.parameterType === WorkflowEditorParameterTypes.Secret
|
: { default_value: parameter.defaultValue }),
|
||||||
) {
|
};
|
||||||
return {
|
} else if (
|
||||||
parameter_type: WorkflowParameterTypes.Bitwarden_Sensitive_Information,
|
parameter.parameterType === WorkflowEditorParameterTypes.Context
|
||||||
key: parameter.key,
|
) {
|
||||||
bitwarden_identity_key: parameter.identityKey,
|
return {
|
||||||
bitwarden_identity_fields: parameter.identityFields,
|
parameter_type: WorkflowParameterTypes.Context,
|
||||||
description: parameter.description || null,
|
key: parameter.key,
|
||||||
bitwarden_collection_id: parameter.collectionId,
|
description: parameter.description || null,
|
||||||
bitwarden_client_id_aws_secret_key: BITWARDEN_CLIENT_ID_AWS_SECRET_KEY,
|
source_parameter_key: parameter.sourceParameterKey,
|
||||||
bitwarden_client_secret_aws_secret_key:
|
};
|
||||||
BITWARDEN_CLIENT_SECRET_AWS_SECRET_KEY,
|
} else if (
|
||||||
bitwarden_master_password_aws_secret_key:
|
parameter.parameterType === WorkflowEditorParameterTypes.Secret
|
||||||
BITWARDEN_MASTER_PASSWORD_AWS_SECRET_KEY,
|
) {
|
||||||
};
|
return {
|
||||||
} else if (
|
parameter_type:
|
||||||
parameter.parameterType === WorkflowEditorParameterTypes.CreditCardData
|
WorkflowParameterTypes.Bitwarden_Sensitive_Information,
|
||||||
) {
|
key: parameter.key,
|
||||||
return {
|
bitwarden_identity_key: parameter.identityKey,
|
||||||
parameter_type: WorkflowParameterTypes.Bitwarden_Credit_Card_Data,
|
bitwarden_identity_fields: parameter.identityFields,
|
||||||
key: parameter.key,
|
description: parameter.description || null,
|
||||||
description: parameter.description || null,
|
bitwarden_collection_id: parameter.collectionId,
|
||||||
bitwarden_item_id: parameter.itemId,
|
bitwarden_client_id_aws_secret_key:
|
||||||
bitwarden_collection_id: parameter.collectionId,
|
BITWARDEN_CLIENT_ID_AWS_SECRET_KEY,
|
||||||
bitwarden_client_id_aws_secret_key: BITWARDEN_CLIENT_ID_AWS_SECRET_KEY,
|
bitwarden_client_secret_aws_secret_key:
|
||||||
bitwarden_client_secret_aws_secret_key:
|
BITWARDEN_CLIENT_SECRET_AWS_SECRET_KEY,
|
||||||
BITWARDEN_CLIENT_SECRET_AWS_SECRET_KEY,
|
bitwarden_master_password_aws_secret_key:
|
||||||
bitwarden_master_password_aws_secret_key:
|
BITWARDEN_MASTER_PASSWORD_AWS_SECRET_KEY,
|
||||||
BITWARDEN_MASTER_PASSWORD_AWS_SECRET_KEY,
|
};
|
||||||
};
|
} else if (
|
||||||
} else {
|
parameter.parameterType ===
|
||||||
if (parameterIsBitwardenCredential(parameter)) {
|
WorkflowEditorParameterTypes.CreditCardData
|
||||||
return {
|
) {
|
||||||
parameter_type: WorkflowParameterTypes.Bitwarden_Login_Credential,
|
return {
|
||||||
key: parameter.key,
|
parameter_type: WorkflowParameterTypes.Bitwarden_Credit_Card_Data,
|
||||||
description: parameter.description || null,
|
key: parameter.key,
|
||||||
bitwarden_collection_id: parameter.collectionId,
|
description: parameter.description || null,
|
||||||
bitwarden_item_id: parameter.itemId,
|
bitwarden_item_id: parameter.itemId,
|
||||||
url_parameter_key: parameter.urlParameterKey,
|
bitwarden_collection_id: parameter.collectionId,
|
||||||
bitwarden_client_id_aws_secret_key:
|
bitwarden_client_id_aws_secret_key:
|
||||||
BITWARDEN_CLIENT_ID_AWS_SECRET_KEY,
|
BITWARDEN_CLIENT_ID_AWS_SECRET_KEY,
|
||||||
bitwarden_client_secret_aws_secret_key:
|
bitwarden_client_secret_aws_secret_key:
|
||||||
BITWARDEN_CLIENT_SECRET_AWS_SECRET_KEY,
|
BITWARDEN_CLIENT_SECRET_AWS_SECRET_KEY,
|
||||||
bitwarden_master_password_aws_secret_key:
|
bitwarden_master_password_aws_secret_key:
|
||||||
BITWARDEN_MASTER_PASSWORD_AWS_SECRET_KEY,
|
BITWARDEN_MASTER_PASSWORD_AWS_SECRET_KEY,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return {
|
if (parameterIsBitwardenCredential(parameter)) {
|
||||||
parameter_type: WorkflowParameterTypes.Workflow,
|
return {
|
||||||
workflow_parameter_type: WorkflowParameterValueType.CredentialId,
|
parameter_type: WorkflowParameterTypes.Bitwarden_Login_Credential,
|
||||||
default_value: parameter.credentialId,
|
key: parameter.key,
|
||||||
key: parameter.key,
|
description: parameter.description || null,
|
||||||
description: parameter.description || null,
|
bitwarden_collection_id: parameter.collectionId,
|
||||||
};
|
bitwarden_item_id: parameter.itemId,
|
||||||
}
|
url_parameter_key: parameter.urlParameterKey,
|
||||||
}
|
bitwarden_client_id_aws_secret_key:
|
||||||
});
|
BITWARDEN_CLIENT_ID_AWS_SECRET_KEY,
|
||||||
|
bitwarden_client_secret_aws_secret_key:
|
||||||
|
BITWARDEN_CLIENT_SECRET_AWS_SECRET_KEY,
|
||||||
|
bitwarden_master_password_aws_secret_key:
|
||||||
|
BITWARDEN_MASTER_PASSWORD_AWS_SECRET_KEY,
|
||||||
|
};
|
||||||
|
} else if (parameterIsSkyvernCredential(parameter)) {
|
||||||
|
return {
|
||||||
|
parameter_type: WorkflowParameterTypes.Workflow,
|
||||||
|
workflow_parameter_type: WorkflowParameterValueType.CredentialId,
|
||||||
|
default_value: parameter.credentialId,
|
||||||
|
key: parameter.key,
|
||||||
|
description: parameter.description || null,
|
||||||
|
};
|
||||||
|
} else if (parameterIsOnePasswordCredential(parameter)) {
|
||||||
|
return {
|
||||||
|
parameter_type: WorkflowParameterTypes.OnePassword,
|
||||||
|
key: parameter.key,
|
||||||
|
description: parameter.description || null,
|
||||||
|
vault_id: parameter.vaultId,
|
||||||
|
item_id: parameter.itemId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.filter(
|
||||||
|
(
|
||||||
|
param:
|
||||||
|
| WorkflowParameterYAML
|
||||||
|
| BitwardenLoginCredentialParameterYAML
|
||||||
|
| ContextParameterYAML
|
||||||
|
| BitwardenSensitiveInformationParameterYAML
|
||||||
|
| BitwardenCreditCardDataParameterYAML
|
||||||
|
| OnePasswordCredentialParameterYAML
|
||||||
|
| CredentialParameterYAML
|
||||||
|
| undefined,
|
||||||
|
): param is
|
||||||
|
| WorkflowParameterYAML
|
||||||
|
| BitwardenLoginCredentialParameterYAML
|
||||||
|
| ContextParameterYAML
|
||||||
|
| BitwardenSensitiveInformationParameterYAML
|
||||||
|
| BitwardenCreditCardDataParameterYAML
|
||||||
|
| OnePasswordCredentialParameterYAML
|
||||||
|
| CredentialParameterYAML => param !== undefined,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
@@ -207,7 +261,8 @@ function FlowRenderer({
|
|||||||
useWorkflowPanelStore();
|
useWorkflowPanelStore();
|
||||||
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
|
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
|
||||||
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
|
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
|
||||||
const [parameters, setParameters] = useState(initialParameters);
|
const [parameters, setParameters] =
|
||||||
|
useState<ParametersState>(initialParameters);
|
||||||
const [title, setTitle] = useState(initialTitle);
|
const [title, setTitle] = useState(initialTitle);
|
||||||
const nodesInitialized = useNodesInitialized();
|
const nodesInitialized = useNodesInitialized();
|
||||||
const { hasChanges, setHasChanges } = useWorkflowHasChangesStore();
|
const { hasChanges, setHasChanges } = useWorkflowHasChangesStore();
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import {
|
|||||||
WorkflowParameterValueType,
|
WorkflowParameterValueType,
|
||||||
WorkflowSettings,
|
WorkflowSettings,
|
||||||
} from "../types/workflowTypes";
|
} from "../types/workflowTypes";
|
||||||
|
import { ParametersState } from "./types";
|
||||||
import { useGlobalWorkflowsQuery } from "../hooks/useGlobalWorkflowsQuery";
|
import { useGlobalWorkflowsQuery } from "../hooks/useGlobalWorkflowsQuery";
|
||||||
|
|
||||||
function WorkflowEditor() {
|
function WorkflowEditor() {
|
||||||
@@ -74,82 +75,100 @@ function WorkflowEditor() {
|
|||||||
initialTitle={workflow.title}
|
initialTitle={workflow.title}
|
||||||
initialNodes={elements.nodes}
|
initialNodes={elements.nodes}
|
||||||
initialEdges={elements.edges}
|
initialEdges={elements.edges}
|
||||||
initialParameters={workflow.workflow_definition.parameters
|
initialParameters={
|
||||||
.filter((parameter) => isDisplayedInWorkflowEditor(parameter))
|
workflow.workflow_definition.parameters
|
||||||
.map((parameter) => {
|
.filter((parameter) => isDisplayedInWorkflowEditor(parameter))
|
||||||
if (
|
.map((parameter) => {
|
||||||
parameter.parameter_type === WorkflowParameterTypes.Workflow
|
|
||||||
) {
|
|
||||||
if (
|
if (
|
||||||
parameter.workflow_parameter_type ===
|
parameter.parameter_type === WorkflowParameterTypes.Workflow
|
||||||
WorkflowParameterValueType.CredentialId
|
) {
|
||||||
|
if (
|
||||||
|
parameter.workflow_parameter_type ===
|
||||||
|
WorkflowParameterValueType.CredentialId
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.Credential,
|
||||||
|
credentialId: parameter.default_value as string,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.Workflow,
|
||||||
|
dataType: parameter.workflow_parameter_type,
|
||||||
|
defaultValue: parameter.default_value,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
parameter.parameter_type === WorkflowParameterTypes.Context
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.Context,
|
||||||
|
sourceParameterKey: parameter.source.key,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
parameter.parameter_type ===
|
||||||
|
WorkflowParameterTypes.Bitwarden_Sensitive_Information
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.Secret,
|
||||||
|
collectionId: parameter.bitwarden_collection_id,
|
||||||
|
identityKey: parameter.bitwarden_identity_key,
|
||||||
|
identityFields: parameter.bitwarden_identity_fields,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
parameter.parameter_type ===
|
||||||
|
WorkflowParameterTypes.Bitwarden_Credit_Card_Data
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.CreditCardData,
|
||||||
|
collectionId: parameter.bitwarden_collection_id,
|
||||||
|
itemId: parameter.bitwarden_item_id,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
parameter.parameter_type === WorkflowParameterTypes.Credential
|
||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
key: parameter.key,
|
key: parameter.key,
|
||||||
parameterType: WorkflowEditorParameterTypes.Credential,
|
parameterType: WorkflowEditorParameterTypes.Credential,
|
||||||
credentialId: parameter.default_value as string,
|
credentialId: parameter.credential_id,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
parameter.parameter_type ===
|
||||||
|
WorkflowParameterTypes.OnePassword
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.OnePassword,
|
||||||
|
vaultId: parameter.vault_id,
|
||||||
|
itemId: parameter.item_id,
|
||||||
|
description: parameter.description,
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
parameter.parameter_type ===
|
||||||
|
WorkflowParameterTypes.Bitwarden_Login_Credential
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
key: parameter.key,
|
||||||
|
parameterType: WorkflowEditorParameterTypes.Credential,
|
||||||
|
collectionId: parameter.bitwarden_collection_id,
|
||||||
|
itemId: parameter.bitwarden_item_id,
|
||||||
|
urlParameterKey: parameter.url_parameter_key,
|
||||||
description: parameter.description,
|
description: parameter.description,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return {
|
return undefined;
|
||||||
key: parameter.key,
|
})
|
||||||
parameterType: WorkflowEditorParameterTypes.Workflow,
|
.filter(Boolean) as ParametersState
|
||||||
dataType: parameter.workflow_parameter_type,
|
}
|
||||||
defaultValue: parameter.default_value,
|
|
||||||
description: parameter.description,
|
|
||||||
};
|
|
||||||
} else if (
|
|
||||||
parameter.parameter_type === WorkflowParameterTypes.Context
|
|
||||||
) {
|
|
||||||
return {
|
|
||||||
key: parameter.key,
|
|
||||||
parameterType: WorkflowEditorParameterTypes.Context,
|
|
||||||
sourceParameterKey: parameter.source.key,
|
|
||||||
description: parameter.description,
|
|
||||||
};
|
|
||||||
} else if (
|
|
||||||
parameter.parameter_type ===
|
|
||||||
WorkflowParameterTypes.Bitwarden_Sensitive_Information
|
|
||||||
) {
|
|
||||||
return {
|
|
||||||
key: parameter.key,
|
|
||||||
parameterType: WorkflowEditorParameterTypes.Secret,
|
|
||||||
collectionId: parameter.bitwarden_collection_id,
|
|
||||||
identityKey: parameter.bitwarden_identity_key,
|
|
||||||
identityFields: parameter.bitwarden_identity_fields,
|
|
||||||
description: parameter.description,
|
|
||||||
};
|
|
||||||
} else if (
|
|
||||||
parameter.parameter_type ===
|
|
||||||
WorkflowParameterTypes.Bitwarden_Credit_Card_Data
|
|
||||||
) {
|
|
||||||
return {
|
|
||||||
key: parameter.key,
|
|
||||||
parameterType: WorkflowEditorParameterTypes.CreditCardData,
|
|
||||||
collectionId: parameter.bitwarden_collection_id,
|
|
||||||
itemId: parameter.bitwarden_item_id,
|
|
||||||
description: parameter.description,
|
|
||||||
};
|
|
||||||
} else if (
|
|
||||||
parameter.parameter_type === WorkflowParameterTypes.Credential
|
|
||||||
) {
|
|
||||||
return {
|
|
||||||
key: parameter.key,
|
|
||||||
parameterType: WorkflowEditorParameterTypes.Credential,
|
|
||||||
credentialId: parameter.credential_id,
|
|
||||||
description: parameter.description,
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
key: parameter.key,
|
|
||||||
parameterType: WorkflowEditorParameterTypes.Credential,
|
|
||||||
collectionId: parameter.bitwarden_collection_id,
|
|
||||||
itemId: parameter.bitwarden_item_id,
|
|
||||||
urlParameterKey: parameter.url_parameter_key,
|
|
||||||
description: parameter.description,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
})}
|
|
||||||
workflow={workflow}
|
workflow={workflow}
|
||||||
/>
|
/>
|
||||||
</ReactFlowProvider>
|
</ReactFlowProvider>
|
||||||
|
|||||||
@@ -80,9 +80,11 @@ function WorkflowParameterAddPanel({ type, onClose, onSave }: Props) {
|
|||||||
string | undefined
|
string | undefined
|
||||||
>(undefined);
|
>(undefined);
|
||||||
|
|
||||||
const [credentialType, setCredentialType] = useState<"bitwarden" | "skyvern">(
|
const [credentialType, setCredentialType] = useState<
|
||||||
"skyvern",
|
"bitwarden" | "skyvern" | "onepassword"
|
||||||
);
|
>("skyvern");
|
||||||
|
const [vaultId, setVaultId] = useState("");
|
||||||
|
const [itemId, setItemId] = useState("");
|
||||||
|
|
||||||
const [identityKey, setIdentityKey] = useState("");
|
const [identityKey, setIdentityKey] = useState("");
|
||||||
const [identityFields, setIdentityFields] = useState("");
|
const [identityFields, setIdentityFields] = useState("");
|
||||||
@@ -200,11 +202,14 @@ function WorkflowParameterAddPanel({ type, onClose, onSave }: Props) {
|
|||||||
<SwitchBar
|
<SwitchBar
|
||||||
value={credentialType}
|
value={credentialType}
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
setCredentialType(value as "bitwarden" | "skyvern");
|
setCredentialType(
|
||||||
|
value as "bitwarden" | "skyvern" | "onepassword",
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
options={[
|
options={[
|
||||||
{ label: "Skyvern", value: "skyvern" },
|
{ label: "Skyvern", value: "skyvern" },
|
||||||
{ label: "Bitwarden", value: "bitwarden" },
|
{ label: "Bitwarden", value: "bitwarden" },
|
||||||
|
{ label: "1Password", value: "onepassword" },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
@@ -237,6 +242,24 @@ function WorkflowParameterAddPanel({ type, onClose, onSave }: Props) {
|
|||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
{type === "credential" && credentialType === "onepassword" && (
|
||||||
|
<>
|
||||||
|
<div className="space-y-1">
|
||||||
|
<Label className="text-xs text-slate-300">Vault ID</Label>
|
||||||
|
<Input
|
||||||
|
value={vaultId}
|
||||||
|
onChange={(e) => setVaultId(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-1">
|
||||||
|
<Label className="text-xs text-slate-300">Item ID</Label>
|
||||||
|
<Input
|
||||||
|
value={itemId}
|
||||||
|
onChange={(e) => setItemId(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
{type === "context" && (
|
{type === "context" && (
|
||||||
<div className="space-y-1">
|
<div className="space-y-1">
|
||||||
<Label className="text-xs text-slate-300">Source Parameter</Label>
|
<Label className="text-xs text-slate-300">Source Parameter</Label>
|
||||||
@@ -387,6 +410,23 @@ function WorkflowParameterAddPanel({ type, onClose, onSave }: Props) {
|
|||||||
description,
|
description,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (type === "credential" && credentialType === "onepassword") {
|
||||||
|
if (vaultId.trim() === "" || itemId.trim() === "") {
|
||||||
|
toast({
|
||||||
|
variant: "destructive",
|
||||||
|
title: "Failed to add parameter",
|
||||||
|
description: "Vault ID and Item ID are required",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
onSave({
|
||||||
|
key,
|
||||||
|
parameterType: "onepassword",
|
||||||
|
vaultId,
|
||||||
|
itemId,
|
||||||
|
description,
|
||||||
|
});
|
||||||
|
}
|
||||||
if (type === "secret" || type === "creditCardData") {
|
if (type === "secret" || type === "creditCardData") {
|
||||||
if (!bitwardenCollectionId) {
|
if (!bitwardenCollectionId) {
|
||||||
toast({
|
toast({
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import { WorkflowParameterInput } from "../../WorkflowParameterInput";
|
|||||||
import {
|
import {
|
||||||
parameterIsBitwardenCredential,
|
parameterIsBitwardenCredential,
|
||||||
parameterIsSkyvernCredential,
|
parameterIsSkyvernCredential,
|
||||||
|
parameterIsOnePasswordCredential,
|
||||||
ParametersState,
|
ParametersState,
|
||||||
} from "../types";
|
} from "../types";
|
||||||
import { getDefaultValueForParameterType } from "../workflowEditorUtils";
|
import { getDefaultValueForParameterType } from "../workflowEditorUtils";
|
||||||
@@ -78,8 +79,17 @@ function WorkflowParameterEditPanel({
|
|||||||
const isSkyvernCredential =
|
const isSkyvernCredential =
|
||||||
initialValues.parameterType === "credential" &&
|
initialValues.parameterType === "credential" &&
|
||||||
parameterIsSkyvernCredential(initialValues);
|
parameterIsSkyvernCredential(initialValues);
|
||||||
const [credentialType, setCredentialType] = useState<"bitwarden" | "skyvern">(
|
const isOnePasswordCredential =
|
||||||
isBitwardenCredential ? "bitwarden" : "skyvern",
|
initialValues.parameterType === "onepassword" &&
|
||||||
|
parameterIsOnePasswordCredential(initialValues);
|
||||||
|
const [credentialType, setCredentialType] = useState<
|
||||||
|
"bitwarden" | "skyvern" | "onepassword"
|
||||||
|
>(
|
||||||
|
isBitwardenCredential
|
||||||
|
? "bitwarden"
|
||||||
|
: isOnePasswordCredential
|
||||||
|
? "onepassword"
|
||||||
|
: "skyvern",
|
||||||
);
|
);
|
||||||
const [urlParameterKey, setUrlParameterKey] = useState(
|
const [urlParameterKey, setUrlParameterKey] = useState(
|
||||||
isBitwardenCredential ? initialValues.urlParameterKey ?? "" : "",
|
isBitwardenCredential ? initialValues.urlParameterKey ?? "" : "",
|
||||||
@@ -143,6 +153,12 @@ function WorkflowParameterEditPanel({
|
|||||||
const [credentialId, setCredentialId] = useState(
|
const [credentialId, setCredentialId] = useState(
|
||||||
isSkyvernCredential ? initialValues.credentialId : "",
|
isSkyvernCredential ? initialValues.credentialId : "",
|
||||||
);
|
);
|
||||||
|
const [vaultId, setVaultId] = useState(
|
||||||
|
isOnePasswordCredential ? initialValues.vaultId : "",
|
||||||
|
);
|
||||||
|
const [opItemId, setOpItemId] = useState(
|
||||||
|
isOnePasswordCredential ? initialValues.itemId : "",
|
||||||
|
);
|
||||||
|
|
||||||
const [bitwardenLoginCredentialItemId, setBitwardenLoginCredentialItemId] =
|
const [bitwardenLoginCredentialItemId, setBitwardenLoginCredentialItemId] =
|
||||||
useState(isBitwardenCredential ? initialValues.itemId ?? "" : "");
|
useState(isBitwardenCredential ? initialValues.itemId ?? "" : "");
|
||||||
@@ -256,11 +272,14 @@ function WorkflowParameterEditPanel({
|
|||||||
<SwitchBar
|
<SwitchBar
|
||||||
value={credentialType}
|
value={credentialType}
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
setCredentialType(value as "bitwarden" | "skyvern");
|
setCredentialType(
|
||||||
|
value as "bitwarden" | "skyvern" | "onepassword",
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
options={[
|
options={[
|
||||||
{ label: "Skyvern", value: "skyvern" },
|
{ label: "Skyvern", value: "skyvern" },
|
||||||
{ label: "Bitwarden", value: "bitwarden" },
|
{ label: "Bitwarden", value: "bitwarden" },
|
||||||
|
{ label: "1Password", value: "onepassword" },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
@@ -293,6 +312,24 @@ function WorkflowParameterEditPanel({
|
|||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
{type === "credential" && credentialType === "onepassword" && (
|
||||||
|
<>
|
||||||
|
<div className="space-y-1">
|
||||||
|
<Label className="text-xs text-slate-300">Vault ID</Label>
|
||||||
|
<Input
|
||||||
|
value={vaultId}
|
||||||
|
onChange={(e) => setVaultId(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-1">
|
||||||
|
<Label className="text-xs text-slate-300">Item ID</Label>
|
||||||
|
<Input
|
||||||
|
value={opItemId}
|
||||||
|
onChange={(e) => setOpItemId(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
{type === "context" && (
|
{type === "context" && (
|
||||||
<div className="space-y-1">
|
<div className="space-y-1">
|
||||||
<Label className="text-xs text-slate-300">Source Parameter</Label>
|
<Label className="text-xs text-slate-300">Source Parameter</Label>
|
||||||
@@ -430,6 +467,23 @@ function WorkflowParameterEditPanel({
|
|||||||
description,
|
description,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (type === "credential" && credentialType === "onepassword") {
|
||||||
|
if (vaultId.trim() === "" || opItemId.trim() === "") {
|
||||||
|
toast({
|
||||||
|
variant: "destructive",
|
||||||
|
title: "Failed to save parameter",
|
||||||
|
description: "Vault ID and Item ID are required",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
onSave({
|
||||||
|
key,
|
||||||
|
parameterType: "onepassword",
|
||||||
|
vaultId,
|
||||||
|
itemId: opItemId,
|
||||||
|
description,
|
||||||
|
});
|
||||||
|
}
|
||||||
if (type === "secret" || type === "creditCardData") {
|
if (type === "secret" || type === "creditCardData") {
|
||||||
if (!collectionId) {
|
if (!collectionId) {
|
||||||
toast({
|
toast({
|
||||||
|
|||||||
@@ -153,7 +153,10 @@ function WorkflowParametersPanel() {
|
|||||||
active: true,
|
active: true,
|
||||||
operation: "edit",
|
operation: "edit",
|
||||||
parameter: parameter,
|
parameter: parameter,
|
||||||
type: parameter.parameterType,
|
type:
|
||||||
|
parameter.parameterType === "onepassword"
|
||||||
|
? WorkflowEditorParameterTypes.OnePassword
|
||||||
|
: parameter.parameterType,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -16,6 +16,14 @@ export type SkyvernCredential = {
|
|||||||
credentialId: string;
|
credentialId: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type OnePasswordCredential = {
|
||||||
|
key: string;
|
||||||
|
description?: string | null;
|
||||||
|
parameterType: "onepassword";
|
||||||
|
vaultId: string;
|
||||||
|
itemId: string;
|
||||||
|
};
|
||||||
|
|
||||||
export function parameterIsBitwardenCredential(
|
export function parameterIsBitwardenCredential(
|
||||||
parameter: CredentialParameterState,
|
parameter: CredentialParameterState,
|
||||||
): parameter is BitwardenLoginCredential {
|
): parameter is BitwardenLoginCredential {
|
||||||
@@ -28,9 +36,16 @@ export function parameterIsSkyvernCredential(
|
|||||||
return "credentialId" in parameter;
|
return "credentialId" in parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function parameterIsOnePasswordCredential(
|
||||||
|
parameter: CredentialParameterState,
|
||||||
|
): parameter is OnePasswordCredential {
|
||||||
|
return "vaultId" in parameter && "itemId" in parameter;
|
||||||
|
}
|
||||||
|
|
||||||
export type CredentialParameterState =
|
export type CredentialParameterState =
|
||||||
| BitwardenLoginCredential
|
| BitwardenLoginCredential
|
||||||
| SkyvernCredential;
|
| SkyvernCredential
|
||||||
|
| OnePasswordCredential;
|
||||||
|
|
||||||
export type ParametersState = Array<
|
export type ParametersState = Array<
|
||||||
| {
|
| {
|
||||||
@@ -53,6 +68,7 @@ export type ParametersState = Array<
|
|||||||
identityFields: Array<string>;
|
identityFields: Array<string>;
|
||||||
collectionId: string;
|
collectionId: string;
|
||||||
description?: string | null;
|
description?: string | null;
|
||||||
|
maybe?: boolean;
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
key: string;
|
key: string;
|
||||||
|
|||||||
@@ -1614,89 +1614,99 @@ function getAvailableOutputParameterKeys(
|
|||||||
function convertParametersToParameterYAML(
|
function convertParametersToParameterYAML(
|
||||||
parameters: Array<Exclude<Parameter, OutputParameter>>,
|
parameters: Array<Exclude<Parameter, OutputParameter>>,
|
||||||
): Array<ParameterYAML> {
|
): Array<ParameterYAML> {
|
||||||
return parameters.map((parameter) => {
|
return parameters
|
||||||
const base = {
|
.map((parameter) => {
|
||||||
key: parameter.key,
|
const base = {
|
||||||
description: parameter.description,
|
key: parameter.key,
|
||||||
parameter_type: parameter.parameter_type,
|
description: parameter.description,
|
||||||
};
|
parameter_type: parameter.parameter_type,
|
||||||
switch (parameter.parameter_type) {
|
};
|
||||||
case WorkflowParameterTypes.AWS_Secret: {
|
switch (parameter.parameter_type) {
|
||||||
return {
|
case WorkflowParameterTypes.AWS_Secret: {
|
||||||
...base,
|
return {
|
||||||
parameter_type: WorkflowParameterTypes.AWS_Secret,
|
...base,
|
||||||
aws_key: parameter.aws_key,
|
parameter_type: WorkflowParameterTypes.AWS_Secret,
|
||||||
};
|
aws_key: parameter.aws_key,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.Bitwarden_Login_Credential: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type: WorkflowParameterTypes.Bitwarden_Login_Credential,
|
||||||
|
bitwarden_collection_id: parameter.bitwarden_collection_id,
|
||||||
|
bitwarden_item_id: parameter.bitwarden_item_id,
|
||||||
|
url_parameter_key: parameter.url_parameter_key,
|
||||||
|
bitwarden_client_id_aws_secret_key:
|
||||||
|
parameter.bitwarden_client_id_aws_secret_key,
|
||||||
|
bitwarden_client_secret_aws_secret_key:
|
||||||
|
parameter.bitwarden_client_secret_aws_secret_key,
|
||||||
|
bitwarden_master_password_aws_secret_key:
|
||||||
|
parameter.bitwarden_master_password_aws_secret_key,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.Bitwarden_Sensitive_Information: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type:
|
||||||
|
WorkflowParameterTypes.Bitwarden_Sensitive_Information,
|
||||||
|
bitwarden_collection_id: parameter.bitwarden_collection_id,
|
||||||
|
bitwarden_identity_key: parameter.bitwarden_identity_key,
|
||||||
|
bitwarden_identity_fields: parameter.bitwarden_identity_fields,
|
||||||
|
bitwarden_client_id_aws_secret_key:
|
||||||
|
parameter.bitwarden_client_id_aws_secret_key,
|
||||||
|
bitwarden_client_secret_aws_secret_key:
|
||||||
|
parameter.bitwarden_client_secret_aws_secret_key,
|
||||||
|
bitwarden_master_password_aws_secret_key:
|
||||||
|
parameter.bitwarden_master_password_aws_secret_key,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.Bitwarden_Credit_Card_Data: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type: WorkflowParameterTypes.Bitwarden_Credit_Card_Data,
|
||||||
|
bitwarden_collection_id: parameter.bitwarden_collection_id,
|
||||||
|
bitwarden_item_id: parameter.bitwarden_item_id,
|
||||||
|
bitwarden_client_id_aws_secret_key:
|
||||||
|
parameter.bitwarden_client_id_aws_secret_key,
|
||||||
|
bitwarden_client_secret_aws_secret_key:
|
||||||
|
parameter.bitwarden_client_secret_aws_secret_key,
|
||||||
|
bitwarden_master_password_aws_secret_key:
|
||||||
|
parameter.bitwarden_master_password_aws_secret_key,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.Context: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type: WorkflowParameterTypes.Context,
|
||||||
|
source_parameter_key: parameter.source.key,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.Workflow: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type: WorkflowParameterTypes.Workflow,
|
||||||
|
workflow_parameter_type: parameter.workflow_parameter_type,
|
||||||
|
default_value: parameter.default_value,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.Credential: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type: WorkflowParameterTypes.Credential,
|
||||||
|
credential_id: parameter.credential_id,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case WorkflowParameterTypes.OnePassword: {
|
||||||
|
return {
|
||||||
|
...base,
|
||||||
|
parameter_type: WorkflowParameterTypes.OnePassword,
|
||||||
|
vault_id: parameter.vault_id,
|
||||||
|
item_id: parameter.item_id,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case WorkflowParameterTypes.Bitwarden_Login_Credential: {
|
})
|
||||||
return {
|
.filter(Boolean);
|
||||||
...base,
|
|
||||||
parameter_type: WorkflowParameterTypes.Bitwarden_Login_Credential,
|
|
||||||
bitwarden_collection_id: parameter.bitwarden_collection_id,
|
|
||||||
bitwarden_item_id: parameter.bitwarden_item_id,
|
|
||||||
url_parameter_key: parameter.url_parameter_key,
|
|
||||||
bitwarden_client_id_aws_secret_key:
|
|
||||||
parameter.bitwarden_client_id_aws_secret_key,
|
|
||||||
bitwarden_client_secret_aws_secret_key:
|
|
||||||
parameter.bitwarden_client_secret_aws_secret_key,
|
|
||||||
bitwarden_master_password_aws_secret_key:
|
|
||||||
parameter.bitwarden_master_password_aws_secret_key,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case WorkflowParameterTypes.Bitwarden_Sensitive_Information: {
|
|
||||||
return {
|
|
||||||
...base,
|
|
||||||
parameter_type:
|
|
||||||
WorkflowParameterTypes.Bitwarden_Sensitive_Information,
|
|
||||||
bitwarden_collection_id: parameter.bitwarden_collection_id,
|
|
||||||
bitwarden_identity_key: parameter.bitwarden_identity_key,
|
|
||||||
bitwarden_identity_fields: parameter.bitwarden_identity_fields,
|
|
||||||
bitwarden_client_id_aws_secret_key:
|
|
||||||
parameter.bitwarden_client_id_aws_secret_key,
|
|
||||||
bitwarden_client_secret_aws_secret_key:
|
|
||||||
parameter.bitwarden_client_secret_aws_secret_key,
|
|
||||||
bitwarden_master_password_aws_secret_key:
|
|
||||||
parameter.bitwarden_master_password_aws_secret_key,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case WorkflowParameterTypes.Bitwarden_Credit_Card_Data: {
|
|
||||||
return {
|
|
||||||
...base,
|
|
||||||
parameter_type: WorkflowParameterTypes.Bitwarden_Credit_Card_Data,
|
|
||||||
bitwarden_collection_id: parameter.bitwarden_collection_id,
|
|
||||||
bitwarden_item_id: parameter.bitwarden_item_id,
|
|
||||||
bitwarden_client_id_aws_secret_key:
|
|
||||||
parameter.bitwarden_client_id_aws_secret_key,
|
|
||||||
bitwarden_client_secret_aws_secret_key:
|
|
||||||
parameter.bitwarden_client_secret_aws_secret_key,
|
|
||||||
bitwarden_master_password_aws_secret_key:
|
|
||||||
parameter.bitwarden_master_password_aws_secret_key,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case WorkflowParameterTypes.Context: {
|
|
||||||
return {
|
|
||||||
...base,
|
|
||||||
parameter_type: WorkflowParameterTypes.Context,
|
|
||||||
source_parameter_key: parameter.source.key,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case WorkflowParameterTypes.Workflow: {
|
|
||||||
return {
|
|
||||||
...base,
|
|
||||||
parameter_type: WorkflowParameterTypes.Workflow,
|
|
||||||
workflow_parameter_type: parameter.workflow_parameter_type,
|
|
||||||
default_value: parameter.default_value,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case WorkflowParameterTypes.Credential: {
|
|
||||||
return {
|
|
||||||
...base,
|
|
||||||
parameter_type: WorkflowParameterTypes.Credential,
|
|
||||||
credential_id: parameter.credential_id,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function convertBlocksToBlockYAML(
|
function convertBlocksToBlockYAML(
|
||||||
|
|||||||
@@ -61,6 +61,17 @@ export type BitwardenCreditCardDataParameter = WorkflowParameterBase & {
|
|||||||
deleted_at: string | null;
|
deleted_at: string | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type OnePasswordCredentialParameter = WorkflowParameterBase & {
|
||||||
|
parameter_type: "onepassword";
|
||||||
|
workflow_id: string;
|
||||||
|
onepassword_credential_parameter_id: string;
|
||||||
|
vault_id: string;
|
||||||
|
item_id: string;
|
||||||
|
created_at: string;
|
||||||
|
modified_at: string;
|
||||||
|
deleted_at: string | null;
|
||||||
|
};
|
||||||
|
|
||||||
export type CredentialParameter = WorkflowParameterBase & {
|
export type CredentialParameter = WorkflowParameterBase & {
|
||||||
parameter_type: "credential";
|
parameter_type: "credential";
|
||||||
workflow_id: string;
|
workflow_id: string;
|
||||||
@@ -118,6 +129,7 @@ export const WorkflowParameterTypes = {
|
|||||||
Bitwarden_Login_Credential: "bitwarden_login_credential",
|
Bitwarden_Login_Credential: "bitwarden_login_credential",
|
||||||
Bitwarden_Sensitive_Information: "bitwarden_sensitive_information",
|
Bitwarden_Sensitive_Information: "bitwarden_sensitive_information",
|
||||||
Bitwarden_Credit_Card_Data: "bitwarden_credit_card_data",
|
Bitwarden_Credit_Card_Data: "bitwarden_credit_card_data",
|
||||||
|
OnePassword: "onepassword",
|
||||||
Credential: "credential",
|
Credential: "credential",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
@@ -132,6 +144,7 @@ export function isDisplayedInWorkflowEditor(
|
|||||||
| BitwardenCreditCardDataParameter
|
| BitwardenCreditCardDataParameter
|
||||||
| BitwardenLoginCredentialParameter
|
| BitwardenLoginCredentialParameter
|
||||||
| BitwardenSensitiveInformationParameter
|
| BitwardenSensitiveInformationParameter
|
||||||
|
| OnePasswordCredentialParameter
|
||||||
| CredentialParameter {
|
| CredentialParameter {
|
||||||
return (
|
return (
|
||||||
parameter.parameter_type === WorkflowParameterTypes.Workflow ||
|
parameter.parameter_type === WorkflowParameterTypes.Workflow ||
|
||||||
@@ -142,6 +155,7 @@ export function isDisplayedInWorkflowEditor(
|
|||||||
WorkflowParameterTypes.Bitwarden_Sensitive_Information ||
|
WorkflowParameterTypes.Bitwarden_Sensitive_Information ||
|
||||||
parameter.parameter_type ===
|
parameter.parameter_type ===
|
||||||
WorkflowParameterTypes.Bitwarden_Credit_Card_Data ||
|
WorkflowParameterTypes.Bitwarden_Credit_Card_Data ||
|
||||||
|
parameter.parameter_type === WorkflowParameterTypes.OnePassword ||
|
||||||
parameter.parameter_type === WorkflowParameterTypes.Credential
|
parameter.parameter_type === WorkflowParameterTypes.Credential
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -153,6 +167,7 @@ export type Parameter =
|
|||||||
| BitwardenLoginCredentialParameter
|
| BitwardenLoginCredentialParameter
|
||||||
| BitwardenSensitiveInformationParameter
|
| BitwardenSensitiveInformationParameter
|
||||||
| BitwardenCreditCardDataParameter
|
| BitwardenCreditCardDataParameter
|
||||||
|
| OnePasswordCredentialParameter
|
||||||
| AWSSecretParameter
|
| AWSSecretParameter
|
||||||
| CredentialParameter;
|
| CredentialParameter;
|
||||||
|
|
||||||
@@ -222,6 +237,7 @@ export const WorkflowEditorParameterTypes = {
|
|||||||
Secret: "secret",
|
Secret: "secret",
|
||||||
Context: "context",
|
Context: "context",
|
||||||
CreditCardData: "creditCardData",
|
CreditCardData: "creditCardData",
|
||||||
|
OnePassword: "onepassword",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export type WorkflowEditorParameterType =
|
export type WorkflowEditorParameterType =
|
||||||
|
|||||||
@@ -23,11 +23,12 @@ export type ParameterYAML =
|
|||||||
| WorkflowParameterYAML
|
| WorkflowParameterYAML
|
||||||
| BitwardenLoginCredentialParameterYAML
|
| BitwardenLoginCredentialParameterYAML
|
||||||
| AWSSecretParameterYAML
|
| AWSSecretParameterYAML
|
||||||
| CredentialParameterYAML
|
| BitwardenSensitiveInformationParameterYAML
|
||||||
|
| BitwardenCreditCardDataParameterYAML
|
||||||
|
| OnePasswordCredentialParameterYAML
|
||||||
| ContextParameterYAML
|
| ContextParameterYAML
|
||||||
| OutputParameterYAML
|
| OutputParameterYAML
|
||||||
| BitwardenSensitiveInformationParameterYAML
|
| CredentialParameterYAML;
|
||||||
| BitwardenCreditCardDataParameterYAML;
|
|
||||||
|
|
||||||
export type ParameterYAMLBase = {
|
export type ParameterYAMLBase = {
|
||||||
parameter_type: string;
|
parameter_type: string;
|
||||||
@@ -78,6 +79,12 @@ export type BitwardenCreditCardDataParameterYAML = ParameterYAMLBase & {
|
|||||||
bitwarden_master_password_aws_secret_key: string;
|
bitwarden_master_password_aws_secret_key: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type OnePasswordCredentialParameterYAML = ParameterYAMLBase & {
|
||||||
|
parameter_type: "onepassword";
|
||||||
|
vault_id: string;
|
||||||
|
item_id: string;
|
||||||
|
};
|
||||||
|
|
||||||
export type ContextParameterYAML = ParameterYAMLBase & {
|
export type ContextParameterYAML = ParameterYAMLBase & {
|
||||||
parameter_type: "context";
|
parameter_type: "context";
|
||||||
source_parameter_key: string;
|
source_parameter_key: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user