refactor(core): Abstract away InstanceSettings and encryptionKey into injectable services (no-changelog) (#7471)
This change ensures that things like `encryptionKey` and `instanceId` are always available directly where they are needed, instead of passing them around throughout the code.
This commit is contained in:
committed by
GitHub
parent
519680c2cf
commit
b6de910cbe
@@ -1,8 +1,9 @@
|
||||
import path from 'path';
|
||||
import { Container } from 'typedi';
|
||||
import type { SqliteConnectionOptions } from 'typeorm/driver/sqlite/SqliteConnectionOptions';
|
||||
import type { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions';
|
||||
import type { MysqlConnectionOptions } from 'typeorm/driver/mysql/MysqlConnectionOptions';
|
||||
import { UserSettings } from 'n8n-core';
|
||||
import { InstanceSettings } from 'n8n-core';
|
||||
|
||||
import { entities } from './entities';
|
||||
import { mysqlMigrations } from './migrations/mysqldb';
|
||||
@@ -21,7 +22,7 @@ const getDBConnectionOptions = (dbType: DatabaseType) => {
|
||||
configDBType === 'sqlite'
|
||||
? {
|
||||
database: path.resolve(
|
||||
UserSettings.getUserN8nFolderPath(),
|
||||
Container.get(InstanceSettings).n8nFolder,
|
||||
config.getEnv('database.sqlite.database'),
|
||||
),
|
||||
enableWAL: config.getEnv('database.sqlite.enableWAL'),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { statSync } from 'fs';
|
||||
import path from 'path';
|
||||
import { UserSettings } from 'n8n-core';
|
||||
import { Container } from 'typedi';
|
||||
import { InstanceSettings } from 'n8n-core';
|
||||
import type { MigrationContext, IrreversibleMigration } from '@db/types';
|
||||
import config from '@/config';
|
||||
|
||||
@@ -191,7 +192,7 @@ const migrationsPruningEnabled = process.env.MIGRATIONS_PRUNING_ENABLED === 'tru
|
||||
|
||||
function getSqliteDbFileSize(): number {
|
||||
const filename = path.resolve(
|
||||
UserSettings.getUserN8nFolderPath(),
|
||||
Container.get(InstanceSettings).n8nFolder,
|
||||
config.getEnv('database.sqlite.database'),
|
||||
);
|
||||
const { size } = statSync(filename);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Container } from 'typedi';
|
||||
import { readFileSync, rmSync } from 'fs';
|
||||
import { UserSettings } from 'n8n-core';
|
||||
import { InstanceSettings } from 'n8n-core';
|
||||
import type { ObjectLiteral } from 'typeorm';
|
||||
import type { QueryRunner } from 'typeorm/query-runner/QueryRunner';
|
||||
import { jsonParse } from 'n8n-workflow';
|
||||
@@ -16,9 +16,10 @@ const logger = getLogger();
|
||||
const PERSONALIZATION_SURVEY_FILENAME = 'personalizationSurvey.json';
|
||||
|
||||
function loadSurveyFromDisk(): string | null {
|
||||
const userSettingsPath = UserSettings.getUserN8nFolderPath();
|
||||
try {
|
||||
const filename = `${userSettingsPath}/${PERSONALIZATION_SURVEY_FILENAME}`;
|
||||
const filename = `${
|
||||
Container.get(InstanceSettings).n8nFolder
|
||||
}/${PERSONALIZATION_SURVEY_FILENAME}`;
|
||||
const surveyFile = readFileSync(filename, 'utf-8');
|
||||
rmSync(filename);
|
||||
const personalizationSurvey = JSON.parse(surveyFile) as object;
|
||||
|
||||
Reference in New Issue
Block a user