Improve logs in workflow trigger (#12215)
- distinguish logs coming from webhook and job triggers - add workspace and workflow ids to help debugging Hard to debug sentry issue: https://twenty-v7.sentry.io/issues/6605607134/?project=4507072499810304&query=&referrer=issue-stream&stream_index=7
This commit is contained in:
@ -28,23 +28,33 @@ export class WorkflowTriggerController {
|
||||
|
||||
@Post('workflows/:workspaceId/:workflowId')
|
||||
async runWorkflowByPostRequest(
|
||||
@Param('workspaceId') workspaceId: string,
|
||||
@Param('workflowId') workflowId: string,
|
||||
@Req() request: Request,
|
||||
) {
|
||||
return await this.runWorkflow({ workflowId, payload: request.body || {} });
|
||||
return await this.runWorkflow({
|
||||
workflowId,
|
||||
payload: request.body || {},
|
||||
workspaceId,
|
||||
});
|
||||
}
|
||||
|
||||
@Get('workflows/:workspaceId/:workflowId')
|
||||
async runWorkflowByGetRequest(@Param('workflowId') workflowId: string) {
|
||||
return await this.runWorkflow({ workflowId });
|
||||
async runWorkflowByGetRequest(
|
||||
@Param('workspaceId') workspaceId: string,
|
||||
@Param('workflowId') workflowId: string,
|
||||
) {
|
||||
return await this.runWorkflow({ workflowId, workspaceId });
|
||||
}
|
||||
|
||||
private async runWorkflow({
|
||||
workflowId,
|
||||
payload,
|
||||
workspaceId,
|
||||
}: {
|
||||
workflowId: string;
|
||||
payload?: object;
|
||||
workspaceId: string;
|
||||
}) {
|
||||
const workflowRepository =
|
||||
await this.twentyORMManager.getRepository<WorkflowWorkspaceEntity>(
|
||||
@ -57,7 +67,7 @@ export class WorkflowTriggerController {
|
||||
|
||||
if (!isDefined(workflow)) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow not found',
|
||||
`[Webhook trigger] Workflow ${workflowId} not found in workspace ${workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.NOT_FOUND,
|
||||
);
|
||||
}
|
||||
@ -67,7 +77,7 @@ export class WorkflowTriggerController {
|
||||
workflow.lastPublishedVersionId === ''
|
||||
) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow has not been activated',
|
||||
`[Webhook trigger] Workflow ${workflowId} has not been activated in workspace ${workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.INVALID_WORKFLOW_STATUS,
|
||||
);
|
||||
}
|
||||
@ -82,21 +92,21 @@ export class WorkflowTriggerController {
|
||||
|
||||
if (!isDefined(workflowVersion)) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow version not found',
|
||||
`[Webhook trigger] No workflow version activated for workflow ${workflowId} in workspace ${workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.INVALID_WORKFLOW_VERSION,
|
||||
);
|
||||
}
|
||||
|
||||
if (workflowVersion.trigger?.type !== WorkflowTriggerType.WEBHOOK) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow does not have a Webhook trigger',
|
||||
`[Webhook trigger] Workflow ${workflowId} does not have a Webhook trigger in workspace ${workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.INVALID_WORKFLOW_TRIGGER,
|
||||
);
|
||||
}
|
||||
|
||||
if (workflowVersion.status !== WorkflowVersionStatus.ACTIVE) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow version is not active',
|
||||
`[Webhook trigger] Workflow version ${workflowVersion.id} is not active in workspace ${workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.INVALID_WORKFLOW_STATUS,
|
||||
);
|
||||
}
|
||||
|
||||
@ -52,14 +52,14 @@ export class WorkflowTriggerJob {
|
||||
|
||||
if (!workflow) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow not found',
|
||||
`Workflow ${data.workflowId} not found in workspace ${data.workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
if (!workflow.lastPublishedVersionId) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow has no published version',
|
||||
`Workflow ${data.workflowId} has no published version in workspace ${data.workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.INTERNAL_ERROR,
|
||||
);
|
||||
}
|
||||
@ -75,13 +75,13 @@ export class WorkflowTriggerJob {
|
||||
|
||||
if (!workflowVersion) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow version not found',
|
||||
`Workflow version ${workflow.lastPublishedVersionId} not found in workspace ${data.workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.NOT_FOUND,
|
||||
);
|
||||
}
|
||||
if (workflowVersion.status !== WorkflowVersionStatus.ACTIVE) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Workflow version is not active',
|
||||
`Workflow version ${workflowVersion.id} is not active in workspace ${data.workspaceId}`,
|
||||
WorkflowTriggerExceptionCode.INTERNAL_ERROR,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user