n8n
Version:
n8n Workflow Automation Tool
38 lines (37 loc) • 1.95 kB
TypeScript
import type { User } from '@n8n/db';
import { UserRepository } from '@n8n/db';
import { Logger } from '@n8n/backend-common';
import { ErrorReporter } from 'n8n-core';
import type { IWorkflowSettings, Workflow } from 'n8n-workflow';
import { CollaborationState } from '../collaboration/collaboration.state';
import { Push } from '../push';
import { AccessService } from '../services/access.service';
export declare class CollaborationService {
private readonly logger;
private readonly errorReporter;
private readonly push;
private readonly state;
private readonly userRepository;
private readonly accessService;
constructor(logger: Logger, errorReporter: ErrorReporter, push: Push, state: CollaborationState, userRepository: UserRepository, accessService: AccessService);
init(): void;
private isTransientError;
handleUserMessage(userId: User['id'], clientId: string, msg: unknown): Promise<void>;
private handleWorkflowOpened;
private handleWorkflowClosed;
private sendWorkflowUsersChangedMessage;
private handleWriteAccessRequested;
private handleWriteAccessReleaseRequested;
private handleWriteAccessHeartbeat;
private sendWriteAccessAcquiredMessage;
private sendWriteAccessReleasedMessage;
broadcastWorkflowUpdate(workflowId: Workflow['id'], updatedByUserId: User['id']): Promise<void>;
filterOpenWorkflowIds(workflowIds: Array<Workflow['id']>): Promise<Array<Workflow['id']>>;
broadcastWorkflowSettingsUpdated(workflowId: Workflow['id'], settings: Partial<IWorkflowSettings>, checksum?: string): Promise<void>;
getWriteLock(userId: User['id'], workflowId: Workflow['id']): Promise<{
clientId: string;
userId: string;
} | null>;
ensureWorkflowEditable(workflowId: Workflow['id']): Promise<void>;
validateWriteLock(userId: User['id'], clientId: string | undefined, workflowId: Workflow['id'], action: string): Promise<void>;
}