Save credential parameters as credential input parameter and display … (#1968)

This commit is contained in:
Shuchang Zheng
2025-03-19 08:37:52 -07:00
committed by GitHub
parent be8f3eb8ec
commit f837c52f83
6 changed files with 49 additions and 7 deletions

View File

@@ -25,7 +25,7 @@ import { z } from "zod";
import { WorkflowParameter } from "./types/workflowTypes"; import { WorkflowParameter } from "./types/workflowTypes";
import { WorkflowParameterInput } from "./WorkflowParameterInput"; import { WorkflowParameterInput } from "./WorkflowParameterInput";
import { AxiosError } from "axios"; import { AxiosError } from "axios";
import { getLabelForWorkflowParameterType } from "./editor/workflowEditorUtils";
type Props = { type Props = {
workflowParameters: Array<WorkflowParameter>; workflowParameters: Array<WorkflowParameter>;
initialValues: Record<string, unknown>; initialValues: Record<string, unknown>;
@@ -206,7 +206,9 @@ function RunWorkflowForm({
<div className="flex items-center gap-2 text-lg"> <div className="flex items-center gap-2 text-lg">
{parameter.key} {parameter.key}
<span className="text-sm text-slate-400"> <span className="text-sm text-slate-400">
{parameter.workflow_parameter_type} {getLabelForWorkflowParameterType(
parameter.workflow_parameter_type,
)}
</span> </span>
</div> </div>
<h2 className="text-sm text-slate-400"> <h2 className="text-sm text-slate-400">

View File

@@ -38,6 +38,7 @@ import {
WorkflowApiResponse, WorkflowApiResponse,
WorkflowEditorParameterTypes, WorkflowEditorParameterTypes,
WorkflowParameterTypes, WorkflowParameterTypes,
WorkflowParameterValueType,
WorkflowSettings, WorkflowSettings,
} from "../types/workflowTypes"; } from "../types/workflowTypes";
import { import {
@@ -163,10 +164,11 @@ function convertToParametersYAML(
}; };
} else { } else {
return { return {
parameter_type: WorkflowParameterTypes.Credential, parameter_type: WorkflowParameterTypes.Workflow,
workflow_parameter_type: WorkflowParameterValueType.CredentialId,
default_value: parameter.credentialId,
key: parameter.key, key: parameter.key,
description: parameter.description || null, description: parameter.description || null,
credential_id: parameter.credentialId,
}; };
} }
} }

View File

@@ -11,6 +11,7 @@ import {
isDisplayedInWorkflowEditor, isDisplayedInWorkflowEditor,
WorkflowEditorParameterTypes, WorkflowEditorParameterTypes,
WorkflowParameterTypes, WorkflowParameterTypes,
WorkflowParameterValueType,
WorkflowSettings, WorkflowSettings,
} from "../types/workflowTypes"; } from "../types/workflowTypes";
import { useGlobalWorkflowsQuery } from "../hooks/useGlobalWorkflowsQuery"; import { useGlobalWorkflowsQuery } from "../hooks/useGlobalWorkflowsQuery";
@@ -78,6 +79,17 @@ function WorkflowEditor() {
if ( if (
parameter.parameter_type === WorkflowParameterTypes.Workflow parameter.parameter_type === WorkflowParameterTypes.Workflow
) { ) {
if (
parameter.workflow_parameter_type ===
WorkflowParameterValueType.CredentialId
) {
return {
key: parameter.key,
parameterType: WorkflowEditorParameterTypes.Credential,
credentialId: parameter.default_value as string,
description: parameter.description,
};
}
return { return {
key: parameter.key, key: parameter.key,
parameterType: WorkflowEditorParameterTypes.Workflow, parameterType: WorkflowEditorParameterTypes.Workflow,

View File

@@ -39,7 +39,6 @@ const workflowParameterTypeOptions = [
{ label: "integer", value: WorkflowParameterValueType.Integer }, { label: "integer", value: WorkflowParameterValueType.Integer },
{ label: "boolean", value: WorkflowParameterValueType.Boolean }, { label: "boolean", value: WorkflowParameterValueType.Boolean },
{ label: "file", value: WorkflowParameterValueType.FileURL }, { label: "file", value: WorkflowParameterValueType.FileURL },
{ label: "credential", value: WorkflowParameterValueType.CredentialId },
{ label: "JSON", value: WorkflowParameterValueType.JSON }, { label: "JSON", value: WorkflowParameterValueType.JSON },
]; ];

View File

@@ -31,6 +31,7 @@ import {
WorkflowEditorParameterType, WorkflowEditorParameterType,
WorkflowEditorParameterTypes, WorkflowEditorParameterTypes,
} from "../../types/workflowTypes"; } from "../../types/workflowTypes";
import { getLabelForWorkflowParameterType } from "../workflowEditorUtils";
const WORKFLOW_EDIT_PANEL_WIDTH = 20 * 16; const WORKFLOW_EDIT_PANEL_WIDTH = 20 * 16;
const WORKFLOW_EDIT_PANEL_GAP = 1 * 16; const WORKFLOW_EDIT_PANEL_GAP = 1 * 16;
@@ -134,7 +135,7 @@ function WorkflowParametersPanel() {
<span className="text-sm">{parameter.key}</span> <span className="text-sm">{parameter.key}</span>
{parameter.parameterType === "workflow" ? ( {parameter.parameterType === "workflow" ? (
<span className="text-sm text-slate-400"> <span className="text-sm text-slate-400">
{parameter.dataType} {getLabelForWorkflowParameterType(parameter.dataType)}
</span> </span>
) : ( ) : (
<span className="text-sm text-slate-400"> <span className="text-sm text-slate-400">

View File

@@ -5,12 +5,12 @@ import { nanoid } from "nanoid";
import { import {
WorkflowBlockTypes, WorkflowBlockTypes,
WorkflowParameterTypes, WorkflowParameterTypes,
WorkflowParameterValueType,
type AWSSecretParameter, type AWSSecretParameter,
type OutputParameter, type OutputParameter,
type Parameter, type Parameter,
type WorkflowApiResponse, type WorkflowApiResponse,
type WorkflowBlock, type WorkflowBlock,
type WorkflowParameterValueType,
type WorkflowSettings, type WorkflowSettings,
} from "../types/workflowTypes"; } from "../types/workflowTypes";
import { import {
@@ -1960,6 +1960,31 @@ function getWorkflowErrors(nodes: Array<AppNode>): Array<string> {
return errors; return errors;
} }
function getLabelForWorkflowParameterType(type: WorkflowParameterValueType) {
if (type === WorkflowParameterValueType.String) {
return "string";
}
if (type === WorkflowParameterValueType.Float) {
return "float";
}
if (type === WorkflowParameterValueType.Integer) {
return "integer";
}
if (type === WorkflowParameterValueType.Boolean) {
return "boolean";
}
if (type === WorkflowParameterValueType.FileURL) {
return "file_url";
}
if (type === WorkflowParameterValueType.JSON) {
return "json";
}
if (type === WorkflowParameterValueType.CredentialId) {
return "credential";
}
return type;
}
export { export {
convert, convert,
convertEchoParameters, convertEchoParameters,
@@ -1971,6 +1996,7 @@ export {
getBlockNameOfOutputParameterKey, getBlockNameOfOutputParameterKey,
getDefaultValueForParameterType, getDefaultValueForParameterType,
getElements, getElements,
getLabelForWorkflowParameterType,
getWorkflowSettings, getWorkflowSettings,
getOutputParameterKey, getOutputParameterKey,
getPreviousNodeIds, getPreviousNodeIds,