fix(core): Filter out certain executions from crash recovery (#9904)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user