diff --git a/packages/cli/src/Server.ts b/packages/cli/src/Server.ts index 0f89c5ff54..d8d26e98e1 100644 --- a/packages/cli/src/Server.ts +++ b/packages/cli/src/Server.ts @@ -130,12 +130,16 @@ import * as WorkflowExecuteAdditionalData from '@/WorkflowExecuteAdditionalData' import { toHttpNodeParameters } from '@/CurlConverterHelper'; import { eventBusRouter } from '@/eventbus/eventBusRoutes'; import { isLogStreamingEnabled } from '@/eventbus/MessageEventBus/MessageEventBusHelper'; -import { getLicense } from '@/License'; import { licenseController } from './license/license.controller'; import { Push, setupPushServer, setupPushHandler } from '@/push'; import { setupAuthMiddlewares } from './middlewares'; import { initEvents } from './events'; -import { getLdapLoginLabel, isLdapEnabled, isLdapLoginEnabled } from './Ldap/helpers'; +import { + getLdapLoginLabel, + handleLdapInit, + isLdapEnabled, + isLdapLoginEnabled, +} from './Ldap/helpers'; import { AbstractServer } from './AbstractServer'; import { configureMetrics } from './metrics'; import { setupBasicAuth } from './middlewares/basicAuth'; @@ -357,20 +361,6 @@ class Server extends AbstractServer { return this.frontendSettings; } - async initLicense(): Promise { - const license = getLicense(); - await license.init(this.frontendSettings.instanceId); - - const activationKey = config.getEnv('license.activationKey'); - if (activationKey) { - try { - await license.activate(activationKey); - } catch (e) { - LoggerProxy.error('Could not activate license', e); - } - } - } - private registerControllers(ignoredEndpoints: Readonly) { const { app, externalHooks, activeWorkflowRunner, nodeTypes } = this; const repositories = Db.collections; @@ -428,7 +418,6 @@ class Server extends AbstractServer { await this.externalHooks.run('frontend.settings', [this.frontendSettings]); - await this.initLicense(); await this.postHog.init(this.frontendSettings.instanceId); const publicApiEndpoint = config.getEnv('publicApi.path'); @@ -490,9 +479,8 @@ class Server extends AbstractServer { }), ); - // ---------------------------------------- - // User Management - // ---------------------------------------- + await handleLdapInit(); + this.registerControllers(ignoredEndpoints); this.app.use(`/${this.restEndpoint}/credentials`, credentialsController); diff --git a/packages/cli/src/commands/BaseCommand.ts b/packages/cli/src/commands/BaseCommand.ts index 96e19f1d16..d50846cf34 100644 --- a/packages/cli/src/commands/BaseCommand.ts +++ b/packages/cli/src/commands/BaseCommand.ts @@ -34,6 +34,8 @@ export abstract class BaseCommand extends Command { protected userSettings: IUserSettings; + protected instanceId: string; + async init(): Promise { await initErrorHandling(); @@ -49,9 +51,9 @@ export abstract class BaseCommand extends Command { const credentialTypes = Container.get(CredentialTypes); CredentialsOverwrites(credentialTypes); - const instanceId = this.userSettings.instanceId ?? ''; - await Container.get(PostHogClient).init(instanceId); - await Container.get(InternalHooks).init(instanceId); + this.instanceId = this.userSettings.instanceId ?? ''; + await Container.get(PostHogClient).init(this.instanceId); + await Container.get(InternalHooks).init(this.instanceId); await Db.init().catch(async (error: Error) => this.exitWithCrash('There was an error initializing DB', error), diff --git a/packages/cli/src/commands/start.ts b/packages/cli/src/commands/start.ts index bac95bfe3c..1363870a20 100644 --- a/packages/cli/src/commands/start.ts +++ b/packages/cli/src/commands/start.ts @@ -24,11 +24,11 @@ import * as GenericHelpers from '@/GenericHelpers'; import * as Server from '@/Server'; import { TestWebhooks } from '@/TestWebhooks'; import { getAllInstalledPackages } from '@/CommunityNodes/packageModel'; -import { handleLdapInit } from '@/Ldap/helpers'; import { EDITOR_UI_DIST_DIR, GENERATED_STATIC_DIR } from '@/constants'; import { eventBus } from '@/eventbus'; import { BaseCommand } from './BaseCommand'; import { InternalHooks } from '@/InternalHooks'; +import { getLicense } from '@/License'; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires const open = require('open'); @@ -182,11 +182,26 @@ export class Start extends BaseCommand { await Promise.all(files.map(compileFile)); } + async initLicense(): Promise { + const license = getLicense(); + await license.init(this.instanceId); + + const activationKey = config.getEnv('license.activationKey'); + if (activationKey) { + try { + await license.activate(activationKey); + } catch (e) { + LoggerProxy.error('Could not activate license', e as Error); + } + } + } + async init() { await this.initCrashJournal(); await super.init(); this.logger.info('Initializing n8n process'); + await this.initLicense(); await this.initBinaryManager(); await this.initExternalHooks(); @@ -326,8 +341,6 @@ export class Start extends BaseCommand { ); } - await handleLdapInit(); - await Server.start(); // Start to get active workflows and run their triggers