Fix workflow run executed by empty (#11642)
Workflow run executed by should not be empty when the workflow is unamed. Adding Workflow as fallback <img width="1072" alt="Capture d’écran 2025-04-17 à 19 17 12" src="https://github.com/user-attachments/assets/e4cc3360-06e5-47e8-ba05-28a0eafab994" />
This commit is contained in:
@ -21,12 +21,17 @@ export class WorkflowRunnerWorkspaceService {
|
||||
private readonly billingUsageService: BillingUsageService,
|
||||
) {}
|
||||
|
||||
async run(
|
||||
workspaceId: string,
|
||||
workflowVersionId: string,
|
||||
payload: object,
|
||||
source: ActorMetadata,
|
||||
) {
|
||||
async run({
|
||||
workspaceId,
|
||||
workflowVersionId,
|
||||
payload,
|
||||
source,
|
||||
}: {
|
||||
workspaceId: string;
|
||||
workflowVersionId: string;
|
||||
payload: object;
|
||||
source: ActorMetadata;
|
||||
}) {
|
||||
const canFeatureBeUsed =
|
||||
await this.billingUsageService.canFeatureBeUsed(workspaceId);
|
||||
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
import { Scope } from '@nestjs/common';
|
||||
|
||||
import { isDefined } from 'class-validator';
|
||||
import isEmpty from 'lodash.isempty';
|
||||
|
||||
import { InjectMessageQueue } from 'src/engine/core-modules/message-queue/decorators/message-queue.decorator';
|
||||
import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator';
|
||||
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
|
||||
@ -24,6 +27,8 @@ export type WorkflowTriggerJobData = {
|
||||
payload: object;
|
||||
};
|
||||
|
||||
const DEFAULT_WORKFLOW_NAME = 'Workflow';
|
||||
|
||||
@Processor({ queueName: MessageQueue.workflowQueue, scope: Scope.REQUEST })
|
||||
export class WorkflowTriggerJob {
|
||||
constructor(
|
||||
@ -68,17 +73,20 @@ export class WorkflowTriggerJob {
|
||||
);
|
||||
}
|
||||
|
||||
await this.workflowRunnerWorkspaceService.run(
|
||||
data.workspaceId,
|
||||
workflow.lastPublishedVersionId,
|
||||
data.payload,
|
||||
{
|
||||
await this.workflowRunnerWorkspaceService.run({
|
||||
workspaceId: data.workspaceId,
|
||||
workflowVersionId: workflow.lastPublishedVersionId,
|
||||
payload: data.payload,
|
||||
source: {
|
||||
source: FieldActorSource.WORKFLOW,
|
||||
name: workflow.name,
|
||||
name:
|
||||
isDefined(workflow.name) && !isEmpty(workflow.name)
|
||||
? workflow.name
|
||||
: DEFAULT_WORKFLOW_NAME,
|
||||
context: {},
|
||||
workspaceMemberId: null,
|
||||
},
|
||||
);
|
||||
});
|
||||
} catch (e) {
|
||||
// We remove cron if it exists when no valid workflowVersion exists
|
||||
await this.messageQueueService.removeCron({
|
||||
|
||||
@ -7,6 +7,7 @@ import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner
|
||||
import { InjectMessageQueue } from 'src/engine/core-modules/message-queue/decorators/message-queue.decorator';
|
||||
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
|
||||
import { MessageQueueService } from 'src/engine/core-modules/message-queue/services/message-queue.service';
|
||||
import { ActorMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/actor.composite-type';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ScopedWorkspaceContextFactory } from 'src/engine/twenty-orm/factories/scoped-workspace-context.factory';
|
||||
import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository';
|
||||
@ -35,7 +36,6 @@ import { WorkflowTriggerType } from 'src/modules/workflow/workflow-trigger/types
|
||||
import { assertVersionCanBeActivated } from 'src/modules/workflow/workflow-trigger/utils/assert-version-can-be-activated.util';
|
||||
import { computeCronPatternFromSchedule } from 'src/modules/workflow/workflow-trigger/utils/compute-cron-pattern-from-schedule';
|
||||
import { assertNever } from 'src/utils/assert';
|
||||
import { ActorMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/actor.composite-type';
|
||||
|
||||
@Injectable()
|
||||
export class WorkflowTriggerWorkspaceService {
|
||||
@ -78,12 +78,12 @@ export class WorkflowTriggerWorkspaceService {
|
||||
workflowVersionId,
|
||||
);
|
||||
|
||||
return await this.workflowRunnerWorkspaceService.run(
|
||||
this.getWorkspaceId(),
|
||||
return this.workflowRunnerWorkspaceService.run({
|
||||
workspaceId: this.getWorkspaceId(),
|
||||
workflowVersionId,
|
||||
payload,
|
||||
createdBy,
|
||||
);
|
||||
source: createdBy,
|
||||
});
|
||||
}
|
||||
|
||||
async activateWorkflowVersion(workflowVersionId: string) {
|
||||
|
||||
Reference in New Issue
Block a user