8723 workflow add editor in serverless function code step (#8805)

- create a serverless function when creating a new workflow code step
- add code editor in workflow code step
- move workflowVersion steps management from frontend to backend
  - add a custom resolver for workflow-version management
  - fix optimistic rendering on frontend
- fix css
- delete serverless function when deleting workflow code step

TODO
- Don't update serverlessFunction if no code change
- Factorize what can be between crud trigger and crud step
- Publish serverless version when activating workflow
- delete serverless functions when deleting workflow or workflowVersion
- fix optimistic rendering for code updates
- Unify CRUD types

<img width="1279" alt="image"
src="https://github.com/user-attachments/assets/3d97ee9f-4b96-4abc-9d36-5c0280058be4">
This commit is contained in:
martmull
2024-12-03 09:41:13 +01:00
committed by GitHub
parent 9d7632cb4f
commit d0ff1ffd5f
75 changed files with 2192 additions and 1527 deletions

View File

@ -0,0 +1,33 @@
import { Scope } from '@nestjs/common';
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
import { ServerlessFunctionService } from 'src/engine/metadata-modules/serverless-function/serverless-function.service';
import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator';
export type DeleteServerlessFunctionBatchEvent = {
ids: string[];
workspaceId: string;
};
@Processor({
queueName: MessageQueue.serverlessFunctionQueue,
scope: Scope.REQUEST,
})
export class DeleteServerlessFunctionJob {
constructor(
private readonly serverlessFunctionService: ServerlessFunctionService,
) {}
@Process(DeleteServerlessFunctionJob.name)
async handle(batchEvent: DeleteServerlessFunctionBatchEvent): Promise<void> {
await Promise.all(
batchEvent.ids.map((id) =>
this.serverlessFunctionService.deleteOneServerlessFunction(
id,
batchEvent.workspaceId,
),
),
);
}
}