mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
* adds ExecutionEvents view modal to ExecutionList * fix time rendering and remove wf column * checks for unfinished executions and fails them * prevent re-setting stoppedAt for execution * some cleanup / manually create rundata after crash * quicksave * remove Threads lib, log worker rewrite * cleanup comment * fix sentry destination return value * test for tests... * run tests with single worker * fix tests * remove console log * add endpoint for execution data recovery * lint cleanup and some refactoring * fix accidental recursion * remove cyclic imports * add rundata recovery to Workflowrunner * remove comments * cleanup and refactor * adds a status field to executions * setExecutionStatus on queued worker * fix onWorkflowPostExecute * set waiting from worker * get crashed status into frontend * remove comment * merge fix * cleanup * catch empty rundata in recovery * refactor IExecutionsSummary and inject nodeExecution Errors * reduce default event log size to 10mb from 100mb * add per node execution status * lint fix * merge and lint fix * phrasing change * improve preview rendering and messaging * remove debug * Improve partial rundata recovery * fix labels * fix line through * send manual rundata to ui at crash * some type and msg push fixes * improve recovered item rendering in preview * update workflowStatistics on recover * merge fix * review fixes * merge fix * notify eventbus when ui is back up * add a small timeout to make sure the UI is back up * increase reconnect timeout to 30s * adjust recover timeout and ui connection lost msg * do not stop execution in editor after x reconnects * add executionRecovered push event * fix recovered connection not green * remove reconnect toast and merge existing rundata * merge editor and recovered data for own mode
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
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 { EventNamesNodeType } from '.';
|
|
|
|
// --------------------------------------
|
|
// EventMessage class for Node events
|
|
// --------------------------------------
|
|
export interface EventPayloadNode extends AbstractEventPayload {
|
|
msg?: string;
|
|
executionId: string;
|
|
nodeName: string;
|
|
workflowId?: string;
|
|
workflowName: string;
|
|
nodeType?: string;
|
|
}
|
|
|
|
export interface EventMessageNodeOptions extends AbstractEventMessageOptions {
|
|
eventName: EventNamesNodeType;
|
|
|
|
payload?: EventPayloadNode | undefined;
|
|
}
|
|
|
|
export class EventMessageNode extends AbstractEventMessage {
|
|
readonly __type = EventMessageTypeNames.node;
|
|
|
|
eventName: EventNamesNodeType;
|
|
|
|
payload: EventPayloadNode;
|
|
|
|
constructor(options: EventMessageNodeOptions) {
|
|
super(options);
|
|
if (options.payload) this.setPayload(options.payload);
|
|
if (options.anonymize) {
|
|
this.anonymize();
|
|
}
|
|
}
|
|
|
|
setPayload(payload: EventPayloadNode): 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 EventPayloadNode);
|
|
}
|
|
return this;
|
|
}
|
|
}
|