mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
feat: Enforce data-stores limits (no-changelog) (#19116)
Co-authored-by: Charlie Kolb <charlie@n8n.io>
This commit is contained in:
@@ -81,6 +81,10 @@ export interface FrontendSettings {
|
||||
disableSessionRecording: boolean;
|
||||
debug: boolean;
|
||||
};
|
||||
dataTables: {
|
||||
maxSize: number;
|
||||
warningThreshold: number;
|
||||
};
|
||||
personalizationSurveyEnabled: boolean;
|
||||
defaultLocale: string;
|
||||
userManagement: IUserManagementSettings;
|
||||
|
||||
22
packages/@n8n/config/src/configs/data-table.config.ts
Normal file
22
packages/@n8n/config/src/configs/data-table.config.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Config, Env } from '../decorators';
|
||||
|
||||
@Config
|
||||
export class DataTableConfig {
|
||||
/** Specifies the maximum allowed size (in bytes) for data tables. */
|
||||
@Env('N8N_DATA_TABLES_MAX_SIZE_BYTES')
|
||||
maxSize: number = 100 * 1024 * 1024;
|
||||
|
||||
/**
|
||||
* The percentage threshold at which a warning is triggered for data tables.
|
||||
* When the usage of a data table reaches or exceeds this value, a warning is issued.
|
||||
*/
|
||||
@Env('N8N_DATA_TABLES_WARNING_THRESHOLD_BYTES')
|
||||
warningThreshold: number = 95 * 1024 * 1024;
|
||||
|
||||
/**
|
||||
* The duration in milliseconds for which the data table size is cached.
|
||||
* This prevents excessive database queries for size validation.
|
||||
*/
|
||||
@Env('N8N_DATA_TABLES_SIZE_CHECK_CACHE_DURATION_MS')
|
||||
sizeCheckCacheDuration: number = 5 * 1000;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import { AiConfig } from './configs/ai.config';
|
||||
import { AuthConfig } from './configs/auth.config';
|
||||
import { CacheConfig } from './configs/cache.config';
|
||||
import { CredentialsConfig } from './configs/credentials.config';
|
||||
import { DataTableConfig } from './configs/data-table.config';
|
||||
import { DatabaseConfig } from './configs/database.config';
|
||||
import { DeploymentConfig } from './configs/deployment.config';
|
||||
import { DiagnosticsConfig } from './configs/diagnostics.config';
|
||||
@@ -209,4 +210,7 @@ export class GlobalConfig {
|
||||
|
||||
@Nested
|
||||
ai: AiConfig;
|
||||
|
||||
@Nested
|
||||
dataTable: DataTableConfig;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,11 @@ describe('GlobalConfig', () => {
|
||||
ssl_key: '',
|
||||
ssl_cert: '',
|
||||
editorBaseUrl: '',
|
||||
dataTable: {
|
||||
maxSize: 100 * 1024 * 1024,
|
||||
warningThreshold: 95 * 1024 * 1024,
|
||||
sizeCheckCacheDuration: 5000,
|
||||
},
|
||||
database: {
|
||||
logging: {
|
||||
enabled: false,
|
||||
|
||||
Reference in New Issue
Block a user