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,
|
private readonly billingUsageService: BillingUsageService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async run(
|
async run({
|
||||||
workspaceId: string,
|
workspaceId,
|
||||||
workflowVersionId: string,
|
workflowVersionId,
|
||||||
payload: object,
|
payload,
|
||||||
source: ActorMetadata,
|
source,
|
||||||
) {
|
}: {
|
||||||
|
workspaceId: string;
|
||||||
|
workflowVersionId: string;
|
||||||
|
payload: object;
|
||||||
|
source: ActorMetadata;
|
||||||
|
}) {
|
||||||
const canFeatureBeUsed =
|
const canFeatureBeUsed =
|
||||||
await this.billingUsageService.canFeatureBeUsed(workspaceId);
|
await this.billingUsageService.canFeatureBeUsed(workspaceId);
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,8 @@
|
|||||||
import { Scope } from '@nestjs/common';
|
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 { 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 { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator';
|
||||||
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
|
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
|
||||||
@ -24,6 +27,8 @@ export type WorkflowTriggerJobData = {
|
|||||||
payload: object;
|
payload: object;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const DEFAULT_WORKFLOW_NAME = 'Workflow';
|
||||||
|
|
||||||
@Processor({ queueName: MessageQueue.workflowQueue, scope: Scope.REQUEST })
|
@Processor({ queueName: MessageQueue.workflowQueue, scope: Scope.REQUEST })
|
||||||
export class WorkflowTriggerJob {
|
export class WorkflowTriggerJob {
|
||||||
constructor(
|
constructor(
|
||||||
@ -68,17 +73,20 @@ export class WorkflowTriggerJob {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.workflowRunnerWorkspaceService.run(
|
await this.workflowRunnerWorkspaceService.run({
|
||||||
data.workspaceId,
|
workspaceId: data.workspaceId,
|
||||||
workflow.lastPublishedVersionId,
|
workflowVersionId: workflow.lastPublishedVersionId,
|
||||||
data.payload,
|
payload: data.payload,
|
||||||
{
|
source: {
|
||||||
source: FieldActorSource.WORKFLOW,
|
source: FieldActorSource.WORKFLOW,
|
||||||
name: workflow.name,
|
name:
|
||||||
|
isDefined(workflow.name) && !isEmpty(workflow.name)
|
||||||
|
? workflow.name
|
||||||
|
: DEFAULT_WORKFLOW_NAME,
|
||||||
context: {},
|
context: {},
|
||||||
workspaceMemberId: null,
|
workspaceMemberId: null,
|
||||||
},
|
},
|
||||||
);
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// We remove cron if it exists when no valid workflowVersion exists
|
// We remove cron if it exists when no valid workflowVersion exists
|
||||||
await this.messageQueueService.removeCron({
|
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 { 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 { 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 { 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 { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { ScopedWorkspaceContextFactory } from 'src/engine/twenty-orm/factories/scoped-workspace-context.factory';
|
import { ScopedWorkspaceContextFactory } from 'src/engine/twenty-orm/factories/scoped-workspace-context.factory';
|
||||||
import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository';
|
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 { 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 { computeCronPatternFromSchedule } from 'src/modules/workflow/workflow-trigger/utils/compute-cron-pattern-from-schedule';
|
||||||
import { assertNever } from 'src/utils/assert';
|
import { assertNever } from 'src/utils/assert';
|
||||||
import { ActorMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/actor.composite-type';
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class WorkflowTriggerWorkspaceService {
|
export class WorkflowTriggerWorkspaceService {
|
||||||
@ -78,12 +78,12 @@ export class WorkflowTriggerWorkspaceService {
|
|||||||
workflowVersionId,
|
workflowVersionId,
|
||||||
);
|
);
|
||||||
|
|
||||||
return await this.workflowRunnerWorkspaceService.run(
|
return this.workflowRunnerWorkspaceService.run({
|
||||||
this.getWorkspaceId(),
|
workspaceId: this.getWorkspaceId(),
|
||||||
workflowVersionId,
|
workflowVersionId,
|
||||||
payload,
|
payload,
|
||||||
createdBy,
|
source: createdBy,
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async activateWorkflowVersion(workflowVersionId: string) {
|
async activateWorkflowVersion(workflowVersionId: string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user