Update workflow version struct (#6716)
We want to avoid the nested structure of active pieces. Steps to execute will now be separated from the trigger. It will be an array executed sequentially. For now a step can only be an action. But at some point it will also be a branch or a loop
This commit is contained in:
@ -21,6 +21,7 @@ import {
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
import { WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity';
|
||||
import { WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
|
||||
import { WorkflowStep } from 'src/modules/workflow/common/types/workflow-step.type';
|
||||
import { WorkflowTrigger } from 'src/modules/workflow/common/types/workflow-trigger.type';
|
||||
|
||||
@WorkspaceEntity({
|
||||
@ -51,11 +52,19 @@ export class WorkflowVersionWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
type: FieldMetadataType.RAW_JSON,
|
||||
label: 'Version trigger',
|
||||
description: 'Json object to provide trigger',
|
||||
icon: 'IconPlayerPlay',
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
trigger: WorkflowTrigger | null;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WORKFLOW_VERSION_STANDARD_FIELD_IDS.steps,
|
||||
type: FieldMetadataType.RAW_JSON,
|
||||
label: 'Version steps',
|
||||
description: 'Json object to provide steps',
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
steps: WorkflowStep[] | null;
|
||||
|
||||
// Relations
|
||||
@WorkspaceRelation({
|
||||
standardId: WORKFLOW_VERSION_STANDARD_FIELD_IDS.workflow,
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
import { WorkflowCodeSettingsType } from 'src/modules/workflow/common/types/workflow-settings.type';
|
||||
|
||||
export enum WorkflowActionType {
|
||||
CODE = 'CODE',
|
||||
}
|
||||
|
||||
type CommonWorkflowAction = {
|
||||
name: string;
|
||||
displayName: string;
|
||||
valid: boolean;
|
||||
};
|
||||
|
||||
type WorkflowCodeAction = CommonWorkflowAction & {
|
||||
type: WorkflowActionType.CODE;
|
||||
settings: WorkflowCodeSettingsType;
|
||||
};
|
||||
|
||||
export type WorkflowAction = WorkflowCodeAction & {
|
||||
nextAction: WorkflowAction;
|
||||
};
|
||||
@ -1,4 +1,4 @@
|
||||
type WorkflowBaseSettingsType = {
|
||||
type BaseWorkflowSettings = {
|
||||
errorHandlingOptions: {
|
||||
retryOnFailure: {
|
||||
value: boolean;
|
||||
@ -9,6 +9,6 @@ type WorkflowBaseSettingsType = {
|
||||
};
|
||||
};
|
||||
|
||||
export type WorkflowCodeSettingsType = WorkflowBaseSettingsType & {
|
||||
export type WorkflowCodeSettings = BaseWorkflowSettings & {
|
||||
serverlessFunctionId: string;
|
||||
};
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
import { WorkflowCodeSettings } from 'src/modules/workflow/common/types/workflow-settings.type';
|
||||
|
||||
export enum WorkflowStepType {
|
||||
CODE_ACTION = 'CODE_ACTION',
|
||||
}
|
||||
|
||||
type BaseWorkflowStep = {
|
||||
id: string;
|
||||
name: string;
|
||||
valid: boolean;
|
||||
};
|
||||
|
||||
export type WorkflowCodeStep = BaseWorkflowStep & {
|
||||
type: WorkflowStepType.CODE_ACTION;
|
||||
settings: WorkflowCodeSettings;
|
||||
};
|
||||
|
||||
export type WorkflowStep = WorkflowCodeStep;
|
||||
@ -1,20 +1,17 @@
|
||||
import { WorkflowAction } from 'src/modules/workflow/common/types/workflow-action.type';
|
||||
|
||||
export enum WorkflowTriggerType {
|
||||
DATABASE_EVENT = 'DATABASE_EVENT',
|
||||
}
|
||||
|
||||
type BaseTrigger = {
|
||||
name: string;
|
||||
type: WorkflowTriggerType;
|
||||
input?: object;
|
||||
nextAction?: WorkflowAction;
|
||||
};
|
||||
|
||||
export type WorkflowDatabaseEventTrigger = BaseTrigger & {
|
||||
type: WorkflowTriggerType.DATABASE_EVENT;
|
||||
settings: {
|
||||
eventName: string;
|
||||
triggerName: string;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user