@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.
- package/dist/cloudPlan.store.d.cts +64 -64
- package/dist/rbac.store.cjs +1 -0
- package/dist/rbac.store.cjs.map +1 -1
- package/dist/rbac.store.d.cts +33 -27
- package/dist/rbac.store.d.mts +33 -27
- package/dist/rbac.store.mjs +1 -0
- package/dist/rbac.store.mjs.map +1 -1
- package/dist/roles.store.d.cts +21 -21
- package/dist/roles.store.d.mts +21 -21
- package/dist/settings.store.d.cts +289 -244
- package/dist/settings.store.d.mts +289 -244
- package/dist/settings2.store.cjs +2 -0
- package/dist/settings2.store.cjs.map +1 -1
- package/dist/settings2.store.mjs +2 -0
- package/dist/settings2.store.mjs.map +1 -1
- package/dist/useAgentRequestStore.d.cts +6 -6
- package/dist/useRootStore.d.cts +75 -75
- package/dist/useRootStore.d.mts +75 -75
- package/dist/users.store.d.cts +55 -55
- package/dist/users.store.d.mts +51 -51
- package/dist/versions.store.d.cts +30 -30
- package/dist/versions.store.d.mts +28 -28
- package/package.json +15 -15
package/dist/settings2.store.cjs
CHANGED
|
@@ -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\">🚫</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;;;MAGvCA,gBAAK,SAAS,+CAA+C,CAAC;;;GAGjEA,gBAAK,SAAS,kDAAkD,CAAC;;QAE5DA,gBAAK,SAAS,oDAAoD,CAAC;QACnEA,gBAAK,SAAS,2DAA2D,EAAE,aAAa,EAAE,cAAc,yBAAyB,EAAE,CAAC,CAAC;QACrIA,gBAAK,SAAS,qEAAqE,EAAE,aAAa,EAAE,QAAQ,qBAAqB,EAAE,CAAC,CAAC;;;;AAK7I,MAAa,0CAA+BC,yBAAO,gBAAgB;CAClE,MAAM,2BAAkB,MAAM;CAC9B,MAAM,wBAAiC,EAAE,CAAqB;CAC9D,MAAM,8BAA6C,EAAE,CAAC;CACtD,MAAM,8BAA8C;EACnD,OAAO;EACP,sBAAsB;EACtB,WAAW;EACX,sBAAsBC,qCAAqB;EAC3C,mBAAmB;EACnB,CAAC;CACF,MAAM,wCAA+B,MAAM;CAC3C,MAAM,mBAAU;EACf,SAAS;EACT,eAAe;EACf,MAAM;EACN,WAAW,EACV,SAAS,OACT;EACD,CAAC;CACF,MAAM,mBAAU,EAAE,SAAS,OAAO,CAAC;CACnC,MAAM,uBAAc,EAAE,SAAS,OAAO,CAAC;CAEvC,MAAM,sCAAiE,MAAM;CAC7E,MAAM,wCAAmE,MAAM;CAC/E,MAAM,oCAA2B,MAAM;CACvC,MAAM,yCAAgC,MAAM;CAC5C,MAAM,6BAAoB,MAAM;CAEhC,MAAM,mCAA0B,SAAS,OAAO,YAAY,MAAM;CAElE,MAAM,uCAA8B,SAAS,OAAO,aAAa;CAEjE,MAAM,mCAA0B,SAAS,OAAO,SAAS,YAAY,YAAY;CAEjF,MAAM,qCAA4B,SAAS,OAAO,SAAS,WAAW;CAEtE,MAAM,yCAAgC,SAAS,OAAO,eAAe;CAErE,MAAM,kCAAyB,SAAS,OAAO,QAAQ;CAEvD,MAAM,oCAA2B;EAChC,2BAA2B,SAAS,OAAO,UAAU;EACrD,cAAc,SAAS,OAAO,YAAY;EAC1C,EAAE;CAEH,MAAM,qDAA4C,SAAS,MAAM,cAAc,EAAE,CAAC;CAElF,MAAM,wCAA+B,SAAS,MAAM,cAAc;CAElE,MAAM,kCAAyB,SAAS,MAAM,QAAQ;CAEtD,MAAM,sCAA6B,SAAS,MAAM,YAAY;CAE9D,MAAM,+CAAsC,YAAY,UAAU,GAAG;CAErE,MAAM,6CAAoC,IAAI,MAAM,QAAQ;CAE5D,MAAM,6CAAoC,IAAI,MAAM,WAAW,WAAW,MAAM;CAEhF,MAAM,wCAA+B,SAAS,MAAM,YAAY;CAEhE,MAAM,wCAA+B,SAAS,MAAM,WAAW;CAE/D,MAAM,uCAA8B,SAAS,MAAM,WAAW;CAE9D,MAAM,sDACE,SAAS,MAAM,eAAe,QAAQ,WAAW,MACxD;CAED,MAAM,iDAAwC,IAAI,MAAM,cAAc;CAEtE,MAAM,wCAA+B,IAAI,MAAM,KAAK;CAEpD,MAAM,+CACC,SAAS,MAAM,aAAa,WAAW,SAAS,MAAM,aAAa,MACzE;CAED,MAAM,yCAAgC,SAAS,MAAM,OAAO,QAAQ;CAEpE,MAAM,6CACC,SAAS,MAAM,WAAW,WAAW,SAAS,MAAM,WAAW,MACrE;CAED,MAAM,wDACC,qBAAqB,SAAS,mBAAmB,MACvD;CAED,MAAM,wCAA+B,eAAe,MAAM,qBAAqB;CAE/E,MAAM,yCAAgC,SAAS,MAAM,YAAY,QAAQ,UAAU;CAEnF,MAAM,4CAAmC,SAAS,MAAM,YAAY,SAAS,QAAQ;CAErF,MAAM,wCAA+B,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,6CACC,SAAS,MAAM,WAAW,WAAW,SAAS,MAAM,WAAW,MACrE;CAED,MAAM,yCAAgC,SAAS,MAAM,WAAW,QAAQ;CAExE,MAAM,iDACC,SAAS,MAAM,IAAI,+BAA+B,KACxD;CAED,MAAM,6CAAoC,SAAS,MAAM,WAAW,WAAW,MAAM;CAErF,MAAM,qDACC,SAAS,MAAM,WAAW,mBAAmB,MACnD;CAED,MAAM,0CAAiC,SAAS,MAAM,WAAW,UAAU,EAAE;CAE7E,MAAM,sCAA6B,eAAe,MAAM,UAAU;CAElE,MAAM,yDACC,SAAS,MAAM,WAAW,WAAW,SAAS,MAAM,6BAC1D;CAED,MAAM,oCAA2B,SAAS,MAAM,UAAU;CAE1D,MAAM,mCAA0B,SAAS,MAAM,SAAS;CAExD,MAAM,6CAAoC,SAAS,MAAM,WAAW,QAAQ;CAE5E,MAAM,mDAA0C;AAC/C,SAAO,SAAS,MAAM,YAAY,kBAAkB;GACnD;CAEF,MAAM,8CAAqC,IAAI,MAAM,QAAQ;CAE7D,MAAM,kDAAyC,QAAQ,MAAM,QAAQ;CAErE,MAAM,oDAA2C,eAAe,aAAa,CAAC;CAE9E,MAAM,+CACC,eAAe,WAAW,IAAI,eAAe,MAAM,aAAa,YAAY,KAClF;CAED,MAAM,4DAAmD;EACxD,MAAM,qCACL,SAAS,MAAM,YAAY,4BAA4B;EACxD,MAAM,qBACL,eAAe,OAAO,IAAI,eAAe,MAAM,MAAM,YAAY;AAElE,SAAO,sCAAsC;GAC5C;CAGF,MAAM,8DACC,eAAe,SAAS,IAAI,eAAe,MAAM,QAAQ,yBAAyB,KACxF;CAED,MAAM,sDACC,SAAS,MAAM,aAAa,qBAAqB,MACvD;CAED,MAAM,sDACC,SAAS,MAAM,YAAY,eAAe,MAChD;CAED,MAAM,yCACL,SAAS,MAAM,yBAAyB,SAAY,CAAC,SAAS,MAAM,uBAAuB,KAC3F;CAED,MAAM,4CACL,SAAS,MAAM,8BAA8B,SAC1C,CAAC,SAAS,MAAM,4BAChB,KACH;CAED,MAAM,gDAAuC,SAAS,MAAM,oBAAoB;CAEhF,MAAM,6CAAoC,QAAQ,SAAS,MAAM,WAAW,QAAQ,CAAC;CAErF,MAAM,uDAA8C,yBAAyB,MAAM;CAEnF,MAAM,wCAA+B,SAAS,MAAM,WAAW,QAAQ,GAAG;CAE1E,MAAM,sCAA6B,SAAS,MAAM,YAAY;CAE9D,MAAM,yDAAgD,SAAS,MAAM,sBAAsB;CAE3F,MAAM,sDACC,SAAS,MAAM,gCACrB;CAED,MAAM,yCAAgC,SAAS,MAAM,eAAe;CAEpE,MAAM,6CAAoC,SAAS,MAAM,kBAAkB,QAAQ;CACnF,MAAM,sCAA6B,SAAS,MAAM,YAAY;CAE9D,MAAM,gDAAuC,CAAC,CAAC,SAAS,MAAM,YAAY,WAAW;CAErF,MAAM,4DACC,SAAS,MAAM,kCACrB;CAED,MAAM,sBAAsB,aAAqB;EAChD,MAAM,eAAe,SAAS,MAAM;AACpC,SAAO,MAAM,QAAQ,aAAa,IAAI,aAAa,SAAS,SAAS;;CAGtE,MAAM,wDACL,mBAAmBC,wCAA2B,CAC9C;CAED,MAAM,0DAEJ,8BAA8B,SAAS,mBAAmBC,gDAAmC,CAC9F;CAED,MAAM,sDAA6C,SAAS,MAAM,SAAS,aAAa,EAAE,CAAC;CAE3F,MAAM,0CAAiC,SAAS,MAAM,aAAa,KAAK,YAAY;CAEpF,MAAM,uCAA8B,SAAS,MAAM,mBAAmB,MAAM;CAE5E,MAAM,yCAAgC,SAAS,MAAM,eAAe;CAEpE,MAAM,8DACC,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,oCAAc,CAAC,cAAc,SAAS,MAAM,WAAW;AAGxD,MAAI,SAAS,MAAM,WAAW,QAAQ;GACrC,MAAM,EAAE,YAAYC,eAAO,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,iBAAiBC;;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,YAAYC,mCAAc;EAChC,MAAM,kBAAkB,MAAMC,mCAAY,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,CAAKC,iCAAU,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,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\">🚫</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"}
|
package/dist/settings2.store.mjs
CHANGED
|
@@ -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\">🚫</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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"}
|
|
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\">🚫</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":";;;;;;;;;;;;;;;;;;;;;;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;CAEF,MAAM,uBAAuB,eAAe,SAAS,MAAM,aAAa,WAAW,MAAM;CAGzF,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;EACA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as pinia5 from "pinia";
|
|
2
2
|
import { AgentRequestQuery } from "n8n-workflow";
|
|
3
|
-
import * as
|
|
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:
|
|
16
|
-
agentRequests:
|
|
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:
|
|
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:
|
|
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;
|
package/dist/useRootStore.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
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:
|
|
36
|
-
baseUrl:
|
|
37
|
-
formUrl:
|
|
38
|
-
formTestUrl:
|
|
39
|
-
formWaitingUrl:
|
|
40
|
-
mcpUrl:
|
|
41
|
-
mcpTestUrl:
|
|
42
|
-
webhookUrl:
|
|
43
|
-
webhookTestUrl:
|
|
44
|
-
webhookWaitingUrl:
|
|
45
|
-
restUrl:
|
|
46
|
-
restApiContext:
|
|
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:
|
|
51
|
-
urlBaseEditor:
|
|
52
|
-
urlBaseWebhook:
|
|
53
|
-
versionCli:
|
|
54
|
-
instanceId:
|
|
55
|
-
pushRef:
|
|
56
|
-
defaultLocale:
|
|
57
|
-
binaryDataMode:
|
|
58
|
-
OAuthCallbackUrls:
|
|
59
|
-
jwksUri:
|
|
60
|
-
executionTimeout:
|
|
61
|
-
maxExecutionTimeout:
|
|
62
|
-
timezone:
|
|
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:
|
|
88
|
-
formUrl:
|
|
89
|
-
formTestUrl:
|
|
90
|
-
formWaitingUrl:
|
|
91
|
-
mcpUrl:
|
|
92
|
-
mcpTestUrl:
|
|
93
|
-
webhookUrl:
|
|
94
|
-
webhookTestUrl:
|
|
95
|
-
webhookWaitingUrl:
|
|
96
|
-
restUrl:
|
|
97
|
-
restApiContext:
|
|
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:
|
|
102
|
-
urlBaseEditor:
|
|
103
|
-
urlBaseWebhook:
|
|
104
|
-
versionCli:
|
|
105
|
-
instanceId:
|
|
106
|
-
pushRef:
|
|
107
|
-
defaultLocale:
|
|
108
|
-
binaryDataMode:
|
|
109
|
-
OAuthCallbackUrls:
|
|
110
|
-
jwksUri:
|
|
111
|
-
executionTimeout:
|
|
112
|
-
maxExecutionTimeout:
|
|
113
|
-
timezone:
|
|
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:
|
|
139
|
-
formUrl:
|
|
140
|
-
formTestUrl:
|
|
141
|
-
formWaitingUrl:
|
|
142
|
-
mcpUrl:
|
|
143
|
-
mcpTestUrl:
|
|
144
|
-
webhookUrl:
|
|
145
|
-
webhookTestUrl:
|
|
146
|
-
webhookWaitingUrl:
|
|
147
|
-
restUrl:
|
|
148
|
-
restApiContext:
|
|
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:
|
|
153
|
-
urlBaseEditor:
|
|
154
|
-
urlBaseWebhook:
|
|
155
|
-
versionCli:
|
|
156
|
-
instanceId:
|
|
157
|
-
pushRef:
|
|
158
|
-
defaultLocale:
|
|
159
|
-
binaryDataMode:
|
|
160
|
-
OAuthCallbackUrls:
|
|
161
|
-
jwksUri:
|
|
162
|
-
executionTimeout:
|
|
163
|
-
maxExecutionTimeout:
|
|
164
|
-
timezone:
|
|
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;
|