Infer function input in workflow step (#8308)
- add `inputSchema` column in serverless function. This is an array of parameters, with their name and type - on serverless function id update, get the `inputSchema` + store empty settings in step - from step settings, build the form TODO in next PR: - use field type to decide what kind of form should be printed - have a strategy to handle object as input https://github.com/user-attachments/assets/ed96f919-24b5-4baf-a051-31f76f45e575
This commit is contained in:
@ -1,10 +1,10 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
|
||||
import { WorkflowBuilderService } from 'src/modules/workflow/workflow-builder/workflow-builder.service';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ServerlessFunctionModule } from 'src/engine/metadata-modules/serverless-function/serverless-function.module';
|
||||
import { CodeIntrospectionModule } from 'src/modules/code-introspection/code-introspection.module';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { WorkflowBuilderWorkspaceService } from 'src/modules/workflow/workflow-builder/workflow-builder.workspace-service';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@ -12,7 +12,7 @@ import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadat
|
||||
ServerlessFunctionModule,
|
||||
CodeIntrospectionModule,
|
||||
],
|
||||
providers: [WorkflowBuilderService],
|
||||
exports: [WorkflowBuilderService],
|
||||
providers: [WorkflowBuilderWorkspaceService],
|
||||
exports: [WorkflowBuilderWorkspaceService],
|
||||
})
|
||||
export class WorkflowBuilderModule {}
|
||||
|
||||
@ -25,7 +25,7 @@ import { generateFakeObjectRecordEvent } from 'src/modules/workflow/workflow-bui
|
||||
import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action';
|
||||
|
||||
@Injectable()
|
||||
export class WorkflowBuilderService {
|
||||
export class WorkflowBuilderWorkspaceService {
|
||||
constructor(
|
||||
private readonly serverlessFunctionService: ServerlessFunctionService,
|
||||
private readonly codeIntrospectionService: CodeIntrospectionService,
|
||||
@ -1,4 +1,5 @@
|
||||
export type OutputSchema = object;
|
||||
export type InputSchema = object;
|
||||
|
||||
type BaseWorkflowStepSettings = {
|
||||
input: object;
|
||||
@ -16,7 +17,9 @@ type BaseWorkflowStepSettings = {
|
||||
export type WorkflowCodeStepInput = {
|
||||
serverlessFunctionId: string;
|
||||
serverlessFunctionVersion: string;
|
||||
payloadInput: object;
|
||||
serverlessFunctionInput: {
|
||||
[key: string]: any;
|
||||
};
|
||||
};
|
||||
|
||||
export type WorkflowCodeStepSettings = BaseWorkflowStepSettings & {
|
||||
|
||||
@ -33,6 +33,7 @@ export class WorkflowRunWorkspaceService {
|
||||
|
||||
return (
|
||||
await workflowRunRepository.save({
|
||||
name: `Execution of ${workflowVersion.name}`,
|
||||
workflowVersionId,
|
||||
createdBy,
|
||||
workflowId: workflowVersion.workflowId,
|
||||
|
||||
Reference in New Issue
Block a user