101 featch available variables from previous steps (#8062)

- add outputSchema in workflow step settings
- use outputSchemas to compute step available variables


https://github.com/user-attachments/assets/6b851d8e-625c-49ff-b29c-074cd86cbfee
This commit is contained in:
martmull
2024-10-28 12:25:29 +01:00
committed by GitHub
parent 3ae987be92
commit 1aa961dedf
49 changed files with 706 additions and 83 deletions

View File

@ -8,6 +8,7 @@ describe('addCreateStepNodes', () => {
type: 'DATABASE_EVENT',
settings: {
eventName: 'company.created',
outputSchema: {},
},
};
const steps: WorkflowStep[] = [
@ -23,7 +24,9 @@ describe('addCreateStepNodes', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
{
@ -38,7 +41,9 @@ describe('addCreateStepNodes', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
];

View File

@ -7,6 +7,7 @@ describe('generateWorkflowDiagram', () => {
type: 'DATABASE_EVENT',
settings: {
eventName: 'company.created',
outputSchema: {},
},
};
const steps: WorkflowStep[] = [];
@ -29,6 +30,7 @@ describe('generateWorkflowDiagram', () => {
type: 'DATABASE_EVENT',
settings: {
eventName: 'company.created',
outputSchema: {},
},
};
const steps: WorkflowStep[] = [
@ -44,7 +46,9 @@ describe('generateWorkflowDiagram', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
{
@ -59,7 +63,9 @@ describe('generateWorkflowDiagram', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
];
@ -87,6 +93,7 @@ describe('generateWorkflowDiagram', () => {
type: 'DATABASE_EVENT',
settings: {
eventName: 'company.created',
outputSchema: {},
},
};
const steps: WorkflowStep[] = [
@ -102,7 +109,9 @@ describe('generateWorkflowDiagram', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
{
@ -117,7 +126,9 @@ describe('generateWorkflowDiagram', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
];

View File

@ -42,7 +42,7 @@ describe('getWorkflowVersionDiagram', () => {
name: '',
steps: null,
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -83,14 +83,16 @@ describe('getWorkflowVersionDiagram', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
},
],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',

View File

@ -11,7 +11,7 @@ describe('insertStep', () => {
name: '',
steps: [],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -27,7 +27,9 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -51,7 +53,7 @@ describe('insertStep', () => {
name: '',
steps: [],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -67,7 +69,9 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -101,7 +105,9 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -116,14 +122,16 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
},
],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -139,7 +147,9 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -177,7 +187,9 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -192,14 +204,16 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
},
],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -215,7 +229,9 @@ describe('insertStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,

View File

@ -12,7 +12,9 @@ it('returns a deep copy of the provided steps array instead of mutating it', ()
},
input: {
serverlessFunctionId: 'first',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -25,7 +27,7 @@ it('returns a deep copy of the provided steps array instead of mutating it', ()
name: '',
steps: [stepToBeRemoved],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -51,7 +53,9 @@ it('removes a step in a non-empty steps array', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -73,7 +77,9 @@ it('removes a step in a non-empty steps array', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -89,14 +95,16 @@ it('removes a step in a non-empty steps array', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
},
],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',

View File

@ -13,7 +13,9 @@ describe('replaceStep', () => {
},
input: {
serverlessFunctionId: 'first',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -26,7 +28,7 @@ describe('replaceStep', () => {
name: '',
steps: [stepToBeReplaced],
trigger: {
settings: { eventName: 'company.created' },
settings: { eventName: 'company.created', outputSchema: {} },
type: 'DATABASE_EVENT',
},
updatedAt: '',
@ -43,7 +45,9 @@ describe('replaceStep', () => {
},
input: {
serverlessFunctionId: 'second',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
},
stepId: stepToBeReplaced.id,
@ -63,7 +67,9 @@ describe('replaceStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -85,7 +91,9 @@ describe('replaceStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
@ -101,14 +109,19 @@ describe('replaceStep', () => {
},
input: {
serverlessFunctionId: 'a5434be2-c10b-465c-acec-46492782a997',
serverlessFunctionVersion: '1',
},
outputSchema: {},
},
type: 'CODE',
valid: true,
},
],
trigger: {
settings: { eventName: 'company.created' },
settings: {
eventName: 'company.created',
outputSchema: {},
},
type: 'DATABASE_EVENT',
},
updatedAt: '',

View File

@ -17,7 +17,9 @@ export const getStepDefaultDefinition = (
settings: {
input: {
serverlessFunctionId: '',
serverlessFunctionVersion: '',
},
outputSchema: {},
errorHandlingOptions: {
continueOnFailure: {
value: false,
@ -42,6 +44,7 @@ export const getStepDefaultDefinition = (
subject: '',
body: '',
},
outputSchema: {},
errorHandlingOptions: {
continueOnFailure: {
value: false,

View File

@ -26,6 +26,7 @@ export const getTriggerDefaultDefinition = ({
type,
settings: {
eventName: `${activeObjectMetadataItems[0].nameSingular}.${OBJECT_EVENT_TRIGGERS[0].value}`,
outputSchema: {},
},
};
}