n8n
Version:
n8n Workflow Automation Tool
304 lines (303 loc) • 11.7 kB
TypeScript
import type { AuthenticationMethod, IRun, IWorkflowBase, WorkflowExecuteMode } from 'n8n-workflow';
import { InstanceSettings } from 'n8n-core';
import type { AuthProviderType } from './databases/entities/AuthIdentity';
import type { GlobalRole, User } from './databases/entities/User';
import type { ExecutionMetadata } from './databases/entities/ExecutionMetadata';
import { SharedWorkflowRepository } from './databases/repositories/sharedWorkflow.repository';
import { WorkflowRepository } from './databases/repositories/workflow.repository';
import { MessageEventBus } from './eventbus/MessageEventBus/MessageEventBus';
import type { ITelemetryUserDeletionData, IWorkflowDb, IWorkflowExecutionDataProcess } from './Interfaces';
import { License } from './License';
import { EventsService } from './services/events.service';
import { NodeTypes } from './NodeTypes';
import { Telemetry } from './telemetry';
import type { Project } from './databases/entities/Project';
import type { ProjectRole } from './databases/entities/ProjectRelation';
import { ProjectRelationRepository } from './databases/repositories/projectRelation.repository';
import { SharedCredentialsRepository } from './databases/repositories/sharedCredentials.repository';
export declare class InternalHooks {
private readonly telemetry;
private readonly nodeTypes;
private readonly sharedWorkflowRepository;
private readonly workflowRepository;
private readonly instanceSettings;
private readonly eventBus;
private readonly license;
private readonly projectRelationRepository;
private readonly sharedCredentialsRepository;
constructor(telemetry: Telemetry, nodeTypes: NodeTypes, sharedWorkflowRepository: SharedWorkflowRepository, workflowRepository: WorkflowRepository, eventsService: EventsService, instanceSettings: InstanceSettings, eventBus: MessageEventBus, license: License, projectRelationRepository: ProjectRelationRepository, sharedCredentialsRepository: SharedCredentialsRepository);
init(): Promise<void>;
onServerStarted(): Promise<unknown[]>;
onFrontendSettingsAPI(pushRef?: string): Promise<void>;
onPersonalizationSurveySubmitted(userId: string, answers: Record<string, string>): Promise<void>;
onWorkflowCreated(user: User, workflow: IWorkflowBase, project: Project, publicApi: boolean): Promise<void>;
onWorkflowDeleted(user: User, workflowId: string, publicApi: boolean): Promise<void>;
onWorkflowSaved(user: User, workflow: IWorkflowDb, publicApi: boolean): Promise<void>;
onNodeBeforeExecute(executionId: string, workflow: IWorkflowBase, nodeName: string): Promise<void>;
onNodePostExecute(executionId: string, workflow: IWorkflowBase, nodeName: string): Promise<void>;
onWorkflowBeforeExecute(executionId: string, data: IWorkflowExecutionDataProcess | IWorkflowBase): Promise<void>;
onWorkflowCrashed(executionId: string, executionMode: WorkflowExecuteMode, workflowData?: IWorkflowBase, executionMetadata?: ExecutionMetadata[]): Promise<void>;
onWorkflowPostExecute(executionId: string, workflow: IWorkflowBase, runData?: IRun, userId?: string): Promise<void>;
onWorkflowSharingUpdate(workflowId: string, userId: string, userList: string[]): Promise<void>;
onN8nStop(): Promise<void>;
onUserDeletion(userDeletionData: {
user: User;
telemetryData: ITelemetryUserDeletionData;
publicApi: boolean;
}): Promise<void>;
onUserInvite(userInviteData: {
user: User;
target_user_id: string[];
public_api: boolean;
email_sent: boolean;
invitee_role: string;
}): Promise<void>;
onUserRoleChange(userRoleChangeData: {
user: User;
target_user_id: string;
public_api: boolean;
target_user_new_role: string;
}): Promise<void>;
onUserReinvite(userReinviteData: {
user: User;
target_user_id: string;
public_api: boolean;
}): Promise<void>;
onUserRetrievedUser(userRetrievedData: {
user_id: string;
public_api: boolean;
}): Promise<void>;
onUserRetrievedAllUsers(userRetrievedData: {
user_id: string;
public_api: boolean;
}): Promise<void>;
onUserRetrievedExecution(userRetrievedData: {
user_id: string;
public_api: boolean;
}): Promise<void>;
onUserRetrievedAllExecutions(userRetrievedData: {
user_id: string;
public_api: boolean;
}): Promise<void>;
onUserRetrievedWorkflow(userRetrievedData: {
user_id: string;
public_api: boolean;
}): Promise<void>;
onUserRetrievedAllWorkflows(userRetrievedData: {
user_id: string;
public_api: boolean;
}): Promise<void>;
onUserUpdate(userUpdateData: {
user: User;
fields_changed: string[];
}): Promise<void>;
onUserInviteEmailClick(userInviteClickData: {
inviter: User;
invitee: User;
}): Promise<void>;
onUserPasswordResetEmailClick(userPasswordResetData: {
user: User;
}): Promise<void>;
onUserTransactionalEmail(userTransactionalEmailData: {
user_id: string;
message_type: 'Reset password' | 'New user invite' | 'Resend invite' | 'Workflow shared' | 'Credentials shared';
public_api: boolean;
}): Promise<void>;
onUserInvokedApi(userInvokedApiData: {
user_id: string;
path: string;
method: string;
api_version: string;
}): Promise<void>;
onApiKeyDeleted(apiKeyDeletedData: {
user: User;
public_api: boolean;
}): Promise<void>;
onApiKeyCreated(apiKeyCreatedData: {
user: User;
public_api: boolean;
}): Promise<void>;
onUserPasswordResetRequestClick(userPasswordResetData: {
user: User;
}): Promise<void>;
onInstanceOwnerSetup(instanceOwnerSetupData: {
user_id: string;
}): Promise<void>;
onUserSignup(user: User, userSignupData: {
user_type: AuthProviderType;
was_disabled_ldap_user: boolean;
}): Promise<void>;
onEmailFailed(failedEmailData: {
user: User;
message_type: 'Reset password' | 'New user invite' | 'Resend invite' | 'Workflow shared' | 'Credentials shared';
public_api: boolean;
}): Promise<void>;
onUserLoginSuccess(userLoginData: {
user: User;
authenticationMethod: AuthenticationMethod;
}): Promise<void>;
onUserLoginFailed(userLoginData: {
user: string;
authenticationMethod: AuthenticationMethod;
reason?: string;
}): Promise<void>;
onUserCreatedCredentials(userCreatedCredentialsData: {
user: User;
credential_name: string;
credential_type: string;
credential_id: string;
public_api: boolean;
}): Promise<void>;
onUserSharedCredentials(userSharedCredentialsData: {
user: User;
credential_name: string;
credential_type: string;
credential_id: string;
user_id_sharer: string;
user_ids_sharees_added: string[];
sharees_removed: number | null;
}): Promise<void>;
onUserUpdatedCredentials(userUpdatedCredentialsData: {
user: User;
credential_name: string;
credential_type: string;
credential_id: string;
}): Promise<void>;
onUserDeletedCredentials(userUpdatedCredentialsData: {
user: User;
credential_name: string;
credential_type: string;
credential_id: string;
}): Promise<void>;
onCommunityPackageInstallFinished(installationData: {
user: User;
input_string: string;
package_name: string;
success: boolean;
package_version?: string;
package_node_names?: string[];
package_author?: string;
package_author_email?: string;
failure_reason?: string;
}): Promise<void>;
onCommunityPackageUpdateFinished(updateData: {
user: User;
package_name: string;
package_version_current: string;
package_version_new: string;
package_node_names: string[];
package_author?: string;
package_author_email?: string;
}): Promise<void>;
onCommunityPackageDeleteFinished(deleteData: {
user: User;
package_name: string;
package_version: string;
package_node_names: string[];
package_author?: string;
package_author_email?: string;
}): Promise<void>;
onLdapSyncFinished(data: {
type: string;
succeeded: boolean;
users_synced: number;
error: string;
}): Promise<void>;
onUserUpdatedLdapSettings(data: {
user_id: string;
loginIdAttribute: string;
firstNameAttribute: string;
lastNameAttribute: string;
emailAttribute: string;
ldapIdAttribute: string;
searchPageSize: number;
searchTimeout: number;
synchronizationEnabled: boolean;
synchronizationInterval: number;
loginLabel: string;
loginEnabled: boolean;
}): Promise<void>;
onLdapLoginSyncFailed(data: {
error: string;
}): Promise<void>;
userLoginFailedDueToLdapDisabled(data: {
user_id: string;
}): Promise<void>;
onFirstProductionWorkflowSuccess(data: {
user_id: string;
workflow_id: string;
}): Promise<void>;
onFirstWorkflowDataLoad(data: {
user_id: string;
workflow_id: string;
node_type: string;
node_id: string;
credential_type?: string;
credential_id?: string;
}): Promise<void>;
onLicenseRenewAttempt(data: {
success: boolean;
}): Promise<void>;
onAuditGeneratedViaCli(): Promise<void>;
onVariableCreated(createData: {
variable_type: string;
}): Promise<void>;
onSourceControlSettingsUpdated(data: {
branch_name: string;
read_only_instance: boolean;
repo_type: 'github' | 'gitlab' | 'other';
connected: boolean;
}): Promise<void>;
onSourceControlUserStartedPullUI(data: {
workflow_updates: number;
workflow_conflicts: number;
cred_conflicts: number;
}): Promise<void>;
onSourceControlUserFinishedPullUI(data: {
workflow_updates: number;
}): Promise<void>;
onSourceControlUserPulledAPI(data: {
workflow_updates: number;
forced: boolean;
}): Promise<void>;
onSourceControlUserStartedPushUI(data: {
workflows_eligible: number;
workflows_eligible_with_conflicts: number;
creds_eligible: number;
creds_eligible_with_conflicts: number;
variables_eligible: number;
}): Promise<void>;
onSourceControlUserFinishedPushUI(data: {
workflows_eligible: number;
workflows_pushed: number;
creds_pushed: number;
variables_pushed: number;
}): Promise<void>;
onExternalSecretsProviderSettingsSaved(saveData: {
user_id?: string | undefined;
vault_type: string;
is_valid: boolean;
is_new: boolean;
error_message?: string | undefined;
}): Promise<void>;
onTeamProjectCreated(data: {
user_id: string;
role: GlobalRole;
}): Promise<void>;
onTeamProjectDeleted(data: {
user_id: string;
role: GlobalRole;
project_id: string;
removal_type: 'delete' | 'transfer';
target_project_id?: string;
}): Promise<void>;
onTeamProjectUpdated(data: {
user_id: string;
role: GlobalRole;
project_id: string;
members: Array<{
user_id: string;
role: ProjectRole;
}>;
}): Promise<void>;
}