fix(core): Filter out certain executions from crash recovery (#9904)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
Iván Ovejero
2024-07-02 17:07:07 +02:00
committed by GitHub
parent 61c20d1ae3
commit 7044d1ca28
12 changed files with 217 additions and 20 deletions

View File

@@ -0,0 +1,45 @@
import { AbstractEventMessage, isEventMessageOptionsWithType } from './AbstractEventMessage';
import type { JsonObject } from 'n8n-workflow';
import { EventMessageTypeNames } from 'n8n-workflow';
import type { AbstractEventMessageOptions } from './AbstractEventMessageOptions';
import type { AbstractEventPayload } from './AbstractEventPayload';
import type { EventNamesExecutionType } from '.';
export interface EventPayloadExecution extends AbstractEventPayload {
executionId: string;
}
export interface EventMessageExecutionOptions extends AbstractEventMessageOptions {
eventName: EventNamesExecutionType;
payload?: EventPayloadExecution;
}
export class EventMessageExecution extends AbstractEventMessage {
readonly __type = EventMessageTypeNames.execution;
eventName: EventNamesExecutionType;
payload: EventPayloadExecution;
constructor(options: EventMessageExecutionOptions) {
super(options);
if (options.payload) this.setPayload(options.payload);
if (options.anonymize) {
this.anonymize();
}
}
setPayload(payload: EventPayloadExecution): this {
this.payload = payload;
return this;
}
deserialize(data: JsonObject): this {
if (isEventMessageOptionsWithType(data, this.__type)) {
this.setOptionsOrDefault(data);
if (data.payload) this.setPayload(data.payload as EventPayloadExecution);
}
return this;
}
}

View File

@@ -1,5 +1,6 @@
import type { EventMessageAiNode } from './EventMessageAiNode';
import type { EventMessageAudit } from './EventMessageAudit';
import type { EventMessageExecution } from './EventMessageExecution';
import type { EventMessageGeneric } from './EventMessageGeneric';
import type { EventMessageNode } from './EventMessageNode';
import type { EventMessageWorkflow } from './EventMessageWorkflow';
@@ -13,6 +14,10 @@ export const eventNamesWorkflow = [
] as const;
export const eventNamesGeneric = ['n8n.worker.started', 'n8n.worker.stopped'] as const;
export const eventNamesNode = ['n8n.node.started', 'n8n.node.finished'] as const;
export const eventNamesExecution = [
'n8n.execution.throttled',
'n8n.execution.started-during-bootup',
] as const;
export const eventNamesAudit = [
'n8n.audit.user.login.success',
'n8n.audit.user.login.failed',
@@ -42,12 +47,14 @@ export const eventNamesAudit = [
export type EventNamesWorkflowType = (typeof eventNamesWorkflow)[number];
export type EventNamesAuditType = (typeof eventNamesAudit)[number];
export type EventNamesNodeType = (typeof eventNamesNode)[number];
export type EventNamesExecutionType = (typeof eventNamesExecution)[number];
export type EventNamesGenericType = (typeof eventNamesGeneric)[number];
export type EventNamesTypes =
| EventNamesAuditType
| EventNamesWorkflowType
| EventNamesNodeType
| EventNamesExecutionType
| EventNamesGenericType
| EventNamesAiNodesType
| 'n8n.destination.test';
@@ -65,4 +72,5 @@ export type EventMessageTypes =
| EventMessageWorkflow
| EventMessageAudit
| EventMessageNode
| EventMessageExecution
| EventMessageAiNode;