windmill-components 1.613.5 → 1.623.1
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/package/assets/tokens/tokens.json +1 -11
- package/package/ata/apis.js +5 -78
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +24 -32
- package/package/components/CenteredModal.svelte.d.ts +27 -7
- package/package/components/CenteredPage.svelte +2 -5
- package/package/components/CenteredPage.svelte.d.ts +0 -2
- package/package/components/ConcurrentJobsChart.svelte +2 -3
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +23 -20
- package/package/components/CustomPopover.svelte.d.ts +39 -14
- package/package/components/DBManager.svelte +17 -105
- package/package/components/DBManager.svelte.d.ts +1 -2
- package/package/components/DBManagerContent.svelte +3 -4
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +171 -210
- package/package/components/DBTableEditor.svelte.d.ts +3 -22
- package/package/components/Description.svelte +2 -3
- package/package/components/Dev.svelte +2 -36
- package/package/components/DiffDrawer.svelte +29 -8
- package/package/components/DiffEditor.svelte +2 -32
- package/package/components/DisplayResult.svelte +24 -32
- package/package/components/Editor.svelte +16 -70
- package/package/components/Editor.svelte.d.ts +0 -3
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +11 -17
- package/package/components/FlowPreviewContent.svelte +2 -3
- package/package/components/FlowPreviewResult.svelte +4 -0
- package/package/components/FlowRestartButton.svelte +3 -2
- package/package/components/FlowRestartButton.svelte.d.ts +0 -3
- package/package/components/FlowStatusViewerInner.svelte +33 -50
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
- package/package/components/FlowViewer.svelte +2 -103
- package/package/components/FlowViewer.svelte.d.ts +3 -9
- package/package/components/ForkWorkspaceBanner.svelte +13 -16
- package/package/components/GraphqlSchemaViewer.svelte +1 -8
- package/package/components/HistoricInputs.svelte +27 -25
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +0 -38
- package/package/components/InviteUser.svelte +42 -16
- package/package/components/InviteUser.svelte.d.ts +18 -4
- package/package/components/JsonInputs.svelte +8 -6
- package/package/components/JsonInputs.svelte.d.ts +8 -7
- package/package/components/LogViewer.svelte +33 -91
- package/package/components/Login.svelte +0 -21
- package/package/components/ManualPopover.svelte +6 -5
- package/package/components/ManualPopover.svelte.d.ts +35 -9
- package/package/components/MemoryFootprintViewer.svelte +6 -2
- package/package/components/ModulePreview.svelte +21 -23
- package/package/components/ModulePreview.svelte.d.ts +0 -1
- package/package/components/OAuthSetting.svelte +11 -23
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +0 -3
- package/package/components/ResourcePicker.svelte.d.ts +0 -1
- package/package/components/RunButton.svelte +15 -5
- package/package/components/RunButton.svelte.d.ts +19 -7
- package/package/components/RunChart.svelte +4 -8
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +539 -170
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +11 -7
- package/package/components/S3FilePickerInner.svelte +3 -2
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SavedInputs.svelte +416 -0
- package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
- package/package/components/SchemaForm.svelte +19 -26
- package/package/components/SchemaFormWithArgPicker.svelte +3 -4
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +101 -575
- package/package/components/Section.svelte +1 -3
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +2 -46
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +29 -54
- package/package/components/TemplateEditor.svelte.d.ts +102 -13
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +2 -5
- package/package/components/WorkspaceTutorials.svelte +0 -5
- package/package/components/apps/components/buttons/AppButton.svelte +6 -21
- package/package/components/apps/components/buttons/AppForm.svelte +1 -2
- package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
- package/package/components/apps/components/display/dbtable/metadata.js +30 -69
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
- package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
- package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
- package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
- package/package/components/apps/components/display/dbtable/utils.js +20 -52
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +1 -8
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
- package/package/components/apps/editor/PublicApp.svelte +30 -49
- package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.js +1 -10
- package/package/components/apps/inputType.d.ts +1 -6
- package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/model.js +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
- package/package/components/common/languageIcons/TypeScript.svelte +3 -5
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +1 -2
- package/package/components/copilot/chat/AIChat.svelte +1 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
- package/package/components/copilot/chat/AIChatInput.svelte +0 -275
- package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
- package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
- package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
- package/package/components/copilot/chat/app/core.d.ts +15 -56
- package/package/components/copilot/chat/app/core.js +22 -141
- package/package/components/copilot/chat/context.d.ts +2 -59
- package/package/components/copilot/chat/context.js +2 -6
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
- package/package/components/copilot/chat/flow/core.d.ts +1 -3
- package/package/components/copilot/chat/flow/core.js +2 -29
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
- package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
- package/package/components/copilot/chat/script/core.d.ts +1 -4
- package/package/components/copilot/chat/script/core.js +2 -38
- package/package/components/copilot/chat/shared.d.ts +0 -10
- package/package/components/copilot/chat/shared.js +0 -24
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +0 -2
- package/package/components/dbOps.d.ts +4 -18
- package/package/components/dbOps.js +3 -25
- package/package/components/flows/CreateActionsApp.svelte +4 -6
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +4 -15
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowInput.svelte +37 -211
- package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpToolEditor.svelte +37 -50
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
- package/package/components/flows/conversations/FlowChat.svelte +2 -16
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
- package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
- package/package/components/flows/types.d.ts +0 -2
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +18 -34
- package/package/components/icons/CssIcon.svelte +0 -20
- package/package/components/icons/CssIcon.svelte.d.ts +25 -7
- package/package/components/icons/JavaScriptIcon.svelte +2 -10
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
- package/package/components/icons/JsonIcon.svelte +2 -8
- package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
- package/package/components/icons/ReactIcon.svelte +2 -10
- package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
- package/package/components/icons/SvelteIcon.svelte +2 -10
- package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
- package/package/components/icons/VueIcon.svelte +2 -10
- package/package/components/icons/VueIcon.svelte.d.ts +0 -1
- package/package/components/instanceSettings.d.ts +1 -2
- package/package/components/instanceSettings.js +1 -32
- package/package/components/jobs/JobPreview.svelte +39 -46
- package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
- package/package/components/monacoLanguagesOptions.js +15 -16
- package/package/components/propertyPicker/PropPicker.svelte +2 -16
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
- package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
- package/package/components/raw_apps/FileTreeNode.svelte +83 -119
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
- package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
- package/package/components/raw_apps/RawAppEditor.svelte +68 -218
- package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
- package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +7 -13
- package/package/components/raw_apps/RawAppPreview.svelte +6 -48
- package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +18 -76
- package/package/components/runs/JobsLoader.svelte +468 -0
- package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
- package/package/components/runs/RunsFilter.svelte +63 -75
- package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
- package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/runs/RunsTable.svelte.d.ts +1 -1
- package/package/components/schema/SchemaPicker.svelte +92 -0
- package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
- package/package/components/scriptEditor/LogPanel.svelte +2 -17
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
- package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
- package/package/components/settings/CreateToken.svelte +1 -1
- package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
- package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
- package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
- package/package/components/sidebar/MenuButton.svelte +24 -46
- package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +88 -63
- package/package/components/sidebar/SidebarContent.svelte +2 -7
- package/package/components/sidebar/UserMenu.svelte +1 -1
- package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
- package/package/components/sqlTypeService.js +3 -4
- package/package/components/table/DataTable.svelte +2 -3
- package/package/components/table/DataTable.svelte.d.ts +0 -1
- package/package/components/text_input/TextInput.svelte +0 -3
- package/package/components/text_input/TextInput.svelte.d.ts +0 -2
- package/package/components/triggers/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
- package/package/components/tutorials/utils.d.ts +0 -16
- package/package/components/tutorials/utils.js +0 -96
- package/package/components/vscode.js +6 -6
- package/package/components/workspaceSettings/AISettings.svelte +108 -146
- package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
- package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
- package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
- package/package/consts.js +1 -4
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +1 -133
- package/package/gen/schemas.gen.js +1 -133
- package/package/gen/services.gen.d.ts +10 -160
- package/package/gen/services.gen.js +20 -319
- package/package/gen/types.gen.d.ts +19 -609
- package/package/hubPaths.json +2 -3
- package/package/infer.js +0 -2
- package/package/logout.d.ts +2 -0
- package/package/logout.js +23 -2
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/navigation.d.ts +1 -1
- package/package/rawAppWmillTs.d.ts +0 -11
- package/package/rawAppWmillTs.js +1 -38
- package/package/svelte5Utils.svelte.d.ts +1 -7
- package/package/svelte5Utils.svelte.js +2 -23
- package/package/tutorialUtils.js +4 -0
- package/package/tutorials/config.js +3 -31
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +2 -6
- package/package/utils.js +1 -159
- package/package.json +4 -6
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/FlowDiffViewer.svelte +0 -37
- package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
- package/package/components/JobOtelTraces.svelte +0 -287
- package/package/components/JobOtelTraces.svelte.d.ts +0 -6
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
- package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
- package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
- package/package/components/debug/DebugConsole.svelte +0 -277
- package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
- package/package/components/debug/DebugPanel.svelte +0 -97
- package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
- package/package/components/debug/DebugToolbar.svelte +0 -148
- package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
- package/package/components/debug/DebugVariableViewer.svelte +0 -115
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
- package/package/components/debug/MonacoDebugger.svelte +0 -384
- package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
- package/package/components/debug/dapClient.d.ts +0 -192
- package/package/components/debug/dapClient.js +0 -426
- package/package/components/debug/debugUtils.d.ts +0 -30
- package/package/components/debug/debugUtils.js +0 -131
- package/package/components/debug/index.d.ts +0 -75
- package/package/components/debug/index.js +0 -82
- package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
- package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
- package/package/components/icons/HtmlIcon.svelte +0 -20
- package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
- package/package/components/icons/LessIcon.svelte +0 -16
- package/package/components/icons/LessIcon.svelte.d.ts +0 -8
- package/package/components/icons/MarkdownIcon.svelte +0 -20
- package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
- package/package/components/icons/SassIcon.svelte +0 -28
- package/package/components/icons/SassIcon.svelte.d.ts +0 -8
- package/package/components/icons/YamlIcon.svelte +0 -20
- package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
- package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
- package/package/components/raw_apps/RunnableRow.svelte +0 -41
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
- package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
- package/package/components/runs/useJobsLoader.svelte.js +0 -507
- package/package/components/settings/AIPromptsModal.svelte +0 -88
- package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
- package/package/components/tutorials/RunsTutorial.svelte +0 -399
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
- package/package/components/workspace/WorkspaceCard.svelte +0 -184
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
- package/package/components/workspace/WorkspaceIcon.svelte +0 -21
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
- package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
- package/package/logoutKit.d.ts +0 -2
- package/package/logoutKit.js +0 -26
- package/package/svelte5UtilsKit.svelte.d.ts +0 -3
- package/package/svelte5UtilsKit.svelte.js +0 -30
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<script lang="ts">"use strict";
|
|
2
|
-
let { height = '24px', width = '24px', size = undefined } = $props();
|
|
3
|
-
const derivedWidth = $derived(size ? size : width);
|
|
4
|
-
const derivedHeight = $derived(size ? size : height);
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<svg
|
|
8
|
-
fill="#000000"
|
|
9
|
-
width={derivedWidth}
|
|
10
|
-
height={derivedHeight}
|
|
11
|
-
viewBox="0 0 24 24"
|
|
12
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
-
><path
|
|
14
|
-
d="M21.142 10.843c0-.64.098-1.018.098-1.707 0-1.067-.393-1.411-1.263-1.411h-.641v.755h.196c.444 0 .542.147.542.689 0 .509-.049 1.018-.049 1.608 0 .755.246 1.05.739 1.165v.049c-.493.116-.739.411-.739 1.166 0 .591.049 1.067.049 1.608 0 .558-.114.705-.542.705v.017h-.196v.788h.641c.87 0 1.263-.344 1.263-1.411 0-.706-.098-1.067-.098-1.707 0-.345.213-.706.854-.739v-.853c-.642-.016-.854-.377-.854-.722zm-3.299 1.001c-.493-.196-.952-.312-.952-.64 0-.246.197-.395.558-.395.361 0 .689.148 1.05.411l.657-.87c-.409-.313-.968-.641-1.724-.641-1.115 0-1.871.641-1.871 1.544 0 .804.706 1.214 1.298 1.443.508.196 1.001.361 1.001.689 0 .246-.197.41-.641.41-.41 0-.821-.164-1.263-.509l-.657.952c.492.41 1.247.689 1.871.689 1.313 0 2.019-.689 2.019-1.592-.001-.9-.707-1.277-1.346-1.491zm-11.21 1.854c-.114 0-.262-.098-.262-.41V7.725H4.039c-.886 0-1.279.344-1.279 1.411 0 .706.099 1.101.099 1.707 0 .345-.213.706-.854.739v.853c.641.017.854.378.854.723 0 .606-.099.968-.099 1.674 0 1.067.394 1.411 1.264 1.411h.64v-.755h-.197c-.411 0-.542-.164-.542-.706 0-.541.049-1.001.049-1.607 0-.756-.245-1.05-.738-1.165v-.051c.493-.114.738-.409.738-1.165 0-.59-.049-1.066-.049-1.607 0-.542.114-.689.542-.689h.442v4.711c0 1.001.345 1.657 1.346 1.657.313 0 .559-.05.739-.115l-.165-1.066c-.098.013-.146.013-.196.013zm7.238-1.854c-.509-.196-.969-.312-.969-.64 0-.246.197-.395.558-.395.361 0 .689.148 1.051.411l.656-.87c-.41-.313-.968-.641-1.723-.641-1.116 0-1.872.641-1.872 1.544 0 .804.707 1.214 1.297 1.443.51.196 1.002.361 1.002.689 0 .246-.197.41-.641.41-.41 0-.82-.164-1.264-.509l-.64.952c.492.41 1.247.689 1.871.689 1.313 0 2.019-.689 2.019-1.592.001-.9-.705-1.277-1.345-1.491zm-4.842-2.15c-1.198 0-2.347 1.001-2.314 2.577 0 1.624 1.066 2.576 2.479 2.576.591 0 1.247-.214 1.756-.558l-.492-.87c-.36.213-.706.312-1.066.312-.657 0-1.165-.312-1.297-1.066h2.971c.017-.115.049-.345.049-.607.016-1.33-.707-2.364-2.086-2.364zm-.935 2.068c.099-.655.492-.969.951-.969.592 0 .821.411.821.969H8.094z"
|
|
15
|
-
/></svg
|
|
16
|
-
>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<script lang="ts">"use strict";
|
|
2
|
-
let { height = '24px', width = '24px', size = undefined } = $props();
|
|
3
|
-
const derivedWidth = $derived(size ? size : width);
|
|
4
|
-
const derivedHeight = $derived(size ? size : height);
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<svg
|
|
8
|
-
width={derivedWidth}
|
|
9
|
-
height={derivedHeight}
|
|
10
|
-
viewBox="0 0 24 24"
|
|
11
|
-
fill="none"
|
|
12
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
-
>
|
|
14
|
-
<path
|
|
15
|
-
fill-rule="evenodd"
|
|
16
|
-
clip-rule="evenodd"
|
|
17
|
-
d="M0 8C0 5.79086 1.79086 4 4 4H20C22.2091 4 24 5.79086 24 8V16C24 18.2091 22.2091 20 20 20H4C1.79086 20 0 18.2091 0 16V8ZM4 6C2.89543 6 2 6.89543 2 8V16C2 17.1046 2.89543 18 4 18H20C21.1046 18 22 17.1046 22 16V8C22 6.89543 21.1046 6 20 6H4ZM5.68377 8.05132C6.09211 7.9152 6.54174 8.05566 6.8 8.4L9 11.3333L11.2 8.4C11.4583 8.05566 11.9079 7.9152 12.3162 8.05132C12.7246 8.18743 13 8.56957 13 9V15C13 15.5523 12.5523 16 12 16C11.4477 16 11 15.5523 11 15V12L9.8 13.6C9.61115 13.8518 9.31476 14 9 14C8.68524 14 8.38885 13.8518 8.2 13.6L7 12V15C7 15.5523 6.55228 16 6 16C5.44772 16 5 15.5523 5 15V9C5 8.56957 5.27543 8.18743 5.68377 8.05132ZM18 9C18 8.44772 17.5523 8 17 8C16.4477 8 16 8.44772 16 9V12.5858L15.7071 12.2929C15.3166 11.9024 14.6834 11.9024 14.2929 12.2929C13.9024 12.6834 13.9024 13.3166 14.2929 13.7071L16.2929 15.7071C16.6834 16.0976 17.3166 16.0976 17.7071 15.7071L19.7071 13.7071C20.0976 13.3166 20.0976 12.6834 19.7071 12.2929C19.3166 11.9024 18.6834 11.9024 18.2929 12.2929L18 12.5858V9Z"
|
|
18
|
-
fill="#000000"
|
|
19
|
-
/>
|
|
20
|
-
</svg>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<script lang="ts">"use strict";
|
|
2
|
-
let { height = '24px', width = '24px', size = undefined } = $props();
|
|
3
|
-
const derivedWidth = $derived(size ? size : width);
|
|
4
|
-
const derivedHeight = $derived(size ? size : height);
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<svg
|
|
8
|
-
width={derivedWidth}
|
|
9
|
-
height={derivedHeight}
|
|
10
|
-
viewBox="0 0 410.87 410.87"
|
|
11
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
-
><defs
|
|
13
|
-
><style>
|
|
14
|
-
.cls-1 {
|
|
15
|
-
fill: #c69;
|
|
16
|
-
fill-rule: evenodd;
|
|
17
|
-
}
|
|
18
|
-
.cls-2 {
|
|
19
|
-
fill: #fff;
|
|
20
|
-
}</style></defs
|
|
21
|
-
><path
|
|
22
|
-
class="cls-1"
|
|
23
|
-
d="M205.44,0c113.46,0,205.44,91.98,205.44,205.44s-91.98,205.44-205.44,205.44S0,318.89,0,205.44,91.98,0,205.44,0h0Z"
|
|
24
|
-
/><path
|
|
25
|
-
class="cls-2"
|
|
26
|
-
d="M334.3,87.93c-9.3-36.49-69.8-48.48-127.06-28.14-34.08,12.11-70.96,31.11-97.49,55.92-31.54,29.5-36.57,55.17-34.49,65.9,7.31,37.85,59.18,62.6,80.5,80.95v.11c-6.29,3.09-52.3,26.38-63.07,50.19-11.36,25.12,1.81,43.14,10.53,45.57,27.02,7.52,54.74-6,69.64-28.23,14.38-21.45,13.18-49.14,6.93-62.92,8.62-2.27,18.67-3.29,31.44-1.8,36.04,4.21,43.11,26.71,41.76,36.13-1.35,9.42-8.91,14.6-11.44,16.16-2.53,1.56-3.3,2.11-3.09,3.27.31,1.69,1.48,1.63,3.63,1.26,2.97-.5,18.92-7.66,19.61-25.04.87-22.07-20.28-46.76-57.73-46.11-15.42.27-25.12,1.73-32.13,4.34-.52-.59-1.04-1.18-1.59-1.76-23.15-24.7-65.95-42.17-64.14-75.38.66-12.07,4.86-43.86,82.24-82.42,63.39-31.59,114.14-22.89,122.91-3.63,12.53,27.52-27.12,78.67-92.95,86.05-25.08,2.81-38.29-6.91-41.57-10.53-3.46-3.81-3.97-3.98-5.27-3.27-2.1,1.17-.77,4.53,0,6.54,1.97,5.12,10.03,14.19,23.78,18.7,12.1,3.97,41.54,6.15,77.16-7.62,39.88-15.43,71.03-58.35,61.88-94.22ZM164.61,273.87c2.99,11.06,2.66,21.37-.43,30.7-.34,1.04-.72,2.06-1.13,3.08-.41,1.01-.85,2.01-1.33,3-2.38,4.94-5.58,9.56-9.49,13.83-11.94,13.02-28.61,17.95-35.76,13.8-7.72-4.48-3.85-22.84,9.98-37.46,14.89-15.74,36.31-25.86,36.31-25.86l-.03-.06c.62-.33,1.24-.67,1.88-1.02Z"
|
|
27
|
-
/></svg
|
|
28
|
-
>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<script lang="ts">"use strict";
|
|
2
|
-
let { height = '24px', width = '24px', size = undefined } = $props();
|
|
3
|
-
const derivedWidth = $derived(size ? size : width);
|
|
4
|
-
const derivedHeight = $derived(size ? size : height);
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<svg
|
|
8
|
-
width={derivedWidth}
|
|
9
|
-
height={derivedHeight}
|
|
10
|
-
viewBox="0 0 16 16"
|
|
11
|
-
fill="none"
|
|
12
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
-
>
|
|
14
|
-
<path
|
|
15
|
-
fill-rule="nonzero"
|
|
16
|
-
clip-rule="nonzero"
|
|
17
|
-
d="M0.828288 0.135541C1.17426 -0.103975 1.64888 -0.017679 1.8884 0.328288L3.58007 2.77182L5.48344 0.297431C5.74 -0.0360947 6.21836 -0.0984891 6.55189 0.158069C6.88541 0.414627 6.94781 0.892984 6.69125 1.22651L4.30958 4.32268V7.11115C4.30958 7.53194 3.96846 7.87305 3.54767 7.87305C3.12689 7.87305 2.78577 7.53194 2.78577 7.11115V4.30154L0.635541 1.19565C0.396025 0.849685 0.482321 0.375057 0.828288 0.135541ZM8.88099 6.89044e-05C9.18311 6.89044e-05 9.45669 0.178586 9.57837 0.455123L12.372 6.8043C12.5415 7.18945 12.3666 7.63906 11.9815 7.80853C11.5963 7.978 11.1467 7.80315 10.9772 7.418L10.2835 5.84131H7.47847L6.78473 7.418C6.61526 7.80315 6.16565 7.978 5.7805 7.80853C5.39535 7.63906 5.2205 7.18945 5.38997 6.8043L8.18361 0.455123C8.30528 0.178586 8.57886 6.89044e-05 8.88099 6.89044e-05ZM8.14894 4.31751H9.61303L8.88099 2.65377L8.14894 4.31751ZM9.60471 8.66615C9.92856 8.76179 10.1508 9.05918 10.1508 9.39685V15.2381C10.1508 15.6589 9.80971 16 9.38892 16C8.96813 16 8.62702 15.6589 8.62702 15.2381V11.9768L7.23495 14.1282C7.09962 14.3373 6.8706 14.4671 6.62164 14.4757C6.37268 14.4844 6.13523 14.3707 5.98576 14.1714L4.30958 11.9365V15.2381C4.30958 15.6589 3.96846 16 3.54767 16C3.12689 16 2.78577 15.6589 2.78577 15.2381V9.65082C2.78577 9.32288 2.99562 9.03172 3.30674 8.92802C3.61786 8.82431 3.96043 8.93132 4.1572 9.19368L6.5492 12.383L8.74925 8.98295C8.93269 8.69945 9.28086 8.57051 9.60471 8.66615ZM11.9286 8.63495C12.3494 8.63495 12.6905 8.97607 12.6905 9.39685V14.4762H14.7222C15.143 14.4762 15.4841 14.8173 15.4841 15.2381C15.4841 15.6589 15.143 16 14.7222 16H11.9286C11.5078 16 11.1667 15.6589 11.1667 15.2381V9.39685C11.1667 8.97607 11.5078 8.63495 11.9286 8.63495Z"
|
|
18
|
-
fill="#000000"
|
|
19
|
-
/>
|
|
20
|
-
</svg>
|
|
@@ -1,514 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { Button } from '../common';
|
|
2
|
-
import Password from '../Password.svelte';
|
|
3
|
-
import { SettingService } from '../../gen';
|
|
4
|
-
import { sendUserToast } from '../../toast';
|
|
5
|
-
import TextInput from '../text_input/TextInput.svelte';
|
|
6
|
-
import { Database, Lock, Server, ArrowLeft, ArrowRight } from 'lucide-svelte';
|
|
7
|
-
import { enterpriseLicense } from '../../stores';
|
|
8
|
-
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
9
|
-
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
10
|
-
import ConfirmationModal from '../common/confirmationModal/ConfirmationModal.svelte';
|
|
11
|
-
import EEOnly from '../EEOnly.svelte';
|
|
12
|
-
let { values, disabled = false } = $props();
|
|
13
|
-
// Initialize default values if not set
|
|
14
|
-
$effect(() => {
|
|
15
|
-
if (!$values['secret_backend']) {
|
|
16
|
-
$values['secret_backend'] = { type: 'Database' };
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
let selectedType = $derived($values['secret_backend']?.type ?? 'Database');
|
|
20
|
-
// Derive auth method from current config
|
|
21
|
-
// We check jwt_role === null because setAuthMethod explicitly sets jwt_role to null for token mode
|
|
22
|
-
// and sets token to null for jwt mode. This allows empty token values while still tracking the selection.
|
|
23
|
-
let authMethod = $derived.by(() => {
|
|
24
|
-
const config = $values['secret_backend'];
|
|
25
|
-
if (!config || config.type !== 'HashiCorpVault')
|
|
26
|
-
return 'jwt';
|
|
27
|
-
// If jwt_role is explicitly null, we're in token mode; otherwise jwt mode
|
|
28
|
-
return config.jwt_role === null ? 'token' : 'jwt';
|
|
29
|
-
});
|
|
30
|
-
let testingConnection = $state(false);
|
|
31
|
-
let migratingToVault = $state(false);
|
|
32
|
-
let migratingToDatabase = $state(false);
|
|
33
|
-
let migrateToVaultModalOpen = $state(false);
|
|
34
|
-
let migrateToDatabaseModalOpen = $state(false);
|
|
35
|
-
// Check if Vault option should be disabled (non-EE)
|
|
36
|
-
let vaultDisabled = $derived(!$enterpriseLicense);
|
|
37
|
-
function setBackendType(type) {
|
|
38
|
-
if (!type)
|
|
39
|
-
return;
|
|
40
|
-
// Prevent selecting Vault in non-EE
|
|
41
|
-
if (type === 'HashiCorpVault' && vaultDisabled) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (type === 'Database') {
|
|
45
|
-
$values['secret_backend'] = { type: 'Database' };
|
|
46
|
-
}
|
|
47
|
-
else if (type === 'HashiCorpVault') {
|
|
48
|
-
$values['secret_backend'] = {
|
|
49
|
-
type: 'HashiCorpVault',
|
|
50
|
-
address: $values['secret_backend']?.address ?? '',
|
|
51
|
-
mount_path: $values['secret_backend']?.mount_path ?? 'windmill',
|
|
52
|
-
jwt_role: $values['secret_backend']?.jwt_role ?? 'windmill-secrets',
|
|
53
|
-
namespace: $values['secret_backend']?.namespace ?? null,
|
|
54
|
-
token: $values['secret_backend']?.token ?? null
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function setAuthMethod(method) {
|
|
59
|
-
if (!method || !$values['secret_backend'] || $values['secret_backend'].type !== 'HashiCorpVault')
|
|
60
|
-
return;
|
|
61
|
-
if (method === 'token') {
|
|
62
|
-
// Clear JWT role when switching to token auth
|
|
63
|
-
$values['secret_backend'] = {
|
|
64
|
-
...$values['secret_backend'],
|
|
65
|
-
jwt_role: null,
|
|
66
|
-
token: $values['secret_backend'].token ?? ''
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
else if (method === 'jwt') {
|
|
70
|
-
// Clear token when switching to JWT auth
|
|
71
|
-
$values['secret_backend'] = {
|
|
72
|
-
...$values['secret_backend'],
|
|
73
|
-
token: null,
|
|
74
|
-
jwt_role: $values['secret_backend'].jwt_role ?? 'windmill-secrets'
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function getVaultSettings() {
|
|
79
|
-
return {
|
|
80
|
-
address: $values['secret_backend'].address,
|
|
81
|
-
mount_path: $values['secret_backend'].mount_path,
|
|
82
|
-
jwt_role: $values['secret_backend'].jwt_role,
|
|
83
|
-
namespace: $values['secret_backend'].namespace || undefined,
|
|
84
|
-
token: $values['secret_backend'].token || undefined
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
async function testVaultConnection() {
|
|
88
|
-
if (!$values['secret_backend'] || $values['secret_backend'].type !== 'HashiCorpVault') {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
testingConnection = true;
|
|
92
|
-
try {
|
|
93
|
-
await SettingService.testSecretBackend({
|
|
94
|
-
requestBody: getVaultSettings()
|
|
95
|
-
});
|
|
96
|
-
sendUserToast('Successfully connected to HashiCorp Vault');
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
sendUserToast('Failed to connect to Vault: ' + error.message, true);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
testingConnection = false;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
async function migrateSecretsToVault() {
|
|
106
|
-
if (!$values['secret_backend'] || $values['secret_backend'].type !== 'HashiCorpVault') {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
migratingToVault = true;
|
|
110
|
-
try {
|
|
111
|
-
const report = await SettingService.migrateSecretsToVault({
|
|
112
|
-
requestBody: getVaultSettings()
|
|
113
|
-
});
|
|
114
|
-
if (report.failed_count > 0) {
|
|
115
|
-
sendUserToast(`Migration completed with errors: ${report.migrated_count}/${report.total_secrets} secrets migrated, ${report.failed_count} failed`, true);
|
|
116
|
-
console.error('Migration failures:', report.failures);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
sendUserToast(`Successfully migrated ${report.migrated_count}/${report.total_secrets} secrets to Vault`);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
sendUserToast('Failed to migrate secrets to Vault: ' + error.message, true);
|
|
124
|
-
}
|
|
125
|
-
finally {
|
|
126
|
-
migratingToVault = false;
|
|
127
|
-
migrateToVaultModalOpen = false;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
async function migrateSecretsToDatabase() {
|
|
131
|
-
if (!$values['secret_backend'] || $values['secret_backend'].type !== 'HashiCorpVault') {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
migratingToDatabase = true;
|
|
135
|
-
try {
|
|
136
|
-
const report = await SettingService.migrateSecretsToDatabase({
|
|
137
|
-
requestBody: getVaultSettings()
|
|
138
|
-
});
|
|
139
|
-
if (report.failed_count > 0) {
|
|
140
|
-
sendUserToast(`Migration completed with errors: ${report.migrated_count}/${report.total_secrets} secrets migrated, ${report.failed_count} failed`, true);
|
|
141
|
-
console.error('Migration failures:', report.failures);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
sendUserToast(`Successfully migrated ${report.migrated_count}/${report.total_secrets} secrets to database`);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
sendUserToast('Failed to migrate secrets to database: ' + error.message, true);
|
|
149
|
-
}
|
|
150
|
-
finally {
|
|
151
|
-
migratingToDatabase = false;
|
|
152
|
-
migrateToDatabaseModalOpen = false;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
function isVaultConfigValid() {
|
|
156
|
-
if (!$values['secret_backend'] || $values['secret_backend'].type !== 'HashiCorpVault') {
|
|
157
|
-
return false;
|
|
158
|
-
}
|
|
159
|
-
const hasAddress = $values['secret_backend'].address?.trim() !== '';
|
|
160
|
-
const hasMountPath = $values['secret_backend'].mount_path?.trim() !== '';
|
|
161
|
-
const hasToken = $values['secret_backend'].token?.trim();
|
|
162
|
-
const hasJwtRole = $values['secret_backend'].jwt_role?.trim();
|
|
163
|
-
// Must have address and mount path, plus either token OR jwt_role (not both)
|
|
164
|
-
return hasAddress && hasMountPath && (hasToken || hasJwtRole);
|
|
165
|
-
}
|
|
166
|
-
// Get the base URL for JWKS endpoint instructions (from instance settings)
|
|
167
|
-
let baseUrl = $derived($values['base_url'] ?? 'https://your-windmill-instance.com');
|
|
168
|
-
</script>
|
|
169
|
-
|
|
170
|
-
<div class="space-y-6">
|
|
171
|
-
<!-- Backend Type Selector -->
|
|
172
|
-
<div class="flex flex-col gap-2">
|
|
173
|
-
<label class="block text-xs font-semibold text-emphasis">Backend Type</label>
|
|
174
|
-
<ToggleButtonGroup
|
|
175
|
-
selected={selectedType}
|
|
176
|
-
onSelected={(v) => setBackendType(v)}
|
|
177
|
-
>
|
|
178
|
-
{#snippet children({ item: toggleButton })}
|
|
179
|
-
<ToggleButton
|
|
180
|
-
value="Database"
|
|
181
|
-
label="Database"
|
|
182
|
-
tooltip="Store secrets encrypted in the database (default)"
|
|
183
|
-
item={toggleButton}
|
|
184
|
-
/>
|
|
185
|
-
<ToggleButton
|
|
186
|
-
value="HashiCorpVault"
|
|
187
|
-
label="HashiCorp Vault (Beta)"
|
|
188
|
-
tooltip={vaultDisabled
|
|
189
|
-
? 'HashiCorp Vault integration requires Enterprise Edition'
|
|
190
|
-
: 'Store secrets in HashiCorp Vault (Beta feature)'}
|
|
191
|
-
item={toggleButton}
|
|
192
|
-
disabled={vaultDisabled}
|
|
193
|
-
/>
|
|
194
|
-
{/snippet}
|
|
195
|
-
</ToggleButtonGroup>
|
|
196
|
-
{#if vaultDisabled}
|
|
197
|
-
<div class="flex items-center gap-1">
|
|
198
|
-
<EEOnly>HashiCorp Vault integration requires Enterprise Edition</EEOnly>
|
|
199
|
-
</div>
|
|
200
|
-
{/if}
|
|
201
|
-
</div>
|
|
202
|
-
|
|
203
|
-
{#if selectedType === 'Database'}
|
|
204
|
-
<div class="flex items-center gap-2 p-4 bg-surface-secondary rounded-lg">
|
|
205
|
-
<Database class="text-primary" size={20} />
|
|
206
|
-
<div>
|
|
207
|
-
<p class="text-sm font-medium text-emphasis">Database Storage (Default)</p>
|
|
208
|
-
<p class="text-xs text-secondary">
|
|
209
|
-
Secrets are encrypted using workspace-specific keys and stored in the PostgreSQL database.
|
|
210
|
-
</p>
|
|
211
|
-
</div>
|
|
212
|
-
</div>
|
|
213
|
-
{:else if selectedType === 'HashiCorpVault'}
|
|
214
|
-
<!-- Vault Configuration -->
|
|
215
|
-
<div class="space-y-4 p-4 border rounded-lg">
|
|
216
|
-
<div class="flex items-center gap-2 mb-4">
|
|
217
|
-
<Lock class="text-primary" size={20} />
|
|
218
|
-
<div>
|
|
219
|
-
<p class="text-sm font-medium text-emphasis">
|
|
220
|
-
HashiCorp Vault Configuration
|
|
221
|
-
<span
|
|
222
|
-
class="ml-2 px-1.5 py-0.5 text-2xs font-medium bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200 rounded"
|
|
223
|
-
>Beta</span
|
|
224
|
-
>
|
|
225
|
-
</p>
|
|
226
|
-
<p class="text-xs text-secondary">
|
|
227
|
-
Store secrets in an external HashiCorp Vault instance.
|
|
228
|
-
</p>
|
|
229
|
-
</div>
|
|
230
|
-
</div>
|
|
231
|
-
|
|
232
|
-
<div class="grid grid-cols-1 gap-4">
|
|
233
|
-
<div class="flex flex-col gap-1">
|
|
234
|
-
<label for="vault_address" class="block text-xs font-semibold text-emphasis"
|
|
235
|
-
>Vault Address</label
|
|
236
|
-
>
|
|
237
|
-
<TextInput
|
|
238
|
-
inputProps={{
|
|
239
|
-
type: 'text',
|
|
240
|
-
id: 'vault_address',
|
|
241
|
-
placeholder: 'https://vault.company.com:8200',
|
|
242
|
-
disabled: disabled
|
|
243
|
-
}}
|
|
244
|
-
bind:value={$values['secret_backend'].address}
|
|
245
|
-
/>
|
|
246
|
-
</div>
|
|
247
|
-
|
|
248
|
-
<div class="flex flex-col gap-1">
|
|
249
|
-
<label for="vault_mount_path" class="block text-xs font-semibold text-emphasis"
|
|
250
|
-
>KV Mount Path</label
|
|
251
|
-
>
|
|
252
|
-
<span class="text-2xs text-secondary">The KV v2 secrets engine mount path in Vault</span>
|
|
253
|
-
<TextInput
|
|
254
|
-
inputProps={{
|
|
255
|
-
type: 'text',
|
|
256
|
-
id: 'vault_mount_path',
|
|
257
|
-
placeholder: 'windmill',
|
|
258
|
-
disabled: disabled
|
|
259
|
-
}}
|
|
260
|
-
bind:value={$values['secret_backend'].mount_path}
|
|
261
|
-
/>
|
|
262
|
-
</div>
|
|
263
|
-
|
|
264
|
-
<!-- Authentication Method Toggle -->
|
|
265
|
-
<div class="flex flex-col gap-2">
|
|
266
|
-
<label class="block text-xs font-semibold text-emphasis">Authentication Method</label>
|
|
267
|
-
<ToggleButtonGroup
|
|
268
|
-
selected={authMethod}
|
|
269
|
-
onSelected={(v) => setAuthMethod(v)}
|
|
270
|
-
>
|
|
271
|
-
{#snippet children({ item: toggleButton })}
|
|
272
|
-
<ToggleButton
|
|
273
|
-
value="jwt"
|
|
274
|
-
label="JWT Auth"
|
|
275
|
-
tooltip="Authenticate using Windmill-signed JWTs (recommended for production)"
|
|
276
|
-
item={toggleButton}
|
|
277
|
-
{disabled}
|
|
278
|
-
/>
|
|
279
|
-
<ToggleButton
|
|
280
|
-
value="token"
|
|
281
|
-
label="Static Token"
|
|
282
|
-
tooltip="Use a static Vault token (for testing/development)"
|
|
283
|
-
item={toggleButton}
|
|
284
|
-
{disabled}
|
|
285
|
-
/>
|
|
286
|
-
{/snippet}
|
|
287
|
-
</ToggleButtonGroup>
|
|
288
|
-
</div>
|
|
289
|
-
|
|
290
|
-
{#if authMethod === 'token'}
|
|
291
|
-
<div class="flex flex-col gap-1 p-3 bg-surface-secondary rounded-lg">
|
|
292
|
-
<label for="vault_token" class="block text-xs font-semibold text-emphasis"
|
|
293
|
-
>Vault Token</label
|
|
294
|
-
>
|
|
295
|
-
<span class="text-2xs text-secondary"
|
|
296
|
-
>Static token for authentication. Recommended only for testing/development.</span
|
|
297
|
-
>
|
|
298
|
-
<Password bind:password={$values['secret_backend'].token} small {disabled} />
|
|
299
|
-
</div>
|
|
300
|
-
{:else}
|
|
301
|
-
<div class="flex flex-col gap-2 p-3 bg-surface-secondary rounded-lg">
|
|
302
|
-
<label for="vault_jwt_role" class="block text-xs font-semibold text-emphasis"
|
|
303
|
-
>JWT Auth Role</label
|
|
304
|
-
>
|
|
305
|
-
<span class="text-2xs text-secondary"
|
|
306
|
-
>The JWT authentication role configured in Vault.</span
|
|
307
|
-
>
|
|
308
|
-
<TextInput
|
|
309
|
-
inputProps={{
|
|
310
|
-
type: 'text',
|
|
311
|
-
id: 'vault_jwt_role',
|
|
312
|
-
placeholder: 'windmill-secrets',
|
|
313
|
-
disabled: disabled
|
|
314
|
-
}}
|
|
315
|
-
bind:value={$values['secret_backend'].jwt_role}
|
|
316
|
-
/>
|
|
317
|
-
|
|
318
|
-
<!-- Vault JWT Setup Instructions -->
|
|
319
|
-
<details class="mt-2">
|
|
320
|
-
<summary class="text-xs font-medium text-secondary cursor-pointer hover:text-primary"
|
|
321
|
-
>Vault JWT Setup Instructions</summary
|
|
322
|
-
>
|
|
323
|
-
<div class="mt-2 p-2 bg-surface rounded text-2xs text-secondary space-y-2">
|
|
324
|
-
<p>Configure Vault to accept JWTs from Windmill:</p>
|
|
325
|
-
<div class="bg-gray-100 dark:bg-gray-800 p-2 rounded font-mono text-2xs overflow-x-auto">
|
|
326
|
-
<pre># Enable JWT auth method
|
|
327
|
-
vault auth enable jwt
|
|
328
|
-
|
|
329
|
-
# Configure JWT auth with Windmill's JWKS endpoint
|
|
330
|
-
vault write auth/jwt/config \
|
|
331
|
-
jwks_url="{baseUrl}/.well-known/jwks.json" \
|
|
332
|
-
bound_issuer="{baseUrl}"
|
|
333
|
-
|
|
334
|
-
# Create a policy for Windmill secrets
|
|
335
|
-
vault policy write windmill-secrets - <<EOF
|
|
336
|
-
path "windmill/data/*" {
|
|
337
|
-
capabilities = ["create", "read", "update", "delete"]
|
|
338
|
-
}
|
|
339
|
-
path "windmill/metadata/*" {
|
|
340
|
-
capabilities = ["list", "delete"]
|
|
341
|
-
}
|
|
342
|
-
EOF
|
|
343
|
-
|
|
344
|
-
# Create the JWT role
|
|
345
|
-
vault write auth/jwt/role/windmill-secrets \
|
|
346
|
-
role_type="jwt" \
|
|
347
|
-
bound_audiences="{baseUrl}" \
|
|
348
|
-
user_claim="email" \
|
|
349
|
-
policies="windmill-secrets" \
|
|
350
|
-
ttl="1h"</pre>
|
|
351
|
-
</div>
|
|
352
|
-
<p class="text-yellow-600 dark:text-yellow-400">
|
|
353
|
-
Replace <code>windmill-secrets</code> with your role name if different.
|
|
354
|
-
</p>
|
|
355
|
-
</div>
|
|
356
|
-
</details>
|
|
357
|
-
</div>
|
|
358
|
-
{/if}
|
|
359
|
-
|
|
360
|
-
<div class="flex flex-col gap-1">
|
|
361
|
-
<label for="vault_namespace" class="block text-xs font-semibold text-emphasis"
|
|
362
|
-
>Namespace (optional)</label
|
|
363
|
-
>
|
|
364
|
-
<span class="text-2xs text-secondary"
|
|
365
|
-
>Vault Enterprise namespace (leave empty if not using namespaces)</span
|
|
366
|
-
>
|
|
367
|
-
<TextInput
|
|
368
|
-
inputProps={{
|
|
369
|
-
type: 'text',
|
|
370
|
-
id: 'vault_namespace',
|
|
371
|
-
placeholder: 'admin/my-namespace',
|
|
372
|
-
disabled: disabled
|
|
373
|
-
}}
|
|
374
|
-
bind:value={$values['secret_backend'].namespace}
|
|
375
|
-
/>
|
|
376
|
-
</div>
|
|
377
|
-
</div>
|
|
378
|
-
|
|
379
|
-
<!-- Action Buttons -->
|
|
380
|
-
<div class="flex flex-col gap-4 pt-4 border-t">
|
|
381
|
-
<div class="flex gap-2">
|
|
382
|
-
<Button
|
|
383
|
-
unifiedSize="md"
|
|
384
|
-
variant="accent"
|
|
385
|
-
onclick={testVaultConnection}
|
|
386
|
-
disabled={disabled || !isVaultConfigValid() || testingConnection}
|
|
387
|
-
loading={testingConnection}
|
|
388
|
-
startIcon={{ icon: Server }}
|
|
389
|
-
>
|
|
390
|
-
Test Connection
|
|
391
|
-
</Button>
|
|
392
|
-
</div>
|
|
393
|
-
|
|
394
|
-
<!-- Migration Section -->
|
|
395
|
-
<div class="flex flex-col gap-4 pt-4 border-t">
|
|
396
|
-
<label class="block text-xs font-semibold text-emphasis">Secret Migration</label>
|
|
397
|
-
<span class="text-2xs text-secondary">
|
|
398
|
-
Migrate secrets between the database and HashiCorp Vault. Original values are NOT
|
|
399
|
-
deleted to allow for rollback.
|
|
400
|
-
</span>
|
|
401
|
-
|
|
402
|
-
<div class="flex gap-4">
|
|
403
|
-
<!-- Database to Vault -->
|
|
404
|
-
<div class="flex-1 p-3 border rounded-lg">
|
|
405
|
-
<div class="flex items-center gap-2 mb-2">
|
|
406
|
-
<Database size={16} />
|
|
407
|
-
<ArrowRight size={16} />
|
|
408
|
-
<Lock size={16} />
|
|
409
|
-
</div>
|
|
410
|
-
<p class="text-xs font-medium mb-2">Database → Vault</p>
|
|
411
|
-
<p class="text-2xs text-secondary mb-3">
|
|
412
|
-
Decrypt secrets from database and store in Vault
|
|
413
|
-
</p>
|
|
414
|
-
<Button
|
|
415
|
-
unifiedSize="sm"
|
|
416
|
-
variant="default"
|
|
417
|
-
onclick={() => (migrateToVaultModalOpen = true)}
|
|
418
|
-
disabled={disabled || !isVaultConfigValid() || migratingToVault}
|
|
419
|
-
startIcon={{ icon: ArrowRight }}
|
|
420
|
-
>
|
|
421
|
-
Migrate to Vault
|
|
422
|
-
</Button>
|
|
423
|
-
</div>
|
|
424
|
-
|
|
425
|
-
<!-- Vault to Database -->
|
|
426
|
-
<div class="flex-1 p-3 border rounded-lg">
|
|
427
|
-
<div class="flex items-center gap-2 mb-2">
|
|
428
|
-
<Lock size={16} />
|
|
429
|
-
<ArrowLeft size={16} />
|
|
430
|
-
<Database size={16} />
|
|
431
|
-
</div>
|
|
432
|
-
<p class="text-xs font-medium mb-2">Vault → Database</p>
|
|
433
|
-
<p class="text-2xs text-secondary mb-3">
|
|
434
|
-
Read secrets from Vault and encrypt in database
|
|
435
|
-
</p>
|
|
436
|
-
<Button
|
|
437
|
-
unifiedSize="sm"
|
|
438
|
-
variant="default"
|
|
439
|
-
onclick={() => (migrateToDatabaseModalOpen = true)}
|
|
440
|
-
disabled={disabled || !isVaultConfigValid() || migratingToDatabase}
|
|
441
|
-
startIcon={{ icon: ArrowLeft }}
|
|
442
|
-
>
|
|
443
|
-
Migrate to Database
|
|
444
|
-
</Button>
|
|
445
|
-
</div>
|
|
446
|
-
</div>
|
|
447
|
-
</div>
|
|
448
|
-
</div>
|
|
449
|
-
</div>
|
|
450
|
-
{/if}
|
|
451
|
-
</div>
|
|
452
|
-
|
|
453
|
-
<!-- Migrate to Vault Modal -->
|
|
454
|
-
<ConfirmationModal
|
|
455
|
-
title="Migrate Secrets to Vault"
|
|
456
|
-
confirmationText="Migrate"
|
|
457
|
-
open={migrateToVaultModalOpen}
|
|
458
|
-
loading={migratingToVault}
|
|
459
|
-
type="reload"
|
|
460
|
-
onCanceled={() => {
|
|
461
|
-
migrateToVaultModalOpen = false
|
|
462
|
-
}}
|
|
463
|
-
onConfirmed={migrateSecretsToVault}
|
|
464
|
-
>
|
|
465
|
-
{#snippet children()}
|
|
466
|
-
<div class="flex flex-col gap-2">
|
|
467
|
-
<p>
|
|
468
|
-
This will migrate all existing secrets from the database to HashiCorp Vault. The process
|
|
469
|
-
will:
|
|
470
|
-
</p>
|
|
471
|
-
<ol class="list-decimal list-inside text-sm space-y-1">
|
|
472
|
-
<li>Read all encrypted secrets from the database</li>
|
|
473
|
-
<li>Decrypt them using the workspace encryption keys</li>
|
|
474
|
-
<li>Store them in HashiCorp Vault under the configured mount path</li>
|
|
475
|
-
</ol>
|
|
476
|
-
<p class="text-yellow-600 dark:text-yellow-400 text-sm mt-2">
|
|
477
|
-
Note: Database values are NOT deleted automatically. You can manually clear them after
|
|
478
|
-
verifying the migration was successful.
|
|
479
|
-
</p>
|
|
480
|
-
<p>Are you sure you want to proceed?</p>
|
|
481
|
-
</div>
|
|
482
|
-
{/snippet}
|
|
483
|
-
</ConfirmationModal>
|
|
484
|
-
|
|
485
|
-
<!-- Migrate to Database Modal -->
|
|
486
|
-
<ConfirmationModal
|
|
487
|
-
title="Migrate Secrets to Database"
|
|
488
|
-
confirmationText="Migrate"
|
|
489
|
-
open={migrateToDatabaseModalOpen}
|
|
490
|
-
loading={migratingToDatabase}
|
|
491
|
-
type="reload"
|
|
492
|
-
onCanceled={() => {
|
|
493
|
-
migrateToDatabaseModalOpen = false
|
|
494
|
-
}}
|
|
495
|
-
onConfirmed={migrateSecretsToDatabase}
|
|
496
|
-
>
|
|
497
|
-
{#snippet children()}
|
|
498
|
-
<div class="flex flex-col gap-2">
|
|
499
|
-
<p>
|
|
500
|
-
This will migrate all secrets from HashiCorp Vault back to the database. The process will:
|
|
501
|
-
</p>
|
|
502
|
-
<ol class="list-decimal list-inside text-sm space-y-1">
|
|
503
|
-
<li>List all secrets in Vault for each workspace</li>
|
|
504
|
-
<li>Read each secret value from Vault</li>
|
|
505
|
-
<li>Encrypt and store them in the database</li>
|
|
506
|
-
</ol>
|
|
507
|
-
<p class="text-yellow-600 dark:text-yellow-400 text-sm mt-2">
|
|
508
|
-
Note: Vault values are NOT deleted automatically. Only secrets that already exist in the
|
|
509
|
-
database will be updated.
|
|
510
|
-
</p>
|
|
511
|
-
<p>Are you sure you want to proceed?</p>
|
|
512
|
-
</div>
|
|
513
|
-
{/snippet}
|
|
514
|
-
</ConfirmationModal>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Writable } from 'svelte/store';
|
|
2
|
-
interface Props {
|
|
3
|
-
values: Writable<Record<string, any>>;
|
|
4
|
-
disabled?: boolean;
|
|
5
|
-
}
|
|
6
|
-
declare const SecretBackendConfig: import("svelte").Component<Props, {}, "">;
|
|
7
|
-
type SecretBackendConfig = ReturnType<typeof SecretBackendConfig>;
|
|
8
|
-
export default SecretBackendConfig;
|