@n8n/stores 2.38.0 → 2.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -155,6 +155,7 @@ const useSettingsStore = (0, pinia.defineStore)(require_constants.STORES.SETTING
155
155
  const isOtelModuleActive = isModuleActive("otel") && moduleSettings.value.otel?.enabled === true;
156
156
  return isOtelCustomSpanAttributesLicensed && isOtelModuleActive;
157
157
  });
158
+ const isWorkerPoolsEnabled = (0, vue.computed)(() => settings.value.workerPools?.enabled ?? false);
158
159
  const isAgentsKnowledgeBaseFeatureEnabled = (0, vue.computed)(() => isModuleActive("agents") && moduleSettings.value.agents?.knowledgeBaseEnabled === true);
159
160
  const isPublicChatTriggerDisabled = (0, vue.computed)(() => settings.value.chatTrigger?.disablePublicChat ?? false);
160
161
  const isCustomRolesFeatureEnabled = (0, vue.computed)(() => settings.value.enterprise?.customRoles ?? false);
@@ -379,6 +380,7 @@ const useSettingsStore = (0, pinia.defineStore)(require_constants.STORES.SETTING
379
380
  isDataTableFeatureEnabled,
380
381
  isChatFeatureEnabled,
381
382
  isOtelCustomSpanAttributesEnabled,
383
+ isWorkerPoolsEnabled,
382
384
  isAgentsKnowledgeBaseFeatureEnabled,
383
385
  isPublicChatTriggerDisabled,
384
386
  isWorkflowPublicationServiceEnabled
@@ -1 +1 @@
1
- {"version":3,"file":"settings2.store.cjs","names":["i18n","STORES","AuthenticationMethod","EXECUTE_WORKFLOW_NODE_TYPE","EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE","Bowser","allowedModules","useRootStore","settingsApi","eventsApi","moduleSettingsApi","aiUsageApi"],"sources":["../src/settings.store.ts"],"sourcesContent":["import {\n\tAuthenticationMethod,\n\ttype IUserManagementSettings,\n\ttype FrontendSettings,\n\ttype FrontendModuleSettings,\n\ttype WorkflowReviewsPolicy,\n} from '@n8n/api-types';\nimport { i18n } from '@n8n/i18n';\nimport { makeRestApiRequest } from '@n8n/rest-api-client';\nimport * as aiUsageApi from '@n8n/rest-api-client/api/ai-usage';\nimport * as eventsApi from '@n8n/rest-api-client/api/events';\nimport * as moduleSettingsApi from '@n8n/rest-api-client/api/module-settings';\nimport * as settingsApi from '@n8n/rest-api-client/api/settings';\nimport { testHealthEndpoint } from '@n8n/rest-api-client/api/templates';\nimport Bowser from 'bowser';\nimport {\n\tEXECUTE_WORKFLOW_NODE_TYPE,\n\tEXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\ttype IDataObject,\n\ttype WorkflowSettings,\n} from 'n8n-workflow';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\n\nimport { STORES } from './constants';\nimport { useRootStore } from './useRootStore';\n\n/**\n * Full-page warning rendered when the instance requires a secure cookie but the\n * page is served over an insecure origin (or via Safari, which drops the cookie).\n * The copy is localized; the structural markup and inline styles stay in code\n * because this is written via `document.write` before the Vue app mounts.\n */\nconst buildInsecureConnectionWarning = () => `\n<body style=\"margin-top: 20px; font-family: 'Open Sans', sans-serif; text-align: center;\">\n<h1 style=\"font-size: 40px\">&#x1F6AB;</h1>\n<h2>${i18n.baseText('settings.authCookie.insecureConnection.title')}</h2>\n<br/>\n<div style=\"font-size: 18px; max-width: 640px; text-align: left; margin: 10px auto\">\n\t${i18n.baseText('settings.authCookie.insecureConnection.fixIntro')}\n\t<ul>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.tls')}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.localhost', { interpolate: { localhostUrl: 'http://localhost:5678' } })}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.disableSecureCookie', { interpolate: { envVar: 'N8N_SECURE_COOKIE' } })}</li>\n\t</ul>\n</div>\n</body>`;\n\nexport const useSettingsStore = defineStore(STORES.SETTINGS, () => {\n\tconst initialized = ref(false);\n\tconst settings = ref<FrontendSettings>({} as FrontendSettings);\n\tconst moduleSettings = ref<FrontendModuleSettings>({});\n\tconst userManagement = ref<IUserManagementSettings>({\n\t\tquota: -1,\n\t\tshowSetupOnFirstLoad: false,\n\t\tsmtpSetup: false,\n\t\tauthenticationMethod: AuthenticationMethod.Email,\n\t\tpasswordMinLength: 8,\n\t});\n\tconst templatesEndpointHealthy = ref(false);\n\tconst api = ref({\n\t\tenabled: false,\n\t\tlatestVersion: 0,\n\t\tpath: '/',\n\t\tswaggerUi: {\n\t\t\tenabled: false,\n\t\t},\n\t});\n\tconst mfa = ref({ enabled: false });\n\tconst folders = ref({ enabled: false });\n\n\tconst saveDataErrorExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveDataSuccessExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveManualExecutions = ref(false);\n\tconst saveDataProgressExecution = ref(false);\n\tconst isMFAEnforced = ref(false);\n\n\tconst isDocker = computed(() => settings.value?.isDocker ?? false);\n\n\tconst databaseType = computed(() => settings.value?.databaseType);\n\n\tconst planName = computed(() => settings.value?.license?.planName ?? 'Community');\n\n\tconst consumerId = computed(() => settings.value?.license?.consumerId);\n\n\tconst binaryDataMode = computed(() => settings.value?.binaryDataMode);\n\n\tconst pruning = computed(() => settings.value?.pruning);\n\n\tconst security = computed(() => ({\n\t\tblockFileAccessToN8nFiles: settings.value?.security?.blockFileAccessToN8nFiles,\n\t\tsecureCookie: settings.value?.authCookie?.secure,\n\t}));\n\n\tconst isEnterpriseFeatureEnabled = computed(() => settings.value.enterprise ?? {});\n\n\tconst nodeJsVersion = computed(() => settings.value.nodeJsVersion);\n\n\tconst nodeEnv = computed(() => settings.value.nodeEnv);\n\n\tconst concurrency = computed(() => settings.value.concurrency);\n\n\tconst isConcurrencyEnabled = computed(() => concurrency.value !== -1);\n\n\tconst isPublicApiEnabled = computed(() => api.value.enabled);\n\n\tconst isSwaggerUIEnabled = computed(() => api.value.swaggerUi?.enabled ?? false);\n\n\tconst isPreviewMode = computed(() => settings.value.previewMode);\n\n\tconst isE2ETestMode = computed(() => settings.value.inE2ETests);\n\n\tconst isCanvasOnly = computed(() => settings.value.canvasOnly);\n\n\tconst isCrdtCollaborationEnabled = computed(\n\t\t() => (settings.value.collaboration?.crdt ?? 'off') !== 'off',\n\t);\n\n\tconst publicApiLatestVersion = computed(() => api.value.latestVersion);\n\n\tconst publicApiPath = computed(() => api.value.path);\n\n\tconst isAiAssistantEnabled = computed(\n\t\t() => settings.value.aiAssistant?.enabled && settings.value.aiAssistant?.setup,\n\t);\n\n\tconst isAskAiEnabled = computed(() => settings.value.askAi?.enabled);\n\n\tconst isAiBuilderEnabled = computed(\n\t\t() => settings.value.aiBuilder?.enabled && settings.value.aiBuilder?.setup,\n\t);\n\n\tconst isAiAssistantOrBuilderEnabled = computed(\n\t\t() => isAiAssistantEnabled.value || isAiBuilderEnabled.value,\n\t);\n\n\tconst showSetupPage = computed(() => userManagement.value.showSetupOnFirstLoad);\n\n\tconst deploymentType = computed(() => settings.value.deployment?.type || 'default');\n\n\tconst isCloudDeployment = computed(() => settings.value.deployment?.type === 'cloud');\n\n\tconst activeModules = computed(() => settings.value.activeModules);\n\n\tconst isModuleActive = (moduleName: string) => {\n\t\treturn activeModules.value?.includes(moduleName);\n\t};\n\n\t/**\n\t * Checks whether an agents-module sub-feature token (listed in\n\t * `N8N_AGENTS_MODULES` on the backend) is enabled. Returns `false`\n\t * unless the top-level `agents` module is active AND the token is\n\t * present in the module settings' `modules` array.\n\t *\n\t * Known tokens: see `AGENTS_MODULE_NAMES` in `agents.config.ts`.\n\t */\n\tconst isAgentModuleActive = (name: string): boolean => {\n\t\treturn (\n\t\t\tisModuleActive('agents') && moduleSettings.value.agents?.modules?.includes(name) === true\n\t\t);\n\t};\n\n\tconst isAiCreditsEnabled = computed(\n\t\t() => settings.value.aiCredits?.enabled && settings.value.aiCredits?.setup,\n\t);\n\n\tconst aiCreditsQuota = computed(() => settings.value.aiCredits?.credits);\n\n\tconst isAiDataSharingEnabled = computed(\n\t\t() => settings.value.ai?.allowSendingParameterValues ?? true,\n\t);\n\n\tconst isAiGatewayEnabled = computed(() => settings.value.aiGateway?.enabled ?? false);\n\n\tconst isAiGatewayCloudUbbEnabled = computed(\n\t\t() => settings.value.aiGateway?.cloudUbbEnabled ?? false,\n\t);\n\n\tconst aiGatewayBudget = computed(() => settings.value.aiGateway?.budget ?? 0);\n\n\tconst isSmtpSetup = computed(() => userManagement.value.smtpSetup);\n\n\tconst isPersonalizationSurveyEnabled = computed(\n\t\t() => settings.value.telemetry?.enabled && settings.value.personalizationSurveyEnabled,\n\t);\n\n\tconst telemetry = computed(() => settings.value.telemetry);\n\n\tconst logLevel = computed(() => settings.value.logLevel);\n\n\tconst isTelemetryEnabled = computed(() => settings.value.telemetry?.enabled);\n\n\tconst isMFAEnforcementLicensed = computed(() => {\n\t\treturn settings.value.enterprise?.mfaEnforcement ?? false;\n\t});\n\n\tconst isMfaFeatureEnabled = computed(() => mfa.value.enabled);\n\n\tconst isFoldersFeatureEnabled = computed(() => folders.value.enabled);\n\n\tconst isDataTableFeatureEnabled = computed(() => isModuleActive('data-table'));\n\n\tconst isChatFeatureEnabled = computed(\n\t\t() => isModuleActive('chat-hub') && moduleSettings.value['chat-hub']?.enabled === true,\n\t);\n\n\tconst isOtelCustomSpanAttributesEnabled = computed(() => {\n\t\tconst isOtelCustomSpanAttributesLicensed =\n\t\t\tsettings.value.enterprise?.otelCustomSpanAttributes ?? false;\n\t\tconst isOtelModuleActive =\n\t\t\tisModuleActive('otel') && moduleSettings.value.otel?.enabled === true;\n\n\t\treturn isOtelCustomSpanAttributesLicensed && isOtelModuleActive;\n\t});\n\n\t// Opt-in flag controlled by the backend's N8N_AGENTS_AI_SANDBOX_ENABLED setting.\n\tconst isAgentsKnowledgeBaseFeatureEnabled = computed(\n\t\t() => isModuleActive('agents') && moduleSettings.value.agents?.knowledgeBaseEnabled === true,\n\t);\n\n\tconst isPublicChatTriggerDisabled = computed(\n\t\t() => settings.value.chatTrigger?.disablePublicChat ?? false,\n\t);\n\n\tconst isCustomRolesFeatureEnabled = computed(\n\t\t() => settings.value.enterprise?.customRoles ?? false,\n\t);\n\n\tconst areTagsEnabled = computed(() =>\n\t\tsettings.value.workflowTagsDisabled !== undefined ? !settings.value.workflowTagsDisabled : true,\n\t);\n\n\tconst isAutosaveEnabled = computed(() =>\n\t\tsettings.value.workflowsAutosaveDisabled !== undefined\n\t\t\t? !settings.value.workflowsAutosaveDisabled\n\t\t\t: true,\n\t);\n\n\tconst isHiringBannerEnabled = computed(() => settings.value.hiringBannerEnabled);\n\n\tconst isTemplatesEnabled = computed(() => Boolean(settings.value.templates?.enabled));\n\n\tconst isTemplatesEndpointReachable = computed(() => templatesEndpointHealthy.value);\n\n\tconst templatesHost = computed(() => settings.value.templates?.host ?? '');\n\n\tconst pushBackend = computed(() => settings.value.pushBackend);\n\n\tconst isCommunityNodesFeatureEnabled = computed(() => settings.value.communityNodesEnabled);\n\n\tconst isUnverifiedPackagesEnabled = computed(\n\t\t() => settings.value.unverifiedCommunityNodesEnabled,\n\t);\n\n\tconst allowedModules = computed(() => settings.value.allowedModules);\n\n\tconst isQueueModeEnabled = computed(() => settings.value.executionMode === 'queue');\n\tconst isMultiMain = computed(() => settings.value.isMultiMain);\n\n\tconst isWorkerViewAvailable = computed(() => !!settings.value.enterprise?.workerView);\n\n\tconst workflowCallerPolicyDefaultOption = computed(\n\t\t() => settings.value.workflowCallerPolicyDefaultOption,\n\t);\n\n\tconst isNodeTypeExcluded = (nodeType: string) => {\n\t\tconst excludeNodes = settings.value.excludeNodes;\n\t\treturn Array.isArray(excludeNodes) && excludeNodes.includes(nodeType);\n\t};\n\n\tconst isExecuteWorkflowNodeExcluded = computed(() =>\n\t\tisNodeTypeExcluded(EXECUTE_WORKFLOW_NODE_TYPE),\n\t);\n\n\tconst isSubworkflowConversionDisabled = computed(\n\t\t() =>\n\t\t\tisExecuteWorkflowNodeExcluded.value || isNodeTypeExcluded(EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE),\n\t);\n\n\tconst permanentlyDismissedBanners = computed(() => settings.value.banners?.dismissed ?? []);\n\n\tconst isCommunityPlan = computed(() => planName.value.toLowerCase() === 'community');\n\n\tconst isDevRelease = computed(() => settings.value.releaseChannel === 'dev');\n\n\tconst endpointHealth = computed(() => settings.value.endpointHealth);\n\n\tconst isWorkflowPublicationServiceEnabled = computed(\n\t\t() => settings.value.useWorkflowPublicationService ?? false,\n\t);\n\n\tconst setSettings = (newSettings: FrontendSettings) => {\n\t\tsettings.value = newSettings;\n\n\t\tuserManagement.value = newSettings.userManagement;\n\t\tif (userManagement.value) {\n\t\t\tuserManagement.value.showSetupOnFirstLoad =\n\t\t\t\t!!settings.value.userManagement.showSetupOnFirstLoad;\n\t\t}\n\n\t\tif (settings.value.publicApi) {\n\t\t\tapi.value = settings.value.publicApi;\n\t\t}\n\n\t\tmfa.value.enabled = settings.value.mfa?.enabled;\n\t\tfolders.value.enabled = settings.value.folders?.enabled;\n\n\t\tif (settings.value.versionCli) {\n\t\t\tuseRootStore().setVersionCli(settings.value.versionCli);\n\t\t}\n\n\t\tif (settings.value.authCookie.secure) {\n\t\t\tconst { browser } = Bowser.parse(navigator.userAgent);\n\t\t\tif (\n\t\t\t\tlocation.protocol === 'http:' &&\n\t\t\t\t(!['localhost', '127.0.0.1'].includes(location.hostname) || browser.name === 'Safari')\n\t\t\t) {\n\t\t\t\tdocument.write(buildInsecureConnectionWarning());\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst setAllowedModules = (allowedModules: FrontendSettings['allowedModules']) => {\n\t\tsettings.value.allowedModules = allowedModules;\n\t};\n\n\tconst setWorkflowReviewsPolicy = (policy: WorkflowReviewsPolicy) => {\n\t\tsettings.value.workflowReviews = policy;\n\t};\n\n\tconst setSaveDataErrorExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataErrorExecution.value = newValue;\n\t};\n\n\tconst setSaveDataSuccessExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataSuccessExecution.value = newValue;\n\t};\n\n\tconst setSaveManualExecutions = (newValue: boolean) => {\n\t\tsaveManualExecutions.value = newValue;\n\t};\n\n\tconst setSaveDataProgressExecution = (newValue: boolean) => {\n\t\tsaveDataProgressExecution.value = newValue;\n\t};\n\n\tconst getSettings = async () => {\n\t\tconst rootStore = useRootStore();\n\t\tconst fetchedSettings = await settingsApi.getSettings(rootStore.restApiContext);\n\n\t\tsetSettings(fetchedSettings);\n\t\trootStore.setDefaultLocale(fetchedSettings.defaultLocale);\n\n\t\t// Set MFA enforced state even for public settings mode\n\t\t// as it is needed to determine if the MFA setup page should be shown\n\t\tisMFAEnforced.value = settings.value.mfa?.enforced ?? false;\n\n\t\tif (fetchedSettings.settingsMode === 'public') {\n\t\t\t// public settings mode is typically used for unauthenticated users\n\t\t\t// when public settings are returned we can skip the rest of the setup\n\t\t\t// that need the full set of authenticated settings\n\t\t\treturn;\n\t\t}\n\n\t\tsettings.value.communityNodesEnabled = fetchedSettings.communityNodesEnabled;\n\t\tsettings.value.unverifiedCommunityNodesEnabled =\n\t\t\tfetchedSettings.unverifiedCommunityNodesEnabled;\n\t\tsetAllowedModules(fetchedSettings.allowedModules);\n\t\tsetSaveDataErrorExecution(fetchedSettings.saveDataErrorExecution);\n\t\tsetSaveDataSuccessExecution(fetchedSettings.saveDataSuccessExecution);\n\t\tsetSaveDataProgressExecution(fetchedSettings.saveExecutionProgress);\n\t\tsetSaveManualExecutions(fetchedSettings.saveManualExecutions);\n\n\t\trootStore.setUrlBaseWebhook(fetchedSettings.urlBaseWebhook);\n\t\trootStore.setUrlBaseEditor(fetchedSettings.urlBaseEditor);\n\t\trootStore.setUrlBaseWebhookTest(fetchedSettings.urlBaseWebhookTest);\n\t\trootStore.setEndpointForm(fetchedSettings.endpointForm);\n\t\trootStore.setEndpointFormTest(fetchedSettings.endpointFormTest);\n\t\trootStore.setEndpointFormWaiting(fetchedSettings.endpointFormWaiting);\n\t\trootStore.setEndpointWebhook(fetchedSettings.endpointWebhook);\n\t\trootStore.setEndpointWebhookTest(fetchedSettings.endpointWebhookTest);\n\t\trootStore.setEndpointWebhookWaiting(fetchedSettings.endpointWebhookWaiting);\n\t\trootStore.setEndpointMcp(fetchedSettings.endpointMcp);\n\t\trootStore.setEndpointMcpTest(fetchedSettings.endpointMcpTest);\n\t\trootStore.setTimezone(fetchedSettings.timezone);\n\t\trootStore.setExecutionTimeout(fetchedSettings.executionTimeout);\n\t\trootStore.setMaxExecutionTimeout(fetchedSettings.maxExecutionTimeout);\n\t\trootStore.setPublicApiPath(\n\t\t\t`${fetchedSettings.publicApi.path}/v${fetchedSettings.publicApi.latestVersion}`,\n\t\t);\n\t\trootStore.setInstanceId(fetchedSettings.instanceId);\n\t\trootStore.setOauthCallbackUrls(fetchedSettings.oauthCallbackUrls);\n\t\trootStore.setN8nMetadata(fetchedSettings.n8nMetadata ?? {});\n\t\trootStore.setBinaryDataMode(fetchedSettings.binaryDataMode);\n\n\t\tif (fetchedSettings.telemetry.enabled) {\n\t\t\tvoid eventsApi.sessionStarted(rootStore.restApiContext);\n\t\t}\n\t};\n\n\tconst initialize = async () => {\n\t\tif (initialized.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait getSettings();\n\n\t\tinitialized.value = true;\n\t};\n\n\tconst stopShowingSetupPage = () => {\n\t\tuserManagement.value.showSetupOnFirstLoad = false;\n\t};\n\n\tconst disableTemplates = () => {\n\t\tsettings.value = {\n\t\t\t...settings.value,\n\t\t\ttemplates: {\n\t\t\t\t...settings.value.templates,\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t};\n\t};\n\n\tconst testTemplatesEndpoint = async () => {\n\t\tconst timeout = new Promise((_, reject) =>\n\t\t\tsetTimeout(() => reject(new Error('Templates health check timed out')), 2000),\n\t\t);\n\t\tawait Promise.race([testHealthEndpoint(templatesHost.value), timeout]);\n\t\ttemplatesEndpointHealthy.value = true;\n\t};\n\n\tconst getTimezones = async (): Promise<IDataObject> => {\n\t\tconst rootStore = useRootStore();\n\t\treturn await makeRestApiRequest(rootStore.restApiContext, 'GET', '/options/timezones');\n\t};\n\n\tconst reset = () => {\n\t\tsettings.value = {} as FrontendSettings;\n\t};\n\n\tconst getModuleSettings = async () => {\n\t\tconst fetched = await moduleSettingsApi.getModuleSettings(useRootStore().restApiContext);\n\t\tmoduleSettings.value = fetched;\n\t};\n\n\tconst updateAiDataSharingSettings = async (allowSendingParameterValues: boolean) => {\n\t\tconst rootStore = useRootStore();\n\t\tawait aiUsageApi.updateAiUsageSettings(rootStore.restApiContext, {\n\t\t\tallowSendingParameterValues,\n\t\t});\n\t\tif (settings.value.ai) {\n\t\t\tsettings.value.ai.allowSendingParameterValues = allowSendingParameterValues;\n\t\t}\n\t};\n\n\treturn {\n\t\tsettings,\n\t\tuserManagement,\n\t\ttemplatesEndpointHealthy,\n\t\tapi,\n\t\tmfa,\n\t\tisDocker,\n\t\tisDevRelease,\n\t\tendpointHealth,\n\t\tisEnterpriseFeatureEnabled,\n\t\tdatabaseType,\n\t\tplanName,\n\t\tconsumerId,\n\t\tbinaryDataMode,\n\t\tpruning,\n\t\tsecurity,\n\t\tnodeJsVersion,\n\t\tnodeEnv,\n\t\tconcurrency,\n\t\tisConcurrencyEnabled,\n\t\tisPublicApiEnabled,\n\t\tisSwaggerUIEnabled,\n\t\tisPreviewMode,\n\t\tisE2ETestMode,\n\t\tisCanvasOnly,\n\t\tisCrdtCollaborationEnabled,\n\t\tpublicApiLatestVersion,\n\t\tpublicApiPath,\n\t\tshowSetupPage,\n\t\tdeploymentType,\n\t\tisCloudDeployment,\n\t\tisSmtpSetup,\n\t\tisPersonalizationSurveyEnabled,\n\t\ttelemetry,\n\t\tlogLevel,\n\t\tisTelemetryEnabled,\n\t\tisMfaFeatureEnabled,\n\t\tisFoldersFeatureEnabled,\n\t\tisAiAssistantEnabled,\n\t\tisCustomRolesFeatureEnabled,\n\t\tareTagsEnabled,\n\t\tisAutosaveEnabled,\n\t\tisHiringBannerEnabled,\n\t\tisTemplatesEnabled,\n\t\tisTemplatesEndpointReachable,\n\t\ttemplatesHost,\n\t\tpushBackend,\n\t\tisCommunityNodesFeatureEnabled,\n\t\tisUnverifiedPackagesEnabled,\n\t\tallowedModules,\n\t\tisQueueModeEnabled,\n\t\tisMultiMain,\n\t\tisWorkerViewAvailable,\n\t\tworkflowCallerPolicyDefaultOption,\n\t\tisExecuteWorkflowNodeExcluded,\n\t\tisSubworkflowConversionDisabled,\n\t\tpermanentlyDismissedBanners,\n\t\tsaveDataErrorExecution,\n\t\tsaveDataSuccessExecution,\n\t\tsaveManualExecutions,\n\t\tsaveDataProgressExecution,\n\t\tisCommunityPlan,\n\t\tisAskAiEnabled,\n\t\tisAiBuilderEnabled,\n\t\tisAiAssistantOrBuilderEnabled,\n\t\tisAiCreditsEnabled,\n\t\taiCreditsQuota,\n\t\tisAiDataSharingEnabled,\n\t\tisAiGatewayEnabled,\n\t\tisAiGatewayCloudUbbEnabled,\n\t\taiGatewayBudget,\n\t\treset,\n\t\tgetTimezones,\n\t\ttestTemplatesEndpoint,\n\t\tdisableTemplates,\n\t\tstopShowingSetupPage,\n\t\tgetSettings,\n\t\tsetSettings,\n\t\tsetWorkflowReviewsPolicy,\n\t\tinitialize,\n\t\tgetModuleSettings,\n\t\tmoduleSettings,\n\t\tupdateAiDataSharingSettings,\n\t\tisMFAEnforcementLicensed,\n\t\tisMFAEnforced,\n\t\tactiveModules,\n\t\tisModuleActive,\n\t\tisAgentModuleActive,\n\t\tisDataTableFeatureEnabled,\n\t\tisChatFeatureEnabled,\n\t\tisOtelCustomSpanAttributesEnabled,\n\t\tisAgentsKnowledgeBaseFeatureEnabled,\n\t\tisPublicChatTriggerDisabled,\n\t\tisWorkflowPublicationServiceEnabled,\n\t};\n});\n"],"mappings":"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AG,SAAS,MAAM;IAClB,SAAS;IACT;GACD;;CAGF,MAAM,wBAAwB,YAAY;EACzC,MAAM,UAAU,IAAI,SAAS,GAAG,WAC/B,iBAAiB,uBAAO,IAAI,MAAM,mCAAmC,CAAC,EAAE,IAAK,CAC7E;AACD,QAAM,QAAQ,KAAK,6DAAoB,cAAc,MAAM,EAAE,QAAQ,CAAC;AACtE,2BAAyB,QAAQ;;CAGlC,MAAM,eAAe,YAAkC;AAEtD,SAAO,oDADWF,mCAAc,CACU,gBAAgB,OAAO,qBAAqB;;CAGvF,MAAM,cAAc;AACnB,WAAS,QAAQ,EAAE;;CAGpB,MAAM,oBAAoB,YAAY;AAErC,iBAAe,QADC,MAAMG,0CAAkB,kBAAkBH,mCAAc,CAAC,eAAe;;CAIzF,MAAM,8BAA8B,OAAO,gCAAyC;EACnF,MAAM,YAAYA,mCAAc;AAChC,QAAMI,mCAAW,sBAAsB,UAAU,gBAAgB,EAChE,6BACA,CAAC;AACF,MAAI,SAAS,MAAM,GAClB,UAAS,MAAM,GAAG,8BAA8B;;AAIlD,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
1
+ {"version":3,"file":"settings2.store.cjs","names":["i18n","STORES","AuthenticationMethod","EXECUTE_WORKFLOW_NODE_TYPE","EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE","Bowser","allowedModules","useRootStore","settingsApi","eventsApi","moduleSettingsApi","aiUsageApi"],"sources":["../src/settings.store.ts"],"sourcesContent":["import {\n\tAuthenticationMethod,\n\ttype IUserManagementSettings,\n\ttype FrontendSettings,\n\ttype FrontendModuleSettings,\n\ttype WorkflowReviewsPolicy,\n} from '@n8n/api-types';\nimport { i18n } from '@n8n/i18n';\nimport { makeRestApiRequest } from '@n8n/rest-api-client';\nimport * as aiUsageApi from '@n8n/rest-api-client/api/ai-usage';\nimport * as eventsApi from '@n8n/rest-api-client/api/events';\nimport * as moduleSettingsApi from '@n8n/rest-api-client/api/module-settings';\nimport * as settingsApi from '@n8n/rest-api-client/api/settings';\nimport { testHealthEndpoint } from '@n8n/rest-api-client/api/templates';\nimport Bowser from 'bowser';\nimport {\n\tEXECUTE_WORKFLOW_NODE_TYPE,\n\tEXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\ttype IDataObject,\n\ttype WorkflowSettings,\n} from 'n8n-workflow';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\n\nimport { STORES } from './constants';\nimport { useRootStore } from './useRootStore';\n\n/**\n * Full-page warning rendered when the instance requires a secure cookie but the\n * page is served over an insecure origin (or via Safari, which drops the cookie).\n * The copy is localized; the structural markup and inline styles stay in code\n * because this is written via `document.write` before the Vue app mounts.\n */\nconst buildInsecureConnectionWarning = () => `\n<body style=\"margin-top: 20px; font-family: 'Open Sans', sans-serif; text-align: center;\">\n<h1 style=\"font-size: 40px\">&#x1F6AB;</h1>\n<h2>${i18n.baseText('settings.authCookie.insecureConnection.title')}</h2>\n<br/>\n<div style=\"font-size: 18px; max-width: 640px; text-align: left; margin: 10px auto\">\n\t${i18n.baseText('settings.authCookie.insecureConnection.fixIntro')}\n\t<ul>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.tls')}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.localhost', { interpolate: { localhostUrl: 'http://localhost:5678' } })}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.disableSecureCookie', { interpolate: { envVar: 'N8N_SECURE_COOKIE' } })}</li>\n\t</ul>\n</div>\n</body>`;\n\nexport const useSettingsStore = defineStore(STORES.SETTINGS, () => {\n\tconst initialized = ref(false);\n\tconst settings = ref<FrontendSettings>({} as FrontendSettings);\n\tconst moduleSettings = ref<FrontendModuleSettings>({});\n\tconst userManagement = ref<IUserManagementSettings>({\n\t\tquota: -1,\n\t\tshowSetupOnFirstLoad: false,\n\t\tsmtpSetup: false,\n\t\tauthenticationMethod: AuthenticationMethod.Email,\n\t\tpasswordMinLength: 8,\n\t});\n\tconst templatesEndpointHealthy = ref(false);\n\tconst api = ref({\n\t\tenabled: false,\n\t\tlatestVersion: 0,\n\t\tpath: '/',\n\t\tswaggerUi: {\n\t\t\tenabled: false,\n\t\t},\n\t});\n\tconst mfa = ref({ enabled: false });\n\tconst folders = ref({ enabled: false });\n\n\tconst saveDataErrorExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveDataSuccessExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveManualExecutions = ref(false);\n\tconst saveDataProgressExecution = ref(false);\n\tconst isMFAEnforced = ref(false);\n\n\tconst isDocker = computed(() => settings.value?.isDocker ?? false);\n\n\tconst databaseType = computed(() => settings.value?.databaseType);\n\n\tconst planName = computed(() => settings.value?.license?.planName ?? 'Community');\n\n\tconst consumerId = computed(() => settings.value?.license?.consumerId);\n\n\tconst binaryDataMode = computed(() => settings.value?.binaryDataMode);\n\n\tconst pruning = computed(() => settings.value?.pruning);\n\n\tconst security = computed(() => ({\n\t\tblockFileAccessToN8nFiles: settings.value?.security?.blockFileAccessToN8nFiles,\n\t\tsecureCookie: settings.value?.authCookie?.secure,\n\t}));\n\n\tconst isEnterpriseFeatureEnabled = computed(() => settings.value.enterprise ?? {});\n\n\tconst nodeJsVersion = computed(() => settings.value.nodeJsVersion);\n\n\tconst nodeEnv = computed(() => settings.value.nodeEnv);\n\n\tconst concurrency = computed(() => settings.value.concurrency);\n\n\tconst isConcurrencyEnabled = computed(() => concurrency.value !== -1);\n\n\tconst isPublicApiEnabled = computed(() => api.value.enabled);\n\n\tconst isSwaggerUIEnabled = computed(() => api.value.swaggerUi?.enabled ?? false);\n\n\tconst isPreviewMode = computed(() => settings.value.previewMode);\n\n\tconst isE2ETestMode = computed(() => settings.value.inE2ETests);\n\n\tconst isCanvasOnly = computed(() => settings.value.canvasOnly);\n\n\tconst isCrdtCollaborationEnabled = computed(\n\t\t() => (settings.value.collaboration?.crdt ?? 'off') !== 'off',\n\t);\n\n\tconst publicApiLatestVersion = computed(() => api.value.latestVersion);\n\n\tconst publicApiPath = computed(() => api.value.path);\n\n\tconst isAiAssistantEnabled = computed(\n\t\t() => settings.value.aiAssistant?.enabled && settings.value.aiAssistant?.setup,\n\t);\n\n\tconst isAskAiEnabled = computed(() => settings.value.askAi?.enabled);\n\n\tconst isAiBuilderEnabled = computed(\n\t\t() => settings.value.aiBuilder?.enabled && settings.value.aiBuilder?.setup,\n\t);\n\n\tconst isAiAssistantOrBuilderEnabled = computed(\n\t\t() => isAiAssistantEnabled.value || isAiBuilderEnabled.value,\n\t);\n\n\tconst showSetupPage = computed(() => userManagement.value.showSetupOnFirstLoad);\n\n\tconst deploymentType = computed(() => settings.value.deployment?.type || 'default');\n\n\tconst isCloudDeployment = computed(() => settings.value.deployment?.type === 'cloud');\n\n\tconst activeModules = computed(() => settings.value.activeModules);\n\n\tconst isModuleActive = (moduleName: string) => {\n\t\treturn activeModules.value?.includes(moduleName);\n\t};\n\n\t/**\n\t * Checks whether an agents-module sub-feature token (listed in\n\t * `N8N_AGENTS_MODULES` on the backend) is enabled. Returns `false`\n\t * unless the top-level `agents` module is active AND the token is\n\t * present in the module settings' `modules` array.\n\t *\n\t * Known tokens: see `AGENTS_MODULE_NAMES` in `agents.config.ts`.\n\t */\n\tconst isAgentModuleActive = (name: string): boolean => {\n\t\treturn (\n\t\t\tisModuleActive('agents') && moduleSettings.value.agents?.modules?.includes(name) === true\n\t\t);\n\t};\n\n\tconst isAiCreditsEnabled = computed(\n\t\t() => settings.value.aiCredits?.enabled && settings.value.aiCredits?.setup,\n\t);\n\n\tconst aiCreditsQuota = computed(() => settings.value.aiCredits?.credits);\n\n\tconst isAiDataSharingEnabled = computed(\n\t\t() => settings.value.ai?.allowSendingParameterValues ?? true,\n\t);\n\n\tconst isAiGatewayEnabled = computed(() => settings.value.aiGateway?.enabled ?? false);\n\n\tconst isAiGatewayCloudUbbEnabled = computed(\n\t\t() => settings.value.aiGateway?.cloudUbbEnabled ?? false,\n\t);\n\n\tconst aiGatewayBudget = computed(() => settings.value.aiGateway?.budget ?? 0);\n\n\tconst isSmtpSetup = computed(() => userManagement.value.smtpSetup);\n\n\tconst isPersonalizationSurveyEnabled = computed(\n\t\t() => settings.value.telemetry?.enabled && settings.value.personalizationSurveyEnabled,\n\t);\n\n\tconst telemetry = computed(() => settings.value.telemetry);\n\n\tconst logLevel = computed(() => settings.value.logLevel);\n\n\tconst isTelemetryEnabled = computed(() => settings.value.telemetry?.enabled);\n\n\tconst isMFAEnforcementLicensed = computed(() => {\n\t\treturn settings.value.enterprise?.mfaEnforcement ?? false;\n\t});\n\n\tconst isMfaFeatureEnabled = computed(() => mfa.value.enabled);\n\n\tconst isFoldersFeatureEnabled = computed(() => folders.value.enabled);\n\n\tconst isDataTableFeatureEnabled = computed(() => isModuleActive('data-table'));\n\n\tconst isChatFeatureEnabled = computed(\n\t\t() => isModuleActive('chat-hub') && moduleSettings.value['chat-hub']?.enabled === true,\n\t);\n\n\tconst isOtelCustomSpanAttributesEnabled = computed(() => {\n\t\tconst isOtelCustomSpanAttributesLicensed =\n\t\t\tsettings.value.enterprise?.otelCustomSpanAttributes ?? false;\n\t\tconst isOtelModuleActive =\n\t\t\tisModuleActive('otel') && moduleSettings.value.otel?.enabled === true;\n\n\t\treturn isOtelCustomSpanAttributesLicensed && isOtelModuleActive;\n\t});\n\n\tconst isWorkerPoolsEnabled = computed(() => settings.value.workerPools?.enabled ?? false);\n\n\t// Opt-in flag controlled by the backend's N8N_AGENTS_AI_SANDBOX_ENABLED setting.\n\tconst isAgentsKnowledgeBaseFeatureEnabled = computed(\n\t\t() => isModuleActive('agents') && moduleSettings.value.agents?.knowledgeBaseEnabled === true,\n\t);\n\n\tconst isPublicChatTriggerDisabled = computed(\n\t\t() => settings.value.chatTrigger?.disablePublicChat ?? false,\n\t);\n\n\tconst isCustomRolesFeatureEnabled = computed(\n\t\t() => settings.value.enterprise?.customRoles ?? false,\n\t);\n\n\tconst areTagsEnabled = computed(() =>\n\t\tsettings.value.workflowTagsDisabled !== undefined ? !settings.value.workflowTagsDisabled : true,\n\t);\n\n\tconst isAutosaveEnabled = computed(() =>\n\t\tsettings.value.workflowsAutosaveDisabled !== undefined\n\t\t\t? !settings.value.workflowsAutosaveDisabled\n\t\t\t: true,\n\t);\n\n\tconst isHiringBannerEnabled = computed(() => settings.value.hiringBannerEnabled);\n\n\tconst isTemplatesEnabled = computed(() => Boolean(settings.value.templates?.enabled));\n\n\tconst isTemplatesEndpointReachable = computed(() => templatesEndpointHealthy.value);\n\n\tconst templatesHost = computed(() => settings.value.templates?.host ?? '');\n\n\tconst pushBackend = computed(() => settings.value.pushBackend);\n\n\tconst isCommunityNodesFeatureEnabled = computed(() => settings.value.communityNodesEnabled);\n\n\tconst isUnverifiedPackagesEnabled = computed(\n\t\t() => settings.value.unverifiedCommunityNodesEnabled,\n\t);\n\n\tconst allowedModules = computed(() => settings.value.allowedModules);\n\n\tconst isQueueModeEnabled = computed(() => settings.value.executionMode === 'queue');\n\tconst isMultiMain = computed(() => settings.value.isMultiMain);\n\n\tconst isWorkerViewAvailable = computed(() => !!settings.value.enterprise?.workerView);\n\n\tconst workflowCallerPolicyDefaultOption = computed(\n\t\t() => settings.value.workflowCallerPolicyDefaultOption,\n\t);\n\n\tconst isNodeTypeExcluded = (nodeType: string) => {\n\t\tconst excludeNodes = settings.value.excludeNodes;\n\t\treturn Array.isArray(excludeNodes) && excludeNodes.includes(nodeType);\n\t};\n\n\tconst isExecuteWorkflowNodeExcluded = computed(() =>\n\t\tisNodeTypeExcluded(EXECUTE_WORKFLOW_NODE_TYPE),\n\t);\n\n\tconst isSubworkflowConversionDisabled = computed(\n\t\t() =>\n\t\t\tisExecuteWorkflowNodeExcluded.value || isNodeTypeExcluded(EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE),\n\t);\n\n\tconst permanentlyDismissedBanners = computed(() => settings.value.banners?.dismissed ?? []);\n\n\tconst isCommunityPlan = computed(() => planName.value.toLowerCase() === 'community');\n\n\tconst isDevRelease = computed(() => settings.value.releaseChannel === 'dev');\n\n\tconst endpointHealth = computed(() => settings.value.endpointHealth);\n\n\tconst isWorkflowPublicationServiceEnabled = computed(\n\t\t() => settings.value.useWorkflowPublicationService ?? false,\n\t);\n\n\tconst setSettings = (newSettings: FrontendSettings) => {\n\t\tsettings.value = newSettings;\n\n\t\tuserManagement.value = newSettings.userManagement;\n\t\tif (userManagement.value) {\n\t\t\tuserManagement.value.showSetupOnFirstLoad =\n\t\t\t\t!!settings.value.userManagement.showSetupOnFirstLoad;\n\t\t}\n\n\t\tif (settings.value.publicApi) {\n\t\t\tapi.value = settings.value.publicApi;\n\t\t}\n\n\t\tmfa.value.enabled = settings.value.mfa?.enabled;\n\t\tfolders.value.enabled = settings.value.folders?.enabled;\n\n\t\tif (settings.value.versionCli) {\n\t\t\tuseRootStore().setVersionCli(settings.value.versionCli);\n\t\t}\n\n\t\tif (settings.value.authCookie.secure) {\n\t\t\tconst { browser } = Bowser.parse(navigator.userAgent);\n\t\t\tif (\n\t\t\t\tlocation.protocol === 'http:' &&\n\t\t\t\t(!['localhost', '127.0.0.1'].includes(location.hostname) || browser.name === 'Safari')\n\t\t\t) {\n\t\t\t\tdocument.write(buildInsecureConnectionWarning());\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst setAllowedModules = (allowedModules: FrontendSettings['allowedModules']) => {\n\t\tsettings.value.allowedModules = allowedModules;\n\t};\n\n\tconst setWorkflowReviewsPolicy = (policy: WorkflowReviewsPolicy) => {\n\t\tsettings.value.workflowReviews = policy;\n\t};\n\n\tconst setSaveDataErrorExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataErrorExecution.value = newValue;\n\t};\n\n\tconst setSaveDataSuccessExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataSuccessExecution.value = newValue;\n\t};\n\n\tconst setSaveManualExecutions = (newValue: boolean) => {\n\t\tsaveManualExecutions.value = newValue;\n\t};\n\n\tconst setSaveDataProgressExecution = (newValue: boolean) => {\n\t\tsaveDataProgressExecution.value = newValue;\n\t};\n\n\tconst getSettings = async () => {\n\t\tconst rootStore = useRootStore();\n\t\tconst fetchedSettings = await settingsApi.getSettings(rootStore.restApiContext);\n\n\t\tsetSettings(fetchedSettings);\n\t\trootStore.setDefaultLocale(fetchedSettings.defaultLocale);\n\n\t\t// Set MFA enforced state even for public settings mode\n\t\t// as it is needed to determine if the MFA setup page should be shown\n\t\tisMFAEnforced.value = settings.value.mfa?.enforced ?? false;\n\n\t\tif (fetchedSettings.settingsMode === 'public') {\n\t\t\t// public settings mode is typically used for unauthenticated users\n\t\t\t// when public settings are returned we can skip the rest of the setup\n\t\t\t// that need the full set of authenticated settings\n\t\t\treturn;\n\t\t}\n\n\t\tsettings.value.communityNodesEnabled = fetchedSettings.communityNodesEnabled;\n\t\tsettings.value.unverifiedCommunityNodesEnabled =\n\t\t\tfetchedSettings.unverifiedCommunityNodesEnabled;\n\t\tsetAllowedModules(fetchedSettings.allowedModules);\n\t\tsetSaveDataErrorExecution(fetchedSettings.saveDataErrorExecution);\n\t\tsetSaveDataSuccessExecution(fetchedSettings.saveDataSuccessExecution);\n\t\tsetSaveDataProgressExecution(fetchedSettings.saveExecutionProgress);\n\t\tsetSaveManualExecutions(fetchedSettings.saveManualExecutions);\n\n\t\trootStore.setUrlBaseWebhook(fetchedSettings.urlBaseWebhook);\n\t\trootStore.setUrlBaseEditor(fetchedSettings.urlBaseEditor);\n\t\trootStore.setUrlBaseWebhookTest(fetchedSettings.urlBaseWebhookTest);\n\t\trootStore.setEndpointForm(fetchedSettings.endpointForm);\n\t\trootStore.setEndpointFormTest(fetchedSettings.endpointFormTest);\n\t\trootStore.setEndpointFormWaiting(fetchedSettings.endpointFormWaiting);\n\t\trootStore.setEndpointWebhook(fetchedSettings.endpointWebhook);\n\t\trootStore.setEndpointWebhookTest(fetchedSettings.endpointWebhookTest);\n\t\trootStore.setEndpointWebhookWaiting(fetchedSettings.endpointWebhookWaiting);\n\t\trootStore.setEndpointMcp(fetchedSettings.endpointMcp);\n\t\trootStore.setEndpointMcpTest(fetchedSettings.endpointMcpTest);\n\t\trootStore.setTimezone(fetchedSettings.timezone);\n\t\trootStore.setExecutionTimeout(fetchedSettings.executionTimeout);\n\t\trootStore.setMaxExecutionTimeout(fetchedSettings.maxExecutionTimeout);\n\t\trootStore.setPublicApiPath(\n\t\t\t`${fetchedSettings.publicApi.path}/v${fetchedSettings.publicApi.latestVersion}`,\n\t\t);\n\t\trootStore.setInstanceId(fetchedSettings.instanceId);\n\t\trootStore.setOauthCallbackUrls(fetchedSettings.oauthCallbackUrls);\n\t\trootStore.setN8nMetadata(fetchedSettings.n8nMetadata ?? {});\n\t\trootStore.setBinaryDataMode(fetchedSettings.binaryDataMode);\n\n\t\tif (fetchedSettings.telemetry.enabled) {\n\t\t\tvoid eventsApi.sessionStarted(rootStore.restApiContext);\n\t\t}\n\t};\n\n\tconst initialize = async () => {\n\t\tif (initialized.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait getSettings();\n\n\t\tinitialized.value = true;\n\t};\n\n\tconst stopShowingSetupPage = () => {\n\t\tuserManagement.value.showSetupOnFirstLoad = false;\n\t};\n\n\tconst disableTemplates = () => {\n\t\tsettings.value = {\n\t\t\t...settings.value,\n\t\t\ttemplates: {\n\t\t\t\t...settings.value.templates,\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t};\n\t};\n\n\tconst testTemplatesEndpoint = async () => {\n\t\tconst timeout = new Promise((_, reject) =>\n\t\t\tsetTimeout(() => reject(new Error('Templates health check timed out')), 2000),\n\t\t);\n\t\tawait Promise.race([testHealthEndpoint(templatesHost.value), timeout]);\n\t\ttemplatesEndpointHealthy.value = true;\n\t};\n\n\tconst getTimezones = async (): Promise<IDataObject> => {\n\t\tconst rootStore = useRootStore();\n\t\treturn await makeRestApiRequest(rootStore.restApiContext, 'GET', '/options/timezones');\n\t};\n\n\tconst reset = () => {\n\t\tsettings.value = {} as FrontendSettings;\n\t};\n\n\tconst getModuleSettings = async () => {\n\t\tconst fetched = await moduleSettingsApi.getModuleSettings(useRootStore().restApiContext);\n\t\tmoduleSettings.value = fetched;\n\t};\n\n\tconst updateAiDataSharingSettings = async (allowSendingParameterValues: boolean) => {\n\t\tconst rootStore = useRootStore();\n\t\tawait aiUsageApi.updateAiUsageSettings(rootStore.restApiContext, {\n\t\t\tallowSendingParameterValues,\n\t\t});\n\t\tif (settings.value.ai) {\n\t\t\tsettings.value.ai.allowSendingParameterValues = allowSendingParameterValues;\n\t\t}\n\t};\n\n\treturn {\n\t\tsettings,\n\t\tuserManagement,\n\t\ttemplatesEndpointHealthy,\n\t\tapi,\n\t\tmfa,\n\t\tisDocker,\n\t\tisDevRelease,\n\t\tendpointHealth,\n\t\tisEnterpriseFeatureEnabled,\n\t\tdatabaseType,\n\t\tplanName,\n\t\tconsumerId,\n\t\tbinaryDataMode,\n\t\tpruning,\n\t\tsecurity,\n\t\tnodeJsVersion,\n\t\tnodeEnv,\n\t\tconcurrency,\n\t\tisConcurrencyEnabled,\n\t\tisPublicApiEnabled,\n\t\tisSwaggerUIEnabled,\n\t\tisPreviewMode,\n\t\tisE2ETestMode,\n\t\tisCanvasOnly,\n\t\tisCrdtCollaborationEnabled,\n\t\tpublicApiLatestVersion,\n\t\tpublicApiPath,\n\t\tshowSetupPage,\n\t\tdeploymentType,\n\t\tisCloudDeployment,\n\t\tisSmtpSetup,\n\t\tisPersonalizationSurveyEnabled,\n\t\ttelemetry,\n\t\tlogLevel,\n\t\tisTelemetryEnabled,\n\t\tisMfaFeatureEnabled,\n\t\tisFoldersFeatureEnabled,\n\t\tisAiAssistantEnabled,\n\t\tisCustomRolesFeatureEnabled,\n\t\tareTagsEnabled,\n\t\tisAutosaveEnabled,\n\t\tisHiringBannerEnabled,\n\t\tisTemplatesEnabled,\n\t\tisTemplatesEndpointReachable,\n\t\ttemplatesHost,\n\t\tpushBackend,\n\t\tisCommunityNodesFeatureEnabled,\n\t\tisUnverifiedPackagesEnabled,\n\t\tallowedModules,\n\t\tisQueueModeEnabled,\n\t\tisMultiMain,\n\t\tisWorkerViewAvailable,\n\t\tworkflowCallerPolicyDefaultOption,\n\t\tisExecuteWorkflowNodeExcluded,\n\t\tisSubworkflowConversionDisabled,\n\t\tpermanentlyDismissedBanners,\n\t\tsaveDataErrorExecution,\n\t\tsaveDataSuccessExecution,\n\t\tsaveManualExecutions,\n\t\tsaveDataProgressExecution,\n\t\tisCommunityPlan,\n\t\tisAskAiEnabled,\n\t\tisAiBuilderEnabled,\n\t\tisAiAssistantOrBuilderEnabled,\n\t\tisAiCreditsEnabled,\n\t\taiCreditsQuota,\n\t\tisAiDataSharingEnabled,\n\t\tisAiGatewayEnabled,\n\t\tisAiGatewayCloudUbbEnabled,\n\t\taiGatewayBudget,\n\t\treset,\n\t\tgetTimezones,\n\t\ttestTemplatesEndpoint,\n\t\tdisableTemplates,\n\t\tstopShowingSetupPage,\n\t\tgetSettings,\n\t\tsetSettings,\n\t\tsetWorkflowReviewsPolicy,\n\t\tinitialize,\n\t\tgetModuleSettings,\n\t\tmoduleSettings,\n\t\tupdateAiDataSharingSettings,\n\t\tisMFAEnforcementLicensed,\n\t\tisMFAEnforced,\n\t\tactiveModules,\n\t\tisModuleActive,\n\t\tisAgentModuleActive,\n\t\tisDataTableFeatureEnabled,\n\t\tisChatFeatureEnabled,\n\t\tisOtelCustomSpanAttributesEnabled,\n\t\tisWorkerPoolsEnabled,\n\t\tisAgentsKnowledgeBaseFeatureEnabled,\n\t\tisPublicChatTriggerDisabled,\n\t\tisWorkflowPublicationServiceEnabled,\n\t};\n});\n"],"mappings":"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WAAS,QAAQ;GAChB,GAAG,SAAS;GACZ,WAAW;IACV,GAAG,SAAS,MAAM;IAClB,SAAS;IACT;GACD;;CAGF,MAAM,wBAAwB,YAAY;EACzC,MAAM,UAAU,IAAI,SAAS,GAAG,WAC/B,iBAAiB,uBAAO,IAAI,MAAM,mCAAmC,CAAC,EAAE,IAAK,CAC7E;AACD,QAAM,QAAQ,KAAK,6DAAoB,cAAc,MAAM,EAAE,QAAQ,CAAC;AACtE,2BAAyB,QAAQ;;CAGlC,MAAM,eAAe,YAAkC;AAEtD,SAAO,oDADWF,mCAAc,CACU,gBAAgB,OAAO,qBAAqB;;CAGvF,MAAM,cAAc;AACnB,WAAS,QAAQ,EAAE;;CAGpB,MAAM,oBAAoB,YAAY;AAErC,iBAAe,QADC,MAAMG,0CAAkB,kBAAkBH,mCAAc,CAAC,eAAe;;CAIzF,MAAM,8BAA8B,OAAO,gCAAyC;EACnF,MAAM,YAAYA,mCAAc;AAChC,QAAMI,mCAAW,sBAAsB,UAAU,gBAAgB,EAChE,6BACA,CAAC;AACF,MAAI,SAAS,MAAM,GAClB,UAAS,MAAM,GAAG,8BAA8B;;AAIlD,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
@@ -127,6 +127,7 @@ const useSettingsStore = defineStore(STORES.SETTINGS, () => {
127
127
  const isOtelModuleActive = isModuleActive("otel") && moduleSettings.value.otel?.enabled === true;
128
128
  return isOtelCustomSpanAttributesLicensed && isOtelModuleActive;
129
129
  });
130
+ const isWorkerPoolsEnabled = computed(() => settings.value.workerPools?.enabled ?? false);
130
131
  const isAgentsKnowledgeBaseFeatureEnabled = computed(() => isModuleActive("agents") && moduleSettings.value.agents?.knowledgeBaseEnabled === true);
131
132
  const isPublicChatTriggerDisabled = computed(() => settings.value.chatTrigger?.disablePublicChat ?? false);
132
133
  const isCustomRolesFeatureEnabled = computed(() => settings.value.enterprise?.customRoles ?? false);
@@ -351,6 +352,7 @@ const useSettingsStore = defineStore(STORES.SETTINGS, () => {
351
352
  isDataTableFeatureEnabled,
352
353
  isChatFeatureEnabled,
353
354
  isOtelCustomSpanAttributesEnabled,
355
+ isWorkerPoolsEnabled,
354
356
  isAgentsKnowledgeBaseFeatureEnabled,
355
357
  isPublicChatTriggerDisabled,
356
358
  isWorkflowPublicationServiceEnabled
@@ -1 +1 @@
1
- {"version":3,"file":"settings2.store.mjs","names":["allowedModules"],"sources":["../src/settings.store.ts"],"sourcesContent":["import {\n\tAuthenticationMethod,\n\ttype IUserManagementSettings,\n\ttype FrontendSettings,\n\ttype FrontendModuleSettings,\n\ttype WorkflowReviewsPolicy,\n} from '@n8n/api-types';\nimport { i18n } from '@n8n/i18n';\nimport { makeRestApiRequest } from '@n8n/rest-api-client';\nimport * as aiUsageApi from '@n8n/rest-api-client/api/ai-usage';\nimport * as eventsApi from '@n8n/rest-api-client/api/events';\nimport * as moduleSettingsApi from '@n8n/rest-api-client/api/module-settings';\nimport * as settingsApi from '@n8n/rest-api-client/api/settings';\nimport { testHealthEndpoint } from '@n8n/rest-api-client/api/templates';\nimport Bowser from 'bowser';\nimport {\n\tEXECUTE_WORKFLOW_NODE_TYPE,\n\tEXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\ttype IDataObject,\n\ttype WorkflowSettings,\n} from 'n8n-workflow';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\n\nimport { STORES } from './constants';\nimport { useRootStore } from './useRootStore';\n\n/**\n * Full-page warning rendered when the instance requires a secure cookie but the\n * page is served over an insecure origin (or via Safari, which drops the cookie).\n * The copy is localized; the structural markup and inline styles stay in code\n * because this is written via `document.write` before the Vue app mounts.\n */\nconst buildInsecureConnectionWarning = () => `\n<body style=\"margin-top: 20px; font-family: 'Open Sans', sans-serif; text-align: center;\">\n<h1 style=\"font-size: 40px\">&#x1F6AB;</h1>\n<h2>${i18n.baseText('settings.authCookie.insecureConnection.title')}</h2>\n<br/>\n<div style=\"font-size: 18px; max-width: 640px; text-align: left; margin: 10px auto\">\n\t${i18n.baseText('settings.authCookie.insecureConnection.fixIntro')}\n\t<ul>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.tls')}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.localhost', { interpolate: { localhostUrl: 'http://localhost:5678' } })}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.disableSecureCookie', { interpolate: { envVar: 'N8N_SECURE_COOKIE' } })}</li>\n\t</ul>\n</div>\n</body>`;\n\nexport const useSettingsStore = defineStore(STORES.SETTINGS, () => {\n\tconst initialized = ref(false);\n\tconst settings = ref<FrontendSettings>({} as FrontendSettings);\n\tconst moduleSettings = ref<FrontendModuleSettings>({});\n\tconst userManagement = ref<IUserManagementSettings>({\n\t\tquota: -1,\n\t\tshowSetupOnFirstLoad: false,\n\t\tsmtpSetup: false,\n\t\tauthenticationMethod: AuthenticationMethod.Email,\n\t\tpasswordMinLength: 8,\n\t});\n\tconst templatesEndpointHealthy = ref(false);\n\tconst api = ref({\n\t\tenabled: false,\n\t\tlatestVersion: 0,\n\t\tpath: '/',\n\t\tswaggerUi: {\n\t\t\tenabled: false,\n\t\t},\n\t});\n\tconst mfa = ref({ enabled: false });\n\tconst folders = ref({ enabled: false });\n\n\tconst saveDataErrorExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveDataSuccessExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveManualExecutions = ref(false);\n\tconst saveDataProgressExecution = ref(false);\n\tconst isMFAEnforced = ref(false);\n\n\tconst isDocker = computed(() => settings.value?.isDocker ?? false);\n\n\tconst databaseType = computed(() => settings.value?.databaseType);\n\n\tconst planName = computed(() => settings.value?.license?.planName ?? 'Community');\n\n\tconst consumerId = computed(() => settings.value?.license?.consumerId);\n\n\tconst binaryDataMode = computed(() => settings.value?.binaryDataMode);\n\n\tconst pruning = computed(() => settings.value?.pruning);\n\n\tconst security = computed(() => ({\n\t\tblockFileAccessToN8nFiles: settings.value?.security?.blockFileAccessToN8nFiles,\n\t\tsecureCookie: settings.value?.authCookie?.secure,\n\t}));\n\n\tconst isEnterpriseFeatureEnabled = computed(() => settings.value.enterprise ?? {});\n\n\tconst nodeJsVersion = computed(() => settings.value.nodeJsVersion);\n\n\tconst nodeEnv = computed(() => settings.value.nodeEnv);\n\n\tconst concurrency = computed(() => settings.value.concurrency);\n\n\tconst isConcurrencyEnabled = computed(() => concurrency.value !== -1);\n\n\tconst isPublicApiEnabled = computed(() => api.value.enabled);\n\n\tconst isSwaggerUIEnabled = computed(() => api.value.swaggerUi?.enabled ?? false);\n\n\tconst isPreviewMode = computed(() => settings.value.previewMode);\n\n\tconst isE2ETestMode = computed(() => settings.value.inE2ETests);\n\n\tconst isCanvasOnly = computed(() => settings.value.canvasOnly);\n\n\tconst isCrdtCollaborationEnabled = computed(\n\t\t() => (settings.value.collaboration?.crdt ?? 'off') !== 'off',\n\t);\n\n\tconst publicApiLatestVersion = computed(() => api.value.latestVersion);\n\n\tconst publicApiPath = computed(() => api.value.path);\n\n\tconst isAiAssistantEnabled = computed(\n\t\t() => settings.value.aiAssistant?.enabled && settings.value.aiAssistant?.setup,\n\t);\n\n\tconst isAskAiEnabled = computed(() => settings.value.askAi?.enabled);\n\n\tconst isAiBuilderEnabled = computed(\n\t\t() => settings.value.aiBuilder?.enabled && settings.value.aiBuilder?.setup,\n\t);\n\n\tconst isAiAssistantOrBuilderEnabled = computed(\n\t\t() => isAiAssistantEnabled.value || isAiBuilderEnabled.value,\n\t);\n\n\tconst showSetupPage = computed(() => userManagement.value.showSetupOnFirstLoad);\n\n\tconst deploymentType = computed(() => settings.value.deployment?.type || 'default');\n\n\tconst isCloudDeployment = computed(() => settings.value.deployment?.type === 'cloud');\n\n\tconst activeModules = computed(() => settings.value.activeModules);\n\n\tconst isModuleActive = (moduleName: string) => {\n\t\treturn activeModules.value?.includes(moduleName);\n\t};\n\n\t/**\n\t * Checks whether an agents-module sub-feature token (listed in\n\t * `N8N_AGENTS_MODULES` on the backend) is enabled. Returns `false`\n\t * unless the top-level `agents` module is active AND the token is\n\t * present in the module settings' `modules` array.\n\t *\n\t * Known tokens: see `AGENTS_MODULE_NAMES` in `agents.config.ts`.\n\t */\n\tconst isAgentModuleActive = (name: string): boolean => {\n\t\treturn (\n\t\t\tisModuleActive('agents') && moduleSettings.value.agents?.modules?.includes(name) === true\n\t\t);\n\t};\n\n\tconst isAiCreditsEnabled = computed(\n\t\t() => settings.value.aiCredits?.enabled && settings.value.aiCredits?.setup,\n\t);\n\n\tconst aiCreditsQuota = computed(() => settings.value.aiCredits?.credits);\n\n\tconst isAiDataSharingEnabled = computed(\n\t\t() => settings.value.ai?.allowSendingParameterValues ?? true,\n\t);\n\n\tconst isAiGatewayEnabled = computed(() => settings.value.aiGateway?.enabled ?? false);\n\n\tconst isAiGatewayCloudUbbEnabled = computed(\n\t\t() => settings.value.aiGateway?.cloudUbbEnabled ?? false,\n\t);\n\n\tconst aiGatewayBudget = computed(() => settings.value.aiGateway?.budget ?? 0);\n\n\tconst isSmtpSetup = computed(() => userManagement.value.smtpSetup);\n\n\tconst isPersonalizationSurveyEnabled = computed(\n\t\t() => settings.value.telemetry?.enabled && settings.value.personalizationSurveyEnabled,\n\t);\n\n\tconst telemetry = computed(() => settings.value.telemetry);\n\n\tconst logLevel = computed(() => settings.value.logLevel);\n\n\tconst isTelemetryEnabled = computed(() => settings.value.telemetry?.enabled);\n\n\tconst isMFAEnforcementLicensed = computed(() => {\n\t\treturn settings.value.enterprise?.mfaEnforcement ?? false;\n\t});\n\n\tconst isMfaFeatureEnabled = computed(() => mfa.value.enabled);\n\n\tconst isFoldersFeatureEnabled = computed(() => folders.value.enabled);\n\n\tconst isDataTableFeatureEnabled = computed(() => isModuleActive('data-table'));\n\n\tconst isChatFeatureEnabled = computed(\n\t\t() => isModuleActive('chat-hub') && moduleSettings.value['chat-hub']?.enabled === true,\n\t);\n\n\tconst isOtelCustomSpanAttributesEnabled = computed(() => {\n\t\tconst isOtelCustomSpanAttributesLicensed =\n\t\t\tsettings.value.enterprise?.otelCustomSpanAttributes ?? false;\n\t\tconst isOtelModuleActive =\n\t\t\tisModuleActive('otel') && moduleSettings.value.otel?.enabled === true;\n\n\t\treturn isOtelCustomSpanAttributesLicensed && isOtelModuleActive;\n\t});\n\n\t// Opt-in flag controlled by the backend's N8N_AGENTS_AI_SANDBOX_ENABLED setting.\n\tconst isAgentsKnowledgeBaseFeatureEnabled = computed(\n\t\t() => isModuleActive('agents') && moduleSettings.value.agents?.knowledgeBaseEnabled === true,\n\t);\n\n\tconst isPublicChatTriggerDisabled = computed(\n\t\t() => settings.value.chatTrigger?.disablePublicChat ?? false,\n\t);\n\n\tconst isCustomRolesFeatureEnabled = computed(\n\t\t() => settings.value.enterprise?.customRoles ?? false,\n\t);\n\n\tconst areTagsEnabled = computed(() =>\n\t\tsettings.value.workflowTagsDisabled !== undefined ? !settings.value.workflowTagsDisabled : true,\n\t);\n\n\tconst isAutosaveEnabled = computed(() =>\n\t\tsettings.value.workflowsAutosaveDisabled !== undefined\n\t\t\t? !settings.value.workflowsAutosaveDisabled\n\t\t\t: true,\n\t);\n\n\tconst isHiringBannerEnabled = computed(() => settings.value.hiringBannerEnabled);\n\n\tconst isTemplatesEnabled = computed(() => Boolean(settings.value.templates?.enabled));\n\n\tconst isTemplatesEndpointReachable = computed(() => templatesEndpointHealthy.value);\n\n\tconst templatesHost = computed(() => settings.value.templates?.host ?? '');\n\n\tconst pushBackend = computed(() => settings.value.pushBackend);\n\n\tconst isCommunityNodesFeatureEnabled = computed(() => settings.value.communityNodesEnabled);\n\n\tconst isUnverifiedPackagesEnabled = computed(\n\t\t() => settings.value.unverifiedCommunityNodesEnabled,\n\t);\n\n\tconst allowedModules = computed(() => settings.value.allowedModules);\n\n\tconst isQueueModeEnabled = computed(() => settings.value.executionMode === 'queue');\n\tconst isMultiMain = computed(() => settings.value.isMultiMain);\n\n\tconst isWorkerViewAvailable = computed(() => !!settings.value.enterprise?.workerView);\n\n\tconst workflowCallerPolicyDefaultOption = computed(\n\t\t() => settings.value.workflowCallerPolicyDefaultOption,\n\t);\n\n\tconst isNodeTypeExcluded = (nodeType: string) => {\n\t\tconst excludeNodes = settings.value.excludeNodes;\n\t\treturn Array.isArray(excludeNodes) && excludeNodes.includes(nodeType);\n\t};\n\n\tconst isExecuteWorkflowNodeExcluded = computed(() =>\n\t\tisNodeTypeExcluded(EXECUTE_WORKFLOW_NODE_TYPE),\n\t);\n\n\tconst isSubworkflowConversionDisabled = computed(\n\t\t() =>\n\t\t\tisExecuteWorkflowNodeExcluded.value || isNodeTypeExcluded(EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE),\n\t);\n\n\tconst permanentlyDismissedBanners = computed(() => settings.value.banners?.dismissed ?? []);\n\n\tconst isCommunityPlan = computed(() => planName.value.toLowerCase() === 'community');\n\n\tconst isDevRelease = computed(() => settings.value.releaseChannel === 'dev');\n\n\tconst endpointHealth = computed(() => settings.value.endpointHealth);\n\n\tconst isWorkflowPublicationServiceEnabled = computed(\n\t\t() => settings.value.useWorkflowPublicationService ?? false,\n\t);\n\n\tconst setSettings = (newSettings: FrontendSettings) => {\n\t\tsettings.value = newSettings;\n\n\t\tuserManagement.value = newSettings.userManagement;\n\t\tif (userManagement.value) {\n\t\t\tuserManagement.value.showSetupOnFirstLoad =\n\t\t\t\t!!settings.value.userManagement.showSetupOnFirstLoad;\n\t\t}\n\n\t\tif (settings.value.publicApi) {\n\t\t\tapi.value = settings.value.publicApi;\n\t\t}\n\n\t\tmfa.value.enabled = settings.value.mfa?.enabled;\n\t\tfolders.value.enabled = settings.value.folders?.enabled;\n\n\t\tif (settings.value.versionCli) {\n\t\t\tuseRootStore().setVersionCli(settings.value.versionCli);\n\t\t}\n\n\t\tif (settings.value.authCookie.secure) {\n\t\t\tconst { browser } = Bowser.parse(navigator.userAgent);\n\t\t\tif (\n\t\t\t\tlocation.protocol === 'http:' &&\n\t\t\t\t(!['localhost', '127.0.0.1'].includes(location.hostname) || browser.name === 'Safari')\n\t\t\t) {\n\t\t\t\tdocument.write(buildInsecureConnectionWarning());\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst setAllowedModules = (allowedModules: FrontendSettings['allowedModules']) => {\n\t\tsettings.value.allowedModules = allowedModules;\n\t};\n\n\tconst setWorkflowReviewsPolicy = (policy: WorkflowReviewsPolicy) => {\n\t\tsettings.value.workflowReviews = policy;\n\t};\n\n\tconst setSaveDataErrorExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataErrorExecution.value = newValue;\n\t};\n\n\tconst setSaveDataSuccessExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataSuccessExecution.value = newValue;\n\t};\n\n\tconst setSaveManualExecutions = (newValue: boolean) => {\n\t\tsaveManualExecutions.value = newValue;\n\t};\n\n\tconst setSaveDataProgressExecution = (newValue: boolean) => {\n\t\tsaveDataProgressExecution.value = newValue;\n\t};\n\n\tconst getSettings = async () => {\n\t\tconst rootStore = useRootStore();\n\t\tconst fetchedSettings = await settingsApi.getSettings(rootStore.restApiContext);\n\n\t\tsetSettings(fetchedSettings);\n\t\trootStore.setDefaultLocale(fetchedSettings.defaultLocale);\n\n\t\t// Set MFA enforced state even for public settings mode\n\t\t// as it is needed to determine if the MFA setup page should be shown\n\t\tisMFAEnforced.value = settings.value.mfa?.enforced ?? false;\n\n\t\tif (fetchedSettings.settingsMode === 'public') {\n\t\t\t// public settings mode is typically used for unauthenticated users\n\t\t\t// when public settings are returned we can skip the rest of the setup\n\t\t\t// that need the full set of authenticated settings\n\t\t\treturn;\n\t\t}\n\n\t\tsettings.value.communityNodesEnabled = fetchedSettings.communityNodesEnabled;\n\t\tsettings.value.unverifiedCommunityNodesEnabled =\n\t\t\tfetchedSettings.unverifiedCommunityNodesEnabled;\n\t\tsetAllowedModules(fetchedSettings.allowedModules);\n\t\tsetSaveDataErrorExecution(fetchedSettings.saveDataErrorExecution);\n\t\tsetSaveDataSuccessExecution(fetchedSettings.saveDataSuccessExecution);\n\t\tsetSaveDataProgressExecution(fetchedSettings.saveExecutionProgress);\n\t\tsetSaveManualExecutions(fetchedSettings.saveManualExecutions);\n\n\t\trootStore.setUrlBaseWebhook(fetchedSettings.urlBaseWebhook);\n\t\trootStore.setUrlBaseEditor(fetchedSettings.urlBaseEditor);\n\t\trootStore.setUrlBaseWebhookTest(fetchedSettings.urlBaseWebhookTest);\n\t\trootStore.setEndpointForm(fetchedSettings.endpointForm);\n\t\trootStore.setEndpointFormTest(fetchedSettings.endpointFormTest);\n\t\trootStore.setEndpointFormWaiting(fetchedSettings.endpointFormWaiting);\n\t\trootStore.setEndpointWebhook(fetchedSettings.endpointWebhook);\n\t\trootStore.setEndpointWebhookTest(fetchedSettings.endpointWebhookTest);\n\t\trootStore.setEndpointWebhookWaiting(fetchedSettings.endpointWebhookWaiting);\n\t\trootStore.setEndpointMcp(fetchedSettings.endpointMcp);\n\t\trootStore.setEndpointMcpTest(fetchedSettings.endpointMcpTest);\n\t\trootStore.setTimezone(fetchedSettings.timezone);\n\t\trootStore.setExecutionTimeout(fetchedSettings.executionTimeout);\n\t\trootStore.setMaxExecutionTimeout(fetchedSettings.maxExecutionTimeout);\n\t\trootStore.setPublicApiPath(\n\t\t\t`${fetchedSettings.publicApi.path}/v${fetchedSettings.publicApi.latestVersion}`,\n\t\t);\n\t\trootStore.setInstanceId(fetchedSettings.instanceId);\n\t\trootStore.setOauthCallbackUrls(fetchedSettings.oauthCallbackUrls);\n\t\trootStore.setN8nMetadata(fetchedSettings.n8nMetadata ?? {});\n\t\trootStore.setBinaryDataMode(fetchedSettings.binaryDataMode);\n\n\t\tif (fetchedSettings.telemetry.enabled) {\n\t\t\tvoid eventsApi.sessionStarted(rootStore.restApiContext);\n\t\t}\n\t};\n\n\tconst initialize = async () => {\n\t\tif (initialized.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait getSettings();\n\n\t\tinitialized.value = true;\n\t};\n\n\tconst stopShowingSetupPage = () => {\n\t\tuserManagement.value.showSetupOnFirstLoad = false;\n\t};\n\n\tconst disableTemplates = () => {\n\t\tsettings.value = {\n\t\t\t...settings.value,\n\t\t\ttemplates: {\n\t\t\t\t...settings.value.templates,\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t};\n\t};\n\n\tconst testTemplatesEndpoint = async () => {\n\t\tconst timeout = new Promise((_, reject) =>\n\t\t\tsetTimeout(() => reject(new Error('Templates health check timed out')), 2000),\n\t\t);\n\t\tawait Promise.race([testHealthEndpoint(templatesHost.value), timeout]);\n\t\ttemplatesEndpointHealthy.value = true;\n\t};\n\n\tconst getTimezones = async (): Promise<IDataObject> => {\n\t\tconst rootStore = useRootStore();\n\t\treturn await makeRestApiRequest(rootStore.restApiContext, 'GET', '/options/timezones');\n\t};\n\n\tconst reset = () => {\n\t\tsettings.value = {} as FrontendSettings;\n\t};\n\n\tconst getModuleSettings = async () => {\n\t\tconst fetched = await moduleSettingsApi.getModuleSettings(useRootStore().restApiContext);\n\t\tmoduleSettings.value = fetched;\n\t};\n\n\tconst updateAiDataSharingSettings = async (allowSendingParameterValues: boolean) => {\n\t\tconst rootStore = useRootStore();\n\t\tawait aiUsageApi.updateAiUsageSettings(rootStore.restApiContext, {\n\t\t\tallowSendingParameterValues,\n\t\t});\n\t\tif (settings.value.ai) {\n\t\t\tsettings.value.ai.allowSendingParameterValues = allowSendingParameterValues;\n\t\t}\n\t};\n\n\treturn {\n\t\tsettings,\n\t\tuserManagement,\n\t\ttemplatesEndpointHealthy,\n\t\tapi,\n\t\tmfa,\n\t\tisDocker,\n\t\tisDevRelease,\n\t\tendpointHealth,\n\t\tisEnterpriseFeatureEnabled,\n\t\tdatabaseType,\n\t\tplanName,\n\t\tconsumerId,\n\t\tbinaryDataMode,\n\t\tpruning,\n\t\tsecurity,\n\t\tnodeJsVersion,\n\t\tnodeEnv,\n\t\tconcurrency,\n\t\tisConcurrencyEnabled,\n\t\tisPublicApiEnabled,\n\t\tisSwaggerUIEnabled,\n\t\tisPreviewMode,\n\t\tisE2ETestMode,\n\t\tisCanvasOnly,\n\t\tisCrdtCollaborationEnabled,\n\t\tpublicApiLatestVersion,\n\t\tpublicApiPath,\n\t\tshowSetupPage,\n\t\tdeploymentType,\n\t\tisCloudDeployment,\n\t\tisSmtpSetup,\n\t\tisPersonalizationSurveyEnabled,\n\t\ttelemetry,\n\t\tlogLevel,\n\t\tisTelemetryEnabled,\n\t\tisMfaFeatureEnabled,\n\t\tisFoldersFeatureEnabled,\n\t\tisAiAssistantEnabled,\n\t\tisCustomRolesFeatureEnabled,\n\t\tareTagsEnabled,\n\t\tisAutosaveEnabled,\n\t\tisHiringBannerEnabled,\n\t\tisTemplatesEnabled,\n\t\tisTemplatesEndpointReachable,\n\t\ttemplatesHost,\n\t\tpushBackend,\n\t\tisCommunityNodesFeatureEnabled,\n\t\tisUnverifiedPackagesEnabled,\n\t\tallowedModules,\n\t\tisQueueModeEnabled,\n\t\tisMultiMain,\n\t\tisWorkerViewAvailable,\n\t\tworkflowCallerPolicyDefaultOption,\n\t\tisExecuteWorkflowNodeExcluded,\n\t\tisSubworkflowConversionDisabled,\n\t\tpermanentlyDismissedBanners,\n\t\tsaveDataErrorExecution,\n\t\tsaveDataSuccessExecution,\n\t\tsaveManualExecutions,\n\t\tsaveDataProgressExecution,\n\t\tisCommunityPlan,\n\t\tisAskAiEnabled,\n\t\tisAiBuilderEnabled,\n\t\tisAiAssistantOrBuilderEnabled,\n\t\tisAiCreditsEnabled,\n\t\taiCreditsQuota,\n\t\tisAiDataSharingEnabled,\n\t\tisAiGatewayEnabled,\n\t\tisAiGatewayCloudUbbEnabled,\n\t\taiGatewayBudget,\n\t\treset,\n\t\tgetTimezones,\n\t\ttestTemplatesEndpoint,\n\t\tdisableTemplates,\n\t\tstopShowingSetupPage,\n\t\tgetSettings,\n\t\tsetSettings,\n\t\tsetWorkflowReviewsPolicy,\n\t\tinitialize,\n\t\tgetModuleSettings,\n\t\tmoduleSettings,\n\t\tupdateAiDataSharingSettings,\n\t\tisMFAEnforcementLicensed,\n\t\tisMFAEnforced,\n\t\tactiveModules,\n\t\tisModuleActive,\n\t\tisAgentModuleActive,\n\t\tisDataTableFeatureEnabled,\n\t\tisChatFeatureEnabled,\n\t\tisOtelCustomSpanAttributesEnabled,\n\t\tisAgentsKnowledgeBaseFeatureEnabled,\n\t\tisPublicChatTriggerDisabled,\n\t\tisWorkflowPublicationServiceEnabled,\n\t};\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,uCAAuC;;;MAGvC,KAAK,SAAS,+CAA+C,CAAC;;;GAGjE,KAAK,SAAS,kDAAkD,CAAC;;QAE5D,KAAK,SAAS,oDAAoD,CAAC;QACnE,KAAK,SAAS,2DAA2D,EAAE,aAAa,EAAE,cAAc,yBAAyB,EAAE,CAAC,CAAC;QACrI,KAAK,SAAS,qEAAqE,EAAE,aAAa,EAAE,QAAQ,qBAAqB,EAAE,CAAC,CAAC;;;;AAK7I,MAAa,mBAAmB,YAAY,OAAO,gBAAgB;CAClE,MAAM,cAAc,IAAI,MAAM;CAC9B,MAAM,WAAW,IAAsB,EAAE,CAAqB;CAC9D,MAAM,iBAAiB,IAA4B,EAAE,CAAC;CACtD,MAAM,iBAAiB,IAA6B;EACnD,OAAO;EACP,sBAAsB;EACtB,WAAW;EACX,sBAAsB,qBAAqB;EAC3C,mBAAmB;EACnB,CAAC;CACF,MAAM,2BAA2B,IAAI,MAAM;CAC3C,MAAM,MAAM,IAAI;EACf,SAAS;EACT,eAAe;EACf,MAAM;EACN,WAAW,EACV,SAAS,OACT;EACD,CAAC;CACF,MAAM,MAAM,IAAI,EAAE,SAAS,OAAO,CAAC;CACnC,MAAM,UAAU,IAAI,EAAE,SAAS,OAAO,CAAC;CAEvC,MAAM,yBAAyB,IAAwC,MAAM;CAC7E,MAAM,2BAA2B,IAAwC,MAAM;CAC/E,MAAM,uBAAuB,IAAI,MAAM;CACvC,MAAM,4BAA4B,IAAI,MAAM;CAC5C,MAAM,gBAAgB,IAAI,MAAM;CAEhC,MAAM,WAAW,eAAe,SAAS,OAAO,YAAY,MAAM;CAElE,MAAM,eAAe,eAAe,SAAS,OAAO,aAAa;CAEjE,MAAM,WAAW,eAAe,SAAS,OAAO,SAAS,YAAY,YAAY;CAEjF,MAAM,aAAa,eAAe,SAAS,OAAO,SAAS,WAAW;CAEtE,MAAM,iBAAiB,eAAe,SAAS,OAAO,eAAe;CAErE,MAAM,UAAU,eAAe,SAAS,OAAO,QAAQ;CAEvD,MAAM,WAAW,gBAAgB;EAChC,2BAA2B,SAAS,OAAO,UAAU;EACrD,cAAc,SAAS,OAAO,YAAY;EAC1C,EAAE;CAEH,MAAM,6BAA6B,eAAe,SAAS,MAAM,cAAc,EAAE,CAAC;CAElF,MAAM,gBAAgB,eAAe,SAAS,MAAM,cAAc;CAElE,MAAM,UAAU,eAAe,SAAS,MAAM,QAAQ;CAEtD,MAAM,cAAc,eAAe,SAAS,MAAM,YAAY;CAE9D,MAAM,uBAAuB,eAAe,YAAY,UAAU,GAAG;CAErE,MAAM,qBAAqB,eAAe,IAAI,MAAM,QAAQ;CAE5D,MAAM,qBAAqB,eAAe,IAAI,MAAM,WAAW,WAAW,MAAM;CAEhF,MAAM,gBAAgB,eAAe,SAAS,MAAM,YAAY;CAEhE,MAAM,gBAAgB,eAAe,SAAS,MAAM,WAAW;CAE/D,MAAM,eAAe,eAAe,SAAS,MAAM,WAAW;CAE9D,MAAM,6BAA6B,gBAC3B,SAAS,MAAM,eAAe,QAAQ,WAAW,MACxD;CAED,MAAM,yBAAyB,eAAe,IAAI,MAAM,cAAc;CAEtE,MAAM,gBAAgB,eAAe,IAAI,MAAM,KAAK;CAEpD,MAAM,uBAAuB,eACtB,SAAS,MAAM,aAAa,WAAW,SAAS,MAAM,aAAa,MACzE;CAED,MAAM,iBAAiB,eAAe,SAAS,MAAM,OAAO,QAAQ;CAEpE,MAAM,qBAAqB,eACpB,SAAS,MAAM,WAAW,WAAW,SAAS,MAAM,WAAW,MACrE;CAED,MAAM,gCAAgC,eAC/B,qBAAqB,SAAS,mBAAmB,MACvD;CAED,MAAM,gBAAgB,eAAe,eAAe,MAAM,qBAAqB;CAE/E,MAAM,iBAAiB,eAAe,SAAS,MAAM,YAAY,QAAQ,UAAU;CAEnF,MAAM,oBAAoB,eAAe,SAAS,MAAM,YAAY,SAAS,QAAQ;CAErF,MAAM,gBAAgB,eAAe,SAAS,MAAM,cAAc;CAElE,MAAM,kBAAkB,eAAuB;AAC9C,SAAO,cAAc,OAAO,SAAS,WAAW;;;;;;;;;;CAWjD,MAAM,uBAAuB,SAA0B;AACtD,SACC,eAAe,SAAS,IAAI,eAAe,MAAM,QAAQ,SAAS,SAAS,KAAK,KAAK;;CAIvF,MAAM,qBAAqB,eACpB,SAAS,MAAM,WAAW,WAAW,SAAS,MAAM,WAAW,MACrE;CAED,MAAM,iBAAiB,eAAe,SAAS,MAAM,WAAW,QAAQ;CAExE,MAAM,yBAAyB,eACxB,SAAS,MAAM,IAAI,+BAA+B,KACxD;CAED,MAAM,qBAAqB,eAAe,SAAS,MAAM,WAAW,WAAW,MAAM;CAErF,MAAM,6BAA6B,eAC5B,SAAS,MAAM,WAAW,mBAAmB,MACnD;CAED,MAAM,kBAAkB,eAAe,SAAS,MAAM,WAAW,UAAU,EAAE;CAE7E,MAAM,cAAc,eAAe,eAAe,MAAM,UAAU;CAElE,MAAM,iCAAiC,eAChC,SAAS,MAAM,WAAW,WAAW,SAAS,MAAM,6BAC1D;CAED,MAAM,YAAY,eAAe,SAAS,MAAM,UAAU;CAE1D,MAAM,WAAW,eAAe,SAAS,MAAM,SAAS;CAExD,MAAM,qBAAqB,eAAe,SAAS,MAAM,WAAW,QAAQ;CAE5E,MAAM,2BAA2B,eAAe;AAC/C,SAAO,SAAS,MAAM,YAAY,kBAAkB;GACnD;CAEF,MAAM,sBAAsB,eAAe,IAAI,MAAM,QAAQ;CAE7D,MAAM,0BAA0B,eAAe,QAAQ,MAAM,QAAQ;CAErE,MAAM,4BAA4B,eAAe,eAAe,aAAa,CAAC;CAE9E,MAAM,uBAAuB,eACtB,eAAe,WAAW,IAAI,eAAe,MAAM,aAAa,YAAY,KAClF;CAED,MAAM,oCAAoC,eAAe;EACxD,MAAM,qCACL,SAAS,MAAM,YAAY,4BAA4B;EACxD,MAAM,qBACL,eAAe,OAAO,IAAI,eAAe,MAAM,MAAM,YAAY;AAElE,SAAO,sCAAsC;GAC5C;CAGF,MAAM,sCAAsC,eACrC,eAAe,SAAS,IAAI,eAAe,MAAM,QAAQ,yBAAyB,KACxF;CAED,MAAM,8BAA8B,eAC7B,SAAS,MAAM,aAAa,qBAAqB,MACvD;CAED,MAAM,8BAA8B,eAC7B,SAAS,MAAM,YAAY,eAAe,MAChD;CAED,MAAM,iBAAiB,eACtB,SAAS,MAAM,yBAAyB,SAAY,CAAC,SAAS,MAAM,uBAAuB,KAC3F;CAED,MAAM,oBAAoB,eACzB,SAAS,MAAM,8BAA8B,SAC1C,CAAC,SAAS,MAAM,4BAChB,KACH;CAED,MAAM,wBAAwB,eAAe,SAAS,MAAM,oBAAoB;CAEhF,MAAM,qBAAqB,eAAe,QAAQ,SAAS,MAAM,WAAW,QAAQ,CAAC;CAErF,MAAM,+BAA+B,eAAe,yBAAyB,MAAM;CAEnF,MAAM,gBAAgB,eAAe,SAAS,MAAM,WAAW,QAAQ,GAAG;CAE1E,MAAM,cAAc,eAAe,SAAS,MAAM,YAAY;CAE9D,MAAM,iCAAiC,eAAe,SAAS,MAAM,sBAAsB;CAE3F,MAAM,8BAA8B,eAC7B,SAAS,MAAM,gCACrB;CAED,MAAM,iBAAiB,eAAe,SAAS,MAAM,eAAe;CAEpE,MAAM,qBAAqB,eAAe,SAAS,MAAM,kBAAkB,QAAQ;CACnF,MAAM,cAAc,eAAe,SAAS,MAAM,YAAY;CAE9D,MAAM,wBAAwB,eAAe,CAAC,CAAC,SAAS,MAAM,YAAY,WAAW;CAErF,MAAM,oCAAoC,eACnC,SAAS,MAAM,kCACrB;CAED,MAAM,sBAAsB,aAAqB;EAChD,MAAM,eAAe,SAAS,MAAM;AACpC,SAAO,MAAM,QAAQ,aAAa,IAAI,aAAa,SAAS,SAAS;;CAGtE,MAAM,gCAAgC,eACrC,mBAAmB,2BAA2B,CAC9C;CAED,MAAM,kCAAkC,eAEtC,8BAA8B,SAAS,mBAAmB,mCAAmC,CAC9F;CAED,MAAM,8BAA8B,eAAe,SAAS,MAAM,SAAS,aAAa,EAAE,CAAC;CAE3F,MAAM,kBAAkB,eAAe,SAAS,MAAM,aAAa,KAAK,YAAY;CAEpF,MAAM,eAAe,eAAe,SAAS,MAAM,mBAAmB,MAAM;CAE5E,MAAM,iBAAiB,eAAe,SAAS,MAAM,eAAe;CAEpE,MAAM,sCAAsC,eACrC,SAAS,MAAM,iCAAiC,MACtD;CAED,MAAM,eAAe,gBAAkC;AACtD,WAAS,QAAQ;AAEjB,iBAAe,QAAQ,YAAY;AACnC,MAAI,eAAe,MAClB,gBAAe,MAAM,uBACpB,CAAC,CAAC,SAAS,MAAM,eAAe;AAGlC,MAAI,SAAS,MAAM,UAClB,KAAI,QAAQ,SAAS,MAAM;AAG5B,MAAI,MAAM,UAAU,SAAS,MAAM,KAAK;AACxC,UAAQ,MAAM,UAAU,SAAS,MAAM,SAAS;AAEhD,MAAI,SAAS,MAAM,WAClB,eAAc,CAAC,cAAc,SAAS,MAAM,WAAW;AAGxD,MAAI,SAAS,MAAM,WAAW,QAAQ;GACrC,MAAM,EAAE,YAAY,OAAO,MAAM,UAAU,UAAU;AACrD,OACC,SAAS,aAAa,YACrB,CAAC,CAAC,aAAa,YAAY,CAAC,SAAS,SAAS,SAAS,IAAI,QAAQ,SAAS,WAC5E;AACD,aAAS,MAAM,gCAAgC,CAAC;AAChD;;;;CAKH,MAAM,qBAAqB,qBAAuD;AACjF,WAAS,MAAM,iBAAiBA;;CAGjC,MAAM,4BAA4B,WAAkC;AACnE,WAAS,MAAM,kBAAkB;;CAGlC,MAAM,6BAA6B,aAAiD;AACnF,yBAAuB,QAAQ;;CAGhC,MAAM,+BAA+B,aAAiD;AACrF,2BAAyB,QAAQ;;CAGlC,MAAM,2BAA2B,aAAsB;AACtD,uBAAqB,QAAQ;;CAG9B,MAAM,gCAAgC,aAAsB;AAC3D,4BAA0B,QAAQ;;CAGnC,MAAM,cAAc,YAAY;EAC/B,MAAM,YAAY,cAAc;EAChC,MAAM,kBAAkB,MAAM,YAAY,YAAY,UAAU,eAAe;AAE/E,cAAY,gBAAgB;AAC5B,YAAU,iBAAiB,gBAAgB,cAAc;AAIzD,gBAAc,QAAQ,SAAS,MAAM,KAAK,YAAY;AAEtD,MAAI,gBAAgB,iBAAiB,SAIpC;AAGD,WAAS,MAAM,wBAAwB,gBAAgB;AACvD,WAAS,MAAM,kCACd,gBAAgB;AACjB,oBAAkB,gBAAgB,eAAe;AACjD,4BAA0B,gBAAgB,uBAAuB;AACjE,8BAA4B,gBAAgB,yBAAyB;AACrE,+BAA6B,gBAAgB,sBAAsB;AACnE,0BAAwB,gBAAgB,qBAAqB;AAE7D,YAAU,kBAAkB,gBAAgB,eAAe;AAC3D,YAAU,iBAAiB,gBAAgB,cAAc;AACzD,YAAU,sBAAsB,gBAAgB,mBAAmB;AACnE,YAAU,gBAAgB,gBAAgB,aAAa;AACvD,YAAU,oBAAoB,gBAAgB,iBAAiB;AAC/D,YAAU,uBAAuB,gBAAgB,oBAAoB;AACrE,YAAU,mBAAmB,gBAAgB,gBAAgB;AAC7D,YAAU,uBAAuB,gBAAgB,oBAAoB;AACrE,YAAU,0BAA0B,gBAAgB,uBAAuB;AAC3E,YAAU,eAAe,gBAAgB,YAAY;AACrD,YAAU,mBAAmB,gBAAgB,gBAAgB;AAC7D,YAAU,YAAY,gBAAgB,SAAS;AAC/C,YAAU,oBAAoB,gBAAgB,iBAAiB;AAC/D,YAAU,uBAAuB,gBAAgB,oBAAoB;AACrE,YAAU,iBACT,GAAG,gBAAgB,UAAU,KAAK,IAAI,gBAAgB,UAAU,gBAChE;AACD,YAAU,cAAc,gBAAgB,WAAW;AACnD,YAAU,qBAAqB,gBAAgB,kBAAkB;AACjE,YAAU,eAAe,gBAAgB,eAAe,EAAE,CAAC;AAC3D,YAAU,kBAAkB,gBAAgB,eAAe;AAE3D,MAAI,gBAAgB,UAAU,QAC7B,CAAK,UAAU,eAAe,UAAU,eAAe;;CAIzD,MAAM,aAAa,YAAY;AAC9B,MAAI,YAAY,MACf;AAGD,QAAM,aAAa;AAEnB,cAAY,QAAQ;;CAGrB,MAAM,6BAA6B;AAClC,iBAAe,MAAM,uBAAuB;;CAG7C,MAAM,yBAAyB;AAC9B,WAAS,QAAQ;GAChB,GAAG,SAAS;GACZ,WAAW;IACV,GAAG,SAAS,MAAM;IAClB,SAAS;IACT;GACD;;CAGF,MAAM,wBAAwB,YAAY;EACzC,MAAM,UAAU,IAAI,SAAS,GAAG,WAC/B,iBAAiB,uBAAO,IAAI,MAAM,mCAAmC,CAAC,EAAE,IAAK,CAC7E;AACD,QAAM,QAAQ,KAAK,CAAC,mBAAmB,cAAc,MAAM,EAAE,QAAQ,CAAC;AACtE,2BAAyB,QAAQ;;CAGlC,MAAM,eAAe,YAAkC;AAEtD,SAAO,MAAM,mBADK,cAAc,CACU,gBAAgB,OAAO,qBAAqB;;CAGvF,MAAM,cAAc;AACnB,WAAS,QAAQ,EAAE;;CAGpB,MAAM,oBAAoB,YAAY;AAErC,iBAAe,QADC,MAAM,kBAAkB,kBAAkB,cAAc,CAAC,eAAe;;CAIzF,MAAM,8BAA8B,OAAO,gCAAyC;EACnF,MAAM,YAAY,cAAc;AAChC,QAAM,WAAW,sBAAsB,UAAU,gBAAgB,EAChE,6BACA,CAAC;AACF,MAAI,SAAS,MAAM,GAClB,UAAS,MAAM,GAAG,8BAA8B;;AAIlD,QAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
1
+ {"version":3,"file":"settings2.store.mjs","names":["allowedModules"],"sources":["../src/settings.store.ts"],"sourcesContent":["import {\n\tAuthenticationMethod,\n\ttype IUserManagementSettings,\n\ttype FrontendSettings,\n\ttype FrontendModuleSettings,\n\ttype WorkflowReviewsPolicy,\n} from '@n8n/api-types';\nimport { i18n } from '@n8n/i18n';\nimport { makeRestApiRequest } from '@n8n/rest-api-client';\nimport * as aiUsageApi from '@n8n/rest-api-client/api/ai-usage';\nimport * as eventsApi from '@n8n/rest-api-client/api/events';\nimport * as moduleSettingsApi from '@n8n/rest-api-client/api/module-settings';\nimport * as settingsApi from '@n8n/rest-api-client/api/settings';\nimport { testHealthEndpoint } from '@n8n/rest-api-client/api/templates';\nimport Bowser from 'bowser';\nimport {\n\tEXECUTE_WORKFLOW_NODE_TYPE,\n\tEXECUTE_WORKFLOW_TRIGGER_NODE_TYPE,\n\ttype IDataObject,\n\ttype WorkflowSettings,\n} from 'n8n-workflow';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\n\nimport { STORES } from './constants';\nimport { useRootStore } from './useRootStore';\n\n/**\n * Full-page warning rendered when the instance requires a secure cookie but the\n * page is served over an insecure origin (or via Safari, which drops the cookie).\n * The copy is localized; the structural markup and inline styles stay in code\n * because this is written via `document.write` before the Vue app mounts.\n */\nconst buildInsecureConnectionWarning = () => `\n<body style=\"margin-top: 20px; font-family: 'Open Sans', sans-serif; text-align: center;\">\n<h1 style=\"font-size: 40px\">&#x1F6AB;</h1>\n<h2>${i18n.baseText('settings.authCookie.insecureConnection.title')}</h2>\n<br/>\n<div style=\"font-size: 18px; max-width: 640px; text-align: left; margin: 10px auto\">\n\t${i18n.baseText('settings.authCookie.insecureConnection.fixIntro')}\n\t<ul>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.tls')}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.localhost', { interpolate: { localhostUrl: 'http://localhost:5678' } })}</li>\n\t\t<li>${i18n.baseText('settings.authCookie.insecureConnection.option.disableSecureCookie', { interpolate: { envVar: 'N8N_SECURE_COOKIE' } })}</li>\n\t</ul>\n</div>\n</body>`;\n\nexport const useSettingsStore = defineStore(STORES.SETTINGS, () => {\n\tconst initialized = ref(false);\n\tconst settings = ref<FrontendSettings>({} as FrontendSettings);\n\tconst moduleSettings = ref<FrontendModuleSettings>({});\n\tconst userManagement = ref<IUserManagementSettings>({\n\t\tquota: -1,\n\t\tshowSetupOnFirstLoad: false,\n\t\tsmtpSetup: false,\n\t\tauthenticationMethod: AuthenticationMethod.Email,\n\t\tpasswordMinLength: 8,\n\t});\n\tconst templatesEndpointHealthy = ref(false);\n\tconst api = ref({\n\t\tenabled: false,\n\t\tlatestVersion: 0,\n\t\tpath: '/',\n\t\tswaggerUi: {\n\t\t\tenabled: false,\n\t\t},\n\t});\n\tconst mfa = ref({ enabled: false });\n\tconst folders = ref({ enabled: false });\n\n\tconst saveDataErrorExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveDataSuccessExecution = ref<WorkflowSettings.SaveDataExecution>('all');\n\tconst saveManualExecutions = ref(false);\n\tconst saveDataProgressExecution = ref(false);\n\tconst isMFAEnforced = ref(false);\n\n\tconst isDocker = computed(() => settings.value?.isDocker ?? false);\n\n\tconst databaseType = computed(() => settings.value?.databaseType);\n\n\tconst planName = computed(() => settings.value?.license?.planName ?? 'Community');\n\n\tconst consumerId = computed(() => settings.value?.license?.consumerId);\n\n\tconst binaryDataMode = computed(() => settings.value?.binaryDataMode);\n\n\tconst pruning = computed(() => settings.value?.pruning);\n\n\tconst security = computed(() => ({\n\t\tblockFileAccessToN8nFiles: settings.value?.security?.blockFileAccessToN8nFiles,\n\t\tsecureCookie: settings.value?.authCookie?.secure,\n\t}));\n\n\tconst isEnterpriseFeatureEnabled = computed(() => settings.value.enterprise ?? {});\n\n\tconst nodeJsVersion = computed(() => settings.value.nodeJsVersion);\n\n\tconst nodeEnv = computed(() => settings.value.nodeEnv);\n\n\tconst concurrency = computed(() => settings.value.concurrency);\n\n\tconst isConcurrencyEnabled = computed(() => concurrency.value !== -1);\n\n\tconst isPublicApiEnabled = computed(() => api.value.enabled);\n\n\tconst isSwaggerUIEnabled = computed(() => api.value.swaggerUi?.enabled ?? false);\n\n\tconst isPreviewMode = computed(() => settings.value.previewMode);\n\n\tconst isE2ETestMode = computed(() => settings.value.inE2ETests);\n\n\tconst isCanvasOnly = computed(() => settings.value.canvasOnly);\n\n\tconst isCrdtCollaborationEnabled = computed(\n\t\t() => (settings.value.collaboration?.crdt ?? 'off') !== 'off',\n\t);\n\n\tconst publicApiLatestVersion = computed(() => api.value.latestVersion);\n\n\tconst publicApiPath = computed(() => api.value.path);\n\n\tconst isAiAssistantEnabled = computed(\n\t\t() => settings.value.aiAssistant?.enabled && settings.value.aiAssistant?.setup,\n\t);\n\n\tconst isAskAiEnabled = computed(() => settings.value.askAi?.enabled);\n\n\tconst isAiBuilderEnabled = computed(\n\t\t() => settings.value.aiBuilder?.enabled && settings.value.aiBuilder?.setup,\n\t);\n\n\tconst isAiAssistantOrBuilderEnabled = computed(\n\t\t() => isAiAssistantEnabled.value || isAiBuilderEnabled.value,\n\t);\n\n\tconst showSetupPage = computed(() => userManagement.value.showSetupOnFirstLoad);\n\n\tconst deploymentType = computed(() => settings.value.deployment?.type || 'default');\n\n\tconst isCloudDeployment = computed(() => settings.value.deployment?.type === 'cloud');\n\n\tconst activeModules = computed(() => settings.value.activeModules);\n\n\tconst isModuleActive = (moduleName: string) => {\n\t\treturn activeModules.value?.includes(moduleName);\n\t};\n\n\t/**\n\t * Checks whether an agents-module sub-feature token (listed in\n\t * `N8N_AGENTS_MODULES` on the backend) is enabled. Returns `false`\n\t * unless the top-level `agents` module is active AND the token is\n\t * present in the module settings' `modules` array.\n\t *\n\t * Known tokens: see `AGENTS_MODULE_NAMES` in `agents.config.ts`.\n\t */\n\tconst isAgentModuleActive = (name: string): boolean => {\n\t\treturn (\n\t\t\tisModuleActive('agents') && moduleSettings.value.agents?.modules?.includes(name) === true\n\t\t);\n\t};\n\n\tconst isAiCreditsEnabled = computed(\n\t\t() => settings.value.aiCredits?.enabled && settings.value.aiCredits?.setup,\n\t);\n\n\tconst aiCreditsQuota = computed(() => settings.value.aiCredits?.credits);\n\n\tconst isAiDataSharingEnabled = computed(\n\t\t() => settings.value.ai?.allowSendingParameterValues ?? true,\n\t);\n\n\tconst isAiGatewayEnabled = computed(() => settings.value.aiGateway?.enabled ?? false);\n\n\tconst isAiGatewayCloudUbbEnabled = computed(\n\t\t() => settings.value.aiGateway?.cloudUbbEnabled ?? false,\n\t);\n\n\tconst aiGatewayBudget = computed(() => settings.value.aiGateway?.budget ?? 0);\n\n\tconst isSmtpSetup = computed(() => userManagement.value.smtpSetup);\n\n\tconst isPersonalizationSurveyEnabled = computed(\n\t\t() => settings.value.telemetry?.enabled && settings.value.personalizationSurveyEnabled,\n\t);\n\n\tconst telemetry = computed(() => settings.value.telemetry);\n\n\tconst logLevel = computed(() => settings.value.logLevel);\n\n\tconst isTelemetryEnabled = computed(() => settings.value.telemetry?.enabled);\n\n\tconst isMFAEnforcementLicensed = computed(() => {\n\t\treturn settings.value.enterprise?.mfaEnforcement ?? false;\n\t});\n\n\tconst isMfaFeatureEnabled = computed(() => mfa.value.enabled);\n\n\tconst isFoldersFeatureEnabled = computed(() => folders.value.enabled);\n\n\tconst isDataTableFeatureEnabled = computed(() => isModuleActive('data-table'));\n\n\tconst isChatFeatureEnabled = computed(\n\t\t() => isModuleActive('chat-hub') && moduleSettings.value['chat-hub']?.enabled === true,\n\t);\n\n\tconst isOtelCustomSpanAttributesEnabled = computed(() => {\n\t\tconst isOtelCustomSpanAttributesLicensed =\n\t\t\tsettings.value.enterprise?.otelCustomSpanAttributes ?? false;\n\t\tconst isOtelModuleActive =\n\t\t\tisModuleActive('otel') && moduleSettings.value.otel?.enabled === true;\n\n\t\treturn isOtelCustomSpanAttributesLicensed && isOtelModuleActive;\n\t});\n\n\tconst isWorkerPoolsEnabled = computed(() => settings.value.workerPools?.enabled ?? false);\n\n\t// Opt-in flag controlled by the backend's N8N_AGENTS_AI_SANDBOX_ENABLED setting.\n\tconst isAgentsKnowledgeBaseFeatureEnabled = computed(\n\t\t() => isModuleActive('agents') && moduleSettings.value.agents?.knowledgeBaseEnabled === true,\n\t);\n\n\tconst isPublicChatTriggerDisabled = computed(\n\t\t() => settings.value.chatTrigger?.disablePublicChat ?? false,\n\t);\n\n\tconst isCustomRolesFeatureEnabled = computed(\n\t\t() => settings.value.enterprise?.customRoles ?? false,\n\t);\n\n\tconst areTagsEnabled = computed(() =>\n\t\tsettings.value.workflowTagsDisabled !== undefined ? !settings.value.workflowTagsDisabled : true,\n\t);\n\n\tconst isAutosaveEnabled = computed(() =>\n\t\tsettings.value.workflowsAutosaveDisabled !== undefined\n\t\t\t? !settings.value.workflowsAutosaveDisabled\n\t\t\t: true,\n\t);\n\n\tconst isHiringBannerEnabled = computed(() => settings.value.hiringBannerEnabled);\n\n\tconst isTemplatesEnabled = computed(() => Boolean(settings.value.templates?.enabled));\n\n\tconst isTemplatesEndpointReachable = computed(() => templatesEndpointHealthy.value);\n\n\tconst templatesHost = computed(() => settings.value.templates?.host ?? '');\n\n\tconst pushBackend = computed(() => settings.value.pushBackend);\n\n\tconst isCommunityNodesFeatureEnabled = computed(() => settings.value.communityNodesEnabled);\n\n\tconst isUnverifiedPackagesEnabled = computed(\n\t\t() => settings.value.unverifiedCommunityNodesEnabled,\n\t);\n\n\tconst allowedModules = computed(() => settings.value.allowedModules);\n\n\tconst isQueueModeEnabled = computed(() => settings.value.executionMode === 'queue');\n\tconst isMultiMain = computed(() => settings.value.isMultiMain);\n\n\tconst isWorkerViewAvailable = computed(() => !!settings.value.enterprise?.workerView);\n\n\tconst workflowCallerPolicyDefaultOption = computed(\n\t\t() => settings.value.workflowCallerPolicyDefaultOption,\n\t);\n\n\tconst isNodeTypeExcluded = (nodeType: string) => {\n\t\tconst excludeNodes = settings.value.excludeNodes;\n\t\treturn Array.isArray(excludeNodes) && excludeNodes.includes(nodeType);\n\t};\n\n\tconst isExecuteWorkflowNodeExcluded = computed(() =>\n\t\tisNodeTypeExcluded(EXECUTE_WORKFLOW_NODE_TYPE),\n\t);\n\n\tconst isSubworkflowConversionDisabled = computed(\n\t\t() =>\n\t\t\tisExecuteWorkflowNodeExcluded.value || isNodeTypeExcluded(EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE),\n\t);\n\n\tconst permanentlyDismissedBanners = computed(() => settings.value.banners?.dismissed ?? []);\n\n\tconst isCommunityPlan = computed(() => planName.value.toLowerCase() === 'community');\n\n\tconst isDevRelease = computed(() => settings.value.releaseChannel === 'dev');\n\n\tconst endpointHealth = computed(() => settings.value.endpointHealth);\n\n\tconst isWorkflowPublicationServiceEnabled = computed(\n\t\t() => settings.value.useWorkflowPublicationService ?? false,\n\t);\n\n\tconst setSettings = (newSettings: FrontendSettings) => {\n\t\tsettings.value = newSettings;\n\n\t\tuserManagement.value = newSettings.userManagement;\n\t\tif (userManagement.value) {\n\t\t\tuserManagement.value.showSetupOnFirstLoad =\n\t\t\t\t!!settings.value.userManagement.showSetupOnFirstLoad;\n\t\t}\n\n\t\tif (settings.value.publicApi) {\n\t\t\tapi.value = settings.value.publicApi;\n\t\t}\n\n\t\tmfa.value.enabled = settings.value.mfa?.enabled;\n\t\tfolders.value.enabled = settings.value.folders?.enabled;\n\n\t\tif (settings.value.versionCli) {\n\t\t\tuseRootStore().setVersionCli(settings.value.versionCli);\n\t\t}\n\n\t\tif (settings.value.authCookie.secure) {\n\t\t\tconst { browser } = Bowser.parse(navigator.userAgent);\n\t\t\tif (\n\t\t\t\tlocation.protocol === 'http:' &&\n\t\t\t\t(!['localhost', '127.0.0.1'].includes(location.hostname) || browser.name === 'Safari')\n\t\t\t) {\n\t\t\t\tdocument.write(buildInsecureConnectionWarning());\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst setAllowedModules = (allowedModules: FrontendSettings['allowedModules']) => {\n\t\tsettings.value.allowedModules = allowedModules;\n\t};\n\n\tconst setWorkflowReviewsPolicy = (policy: WorkflowReviewsPolicy) => {\n\t\tsettings.value.workflowReviews = policy;\n\t};\n\n\tconst setSaveDataErrorExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataErrorExecution.value = newValue;\n\t};\n\n\tconst setSaveDataSuccessExecution = (newValue: WorkflowSettings.SaveDataExecution) => {\n\t\tsaveDataSuccessExecution.value = newValue;\n\t};\n\n\tconst setSaveManualExecutions = (newValue: boolean) => {\n\t\tsaveManualExecutions.value = newValue;\n\t};\n\n\tconst setSaveDataProgressExecution = (newValue: boolean) => {\n\t\tsaveDataProgressExecution.value = newValue;\n\t};\n\n\tconst getSettings = async () => {\n\t\tconst rootStore = useRootStore();\n\t\tconst fetchedSettings = await settingsApi.getSettings(rootStore.restApiContext);\n\n\t\tsetSettings(fetchedSettings);\n\t\trootStore.setDefaultLocale(fetchedSettings.defaultLocale);\n\n\t\t// Set MFA enforced state even for public settings mode\n\t\t// as it is needed to determine if the MFA setup page should be shown\n\t\tisMFAEnforced.value = settings.value.mfa?.enforced ?? false;\n\n\t\tif (fetchedSettings.settingsMode === 'public') {\n\t\t\t// public settings mode is typically used for unauthenticated users\n\t\t\t// when public settings are returned we can skip the rest of the setup\n\t\t\t// that need the full set of authenticated settings\n\t\t\treturn;\n\t\t}\n\n\t\tsettings.value.communityNodesEnabled = fetchedSettings.communityNodesEnabled;\n\t\tsettings.value.unverifiedCommunityNodesEnabled =\n\t\t\tfetchedSettings.unverifiedCommunityNodesEnabled;\n\t\tsetAllowedModules(fetchedSettings.allowedModules);\n\t\tsetSaveDataErrorExecution(fetchedSettings.saveDataErrorExecution);\n\t\tsetSaveDataSuccessExecution(fetchedSettings.saveDataSuccessExecution);\n\t\tsetSaveDataProgressExecution(fetchedSettings.saveExecutionProgress);\n\t\tsetSaveManualExecutions(fetchedSettings.saveManualExecutions);\n\n\t\trootStore.setUrlBaseWebhook(fetchedSettings.urlBaseWebhook);\n\t\trootStore.setUrlBaseEditor(fetchedSettings.urlBaseEditor);\n\t\trootStore.setUrlBaseWebhookTest(fetchedSettings.urlBaseWebhookTest);\n\t\trootStore.setEndpointForm(fetchedSettings.endpointForm);\n\t\trootStore.setEndpointFormTest(fetchedSettings.endpointFormTest);\n\t\trootStore.setEndpointFormWaiting(fetchedSettings.endpointFormWaiting);\n\t\trootStore.setEndpointWebhook(fetchedSettings.endpointWebhook);\n\t\trootStore.setEndpointWebhookTest(fetchedSettings.endpointWebhookTest);\n\t\trootStore.setEndpointWebhookWaiting(fetchedSettings.endpointWebhookWaiting);\n\t\trootStore.setEndpointMcp(fetchedSettings.endpointMcp);\n\t\trootStore.setEndpointMcpTest(fetchedSettings.endpointMcpTest);\n\t\trootStore.setTimezone(fetchedSettings.timezone);\n\t\trootStore.setExecutionTimeout(fetchedSettings.executionTimeout);\n\t\trootStore.setMaxExecutionTimeout(fetchedSettings.maxExecutionTimeout);\n\t\trootStore.setPublicApiPath(\n\t\t\t`${fetchedSettings.publicApi.path}/v${fetchedSettings.publicApi.latestVersion}`,\n\t\t);\n\t\trootStore.setInstanceId(fetchedSettings.instanceId);\n\t\trootStore.setOauthCallbackUrls(fetchedSettings.oauthCallbackUrls);\n\t\trootStore.setN8nMetadata(fetchedSettings.n8nMetadata ?? {});\n\t\trootStore.setBinaryDataMode(fetchedSettings.binaryDataMode);\n\n\t\tif (fetchedSettings.telemetry.enabled) {\n\t\t\tvoid eventsApi.sessionStarted(rootStore.restApiContext);\n\t\t}\n\t};\n\n\tconst initialize = async () => {\n\t\tif (initialized.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait getSettings();\n\n\t\tinitialized.value = true;\n\t};\n\n\tconst stopShowingSetupPage = () => {\n\t\tuserManagement.value.showSetupOnFirstLoad = false;\n\t};\n\n\tconst disableTemplates = () => {\n\t\tsettings.value = {\n\t\t\t...settings.value,\n\t\t\ttemplates: {\n\t\t\t\t...settings.value.templates,\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t};\n\t};\n\n\tconst testTemplatesEndpoint = async () => {\n\t\tconst timeout = new Promise((_, reject) =>\n\t\t\tsetTimeout(() => reject(new Error('Templates health check timed out')), 2000),\n\t\t);\n\t\tawait Promise.race([testHealthEndpoint(templatesHost.value), timeout]);\n\t\ttemplatesEndpointHealthy.value = true;\n\t};\n\n\tconst getTimezones = async (): Promise<IDataObject> => {\n\t\tconst rootStore = useRootStore();\n\t\treturn await makeRestApiRequest(rootStore.restApiContext, 'GET', '/options/timezones');\n\t};\n\n\tconst reset = () => {\n\t\tsettings.value = {} as FrontendSettings;\n\t};\n\n\tconst getModuleSettings = async () => {\n\t\tconst fetched = await moduleSettingsApi.getModuleSettings(useRootStore().restApiContext);\n\t\tmoduleSettings.value = fetched;\n\t};\n\n\tconst updateAiDataSharingSettings = async (allowSendingParameterValues: boolean) => {\n\t\tconst rootStore = useRootStore();\n\t\tawait aiUsageApi.updateAiUsageSettings(rootStore.restApiContext, {\n\t\t\tallowSendingParameterValues,\n\t\t});\n\t\tif (settings.value.ai) {\n\t\t\tsettings.value.ai.allowSendingParameterValues = allowSendingParameterValues;\n\t\t}\n\t};\n\n\treturn {\n\t\tsettings,\n\t\tuserManagement,\n\t\ttemplatesEndpointHealthy,\n\t\tapi,\n\t\tmfa,\n\t\tisDocker,\n\t\tisDevRelease,\n\t\tendpointHealth,\n\t\tisEnterpriseFeatureEnabled,\n\t\tdatabaseType,\n\t\tplanName,\n\t\tconsumerId,\n\t\tbinaryDataMode,\n\t\tpruning,\n\t\tsecurity,\n\t\tnodeJsVersion,\n\t\tnodeEnv,\n\t\tconcurrency,\n\t\tisConcurrencyEnabled,\n\t\tisPublicApiEnabled,\n\t\tisSwaggerUIEnabled,\n\t\tisPreviewMode,\n\t\tisE2ETestMode,\n\t\tisCanvasOnly,\n\t\tisCrdtCollaborationEnabled,\n\t\tpublicApiLatestVersion,\n\t\tpublicApiPath,\n\t\tshowSetupPage,\n\t\tdeploymentType,\n\t\tisCloudDeployment,\n\t\tisSmtpSetup,\n\t\tisPersonalizationSurveyEnabled,\n\t\ttelemetry,\n\t\tlogLevel,\n\t\tisTelemetryEnabled,\n\t\tisMfaFeatureEnabled,\n\t\tisFoldersFeatureEnabled,\n\t\tisAiAssistantEnabled,\n\t\tisCustomRolesFeatureEnabled,\n\t\tareTagsEnabled,\n\t\tisAutosaveEnabled,\n\t\tisHiringBannerEnabled,\n\t\tisTemplatesEnabled,\n\t\tisTemplatesEndpointReachable,\n\t\ttemplatesHost,\n\t\tpushBackend,\n\t\tisCommunityNodesFeatureEnabled,\n\t\tisUnverifiedPackagesEnabled,\n\t\tallowedModules,\n\t\tisQueueModeEnabled,\n\t\tisMultiMain,\n\t\tisWorkerViewAvailable,\n\t\tworkflowCallerPolicyDefaultOption,\n\t\tisExecuteWorkflowNodeExcluded,\n\t\tisSubworkflowConversionDisabled,\n\t\tpermanentlyDismissedBanners,\n\t\tsaveDataErrorExecution,\n\t\tsaveDataSuccessExecution,\n\t\tsaveManualExecutions,\n\t\tsaveDataProgressExecution,\n\t\tisCommunityPlan,\n\t\tisAskAiEnabled,\n\t\tisAiBuilderEnabled,\n\t\tisAiAssistantOrBuilderEnabled,\n\t\tisAiCreditsEnabled,\n\t\taiCreditsQuota,\n\t\tisAiDataSharingEnabled,\n\t\tisAiGatewayEnabled,\n\t\tisAiGatewayCloudUbbEnabled,\n\t\taiGatewayBudget,\n\t\treset,\n\t\tgetTimezones,\n\t\ttestTemplatesEndpoint,\n\t\tdisableTemplates,\n\t\tstopShowingSetupPage,\n\t\tgetSettings,\n\t\tsetSettings,\n\t\tsetWorkflowReviewsPolicy,\n\t\tinitialize,\n\t\tgetModuleSettings,\n\t\tmoduleSettings,\n\t\tupdateAiDataSharingSettings,\n\t\tisMFAEnforcementLicensed,\n\t\tisMFAEnforced,\n\t\tactiveModules,\n\t\tisModuleActive,\n\t\tisAgentModuleActive,\n\t\tisDataTableFeatureEnabled,\n\t\tisChatFeatureEnabled,\n\t\tisOtelCustomSpanAttributesEnabled,\n\t\tisWorkerPoolsEnabled,\n\t\tisAgentsKnowledgeBaseFeatureEnabled,\n\t\tisPublicChatTriggerDisabled,\n\t\tisWorkflowPublicationServiceEnabled,\n\t};\n});\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import * as pinia2 from "pinia";
1
+ import * as pinia5 from "pinia";
2
2
  import { AgentRequestQuery } from "n8n-workflow";
3
- import * as _vueuse_core0 from "@vueuse/core";
3
+ import * as _vueuse_core2 from "@vueuse/core";
4
4
 
5
5
  //#region src/useAgentRequestStore.d.ts
6
6
  interface IAgentRequest {
@@ -12,8 +12,8 @@ interface IAgentRequestStoreState {
12
12
  [nodeName: string]: IAgentRequest;
13
13
  };
14
14
  }
15
- declare const useAgentRequestStore: pinia2.StoreDefinition<"agentRequest", Pick<{
16
- agentRequests: _vueuse_core0.RemovableRef<IAgentRequestStoreState>;
15
+ declare const useAgentRequestStore: pinia5.StoreDefinition<"agentRequest", Pick<{
16
+ agentRequests: _vueuse_core2.RemovableRef<IAgentRequestStoreState>;
17
17
  getAgentRequests: (workflowId: string, nodeId: string) => IAgentRequest["query"];
18
18
  getQueryValue: (workflowId: string, nodeId: string, nodeName: string, paramName?: string) => unknown;
19
19
  setAgentRequestForNode: (workflowId: string, nodeId: string, request: IAgentRequest) => void;
@@ -21,7 +21,7 @@ declare const useAgentRequestStore: pinia2.StoreDefinition<"agentRequest", Pick<
21
21
  clearAllAgentRequests: (workflowId?: string) => void;
22
22
  getAgentRequest: (workflowId: string, nodeId: string) => IAgentRequest | undefined;
23
23
  }, "agentRequests">, Pick<{
24
- agentRequests: _vueuse_core0.RemovableRef<IAgentRequestStoreState>;
24
+ agentRequests: _vueuse_core2.RemovableRef<IAgentRequestStoreState>;
25
25
  getAgentRequests: (workflowId: string, nodeId: string) => IAgentRequest["query"];
26
26
  getQueryValue: (workflowId: string, nodeId: string, nodeName: string, paramName?: string) => unknown;
27
27
  setAgentRequestForNode: (workflowId: string, nodeId: string, request: IAgentRequest) => void;
@@ -29,7 +29,7 @@ declare const useAgentRequestStore: pinia2.StoreDefinition<"agentRequest", Pick<
29
29
  clearAllAgentRequests: (workflowId?: string) => void;
30
30
  getAgentRequest: (workflowId: string, nodeId: string) => IAgentRequest | undefined;
31
31
  }, never>, Pick<{
32
- agentRequests: _vueuse_core0.RemovableRef<IAgentRequestStoreState>;
32
+ agentRequests: _vueuse_core2.RemovableRef<IAgentRequestStoreState>;
33
33
  getAgentRequests: (workflowId: string, nodeId: string) => IAgentRequest["query"];
34
34
  getQueryValue: (workflowId: string, nodeId: string, nodeName: string, paramName?: string) => unknown;
35
35
  setAgentRequestForNode: (workflowId: string, nodeId: string, request: IAgentRequest) => void;
@@ -1,5 +1,5 @@
1
- import * as vue59 from "vue";
2
- import * as pinia4 from "pinia";
1
+ import * as vue0 from "vue";
2
+ import * as pinia0 from "pinia";
3
3
  import { PublicApiContext } from "@n8n/rest-api-client";
4
4
 
5
5
  //#region src/useRootStore.d.ts
@@ -32,34 +32,34 @@ type RootStoreState = {
32
32
  instanceId: string;
33
33
  binaryDataMode: 'default' | 'filesystem' | 's3' | 'azure' | 'database';
34
34
  };
35
- declare const useRootStore: pinia4.StoreDefinition<"root", Pick<{
36
- baseUrl: vue59.ComputedRef<string>;
37
- formUrl: vue59.ComputedRef<string>;
38
- formTestUrl: vue59.ComputedRef<string>;
39
- formWaitingUrl: vue59.ComputedRef<string>;
40
- mcpUrl: vue59.ComputedRef<string>;
41
- mcpTestUrl: vue59.ComputedRef<string>;
42
- webhookUrl: vue59.ComputedRef<string>;
43
- webhookTestUrl: vue59.ComputedRef<string>;
44
- webhookWaitingUrl: vue59.ComputedRef<string>;
45
- restUrl: vue59.ComputedRef<string>;
46
- restApiContext: vue59.ComputedRef<{
35
+ declare const useRootStore: pinia0.StoreDefinition<"root", Pick<{
36
+ baseUrl: vue0.ComputedRef<string>;
37
+ formUrl: vue0.ComputedRef<string>;
38
+ formTestUrl: vue0.ComputedRef<string>;
39
+ formWaitingUrl: vue0.ComputedRef<string>;
40
+ mcpUrl: vue0.ComputedRef<string>;
41
+ mcpTestUrl: vue0.ComputedRef<string>;
42
+ webhookUrl: vue0.ComputedRef<string>;
43
+ webhookTestUrl: vue0.ComputedRef<string>;
44
+ webhookWaitingUrl: vue0.ComputedRef<string>;
45
+ restUrl: vue0.ComputedRef<string>;
46
+ restApiContext: vue0.ComputedRef<{
47
47
  baseUrl: string;
48
48
  pushRef: string;
49
49
  }>;
50
- publicApiContext: vue59.ComputedRef<PublicApiContext>;
51
- urlBaseEditor: vue59.ComputedRef<string>;
52
- urlBaseWebhook: vue59.ComputedRef<string>;
53
- versionCli: vue59.ComputedRef<string>;
54
- instanceId: vue59.ComputedRef<string>;
55
- pushRef: vue59.ComputedRef<string>;
56
- defaultLocale: vue59.ComputedRef<string>;
57
- binaryDataMode: vue59.ComputedRef<"default" | "filesystem" | "s3" | "azure" | "database">;
58
- OAuthCallbackUrls: vue59.ComputedRef<object>;
59
- jwksUri: vue59.ComputedRef<string>;
60
- executionTimeout: vue59.ComputedRef<number>;
61
- maxExecutionTimeout: vue59.ComputedRef<number>;
62
- timezone: vue59.ComputedRef<string>;
50
+ publicApiContext: vue0.ComputedRef<PublicApiContext>;
51
+ urlBaseEditor: vue0.ComputedRef<string>;
52
+ urlBaseWebhook: vue0.ComputedRef<string>;
53
+ versionCli: vue0.ComputedRef<string>;
54
+ instanceId: vue0.ComputedRef<string>;
55
+ pushRef: vue0.ComputedRef<string>;
56
+ defaultLocale: vue0.ComputedRef<string>;
57
+ binaryDataMode: vue0.ComputedRef<"default" | "filesystem" | "s3" | "azure" | "database">;
58
+ OAuthCallbackUrls: vue0.ComputedRef<object>;
59
+ jwksUri: vue0.ComputedRef<string>;
60
+ executionTimeout: vue0.ComputedRef<number>;
61
+ maxExecutionTimeout: vue0.ComputedRef<number>;
62
+ timezone: vue0.ComputedRef<string>;
63
63
  setUrlBaseWebhook: (value: string) => void;
64
64
  setUrlBaseEditor: (value: string) => void;
65
65
  setUrlBaseWebhookTest: (value: string) => void;
@@ -84,33 +84,33 @@ declare const useRootStore: pinia4.StoreDefinition<"root", Pick<{
84
84
  setPushRef: (value: string) => void;
85
85
  setPublicApiPath: (value: string) => void;
86
86
  }, never>, Pick<{
87
- baseUrl: vue59.ComputedRef<string>;
88
- formUrl: vue59.ComputedRef<string>;
89
- formTestUrl: vue59.ComputedRef<string>;
90
- formWaitingUrl: vue59.ComputedRef<string>;
91
- mcpUrl: vue59.ComputedRef<string>;
92
- mcpTestUrl: vue59.ComputedRef<string>;
93
- webhookUrl: vue59.ComputedRef<string>;
94
- webhookTestUrl: vue59.ComputedRef<string>;
95
- webhookWaitingUrl: vue59.ComputedRef<string>;
96
- restUrl: vue59.ComputedRef<string>;
97
- restApiContext: vue59.ComputedRef<{
87
+ baseUrl: vue0.ComputedRef<string>;
88
+ formUrl: vue0.ComputedRef<string>;
89
+ formTestUrl: vue0.ComputedRef<string>;
90
+ formWaitingUrl: vue0.ComputedRef<string>;
91
+ mcpUrl: vue0.ComputedRef<string>;
92
+ mcpTestUrl: vue0.ComputedRef<string>;
93
+ webhookUrl: vue0.ComputedRef<string>;
94
+ webhookTestUrl: vue0.ComputedRef<string>;
95
+ webhookWaitingUrl: vue0.ComputedRef<string>;
96
+ restUrl: vue0.ComputedRef<string>;
97
+ restApiContext: vue0.ComputedRef<{
98
98
  baseUrl: string;
99
99
  pushRef: string;
100
100
  }>;
101
- publicApiContext: vue59.ComputedRef<PublicApiContext>;
102
- urlBaseEditor: vue59.ComputedRef<string>;
103
- urlBaseWebhook: vue59.ComputedRef<string>;
104
- versionCli: vue59.ComputedRef<string>;
105
- instanceId: vue59.ComputedRef<string>;
106
- pushRef: vue59.ComputedRef<string>;
107
- defaultLocale: vue59.ComputedRef<string>;
108
- binaryDataMode: vue59.ComputedRef<"default" | "filesystem" | "s3" | "azure" | "database">;
109
- OAuthCallbackUrls: vue59.ComputedRef<object>;
110
- jwksUri: vue59.ComputedRef<string>;
111
- executionTimeout: vue59.ComputedRef<number>;
112
- maxExecutionTimeout: vue59.ComputedRef<number>;
113
- timezone: vue59.ComputedRef<string>;
101
+ publicApiContext: vue0.ComputedRef<PublicApiContext>;
102
+ urlBaseEditor: vue0.ComputedRef<string>;
103
+ urlBaseWebhook: vue0.ComputedRef<string>;
104
+ versionCli: vue0.ComputedRef<string>;
105
+ instanceId: vue0.ComputedRef<string>;
106
+ pushRef: vue0.ComputedRef<string>;
107
+ defaultLocale: vue0.ComputedRef<string>;
108
+ binaryDataMode: vue0.ComputedRef<"default" | "filesystem" | "s3" | "azure" | "database">;
109
+ OAuthCallbackUrls: vue0.ComputedRef<object>;
110
+ jwksUri: vue0.ComputedRef<string>;
111
+ executionTimeout: vue0.ComputedRef<number>;
112
+ maxExecutionTimeout: vue0.ComputedRef<number>;
113
+ timezone: vue0.ComputedRef<string>;
114
114
  setUrlBaseWebhook: (value: string) => void;
115
115
  setUrlBaseEditor: (value: string) => void;
116
116
  setUrlBaseWebhookTest: (value: string) => void;
@@ -135,33 +135,33 @@ declare const useRootStore: pinia4.StoreDefinition<"root", Pick<{
135
135
  setPushRef: (value: string) => void;
136
136
  setPublicApiPath: (value: string) => void;
137
137
  }, "executionTimeout" | "maxExecutionTimeout" | "jwksUri" | "timezone" | "urlBaseWebhook" | "urlBaseEditor" | "versionCli" | "binaryDataMode" | "instanceId" | "defaultLocale" | "baseUrl" | "pushRef" | "formUrl" | "formTestUrl" | "formWaitingUrl" | "mcpUrl" | "mcpTestUrl" | "webhookUrl" | "webhookTestUrl" | "webhookWaitingUrl" | "restUrl" | "restApiContext" | "publicApiContext" | "OAuthCallbackUrls">, Pick<{
138
- baseUrl: vue59.ComputedRef<string>;
139
- formUrl: vue59.ComputedRef<string>;
140
- formTestUrl: vue59.ComputedRef<string>;
141
- formWaitingUrl: vue59.ComputedRef<string>;
142
- mcpUrl: vue59.ComputedRef<string>;
143
- mcpTestUrl: vue59.ComputedRef<string>;
144
- webhookUrl: vue59.ComputedRef<string>;
145
- webhookTestUrl: vue59.ComputedRef<string>;
146
- webhookWaitingUrl: vue59.ComputedRef<string>;
147
- restUrl: vue59.ComputedRef<string>;
148
- restApiContext: vue59.ComputedRef<{
138
+ baseUrl: vue0.ComputedRef<string>;
139
+ formUrl: vue0.ComputedRef<string>;
140
+ formTestUrl: vue0.ComputedRef<string>;
141
+ formWaitingUrl: vue0.ComputedRef<string>;
142
+ mcpUrl: vue0.ComputedRef<string>;
143
+ mcpTestUrl: vue0.ComputedRef<string>;
144
+ webhookUrl: vue0.ComputedRef<string>;
145
+ webhookTestUrl: vue0.ComputedRef<string>;
146
+ webhookWaitingUrl: vue0.ComputedRef<string>;
147
+ restUrl: vue0.ComputedRef<string>;
148
+ restApiContext: vue0.ComputedRef<{
149
149
  baseUrl: string;
150
150
  pushRef: string;
151
151
  }>;
152
- publicApiContext: vue59.ComputedRef<PublicApiContext>;
153
- urlBaseEditor: vue59.ComputedRef<string>;
154
- urlBaseWebhook: vue59.ComputedRef<string>;
155
- versionCli: vue59.ComputedRef<string>;
156
- instanceId: vue59.ComputedRef<string>;
157
- pushRef: vue59.ComputedRef<string>;
158
- defaultLocale: vue59.ComputedRef<string>;
159
- binaryDataMode: vue59.ComputedRef<"default" | "filesystem" | "s3" | "azure" | "database">;
160
- OAuthCallbackUrls: vue59.ComputedRef<object>;
161
- jwksUri: vue59.ComputedRef<string>;
162
- executionTimeout: vue59.ComputedRef<number>;
163
- maxExecutionTimeout: vue59.ComputedRef<number>;
164
- timezone: vue59.ComputedRef<string>;
152
+ publicApiContext: vue0.ComputedRef<PublicApiContext>;
153
+ urlBaseEditor: vue0.ComputedRef<string>;
154
+ urlBaseWebhook: vue0.ComputedRef<string>;
155
+ versionCli: vue0.ComputedRef<string>;
156
+ instanceId: vue0.ComputedRef<string>;
157
+ pushRef: vue0.ComputedRef<string>;
158
+ defaultLocale: vue0.ComputedRef<string>;
159
+ binaryDataMode: vue0.ComputedRef<"default" | "filesystem" | "s3" | "azure" | "database">;
160
+ OAuthCallbackUrls: vue0.ComputedRef<object>;
161
+ jwksUri: vue0.ComputedRef<string>;
162
+ executionTimeout: vue0.ComputedRef<number>;
163
+ maxExecutionTimeout: vue0.ComputedRef<number>;
164
+ timezone: vue0.ComputedRef<string>;
165
165
  setUrlBaseWebhook: (value: string) => void;
166
166
  setUrlBaseEditor: (value: string) => void;
167
167
  setUrlBaseWebhookTest: (value: string) => void;