n8n/packages/cli/src/instance-settings-loader/instance-settings-loader.service.ts
James Gee 36261fbe7a
feat(core): Configure OIDC settings via env vars (#28185)
Signed-off-by: James Gee <1285296+geemanjs@users.noreply.github.com>
Co-authored-by: Irénée <irenee.ajeneza@n8n.io>
Co-authored-by: Ali Elkhateeb <ali.elkhateeb@n8n.io>
2026-04-14 13:06:22 +00:00

31 lines
1.2 KiB
TypeScript

import { Logger } from '@n8n/backend-common';
import { Service } from '@n8n/di';
import { OidcInstanceSettingsLoader } from './loaders/oidc.instance-settings-loader';
import { OwnerInstanceSettingsLoader } from './loaders/owner.instance-settings-loader';
import { SecurityPolicyInstanceSettingsLoader } from './loaders/security-policy.instance-settings-loader';
type LoaderResult = 'created' | 'skipped';
@Service()
export class InstanceSettingsLoaderService {
constructor(
private logger: Logger,
private readonly ownerLoader: OwnerInstanceSettingsLoader,
private readonly oidcLoader: OidcInstanceSettingsLoader,
private readonly securityPolicyLoader: SecurityPolicyInstanceSettingsLoader,
) {
this.logger = this.logger.scoped('instance-settings-loader');
}
async init(): Promise<void> {
await this.run('owner', async () => await this.ownerLoader.run());
await this.run('oidc', async () => await this.oidcLoader.run());
await this.run('security-policy', async () => await this.securityPolicyLoader.run());
}
private async run(name: string, fn: () => Promise<LoaderResult>): Promise<void> {
const result = await fn();
this.logger.debug(`Instance settings loader "${name}": ${result}`);
}
}