windmill-components 1.623.2 → 1.655.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/appPolicy/myFunction.es.js +1337 -0
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
- package/dist/sharedUtils/base.d.ts +1 -0
- package/dist/sharedUtils/cloud.d.ts +1 -0
- package/dist/sharedUtils/common.d.ts +108 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +84 -0
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +22 -0
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5305 -0
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
- package/dist/sharedUtils/components/apps/inputType.d.ts +176 -0
- package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +19 -0
- package/dist/sharedUtils/components/apps/types.d.ts +274 -0
- package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
- package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
- package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
- package/dist/sharedUtils/components/common/index.d.ts +24 -0
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
- package/dist/sharedUtils/components/dbTypes.d.ts +11 -0
- package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
- package/dist/sharedUtils/components/ducklake.d.ts +1 -0
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
- package/dist/sharedUtils/components/triggers/utils.d.ts +81 -0
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
- package/dist/sharedUtils/components/triggers.d.ts +20 -0
- package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
- package/dist/sharedUtils/gen/core/request.d.ts +29 -0
- package/dist/sharedUtils/gen/index.d.ts +6 -0
- package/dist/sharedUtils/gen/schemas.gen.d.ts +6192 -0
- package/dist/sharedUtils/gen/services.gen.d.ts +5741 -0
- package/dist/sharedUtils/gen/types.gen.d.ts +20152 -0
- package/dist/sharedUtils/history.svelte.d.ts +9 -0
- package/dist/sharedUtils/hub.d.ts +48 -0
- package/dist/sharedUtils/jsr.json +6 -0
- package/dist/sharedUtils/lib.d.ts +5 -0
- package/dist/sharedUtils/lib.es.js +1426 -0
- package/dist/sharedUtils/package.json +12 -0
- package/dist/sharedUtils/schema.d.ts +3 -0
- package/dist/sharedUtils/stores.d.ts +96 -0
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +49 -0
- package/dist/sharedUtils/toast.d.ts +8 -0
- package/dist/sharedUtils/utils.d.ts +250 -0
- package/package/aiStore.d.ts +1 -0
- package/package/aiStore.js +3 -0
- package/package/assets/app.css +32 -13
- package/package/components/AIAgentLogViewer.svelte +2 -2
- package/package/components/AIAgentLogViewer.svelte.d.ts +1 -0
- package/package/components/AIProviderPicker.svelte +20 -80
- package/package/components/AIProviderPicker.svelte.d.ts +2 -7
- package/package/components/AddUser.svelte +2 -2
- package/package/components/ApiConnectForm.svelte +14 -1
- package/package/components/ApiConnectForm.svelte.d.ts +1 -1
- package/package/components/AppConnectDrawer.svelte +18 -15
- package/package/components/AppConnectDrawer.svelte.d.ts +5 -5
- package/package/components/AppConnectInner.svelte +2 -0
- package/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/AppConnectLightweightResourcePicker.svelte +3 -3
- package/package/components/AppWrapper.svelte +3 -2
- package/package/components/ArgInput.svelte +16 -5
- package/package/components/ArgInput.svelte.d.ts +3 -4
- package/package/components/Auth0Setting.svelte +6 -2
- package/package/components/AuthSettings.svelte +68 -39
- package/package/components/AuthSettings.svelte.d.ts +3 -1
- package/package/components/AutheliaSetting.svelte +12 -8
- package/package/components/AutheliaSetting.svelte.d.ts +4 -18
- package/package/components/AuthentikSetting.svelte +13 -9
- package/package/components/AuthentikSetting.svelte.d.ts +4 -18
- package/package/components/AutoscalingConfigEditor.svelte +2 -1
- package/package/components/AutoscalingConfigEditor.svelte.d.ts +1 -0
- package/package/components/AzureOauthSettings.svelte +23 -23
- package/package/components/AzureOauthSettings.svelte.d.ts +4 -18
- package/package/components/Badge.svelte +2 -4
- package/package/components/Badge.svelte.d.ts +5 -27
- package/package/components/CenteredModal.svelte +14 -4
- package/package/components/CenteredModal.svelte.d.ts +1 -0
- package/package/components/ChangeInstanceUsernameInner.svelte +5 -8
- package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +8 -7
- package/package/components/ChannelSelector.svelte +19 -15
- package/package/components/CompareWorkspaces.svelte +634 -694
- package/package/components/ConcurrentJobsChart.svelte +1 -1
- package/package/components/ConnectionSection.svelte +69 -73
- package/package/components/ContextualVariableEditor.svelte +8 -8
- package/package/components/ContextualVariableEditor.svelte.d.ts +3 -6
- package/package/components/CustomOauth.svelte +19 -23
- package/package/components/CustomOauth.svelte.d.ts +4 -26
- package/package/components/CustomPopover.svelte +3 -2
- package/package/components/CustomSso.svelte +27 -32
- package/package/components/CustomSso.svelte.d.ts +4 -27
- package/package/components/DBManager.svelte +15 -4
- package/package/components/DBManager.svelte.d.ts +2 -0
- package/package/components/DBManagerContent.svelte +5 -0
- package/package/components/DBManagerContent.svelte.d.ts +1 -0
- package/package/components/DBManagerDrawer.svelte +26 -42
- package/package/components/DBManagerDrawer.svelte.d.ts +3 -5
- package/package/components/DBSchemaExplorer.svelte +3 -3
- package/package/components/DBTableEditor.svelte +6 -6
- package/package/components/DatatablePicker.svelte +27 -0
- package/package/components/DatatablePicker.svelte.d.ts +13 -0
- package/package/components/DateInput.svelte +1 -0
- package/package/components/DateTimeInput.svelte +4 -3
- package/package/components/DedicatedWorkersSelector.svelte +39 -42
- package/package/components/DefaultScripts.svelte +3 -5
- package/package/components/DefaultScripts.svelte.d.ts +6 -20
- package/package/components/DefaultScriptsInner.svelte +4 -4
- package/package/components/DefaultScriptsInner.svelte.d.ts +4 -18
- package/package/components/DeployToSetting.svelte +183 -123
- package/package/components/DeployToSetting.svelte.d.ts +19 -28
- package/package/components/DeployWorkspace.svelte +224 -510
- package/package/components/DeployWorkspace.svelte.d.ts +2 -1
- package/package/components/DeployWorkspaceDrawer.svelte +10 -8
- package/package/components/DeployWorkspaceDrawer.svelte.d.ts +3 -20
- package/package/components/Description.svelte +6 -4
- package/package/components/Description.svelte.d.ts +6 -28
- package/package/components/Dev.svelte +16 -14
- package/package/components/DiffEditor.svelte +9 -8
- package/package/components/DiffEditor.svelte.d.ts +2 -6
- package/package/components/DisplayResult.svelte +2 -2
- package/package/components/DisplayResult.svelte.d.ts +1 -1
- package/package/components/DropdownMenu.svelte +39 -0
- package/package/components/DropdownMenu.svelte.d.ts +14 -0
- package/package/components/DropdownSubmenuItem.svelte +69 -0
- package/package/components/DropdownSubmenuItem.svelte.d.ts +10 -0
- package/package/components/DropdownV2.svelte +4 -4
- package/package/components/DropdownV2.svelte.d.ts +2 -2
- package/package/components/DropdownV2Inner.svelte +45 -34
- package/package/components/DropdownV2Inner.svelte.d.ts +2 -1
- package/package/components/DucklakePicker.svelte +0 -5
- package/package/components/DurationMs.svelte +1 -3
- package/package/components/DurationMs.svelte.d.ts +4 -18
- package/package/components/DynamicInput.svelte +2 -2
- package/package/components/EEOnly.svelte +4 -14
- package/package/components/EEOnly.svelte.d.ts +0 -1
- package/package/components/EditableSchemaForm.svelte +4 -4
- package/package/components/Editor.svelte +11 -13
- package/package/components/Editor.svelte.d.ts +1 -0
- package/package/components/EditorBar.svelte +4 -6
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/ErrorOrRecoveryHandler.svelte +62 -53
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +1 -0
- package/package/components/ExecutionDuration.svelte +12 -20
- package/package/components/ExecutionDuration.svelte.d.ts +14 -24
- package/package/components/ExploreAssetButton.svelte +14 -8
- package/package/components/ExploreAssetButton.svelte.d.ts +0 -2
- package/package/components/FakeMonacoPlaceHolder.svelte +3 -2
- package/package/components/FieldHeader.svelte +6 -16
- package/package/components/FieldHeader.svelte.d.ts +5 -20
- package/package/components/FileExplorer.svelte +249 -0
- package/package/components/FileExplorer.svelte.d.ts +21 -0
- package/package/components/FilesetEditor.svelte +126 -0
- package/package/components/FilesetEditor.svelte.d.ts +6 -0
- package/package/components/FilterSearchbar.svelte +661 -0
- package/package/components/FilterSearchbar.svelte.d.ts +87 -0
- package/package/components/FlowBuilder.svelte +161 -98
- package/package/components/FlowGraphViewer.svelte +1 -10
- package/package/components/FlowGraphViewer.svelte.d.ts +17 -16
- package/package/components/FlowGraphViewerStep.svelte +52 -38
- package/package/components/FlowGraphViewerStep.svelte.d.ts +4 -18
- package/package/components/FlowHistoryJobPicker.svelte +6 -3
- package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
- package/package/components/FlowInputViewer.svelte +1 -1
- package/package/components/FlowInputViewer.svelte.d.ts +4 -18
- package/package/components/FlowJobResult.svelte +31 -23
- package/package/components/FlowJobResult.svelte.d.ts +0 -1
- package/package/components/FlowLogRow.svelte +1 -1
- package/package/components/FlowLogViewer.svelte +14 -7
- package/package/components/FlowLogViewerWrapper.svelte +2 -2
- package/package/components/FlowPlugConnect.svelte +1 -3
- package/package/components/FlowPlugConnect.svelte.d.ts +7 -6
- package/package/components/FlowPreviewContent.svelte +174 -53
- package/package/components/FlowPreviewContent.svelte.d.ts +5 -0
- package/package/components/FlowRestartButton.svelte +47 -47
- package/package/components/FlowRestartButton.svelte.d.ts +2 -0
- package/package/components/FlowStatusViewer.svelte +8 -9
- package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +463 -367
- package/package/components/FlowStatusViewerInner.svelte.d.ts +2 -2
- package/package/components/FlowStatusWaitingForEvents.svelte +11 -10
- package/package/components/FlowViewer.svelte +6 -4
- package/package/components/FlowWrapper.svelte +5 -4
- package/package/components/FolderEditor.svelte +9 -7
- package/package/components/FolderPicker.svelte +195 -65
- package/package/components/FolderPicker.svelte.d.ts +2 -0
- package/package/components/FolderUsageInfo.svelte +7 -6
- package/package/components/FolderUsageInfo.svelte.d.ts +5 -19
- package/package/components/GraphqlSchemaViewer.svelte +3 -3
- package/package/components/GraphqlSchemaViewer.svelte.d.ts +5 -19
- package/package/components/GroupEditor.svelte +22 -10
- package/package/components/HistoricInputs.svelte +3 -4
- package/package/components/IconedResourceType.svelte +8 -2
- package/package/components/IconedResourceType.svelte.d.ts +2 -0
- package/package/components/IdEditorInput.svelte +3 -2
- package/package/components/InputError.svelte +9 -0
- package/package/components/InputError.svelte.d.ts +6 -0
- package/package/components/InputTransformForm.svelte +48 -39
- package/package/components/InputTransformForm.svelte.d.ts +1 -0
- package/package/components/InputTransformSchemaForm.svelte +2 -1
- package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -1
- package/package/components/InputTransformsViewer.svelte +39 -22
- package/package/components/InputTransformsViewer.svelte.d.ts +4 -18
- package/package/components/InstanceGroupEditor.svelte +28 -23
- package/package/components/InstanceGroupEditor.svelte.d.ts +5 -4
- package/package/components/InstanceNameEditor.svelte +22 -20
- package/package/components/InstanceNameEditor.svelte.d.ts +9 -9
- package/package/components/InstanceSetting.svelte +156 -374
- package/package/components/InstanceSetting.svelte.d.ts +1 -0
- package/package/components/InstanceSettings.svelte +818 -193
- package/package/components/InstanceSettings.svelte.d.ts +17 -2
- package/package/components/IntegerInput.svelte +58 -0
- package/package/components/IntegerInput.svelte.d.ts +14 -0
- package/package/components/InviteGlobalUser.svelte +28 -28
- package/package/components/InviteGlobalUser.svelte.d.ts +6 -3
- package/package/components/JobArgs.svelte +14 -10
- package/package/components/JobLoader.svelte +57 -5
- package/package/components/JobLoader.svelte.d.ts +2 -2
- package/package/components/JobStatus.svelte +29 -26
- package/package/components/JobStatus.svelte.d.ts +1 -0
- package/package/components/KanidmSetting.svelte +18 -14
- package/package/components/KanidmSetting.svelte.d.ts +4 -18
- package/package/components/KeycloakSetting.svelte +21 -11
- package/package/components/KeycloakSetting.svelte.d.ts +4 -18
- package/package/components/LogId.svelte +5 -2
- package/package/components/LogId.svelte.d.ts +4 -18
- package/package/components/LogSnippetViewer.svelte +5 -5
- package/package/components/LogSnippetViewer.svelte.d.ts +5 -20
- package/package/components/LogViewer.svelte +2 -2
- package/package/components/Login.svelte +9 -3
- package/package/components/ManualPopover.svelte +4 -1
- package/package/components/MapResult.svelte +33 -33
- package/package/components/MapResult.svelte.d.ts +13 -26
- package/package/components/MemoryFootprintViewer.svelte +8 -6
- package/package/components/MemoryFootprintViewer.svelte.d.ts +4 -18
- package/package/components/ModulePreview.svelte.d.ts +1 -1
- package/package/components/ModuleStatus.svelte +6 -8
- package/package/components/ModuleStatus.svelte.d.ts +5 -19
- package/package/components/ModuleTest.svelte +6 -6
- package/package/components/ModuleTest.svelte.d.ts +1 -1
- package/package/components/MoveDrawer.svelte +47 -76
- package/package/components/MoveDrawer.svelte.d.ts +4 -6
- package/package/components/NextcloudSetting.svelte +3 -2
- package/package/components/NoDirectDeployAlert.svelte +31 -0
- package/package/components/NoDirectDeployAlert.svelte.d.ts +6 -0
- package/package/components/NumberTypeNarrowing.svelte +65 -67
- package/package/components/NumberTypeNarrowing.svelte.d.ts +2 -1
- package/package/components/OAuthSetting.svelte +63 -55
- package/package/components/OauthExtraParams.svelte +9 -4
- package/package/components/OauthExtraParams.svelte.d.ts +4 -18
- package/package/components/OauthScopes.svelte +9 -4
- package/package/components/OauthScopes.svelte.d.ts +4 -18
- package/package/components/ObjectResourceInput.svelte +10 -3
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ObjectStoreConfigSettings.svelte +150 -55
- package/package/components/ObjectStoreConfigSettings.svelte.d.ts +34 -44
- package/package/components/OktaSetting.svelte +3 -2
- package/package/components/OnBehalfOfSelector.svelte +191 -0
- package/package/components/OnBehalfOfSelector.svelte.d.ts +21 -0
- package/package/components/PageHeader.svelte +4 -8
- package/package/components/PageHeader.svelte.d.ts +5 -27
- package/package/components/ParentWorkspaceProtectionAlert.svelte +48 -0
- package/package/components/ParentWorkspaceProtectionAlert.svelte.d.ts +7 -0
- package/package/components/ParqetCsvTableRenderer.svelte +12 -12
- package/package/components/ParqetCsvTableRenderer.svelte.d.ts +4 -18
- package/package/components/Path.svelte +40 -28
- package/package/components/Path.svelte.d.ts +3 -0
- package/package/components/PermissionHistory.svelte +8 -6
- package/package/components/PersistentScriptDrawer.svelte +56 -50
- package/package/components/PersistentScriptDrawer.svelte.d.ts +3 -5
- package/package/components/PocketIdSetting.svelte +3 -2
- package/package/components/Popover.svelte +2 -2
- package/package/components/PrefixedInput.svelte +2 -2
- package/package/components/QueueMetricsDrawer.svelte +1 -1
- package/package/components/QueueMetricsDrawer.svelte.d.ts +3 -20
- package/package/components/QueueMetricsDrawerInner.svelte +14 -9
- package/package/components/QueueMetricsDrawerInner.svelte.d.ts +2 -17
- package/package/components/RadioButton.svelte +3 -8
- package/package/components/RadioButton.svelte.d.ts +13 -12
- package/package/components/Range.svelte +15 -18
- package/package/components/Range.svelte.d.ts +5 -21
- package/package/components/RepositorySelector.svelte +3 -2
- package/package/components/Required.svelte +4 -4
- package/package/components/Required.svelte.d.ts +6 -20
- package/package/components/ResourceEditor.svelte +28 -5
- package/package/components/ResourceEditor.svelte.d.ts +0 -1
- package/package/components/ResourceEditorDrawer.svelte +11 -16
- package/package/components/ResourceEditorDrawer.svelte.d.ts +3 -6
- package/package/components/ResourcePicker.svelte +34 -19
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RightClickPopover.svelte +37 -0
- package/package/components/RightClickPopover.svelte.d.ts +11 -0
- package/package/components/RunChart.svelte +2 -21
- package/package/components/RunChart.svelte.d.ts +0 -3
- package/package/components/RunForm.svelte +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -4
- package/package/components/RunFormAdvancedPopup.svelte.d.ts +4 -18
- package/package/components/RunsPage.svelte +554 -557
- package/package/components/S3FilePicker.svelte +2 -1
- package/package/components/S3FilePicker.svelte.d.ts +1 -0
- package/package/components/S3FilePickerInner.svelte +19 -7
- package/package/components/S3FilePickerInner.svelte.d.ts +1 -0
- package/package/components/S3ObjectPicker.svelte +4 -5
- package/package/components/S3ObjectPicker.svelte.d.ts +6 -6
- package/package/components/SaveButton.svelte +80 -0
- package/package/components/SaveButton.svelte.d.ts +12 -0
- package/package/components/SaveInputsButton.svelte +3 -8
- package/package/components/SaveInputsButton.svelte.d.ts +10 -9
- package/package/components/SavedInputsPickerViewer.svelte +21 -22
- package/package/components/SavedInputsPickerViewer.svelte.d.ts +10 -10
- package/package/components/SavedInputsV2.svelte +1 -3
- package/package/components/SchemaEditorProperty.svelte +1 -1
- package/package/components/SchemaEditorProperty.svelte.d.ts +4 -18
- package/package/components/SchemaForm.svelte.d.ts +1 -1
- package/package/components/SchemaFormWithArgPicker.svelte +34 -30
- package/package/components/SchemaFormWithArgPicker.svelte.d.ts +12 -21
- package/package/components/SchemaViewer.svelte +56 -53
- package/package/components/ScriptBuilder.svelte +123 -40
- package/package/components/ScriptEditor.svelte +97 -39
- package/package/components/ScriptEditor.svelte.d.ts +2 -2
- package/package/components/ScriptPicker.svelte +1 -1
- package/package/components/ScriptWrapper.svelte +3 -2
- package/package/components/Scrollable.svelte +10 -10
- package/package/components/Scrollable.svelte.d.ts +6 -29
- package/package/components/SearchItems.svelte +1 -1
- package/package/components/Section.svelte +2 -2
- package/package/components/ServiceLogsInner.svelte +36 -91
- package/package/components/ShareModal.svelte +15 -8
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +1 -1
- package/package/components/Slider.svelte +2 -5
- package/package/components/Slider.svelte.d.ts +6 -28
- package/package/components/Star.svelte +8 -22
- package/package/components/Star.svelte.d.ts +4 -4
- package/package/components/StringTypeNarrowing.svelte +4 -2
- package/package/components/Subsection.svelte +3 -2
- package/package/components/Summary.svelte +1 -2
- package/package/components/Summary.svelte.d.ts +4 -18
- package/package/components/SummaryPathDisplay.svelte +177 -0
- package/package/components/SummaryPathDisplay.svelte.d.ts +10 -0
- package/package/components/SupabaseConnect.svelte +20 -17
- package/package/components/SupabaseConnect.svelte.d.ts +3 -5
- package/package/components/SuperadminSettings.svelte +187 -4
- package/package/components/SuperadminSettings.svelte.d.ts +4 -1
- package/package/components/SuperadminSettingsInner.svelte +310 -195
- package/package/components/SuperadminSettingsInner.svelte.d.ts +12 -1
- package/package/components/TableCustom.svelte +6 -8
- package/package/components/TableCustom.svelte.d.ts +10 -10
- package/package/components/TaggedTextInput.svelte +449 -0
- package/package/components/TaggedTextInput.svelte.d.ts +28 -0
- package/package/components/TeamSelector.svelte +20 -14
- package/package/components/TemplateEditor.svelte +1 -7
- package/package/components/TestConnection.svelte +2 -5
- package/package/components/TestConnection.svelte.d.ts +4 -18
- package/package/components/TimelineBar.svelte +5 -2
- package/package/components/Toast.svelte +69 -51
- package/package/components/Toast.svelte.d.ts +2 -2
- package/package/components/Toggle.svelte +2 -2
- package/package/components/Tooltip.svelte +4 -17
- package/package/components/Tooltip.svelte.d.ts +6 -1
- package/package/components/TooltipInner.svelte +8 -14
- package/package/components/TooltipInner.svelte.d.ts +6 -28
- package/package/components/Uptodate.svelte +4 -3
- package/package/components/Uptodate.svelte.d.ts +2 -17
- package/package/components/Urlize.svelte +2 -2
- package/package/components/Urlize.svelte.d.ts +4 -18
- package/package/components/UserSettings.svelte +2 -2
- package/package/components/UserSettings.svelte.d.ts +1 -0
- package/package/components/Version.svelte +1 -1
- package/package/components/Version.svelte.d.ts +2 -17
- package/package/components/WhitelistIp.svelte +1 -1
- package/package/components/WhitelistIp.svelte.d.ts +2 -17
- package/package/components/WorkerGroup.svelte +321 -197
- package/package/components/WorkerGroup.svelte.d.ts +2 -0
- package/package/components/WorkerRepl.svelte +1 -2
- package/package/components/WorkflowTimeline.svelte +10 -14
- package/package/components/WorkflowTimeline.svelte.d.ts +4 -18
- package/package/components/WorkspaceDependenciesEditor.svelte +34 -18
- package/package/components/WorkspaceDeployLayout.svelte +107 -0
- package/package/components/WorkspaceDeployLayout.svelte.d.ts +31 -0
- package/package/components/ZitadelSetting.svelte +12 -8
- package/package/components/ZitadelSetting.svelte.d.ts +4 -18
- package/package/components/aiProviderStorage.d.ts +5 -0
- package/package/components/aiProviderStorage.js +50 -0
- package/package/components/apps/components/GroupWrapper.svelte +5 -2
- package/package/components/apps/components/buttons/AppButton.svelte +6 -5
- package/package/components/apps/components/buttons/AppForm.svelte +5 -5
- package/package/components/apps/components/buttons/AppFormButton.svelte +5 -5
- package/package/components/apps/components/buttons/AppSchemaForm.svelte +5 -4
- package/package/components/apps/components/display/AppAccordionList.svelte +4 -4
- package/package/components/apps/components/display/AppAlert.svelte +4 -4
- package/package/components/apps/components/display/AppBarChart.svelte +4 -4
- package/package/components/apps/components/display/AppCarouselList.svelte +5 -5
- package/package/components/apps/components/display/AppChartJs.svelte +4 -4
- package/package/components/apps/components/display/AppChartJsV2.svelte +4 -4
- package/package/components/apps/components/display/AppChat.svelte +5 -5
- package/package/components/apps/components/display/AppCustomComponent.svelte +3 -3
- package/package/components/apps/components/display/AppDisplayComponent.svelte +5 -5
- package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +3 -3
- package/package/components/apps/components/display/AppDownload.svelte +3 -3
- package/package/components/apps/components/display/AppHtml.svelte +4 -3
- package/package/components/apps/components/display/AppIcon.svelte +4 -4
- package/package/components/apps/components/display/AppImage.svelte +4 -4
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +4 -4
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +3 -3
- package/package/components/apps/components/display/AppJobProgressBar.svelte +3 -3
- package/package/components/apps/components/display/AppMap.svelte +6 -4
- package/package/components/apps/components/display/AppMarkdown.svelte +5 -4
- package/package/components/apps/components/display/AppMenu.svelte +4 -3
- package/package/components/apps/components/display/AppNavbar.svelte +4 -4
- package/package/components/apps/components/display/AppPdf.svelte +3 -3
- package/package/components/apps/components/display/AppPieChart.svelte +3 -3
- package/package/components/apps/components/display/AppRecomputeAll.svelte +3 -3
- package/package/components/apps/components/display/AppScatterChart.svelte +3 -3
- package/package/components/apps/components/display/AppStatCard.svelte +3 -3
- package/package/components/apps/components/display/AppText.svelte +10 -8
- package/package/components/apps/components/display/AppTimeseries.svelte +3 -3
- package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
- package/package/components/apps/components/display/PlotlyHtml.svelte +3 -2
- package/package/components/apps/components/display/PlotlyHtmlV2.svelte +3 -2
- package/package/components/apps/components/display/ResolveNavbarItemPath.svelte +3 -2
- package/package/components/apps/components/display/VegaLiteHtml.svelte +3 -2
- package/package/components/apps/components/display/charts/AppAgCharts.svelte +3 -3
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +26 -15
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +3 -3
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
- package/package/components/apps/components/display/dbtable/metadata.d.ts +1 -0
- package/package/components/apps/components/display/dbtable/metadata.js +10 -4
- package/package/components/apps/components/display/dbtable/queries/count.js +3 -1
- package/package/components/apps/components/display/dbtable/queries/delete.js +3 -1
- package/package/components/apps/components/display/dbtable/queries/insert.js +3 -1
- package/package/components/apps/components/display/dbtable/queries/select.js +15 -1
- package/package/components/apps/components/display/dbtable/queries/update.js +3 -1
- package/package/components/apps/components/display/dbtable/utils.d.ts +3 -3
- package/package/components/apps/components/display/dbtable/utils.js +3 -3
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +14 -4
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +1 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +4 -3
- package/package/components/apps/components/display/table/AppAggridTable.svelte +11 -3
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +12 -6
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppTable.svelte +4 -4
- package/package/components/apps/components/display/table/theme/windmill-theme.css +8 -7
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -2
- package/package/components/apps/components/helpers/InputValue.svelte +3 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -2
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/components/helpers/eval.js +5 -2
- package/package/components/apps/components/inputs/AppCheckbox.svelte +6 -6
- package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +6 -5
- package/package/components/apps/components/inputs/AppDateInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppDateSelect.svelte +4 -4
- package/package/components/apps/components/inputs/AppDateSliderInput.svelte +5 -4
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppFileInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +5 -4
- package/package/components/apps/components/inputs/AppNumberInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppQuillEditor.svelte +3 -2
- package/package/components/apps/components/inputs/AppRangeInput.svelte +5 -4
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppSelect.svelte +8 -7
- package/package/components/apps/components/inputs/AppSelectStep.svelte +5 -4
- package/package/components/apps/components/inputs/AppSelectTab.svelte +4 -4
- package/package/components/apps/components/inputs/AppSliderInputs.svelte +5 -4
- package/package/components/apps/components/inputs/AppTextInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppTimeInput.svelte +4 -4
- package/package/components/apps/components/inputs/AppUserResource.svelte +4 -4
- package/package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +5 -4
- package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +3 -1
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +5 -5
- package/package/components/apps/components/layout/AppContainer.svelte +3 -3
- package/package/components/apps/components/layout/AppDecisionTree.svelte +5 -5
- package/package/components/apps/components/layout/AppDivider.svelte +3 -3
- package/package/components/apps/components/layout/AppDrawer.svelte +7 -6
- package/package/components/apps/components/layout/AppList.svelte +5 -5
- package/package/components/apps/components/layout/AppModal.svelte +9 -7
- package/package/components/apps/components/layout/AppModal.svelte.d.ts +1 -0
- package/package/components/apps/components/layout/AppSplitpanes.svelte +8 -6
- package/package/components/apps/components/layout/AppStepper.svelte +6 -6
- package/package/components/apps/components/layout/AppTabs.svelte +8 -8
- package/package/components/apps/components/layout/ListWrapper.svelte +6 -2
- package/package/components/apps/components/layout/RowWrapper.svelte +6 -2
- package/package/components/apps/editor/AppEditor.svelte +11 -11
- package/package/components/apps/editor/AppEditorHeader.svelte +21 -4
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +41 -1
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -1
- package/package/components/apps/editor/AppExportButton.svelte +4 -4
- package/package/components/apps/editor/AppExportButton.svelte.d.ts +3 -20
- package/package/components/apps/editor/AppInputs.svelte +1 -1
- package/package/components/apps/editor/AppInputs.svelte.d.ts +2 -17
- package/package/components/apps/editor/AppJsonEditor.svelte +5 -5
- package/package/components/apps/editor/AppJsonEditor.svelte.d.ts +3 -7
- package/package/components/apps/editor/AppPreview.svelte +17 -16
- package/package/components/apps/editor/ComponentHeader.svelte +1 -1
- package/package/components/apps/editor/DecisionTreeDebug.svelte +4 -4
- package/package/components/apps/editor/GridEditor.svelte +1 -0
- package/package/components/apps/editor/GridViewer.svelte +3 -3
- package/package/components/apps/editor/RecomputeAllComponents.svelte +13 -8
- package/package/components/apps/editor/RecomputeAllComponents.svelte.d.ts +2 -17
- package/package/components/apps/editor/SubGridEditor.svelte +4 -2
- package/package/components/apps/editor/appPolicy.js +6 -5
- package/package/components/apps/editor/appUtils.d.ts +1 -1
- package/package/components/apps/editor/commonAppUtils.d.ts +1 -1
- package/package/components/apps/editor/commonAppUtils.js +1 -1
- package/package/components/apps/editor/component/Component.svelte +2 -2
- package/package/components/apps/editor/component/components.d.ts +19 -2
- package/package/components/apps/editor/component/components.js +43 -39
- package/package/components/apps/editor/componentsPanel/CssHelperPanel.svelte +10 -7
- package/package/components/apps/editor/componentsPanel/CssHelperPanel.svelte.d.ts +1 -1
- package/package/components/apps/editor/componentsPanel/CssProperty.svelte +3 -1
- package/package/components/apps/editor/componentsPanel/CustomComponentsList.svelte +7 -7
- package/package/components/apps/editor/componentsPanel/CustomComponentsList.svelte.d.ts +1 -1
- package/package/components/apps/editor/componentsPanel/NameEditor.svelte +2 -2
- package/package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +3 -4
- package/package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte +3 -3
- package/package/components/apps/editor/componentsPanel/ThemeList.svelte +5 -5
- package/package/components/apps/editor/componentsPanel/ThemeList.svelte.d.ts +1 -1
- package/package/components/apps/editor/componentsPanel/ThemeNameEditor.svelte +2 -2
- package/package/components/apps/editor/contextPanel/ComponentOutput.svelte +2 -2
- package/package/components/apps/editor/contextPanel/DebugPanel.svelte +4 -4
- package/package/components/apps/editor/contextPanel/DebugPanel.svelte.d.ts +2 -17
- package/package/components/apps/editor/contextPanel/components/Output.svelte +6 -1
- package/package/components/apps/editor/contextPanel/components/Output.svelte.d.ts +1 -0
- package/package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +14 -2
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ComponentControl.svelte +3 -2
- package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +6 -6
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +4 -4
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -2
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/StylePanel.svelte +66 -29
- package/package/components/apps/editor/settingsPanel/StylePanel.svelte.d.ts +2 -17
- package/package/components/apps/editor/settingsPanel/common/PanelSection.svelte +3 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +10 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +6 -5
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +3 -2
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/svelte-grid/Grid.svelte +4 -4
- package/package/components/apps/svelte-grid/MoveResize.svelte +5 -5
- package/package/components/assets/AssetButtons.svelte +33 -33
- package/package/components/assets/AssetButtons.svelte.d.ts +1 -4
- package/package/components/assets/AssetColumnBadges.svelte +37 -0
- package/package/components/assets/AssetColumnBadges.svelte.d.ts +10 -0
- package/package/components/assets/AssetsDropdownButton.svelte +16 -16
- package/package/components/assets/AssetsUsageDrawer.svelte +23 -19
- package/package/components/assets/JobAssetsViewer.svelte +12 -8
- package/package/components/assets/VolumeDetailDrawer.svelte +101 -0
- package/package/components/assets/VolumeDetailDrawer.svelte.d.ts +9 -0
- package/package/components/assets/VolumesDrawer.svelte +191 -0
- package/package/components/assets/VolumesDrawer.svelte.d.ts +8 -0
- package/package/components/assets/assetsFilter.d.ts +54 -0
- package/package/components/assets/assetsFilter.js +47 -0
- package/package/components/assets/lib.d.ts +3 -2
- package/package/components/assets/lib.js +12 -1
- package/package/components/auditLogs/AuditLogsFilters.svelte +28 -2
- package/package/components/chartjs-wrappers/Chart.svelte +4 -4
- package/package/components/common/FileProgressBar.svelte +9 -7
- package/package/components/common/FileProgressBar.svelte.d.ts +5 -27
- package/package/components/common/InlineCalendarInput.svelte +584 -0
- package/package/components/common/InlineCalendarInput.svelte.d.ts +31 -0
- package/package/components/common/alert/Alert.svelte +2 -8
- package/package/components/common/alert/Notification.svelte +2 -2
- package/package/components/common/alert/Notification.svelte.d.ts +4 -18
- package/package/components/common/alert/model.d.ts +1 -0
- package/package/components/common/alert/model.js +7 -0
- package/package/components/common/badge/Badge.svelte +7 -3
- package/package/components/common/badge/Badge.svelte.d.ts +1 -0
- package/package/components/common/breadcrumb/Breadcrumb.svelte +10 -14
- package/package/components/common/breadcrumb/Breadcrumb.svelte.d.ts +8 -23
- package/package/components/common/button/AnimatedButton.svelte +3 -9
- package/package/components/common/button/AnimatedButton.svelte.d.ts +5 -27
- package/package/components/common/button/AnimatedButtonInner.svelte +6 -12
- package/package/components/common/button/AnimatedButtonInner.svelte.d.ts +5 -27
- package/package/components/common/button/Button.svelte +5 -5
- package/package/components/common/button/PulseButton.svelte +15 -19
- package/package/components/common/button/PulseButton.svelte.d.ts +10 -48
- package/package/components/common/button/RefreshButton.svelte +3 -2
- package/package/components/common/button/RefreshButton.svelte.d.ts +1 -1
- package/package/components/common/button/RoundIconButton.svelte +5 -5
- package/package/components/common/button/RoundIconButton.svelte.d.ts +6 -28
- package/package/components/common/button/UndoRedo.svelte +1 -2
- package/package/components/common/button/UndoRedo.svelte.d.ts +6 -5
- package/package/components/common/calendarPicker/CalendarPicker.svelte +44 -43
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +11 -11
- package/package/components/common/clearableInput/ClearableInput.svelte +28 -27
- package/package/components/common/clearableInput/ClearableInput.svelte.d.ts +11 -37
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
- package/package/components/common/confirmationModal/DraftTriggersConfirmationModal.svelte +2 -2
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +3 -3
- package/package/components/common/contextmenu/ContextMenu.svelte +14 -4
- package/package/components/common/contextmenu/ContextMenu.svelte.d.ts +2 -0
- package/package/components/common/contextmenu/contextMenuStyles.d.ts +4 -0
- package/package/components/common/contextmenu/contextMenuStyles.js +4 -0
- package/package/components/common/drawer/Disposable.svelte +3 -3
- package/package/components/common/drawer/DrawerContent.svelte +1 -1
- package/package/components/common/fileInput/FileInput.svelte +16 -30
- package/package/components/common/fileInput/FileInput.svelte.d.ts +24 -32
- package/package/components/common/fileUpload/FileUploadModal.svelte +2 -4
- package/package/components/common/fileUpload/FileUploadModal.svelte.d.ts +7 -6
- package/package/components/common/kbd/Kbd.svelte +4 -3
- package/package/components/common/languageIcons/LanguageIcon.svelte +21 -4
- package/package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
- package/package/components/common/layout/ListElement.svelte +5 -1
- package/package/components/common/layout/ListElement.svelte.d.ts +5 -25
- package/package/components/common/menu/MenuItem.svelte +9 -4
- package/package/components/common/menu/MenuItem.svelte.d.ts +5 -29
- package/package/components/common/menu/ResolveOpen.svelte +6 -3
- package/package/components/common/menu/ResolveOpen.svelte.d.ts +8 -4
- package/package/components/common/modal/AlwaysMountedModal.svelte +11 -15
- package/package/components/common/modal/AlwaysMountedModal.svelte.d.ts +8 -32
- package/package/components/common/modal/Modal2.svelte +12 -20
- package/package/components/common/modal/Modal2.svelte.d.ts +10 -36
- package/package/components/common/popup/PopupV2.svelte +3 -2
- package/package/components/common/seconds/SecondsInput.svelte +158 -67
- package/package/components/common/seconds/SecondsInput.svelte.d.ts +9 -21
- package/package/components/common/sidebar/SidebarNavigation.svelte +50 -0
- package/package/components/common/sidebar/SidebarNavigation.svelte.d.ts +25 -0
- package/package/components/common/stepper/Stepper.svelte +4 -9
- package/package/components/common/stepper/Stepper.svelte.d.ts +10 -9
- package/package/components/common/table/AppRow.svelte +25 -20
- package/package/components/common/table/AppRow.svelte.d.ts +2 -2
- package/package/components/common/table/FlowRow.svelte +25 -20
- package/package/components/common/table/FlowRow.svelte.d.ts +2 -2
- package/package/components/common/table/RawAppRow.svelte +5 -82
- package/package/components/common/table/RawAppRow.svelte.d.ts +2 -23
- package/package/components/common/table/Row.svelte +7 -6
- package/package/components/common/table/Row.svelte.d.ts +2 -3
- package/package/components/common/table/RowIcon.svelte +40 -11
- package/package/components/common/table/RowIcon.svelte.d.ts +6 -18
- package/package/components/common/table/ScriptRow.svelte +43 -36
- package/package/components/common/table/ScriptRow.svelte.d.ts +2 -2
- package/package/components/common/table/Table.svelte +5 -1
- package/package/components/common/table/Table.svelte.d.ts +5 -25
- package/package/components/common/tabs/Tabs.svelte +2 -2
- package/package/components/common/tabs/TabsV2.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +0 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +10 -5
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
- package/package/components/copilot/FlowCopilotInputsModal.svelte +14 -13
- package/package/components/copilot/FlowCopilotInputsModal.svelte.d.ts +6 -5
- package/package/components/copilot/MetadataGen.svelte +5 -5
- package/package/components/copilot/RegexGen.svelte +87 -80
- package/package/components/copilot/RegexGen.svelte.d.ts +1 -1
- package/package/components/copilot/ResourceGen.svelte +157 -0
- package/package/components/copilot/ResourceGen.svelte.d.ts +12 -0
- package/package/components/copilot/ScriptFix.svelte +37 -33
- package/package/components/copilot/ScriptGen.svelte +1 -1
- package/package/components/copilot/TestAIKey.svelte +1 -1
- package/package/components/copilot/chat/AIChat.svelte +1 -1
- package/package/components/copilot/chat/AIChatDisplay.svelte +52 -48
- package/package/components/copilot/chat/AIChatInput.svelte +64 -45
- package/package/components/copilot/chat/AIChatManager.svelte.js +19 -19
- package/package/components/copilot/chat/AssistantMessage.svelte +1 -1
- package/package/components/copilot/chat/AssistantMessage.svelte.d.ts +4 -18
- package/package/components/copilot/chat/AvailableContextList.svelte +215 -12
- package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +1 -0
- package/package/components/copilot/chat/ChatMode.svelte +37 -33
- package/package/components/copilot/chat/ContextElementBadge.svelte +6 -8
- package/package/components/copilot/chat/ContextTextarea.svelte +15 -2
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +1 -1
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +4 -2
- package/package/components/copilot/chat/app/core.js +7 -86
- package/package/components/copilot/chat/context.js +4 -1
- package/package/components/copilot/chat/flow/AIChangesWarningModal.svelte +8 -11
- package/package/components/copilot/chat/flow/core.js +193 -61
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +2 -2
- package/package/components/copilot/chat/flow/openFlowZod.js +6 -8
- package/package/components/copilot/chat/navigator/core.d.ts +2 -2
- package/package/components/copilot/chat/navigator/core.js +11 -2
- package/package/components/copilot/chat/script/core.js +4 -1
- package/package/components/copilot/chat/shared.d.ts +53 -1
- package/package/components/copilot/chat/shared.js +227 -1
- package/package/components/copilot/lib.d.ts +3 -2
- package/package/components/copilot/lib.js +67 -29
- package/package/components/custom_ui.d.ts +3 -0
- package/package/components/dbManagerDrawerModel.svelte.d.ts +13 -0
- package/package/components/dbManagerDrawerModel.svelte.js +182 -0
- package/package/components/dedicated_worker.d.ts +7 -0
- package/package/components/dedicated_worker.js +36 -0
- package/package/components/details/ClipboardPanel.svelte +5 -8
- package/package/components/details/ClipboardPanel.svelte.d.ts +8 -22
- package/package/components/details/DetailPageHeader.svelte +8 -23
- package/package/components/details/DetailPageHeader.svelte.d.ts +1 -0
- package/package/components/details/DetailPageLayout.svelte +1 -1
- package/package/components/details/ErrorHandlerToggleButton.svelte +1 -4
- package/package/components/details/ErrorHandlerToggleButton.svelte.d.ts +5 -19
- package/package/components/details/ErrorHandlerToggleButtonV2.svelte +2 -6
- package/package/components/details/ErrorHandlerToggleButtonV2.svelte.d.ts +6 -20
- package/package/components/details/createAppFromScript.d.ts +136 -16
- package/package/components/details/createAppFromScript.js +13 -12
- package/package/components/diffEditorTypes.d.ts +6 -0
- package/package/components/diffEditorTypes.js +1 -0
- package/package/components/flows/CreateActionsApp.svelte +70 -96
- package/package/components/flows/CreateActionsFlow.svelte +28 -28
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowAssetsHandler.svelte +4 -6
- package/package/components/flows/FlowModuleIcon.svelte +4 -3
- package/package/components/flows/FlowProgressBar.svelte +37 -1
- package/package/components/flows/FlowProgressBar.svelte.d.ts +3 -0
- package/package/components/flows/agentToolUtils.d.ts +18 -0
- package/package/components/flows/agentToolUtils.js +47 -0
- package/package/components/flows/common/FlowCardHeader.svelte +11 -11
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -1
- package/package/components/flows/content/DynamicInputHelpBox.svelte.d.ts +2 -17
- package/package/components/flows/content/FlowEditorPanel.svelte +14 -1
- package/package/components/flows/content/FlowEnvironmentVariables.svelte +131 -34
- package/package/components/flows/content/FlowFailureModule.svelte +2 -3
- package/package/components/flows/content/FlowFailureModule.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowInputs.svelte +20 -2
- package/package/components/flows/content/FlowInputsQuick.svelte +21 -0
- package/package/components/flows/content/FlowLoop.svelte +5 -6
- package/package/components/flows/content/FlowModuleCache.svelte +1 -3
- package/package/components/flows/content/FlowModuleComponent.svelte +24 -8
- package/package/components/flows/content/FlowModuleMockTransitionMessage.svelte +13 -13
- package/package/components/flows/content/FlowModuleMockTransitionMessage.svelte.d.ts +2 -17
- package/package/components/flows/content/FlowModuleScript.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
- package/package/components/flows/content/FlowPathViewer.svelte +7 -5
- package/package/components/flows/content/FlowPathViewer.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowPreprocessorModule.svelte +2 -3
- package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowResult.svelte +77 -25
- package/package/components/flows/content/FlowRetries.svelte +1 -1
- package/package/components/flows/content/FlowSelectionPanel.svelte +34 -10
- package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +5 -0
- package/package/components/flows/content/FlowSettings.svelte +70 -25
- package/package/components/flows/content/FlowWhileLoop.svelte +2 -1
- package/package/components/flows/content/GenAiQuick.svelte +6 -6
- package/package/components/flows/content/GenAiQuick.svelte.d.ts +7 -6
- package/package/components/flows/content/ScriptEditorDrawer.svelte +5 -4
- package/package/components/flows/content/SuspendDrawer.svelte +4 -4
- package/package/components/flows/content/SuspendDrawer.svelte.d.ts +4 -18
- package/package/components/flows/flowModuleNextId.d.ts +1 -0
- package/package/components/flows/flowModuleNextId.js +11 -0
- package/package/components/flows/flowState.js +6 -0
- package/package/components/flows/flowStateUtils.svelte.d.ts +1 -1
- package/package/components/flows/flowStateUtils.svelte.js +4 -1
- package/package/components/flows/flowStore.svelte.d.ts +1 -1
- package/package/components/flows/flowStore.svelte.js +4 -2
- package/package/components/flows/header/FlowPreviewButtons.svelte +12 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +6 -2
- package/package/components/flows/map/FlowJobsMenu.svelte +4 -0
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +2 -2
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +65 -54
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +2 -2
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +11 -9
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +163 -23
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +5 -2
- package/package/components/flows/map/InsertModuleInner.svelte +53 -21
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +22 -9
- package/package/components/flows/map/MapItem.svelte.d.ts +4 -3
- package/package/components/flows/map/VirtualItem.svelte +5 -2
- package/package/components/flows/missingInputWarnings.js +7 -0
- package/package/components/flows/multiSelectUtils.d.ts +26 -0
- package/package/components/flows/multiSelectUtils.js +122 -0
- package/package/components/flows/pickers/FlowScriptPicker.svelte +3 -0
- package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +5 -6
- package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +9 -8
- package/package/components/flows/pickers/FlowToplevelNode.svelte +2 -3
- package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +6 -5
- package/package/components/flows/pickers/PickHubApp.svelte +21 -2
- package/package/components/flows/pickers/PickHubFlow.svelte +21 -2
- package/package/components/flows/pickers/PickHubScript.svelte +12 -1
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +18 -9
- package/package/components/flows/pickers/TopLevelNode.svelte +2 -0
- package/package/components/flows/previousResults.d.ts +1 -1
- package/package/components/flows/propPicker/JobPickerLight.svelte +1 -1
- package/package/components/flows/propPicker/JobPickerLight.svelte.d.ts +4 -18
- package/package/components/flows/propPicker/OutputBadge.svelte +2 -2
- package/package/components/flows/propPicker/OutputBadge.svelte.d.ts +6 -20
- package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +6 -12
- package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +3 -3
- package/package/components/flows/scheduleUtils.js +2 -2
- package/package/components/flows/types.d.ts +3 -6
- package/package/components/flows/utils.svelte.js +5 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +74 -41
- package/package/components/git_sync/GitSyncModalManager.svelte +1 -1
- package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +2 -17
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +57 -38
- package/package/components/git_sync/GitSyncSection.svelte +24 -27
- package/package/components/graph/DragCoordinator.svelte +63 -0
- package/package/components/graph/DragCoordinator.svelte.d.ts +12 -0
- package/package/components/graph/DragGhost.svelte +138 -0
- package/package/components/graph/DragGhost.svelte.d.ts +10 -0
- package/package/components/graph/FlowGraphV2.svelte +86 -62
- package/package/components/graph/FlowGraphV2.svelte.d.ts +9 -3
- package/package/components/graph/MiniFlowGraph.svelte +82 -0
- package/package/components/graph/MiniFlowGraph.svelte.d.ts +11 -0
- package/package/components/graph/MoveHandleButton.svelte +47 -0
- package/package/components/graph/MoveHandleButton.svelte.d.ts +13 -0
- package/package/components/graph/SelectionBoundingBox.svelte +72 -20
- package/package/components/graph/SelectionBoundingBox.svelte.d.ts +7 -0
- package/package/components/graph/SelectionTool.svelte +3 -2
- package/package/components/graph/compoundLayout.d.ts +28 -0
- package/package/components/graph/compoundLayout.js +436 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +12 -23
- package/package/components/graph/graphBuilder.svelte.js +27 -41
- package/package/components/graph/graphContext.d.ts +2 -0
- package/package/components/graph/model.d.ts +1 -1
- package/package/components/graph/moveManager.svelte.d.ts +74 -0
- package/package/components/graph/moveManager.svelte.js +176 -0
- package/package/components/graph/noteEditor.svelte.d.ts +0 -1
- package/package/components/graph/noteManager.svelte.d.ts +4 -0
- package/package/components/graph/noteManager.svelte.js +6 -0
- package/package/components/graph/noteUtils.svelte.d.ts +0 -1
- package/package/components/graph/noteUtils.svelte.js +0 -2
- package/package/components/graph/renderers/edges/BaseEdge.svelte +65 -24
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +0 -1
- package/package/components/graph/renderers/edges/HiddenBaseEdge.svelte +1 -1
- package/package/components/graph/renderers/edges/HiddenBaseEdge.svelte.d.ts +4 -18
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +7 -5
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +51 -36
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +18 -14
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +50 -9
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +13 -0
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/NodeWrapper.svelte +21 -7
- package/package/components/graph/renderers/nodes/NodeWrapper.svelte.d.ts +4 -1
- package/package/components/graph/renderers/nodes/NoteNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/SubflowBound.svelte +1 -1
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
- package/package/components/graph/renderers/triggers/TriggerButton.svelte +6 -4
- package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +5 -29
- package/package/components/graph/renderers/triggers/TriggerCount.svelte +1 -1
- package/package/components/graph/renderers/triggers/TriggerCount.svelte.d.ts +4 -18
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +7 -8
- package/package/components/graph/selectionUtils.svelte.d.ts +1 -0
- package/package/components/graph/selectionUtils.svelte.js +11 -1
- package/package/components/graph/util.d.ts +1 -4
- package/package/components/graph/util.js +3 -6
- package/package/components/graph/wacToFlow.d.ts +4 -0
- package/package/components/graph/wacToFlow.js +14 -0
- package/package/components/home/FlowIcon.svelte +2 -2
- package/package/components/home/FlowIcon.svelte.d.ts +5 -19
- package/package/components/home/Item.svelte +9 -15
- package/package/components/home/Item.svelte.d.ts +8 -7
- package/package/components/home/ItemsList.svelte +7 -13
- package/package/components/home/ItemsList.svelte.d.ts +1 -0
- package/package/components/home/ListFiltersQuick.svelte +2 -4
- package/package/components/home/ListFiltersQuick.svelte.d.ts +10 -9
- package/package/components/icons/AssetGenericIcon.svelte +3 -1
- package/package/components/icons/ClaudeIcon.svelte +20 -0
- package/package/components/icons/ClaudeIcon.svelte.d.ts +7 -0
- package/package/components/icons/GoogleCalendarIcon.svelte +41 -0
- package/package/components/icons/GoogleCalendarIcon.svelte.d.ts +7 -0
- package/package/components/icons/GoogleDriveIcon.svelte +30 -0
- package/package/components/icons/GoogleDriveIcon.svelte.d.ts +7 -0
- package/package/components/icons/GoogleIcon.svelte +15 -6
- package/package/components/icons/GoogleIcon.svelte.d.ts +5 -2
- package/package/components/icons/MSSqlServerIcon.svelte +111 -47
- package/package/components/icons/RubyIcon.svelte +2 -2
- package/package/components/icons/WindmillIcon2.svelte +0 -1
- package/package/components/instanceSettings/IndexerJobIndexSettings.svelte +94 -0
- package/package/components/instanceSettings/IndexerJobIndexSettings.svelte.d.ts +9 -0
- package/package/components/instanceSettings/IndexerLogIndexSettings.svelte +67 -0
- package/package/components/instanceSettings/IndexerLogIndexSettings.svelte.d.ts +9 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +242 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte.d.ts +9 -0
- package/package/components/instanceSettings/SecretBackendConfig.svelte +15 -16
- package/package/components/instanceSettings/SettingCard.svelte +47 -0
- package/package/components/instanceSettings/SettingCard.svelte.d.ts +19 -0
- package/package/components/instanceSettings/SettingsSearchInput.svelte +66 -0
- package/package/components/instanceSettings/SettingsSearchInput.svelte.d.ts +9 -0
- package/package/components/instanceSettings.d.ts +52 -0
- package/package/components/instanceSettings.js +446 -64
- package/package/components/meltComponents/MeltButton.svelte +5 -10
- package/package/components/meltComponents/MeltButton.svelte.d.ts +12 -35
- package/package/components/meltComponents/Menu.svelte +6 -6
- package/package/components/meltComponents/Menu.svelte.d.ts +2 -2
- package/package/components/meltComponents/MenuItem.svelte +1 -0
- package/package/components/meltComponents/Menubar.svelte +3 -2
- package/package/components/meltComponents/Menubar.svelte.d.ts +7 -0
- package/package/components/meltComponents/Popover.svelte +50 -65
- package/package/components/meltComponents/Popover.svelte.d.ts +40 -42
- package/package/components/meltComponents/SideBarTab.svelte +3 -2
- package/package/components/meltComponents/Tooltip.svelte +15 -20
- package/package/components/meltComponents/Tooltip.svelte.d.ts +16 -38
- package/package/components/moveRenameManager.d.ts +21 -0
- package/package/components/moveRenameManager.js +61 -0
- package/package/components/progressBar/ProgressBar.svelte +69 -27
- package/package/components/progressBar/ProgressBar.svelte.d.ts +7 -0
- package/package/components/prop_picker.d.ts +0 -3
- package/package/components/propertyPicker/ObjectViewer.svelte +253 -165
- package/package/components/propertyPicker/ObjectViewerWrapper.svelte +16 -27
- package/package/components/propertyPicker/ObjectViewerWrapper.svelte.d.ts +16 -15
- package/package/components/propertyPicker/PropPicker.svelte +49 -96
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +11 -11
- package/package/components/propertyPicker/PropPickerResult.svelte +1 -5
- package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +9 -8
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +40 -36
- package/package/components/raw_apps/FileTreeNode.svelte +3 -2
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +3 -2
- package/package/components/raw_apps/RawAppEditor.svelte +20 -16
- package/package/components/raw_apps/RawAppEditor.svelte.d.ts +4 -4
- package/package/components/raw_apps/RawAppEditorHeader.svelte +87 -8
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -1
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +1 -2
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +41 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +4 -4
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppSidebar.svelte +32 -284
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -1
- package/package/components/raw_apps/RunnableRow.svelte +88 -34
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +4 -0
- package/package/components/raw_apps/fileTreeUtils.js +2 -3
- package/package/components/raw_apps/utils.js +6 -1
- package/package/components/recording/FlowRecordingReplay.svelte +210 -0
- package/package/components/recording/FlowRecordingReplay.svelte.d.ts +7 -0
- package/package/components/recording/ScriptRecordingReplay.svelte +210 -0
- package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +7 -0
- package/package/components/recording/flowRecording.svelte.d.ts +22 -0
- package/package/components/recording/flowRecording.svelte.js +205 -0
- package/package/components/recording/scriptRecording.svelte.d.ts +9 -0
- package/package/components/recording/scriptRecording.svelte.js +88 -0
- package/package/components/recording/types.d.ts +39 -0
- package/package/components/recording/types.js +1 -0
- package/package/components/resources/resourcesFilter.d.ts +74 -0
- package/package/components/resources/resourcesFilter.js +65 -0
- package/package/components/runs/BatchReRunOptionsPane.svelte +130 -121
- package/package/components/runs/BatchReRunOptionsPane.svelte.d.ts +3 -2
- package/package/components/runs/FlowExecutionStatus.svelte +30 -0
- package/package/components/runs/FlowExecutionStatus.svelte.d.ts +15 -0
- package/package/components/runs/JobDetailFieldConfig.d.ts +47 -0
- package/package/components/runs/JobDetailFieldConfig.js +433 -0
- package/package/components/runs/JobDetailHeader.svelte +551 -0
- package/package/components/runs/JobDetailHeader.svelte.d.ts +17 -0
- package/package/components/runs/JobRunsPreview.svelte +182 -219
- package/package/components/runs/JobRunsPreview.svelte.d.ts +0 -1
- package/package/components/runs/JobStatusIcon.svelte +47 -0
- package/package/components/runs/JobStatusIcon.svelte.d.ts +9 -0
- package/package/components/runs/MobileFilters.svelte +15 -10
- package/package/components/runs/MobileFilters.svelte.d.ts +4 -18
- package/package/components/runs/PreprocessedArgsDisplay.svelte +2 -10
- package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +4 -18
- package/package/components/runs/QueuePopover.svelte +2 -2
- package/package/components/runs/QueuePopover.svelte.d.ts +4 -18
- package/package/components/runs/RunBadges.svelte +40 -35
- package/package/components/runs/RunBadges.svelte.d.ts +2 -1
- package/package/components/runs/RunRow.svelte +24 -64
- package/package/components/runs/RunRow.svelte.d.ts +1 -2
- package/package/components/runs/RunsTable.svelte +317 -131
- package/package/components/runs/RunsTable.svelte.d.ts +5 -3
- package/package/components/runs/TimeframeSelect.svelte +189 -0
- package/package/components/runs/TimeframeSelect.svelte.d.ts +44 -0
- package/package/components/runs/runsFilter.d.ts +217 -0
- package/package/components/runs/runsFilter.js +198 -0
- package/package/components/runs/useJobsLoader.svelte.d.ts +13 -8
- package/package/components/runs/useJobsLoader.svelte.js +214 -75
- package/package/components/schedules/schedulesFilter.d.ts +69 -0
- package/package/components/schedules/schedulesFilter.js +64 -0
- package/package/components/schema/AddProperty.svelte +1 -1
- package/package/components/schema/AddProperty.svelte.d.ts +5 -6
- package/package/components/schema/AddPropertyForm.svelte +1 -1
- package/package/components/schema/AddPropertyForm.svelte.d.ts +1 -1
- package/package/components/schema/EditableSchemaSdkWrapper.svelte +3 -2
- package/package/components/schema/EditableSchemaWrapper.svelte +43 -22
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +1 -5
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +1 -0
- package/package/components/schema/RunningJobSchemaPicker.svelte +32 -31
- package/package/components/schema/RunningJobSchemaPicker.svelte.d.ts +8 -7
- package/package/components/schema/SchemaPickerRow.svelte +3 -3
- package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
- package/package/components/scriptEditor/LogPanel.svelte +11 -2
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/scripts/CreateActionsScript.svelte +0 -1
- package/package/components/search/GlobalSearchModal.svelte +1 -8
- package/package/components/search/QuickMenuItem.svelte +2 -2
- package/package/components/search/RunsSearch.svelte +5 -1
- package/package/components/select/GenericDropdown.svelte +116 -0
- package/package/components/select/GenericDropdown.svelte.d.ts +37 -0
- package/package/components/select/MultiSelect.svelte +1 -0
- package/package/components/select/Select.svelte +18 -4
- package/package/components/select/Select.svelte.d.ts +2 -1
- package/package/components/select/SelectDropdown.svelte +77 -156
- package/package/components/select/SelectDropdown.svelte.d.ts +4 -1
- package/package/components/settings/ChangeWorkspaceColor.svelte +7 -8
- package/package/components/settings/ChangeWorkspaceId.svelte +18 -15
- package/package/components/settings/ChangeWorkspaceId.svelte.d.ts +4 -18
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -8
- package/package/components/settings/CreateToken.svelte +8 -20
- package/package/components/settings/PremiumInfo.svelte +302 -158
- package/package/components/settings/PremiumInfo.svelte.d.ts +4 -18
- package/package/components/settings/SettingsPageHeader.svelte +22 -0
- package/package/components/settings/SettingsPageHeader.svelte.d.ts +10 -0
- package/package/components/settings/TokensTable.svelte +74 -14
- package/package/components/settings/WorkspaceUserSettings.svelte +13 -24
- package/package/components/sidebar/CriticalAlertModal.svelte +33 -30
- package/package/components/sidebar/CriticalAlertModal.svelte.d.ts +4 -18
- package/package/components/sidebar/CriticalAlertModalInner.svelte +28 -22
- package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +5 -20
- package/package/components/sidebar/CriticalAlertTable.svelte +4 -13
- package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +4 -18
- package/package/components/sidebar/DarkModeToggle.svelte +4 -5
- package/package/components/sidebar/DarkModeToggle.svelte.d.ts +5 -20
- package/package/components/sidebar/FavoriteMenu.svelte +101 -20
- package/package/components/sidebar/FavoriteMenu.svelte.d.ts +29 -1
- package/package/components/sidebar/MenuButton.svelte +12 -9
- package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
- package/package/components/sidebar/MenuLink.svelte +4 -3
- package/package/components/sidebar/MultiplayerMenu.svelte +12 -7
- package/package/components/sidebar/MultiplayerMenu.svelte.d.ts +2 -17
- package/package/components/sidebar/OperatorMenu.svelte +3 -1
- package/package/components/sidebar/OperatorMenu.svelte.d.ts +6 -1
- package/package/components/sidebar/SideBarNotification.svelte +1 -2
- package/package/components/sidebar/SideBarNotification.svelte.d.ts +4 -18
- package/package/components/sidebar/SidebarContent.svelte +6 -6
- package/package/components/sidebar/WorkspaceMenu.svelte +7 -6
- package/package/components/splitPanes/AnimatedPane.svelte +2 -2
- package/package/components/splitPanes/SplitPanesWrapper.svelte +11 -15
- package/package/components/splitPanes/SplitPanesWrapper.svelte.d.ts +12 -28
- package/package/components/sqlTypeService.d.ts +2 -2
- package/package/components/sqlTypeService.js +4 -8
- package/package/components/table/AutoDataTable.svelte +2 -2
- package/package/components/table/Cell.svelte +2 -2
- package/package/components/table/DataTable.svelte +1 -1
- package/package/components/table/DownloadCsv.svelte +1 -2
- package/package/components/table/DownloadCsv.svelte.d.ts +4 -18
- package/package/components/table/Head.svelte +6 -2
- package/package/components/table/Head.svelte.d.ts +6 -27
- package/package/components/table/Row.svelte +6 -10
- package/package/components/table/Row.svelte.d.ts +11 -18
- package/package/components/toast.js +1 -2
- package/package/components/triggers/AddTriggersButton.svelte +11 -0
- package/package/components/triggers/CaptureIcon.svelte +1 -2
- package/package/components/triggers/CaptureIcon.svelte.d.ts +5 -19
- package/package/components/triggers/TestTriggerConnection.svelte +1 -4
- package/package/components/triggers/TestTriggerConnection.svelte.d.ts +6 -21
- package/package/components/triggers/TriggerAdvancedBadges.svelte +16 -0
- package/package/components/triggers/TriggerAdvancedBadges.svelte.d.ts +12 -0
- package/package/components/triggers/TriggerEditorToolbar.svelte +11 -9
- package/package/components/triggers/TriggerFilters.svelte +71 -0
- package/package/components/triggers/TriggerFilters.svelte.d.ts +10 -0
- package/package/components/triggers/TriggerTokens.svelte +8 -7
- package/package/components/triggers/TriggerTokens.svelte.d.ts +6 -21
- package/package/components/triggers/TriggersEditor.svelte +31 -11
- package/package/components/triggers/TriggersWrapper.svelte +10 -0
- package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +7 -2
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +9 -2
- package/package/components/triggers/http/RouteCapture.svelte +1 -1
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
- package/package/components/triggers/http/RouteEditorInner.svelte +11 -2
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +124 -3
- package/package/components/triggers/kafka/KafkaTriggersConfigSection.svelte +1 -0
- package/package/components/triggers/kafka/utils.js +3 -0
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +12 -3
- package/package/components/triggers/native/NativeTriggerEditor.svelte +22 -17
- package/package/components/triggers/native/NativeTriggerTable.svelte +16 -0
- package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte +112 -0
- package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte.d.ts +8 -0
- package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte +323 -0
- package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte.d.ts +8 -0
- package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte +116 -0
- package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte.d.ts +12 -0
- package/package/components/triggers/native/utils.d.ts +0 -1
- package/package/components/triggers/native/utils.js +15 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +7 -2
- package/package/components/triggers/postgres/CheckPostgresRequirement.svelte +2 -4
- package/package/components/triggers/postgres/CheckPostgresRequirement.svelte.d.ts +4 -18
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +10 -4
- package/package/components/triggers/postgres/PublicationPicker.svelte +9 -12
- package/package/components/triggers/postgres/PublicationPicker.svelte.d.ts +4 -18
- package/package/components/triggers/postgres/SlotPicker.svelte +4 -7
- package/package/components/triggers/postgres/SlotPicker.svelte.d.ts +4 -18
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +13 -3
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +6 -1
- package/package/components/triggers/testingBadge.svelte +3 -1
- package/package/components/triggers/triggers.svelte.d.ts +1 -1
- package/package/components/triggers/triggers.svelte.js +11 -3
- package/package/components/triggers/utils.js +33 -6
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +1 -1
- package/package/components/triggers/websocket/WebsocketCapture.svelte +15 -13
- package/package/components/triggers/websocket/WebsocketEditorConfigSection.svelte +1 -1
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +12 -84
- package/package/components/triggers.d.ts +1 -1
- package/package/components/tutorials/Tutorial.svelte +2 -6
- package/package/components/tutorials/Tutorial.svelte.d.ts +14 -23
- package/package/components/tutorials/TutorialControls.svelte +1 -2
- package/package/components/tutorials/TutorialControls.svelte.d.ts +6 -5
- package/package/components/tutorials/TutorialWrapper.svelte +3 -2
- package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +2 -3
- package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte.d.ts +6 -6
- package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -3
- package/package/components/tutorials/app/ConnectionTutorial.svelte.d.ts +6 -6
- package/package/components/tutorials/app/ExpressionEvaluationTutorial.svelte +2 -3
- package/package/components/tutorials/app/ExpressionEvaluationTutorial.svelte.d.ts +6 -6
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +3 -3
- package/package/components/tutorials/workspace/WorkspaceOnboardingTutorial.svelte +3 -3
- package/package/components/variables/variablesFilter.d.ts +60 -0
- package/package/components/variables/variablesFilter.js +55 -0
- package/package/components/waitJob.d.ts +1 -1
- package/package/components/waitJob.js +3 -2
- package/package/components/wizards/AppPicker.svelte +3 -3
- package/package/components/wizards/AppPicker.svelte.d.ts +4 -18
- package/package/components/wizards/DBExplorerWizard.svelte +1 -0
- package/package/components/worker_group.d.ts +2 -0
- package/package/components/worker_group.js +15 -0
- package/package/components/workspace/WorkspaceCard.svelte +3 -2
- package/package/components/workspaceSettings/AISettings.svelte +36 -42
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte +7 -7
- package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -3
- package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte.d.ts +0 -2
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -3
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte.d.ts +0 -2
- package/package/components/workspaceSettings/DataTableSettings.svelte +31 -25
- package/package/components/workspaceSettings/DataTableSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte +140 -170
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +36 -68
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +6 -10
- package/package/components/workspaceSettings/OAuthClientConfig.svelte +46 -75
- package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +8 -1
- package/package/components/workspaceSettings/RulesetEditor.svelte +292 -0
- package/package/components/workspaceSettings/RulesetEditor.svelte.d.ts +9 -0
- package/package/components/workspaceSettings/SettingsFooter.svelte +35 -0
- package/package/components/workspaceSettings/SettingsFooter.svelte.d.ts +12 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +115 -48
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
- package/package/components/workspaceSettings/WorkspaceDependenciesSettings.svelte +66 -27
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +244 -79
- package/package/components/workspaceSettings/WorkspaceRulesets.svelte +183 -0
- package/package/components/workspaceSettings/WorkspaceRulesets.svelte.d.ts +3 -0
- package/package/editorLangUtils.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +1253 -79
- package/package/gen/schemas.gen.js +1608 -386
- package/package/gen/services.gen.d.ts +320 -98
- package/package/gen/services.gen.js +597 -147
- package/package/gen/types.gen.d.ts +2706 -476
- package/package/hub.d.ts +1 -1
- package/package/hub.js +7 -0
- package/package/hubPaths.json +26 -23
- package/package/infer.d.ts +2 -0
- package/package/infer.js +64 -14
- package/package/infer.svelte.js +88 -42
- package/package/mcpEndpointTools.d.ts +3 -0
- package/package/mcpEndpointTools.js +574 -147
- package/package/rawAppWmillTs.js +12 -11
- package/package/script_helpers.d.ts +8 -5
- package/package/script_helpers.js +64 -21
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +1 -1
- package/package/storeUtils.js +8 -0
- package/package/stores.d.ts +3 -1
- package/package/stores.js +3 -2
- package/package/svelte5Utils.svelte.js +164 -0
- package/package/svelte5UtilsKit.svelte.d.ts +13 -3
- package/package/svelte5UtilsKit.svelte.js +97 -20
- package/package/system_prompts/prompts.d.ts +20 -20
- package/package/system_prompts/prompts.js +943 -596
- package/package/templates/claude_sandbox.ts.template +85 -0
- package/package/toast.d.ts +5 -1
- package/package/toast.js +14 -5
- package/package/utils/editInFork.d.ts +3 -0
- package/package/utils/editInFork.js +19 -0
- package/package/utils.js +216 -9
- package/package/utils_deployable.d.ts +258 -34
- package/package/utils_deployable.js +66 -11
- package/package/utils_workspace_deploy.d.ts +31 -0
- package/package/utils_workspace_deploy.js +449 -0
- package/package/validators/workspaceSettings.d.ts +12 -0
- package/package/validators/workspaceSettings.js +72 -0
- package/package/workspaceProtectionRules.svelte.d.ts +73 -0
- package/package/workspaceProtectionRules.svelte.js +176 -0
- package/package/workspace_settings.d.ts +2 -1
- package/package/workspace_settings.js +28 -0
- package/package.json +38 -16
- package/package/components/DropdownSelect.svelte +0 -26
- package/package/components/DropdownSelect.svelte.d.ts +0 -11
- package/package/components/FlowPreviewResult.svelte +0 -84
- package/package/components/FlowPreviewResult.svelte.d.ts +0 -20
- package/package/components/copilot/chat/context.d.ts +0 -119
- package/package/components/flows/propPicker/FlowPropPicker.svelte +0 -72
- package/package/components/flows/propPicker/FlowPropPicker.svelte.d.ts +0 -23
- package/package/components/runs/ManuelDatePicker.svelte +0 -96
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +0 -35
- package/package/components/runs/RunsBatchActionsDropdown.svelte +0 -82
- package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +0 -15
- package/package/components/runs/RunsFilter.svelte +0 -966
- package/package/components/runs/RunsFilter.svelte.d.ts +0 -80
- package/package/svelte5Utils.svelte.d.ts +0 -138
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">import { scimSamlSetting, settings, settingsKeys } from './instanceSettings';
|
|
2
|
-
import { Button, Tab, TabContent, Tabs } from './common';
|
|
2
|
+
import { Alert, Button, Tab, TabContent, Tabs } from './common';
|
|
3
3
|
import { SettingService, SettingsService } from '../gen';
|
|
4
4
|
import { sendUserToast } from '../toast';
|
|
5
5
|
import { deepEqual } from 'fast-equals';
|
|
@@ -10,16 +10,27 @@ import { setLicense } from '../enterpriseUtils';
|
|
|
10
10
|
import AuthSettings from './AuthSettings.svelte';
|
|
11
11
|
import InstanceSetting from './InstanceSetting.svelte';
|
|
12
12
|
import { writable } from 'svelte/store';
|
|
13
|
-
import { ExternalLink } from 'lucide-svelte';
|
|
14
|
-
|
|
13
|
+
import { ExternalLink, Loader2 } from 'lucide-svelte';
|
|
14
|
+
import YAML from 'yaml';
|
|
15
|
+
import Toggle from './Toggle.svelte';
|
|
16
|
+
import SettingsFooter from './workspaceSettings/SettingsFooter.svelte';
|
|
17
|
+
import SettingsPageHeader from './settings/SettingsPageHeader.svelte';
|
|
18
|
+
let { tab = $bindable('Core'), hideTabs = false, closeDrawer = () => { }, authSubTab = $bindable('sso'), onNavigateToTab, quickSetup = false, yamlMode = $bindable(false), hasUnsavedChanges = $bindable(false) } = $props();
|
|
15
19
|
let values = writable({});
|
|
16
|
-
let initialOauths = {};
|
|
17
|
-
let initialRequirePreexistingUserForOauth = false;
|
|
20
|
+
let initialOauths = $state({});
|
|
21
|
+
let initialRequirePreexistingUserForOauth = $state(false);
|
|
18
22
|
let requirePreexistingUserForOauth = $state(false);
|
|
19
|
-
let initialValues = {};
|
|
23
|
+
let initialValues = $state({});
|
|
24
|
+
let baseUrlIsFallback = $state(false);
|
|
20
25
|
let snowflakeAccountIdentifier = $state('');
|
|
21
26
|
let version = $state('');
|
|
22
27
|
let loading = $state(true);
|
|
28
|
+
export function getVersion() {
|
|
29
|
+
return version;
|
|
30
|
+
}
|
|
31
|
+
export function getLicenseKey() {
|
|
32
|
+
return $values?.['license_key'] ?? '';
|
|
33
|
+
}
|
|
23
34
|
loadSettings();
|
|
24
35
|
loadVersion();
|
|
25
36
|
const dispatch = createEventDispatcher();
|
|
@@ -27,41 +38,51 @@ async function loadVersion() {
|
|
|
27
38
|
version = await SettingsService.backendVersion();
|
|
28
39
|
}
|
|
29
40
|
let oauths = $state({});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
/** Ensure object/array-typed settings have a non-null default for the form UI */
|
|
42
|
+
const formDefaults = {
|
|
43
|
+
smtp_settings: {},
|
|
44
|
+
otel: {},
|
|
45
|
+
indexer_settings: {},
|
|
46
|
+
critical_error_channels: []
|
|
47
|
+
};
|
|
48
|
+
function applyFormDefaults(vals) {
|
|
49
|
+
for (const [key, defaultVal] of Object.entries(formDefaults)) {
|
|
50
|
+
if (vals[key] == undefined) {
|
|
51
|
+
vals[key] =
|
|
52
|
+
typeof defaultVal === 'object' ? JSON.parse(JSON.stringify(defaultVal)) : defaultVal;
|
|
35
53
|
}
|
|
36
54
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
}
|
|
56
|
+
async function loadSettings() {
|
|
57
|
+
loading = true;
|
|
58
|
+
// Bulk-load all settings in a single API call
|
|
59
|
+
const config = await SettingService.getInstanceConfig();
|
|
60
|
+
const gs = (config.global_settings ?? {});
|
|
61
|
+
initialOauths = gs['oauths'] ?? {};
|
|
62
|
+
requirePreexistingUserForOauth = gs['require_preexisting_user_for_oauth'] ?? false;
|
|
41
63
|
initialRequirePreexistingUserForOauth = requirePreexistingUserForOauth;
|
|
42
64
|
oauths = JSON.parse(JSON.stringify(initialOauths));
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (nvalues['base_url'] == undefined) {
|
|
46
|
-
nvalues['base_url'] = window.location.origin;
|
|
47
|
-
}
|
|
65
|
+
let nvalues = { ...gs };
|
|
66
|
+
baseUrlIsFallback = !nvalues['base_url'];
|
|
48
67
|
if (nvalues['retention_period_secs'] == undefined) {
|
|
49
68
|
nvalues['retention_period_secs'] = 60 * 60 * 24 * 30;
|
|
50
69
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
nvalues['indexer_settings'] = {};
|
|
70
|
+
applyFormDefaults(nvalues);
|
|
71
|
+
// Apply select/select_python defaults so initialValues matches what InstanceSetting's $effect does
|
|
72
|
+
for (const category of settingsKeys) {
|
|
73
|
+
for (const s of settings[category]) {
|
|
74
|
+
if ((s.fieldType === 'select' || s.fieldType === 'select_python') &&
|
|
75
|
+
nvalues[s.key] == undefined &&
|
|
76
|
+
s.defaultValue) {
|
|
77
|
+
nvalues[s.key] = s.defaultValue();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
62
80
|
}
|
|
63
|
-
|
|
64
|
-
|
|
81
|
+
// Snapshot initialValues before applying the base_url fallback so that
|
|
82
|
+
// the dirty-check detects the unsaved default and enables the Save button.
|
|
83
|
+
initialValues = JSON.parse(JSON.stringify(nvalues));
|
|
84
|
+
if (baseUrlIsFallback) {
|
|
85
|
+
nvalues['base_url'] = window.location.origin;
|
|
65
86
|
}
|
|
66
87
|
$values = nvalues;
|
|
67
88
|
loading = false;
|
|
@@ -72,6 +93,11 @@ async function loadSettings() {
|
|
|
72
93
|
}
|
|
73
94
|
}
|
|
74
95
|
export async function saveSettings() {
|
|
96
|
+
if (yamlMode) {
|
|
97
|
+
if (!syncYamlToForm()) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
75
101
|
if (oauths?.snowflake_oauth &&
|
|
76
102
|
oauths?.snowflake_oauth?.connect_config?.extra_params?.account_identifier !==
|
|
77
103
|
snowflakeAccountIdentifier) {
|
|
@@ -99,43 +125,37 @@ export async function saveSettings() {
|
|
|
99
125
|
if ($values['license_key'] && typeof $values['license_key'] === 'string') {
|
|
100
126
|
$values['license_key'] = $values['license_key'].trim();
|
|
101
127
|
}
|
|
102
|
-
|
|
128
|
+
// Check which settings require a page reload
|
|
129
|
+
const allSettings = [...Object.values(settings), scimSamlSetting].flat();
|
|
103
130
|
let licenseKeySet = false;
|
|
104
|
-
|
|
105
|
-
.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
.map(async ([_, x]) => {
|
|
113
|
-
if (x.key == 'license_key') {
|
|
114
|
-
licenseKeySet = true;
|
|
115
|
-
}
|
|
116
|
-
if (x.requiresReloadOnChange) {
|
|
117
|
-
shouldReloadPage = true;
|
|
131
|
+
for (const s of allSettings) {
|
|
132
|
+
if (s.storage === 'setting' && !deepEqual(initialValues?.[s.key], $values?.[s.key])) {
|
|
133
|
+
if (s.key === 'license_key') {
|
|
134
|
+
licenseKeySet = true;
|
|
135
|
+
}
|
|
136
|
+
if (s.requiresReloadOnChange) {
|
|
137
|
+
shouldReloadPage = true;
|
|
138
|
+
}
|
|
118
139
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}));
|
|
124
|
-
initialValues = JSON.parse(JSON.stringify($values));
|
|
140
|
+
}
|
|
141
|
+
// Build the full global_settings object for the bulk PUT
|
|
142
|
+
const globalSettings = { ...$values };
|
|
143
|
+
// Include oauths and require_preexisting_user_for_oauth
|
|
125
144
|
if (!deepEqual(initialOauths, oauths)) {
|
|
126
|
-
|
|
127
|
-
key: 'oauths',
|
|
128
|
-
requestBody: {
|
|
129
|
-
value: oauths
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
initialOauths = JSON.parse(JSON.stringify(oauths));
|
|
145
|
+
globalSettings['oauths'] = oauths;
|
|
133
146
|
}
|
|
134
147
|
if (initialRequirePreexistingUserForOauth !== requirePreexistingUserForOauth) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
148
|
+
globalSettings['require_preexisting_user_for_oauth'] = requirePreexistingUserForOauth;
|
|
149
|
+
}
|
|
150
|
+
await SettingService.setInstanceConfig({
|
|
151
|
+
requestBody: { global_settings: globalSettings }
|
|
152
|
+
});
|
|
153
|
+
initialValues = JSON.parse(JSON.stringify($values));
|
|
154
|
+
initialOauths = JSON.parse(JSON.stringify(oauths));
|
|
155
|
+
initialRequirePreexistingUserForOauth = requirePreexistingUserForOauth;
|
|
156
|
+
baseUrlIsFallback = false;
|
|
157
|
+
if (yamlMode) {
|
|
158
|
+
yamlCodeInitial = yamlCode;
|
|
139
159
|
}
|
|
140
160
|
if (licenseKeySet) {
|
|
141
161
|
setLicense();
|
|
@@ -181,6 +201,29 @@ async function sendStats() {
|
|
|
181
201
|
sendingStats = false;
|
|
182
202
|
}
|
|
183
203
|
}
|
|
204
|
+
let downloadingStats = $state(false);
|
|
205
|
+
async function downloadStats() {
|
|
206
|
+
try {
|
|
207
|
+
downloadingStats = true;
|
|
208
|
+
const encryptedData = await SettingService.getStats();
|
|
209
|
+
const blob = new Blob([encryptedData], { type: 'application/octet-stream' });
|
|
210
|
+
const url = URL.createObjectURL(blob);
|
|
211
|
+
const a = document.createElement('a');
|
|
212
|
+
a.href = url;
|
|
213
|
+
a.download = `windmill-telemetry-${new Date().toISOString().split('T')[0]}.enc`;
|
|
214
|
+
document.body.appendChild(a);
|
|
215
|
+
a.click();
|
|
216
|
+
document.body.removeChild(a);
|
|
217
|
+
URL.revokeObjectURL(url);
|
|
218
|
+
sendUserToast('Telemetry data downloaded');
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
throw err;
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
downloadingStats = false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
184
227
|
function isValidTeamsChannel(value) {
|
|
185
228
|
return (typeof value === 'object' &&
|
|
186
229
|
value !== null &&
|
|
@@ -194,14 +237,505 @@ function isValidTeamsChannel(value) {
|
|
|
194
237
|
value.channel_name.trim() !== '');
|
|
195
238
|
}
|
|
196
239
|
function openSmtpSettings() {
|
|
197
|
-
|
|
240
|
+
if (onNavigateToTab) {
|
|
241
|
+
onNavigateToTab('SMTP');
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
tab = 'SMTP';
|
|
245
|
+
}
|
|
198
246
|
}
|
|
247
|
+
// --- Dirty state tracking (YAML-based) ---
|
|
248
|
+
function stripEmpty(obj) {
|
|
249
|
+
return Object.fromEntries(Object.entries(obj)
|
|
250
|
+
.filter(([_, v]) => v !== undefined && v !== '')
|
|
251
|
+
.map(([k, v]) => v != null && typeof v === 'object' && !Array.isArray(v) ? [k, stripEmpty(v)] : [k, v]));
|
|
252
|
+
}
|
|
253
|
+
function getSettingsForCategory(category) {
|
|
254
|
+
if (category === 'Auth/OAuth/SAML') {
|
|
255
|
+
return scimSamlSetting;
|
|
256
|
+
}
|
|
257
|
+
const base = settings[category] ?? [];
|
|
258
|
+
// In quick setup, reorder Core: base settings (without license_key), then extras from Jobs
|
|
259
|
+
if (quickSetup && category === 'Core') {
|
|
260
|
+
const licenseKey = base.find((s) => s.key === 'license_key');
|
|
261
|
+
const baseWithout = base.filter((s) => s.key !== 'license_key');
|
|
262
|
+
const jobSettings = settings['Jobs'] ?? [];
|
|
263
|
+
const jobIsolation = jobSettings.find((s) => s.key === 'job_isolation');
|
|
264
|
+
const retentionPeriod = jobSettings.find((s) => s.key === 'retention_period_secs');
|
|
265
|
+
const objectStorage = settings['Object Storage']?.find((s) => s.key === 'object_store_cache_config');
|
|
266
|
+
return [
|
|
267
|
+
...baseWithout,
|
|
268
|
+
...(jobIsolation ? [jobIsolation] : []),
|
|
269
|
+
...(licenseKey ? [licenseKey] : []),
|
|
270
|
+
...(retentionPeriod ? [retentionPeriod] : []),
|
|
271
|
+
...(objectStorage ? [objectStorage] : [])
|
|
272
|
+
];
|
|
273
|
+
}
|
|
274
|
+
return base;
|
|
275
|
+
}
|
|
276
|
+
function normalizeValue(value, key) {
|
|
277
|
+
if (value == null)
|
|
278
|
+
return undefined;
|
|
279
|
+
if (value === false)
|
|
280
|
+
return undefined;
|
|
281
|
+
if (typeof value === 'string' && value.trim() === '')
|
|
282
|
+
return undefined;
|
|
283
|
+
if (Array.isArray(value) && value.length === 0)
|
|
284
|
+
return undefined;
|
|
285
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
286
|
+
// Recursively normalize: if all values in the object normalize to undefined,
|
|
287
|
+
// the object itself is effectively empty (e.g. {smtp_tls_implicit: false} ≡ {})
|
|
288
|
+
const hasNonEmpty = Object.values(value).some((v) => normalizeValue(v) !== undefined);
|
|
289
|
+
if (!hasNonEmpty)
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
292
|
+
// Key-specific defaults: these values are equivalent to "not set"
|
|
293
|
+
if (key === 'secret_backend') {
|
|
294
|
+
if (typeof value === 'object' &&
|
|
295
|
+
value?.type === 'Database' &&
|
|
296
|
+
Object.keys(value).length === 1) {
|
|
297
|
+
return undefined;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (key === 'automate_username_creation' && value === true) {
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
if (key === 'critical_alerts_on_db_oversize' && typeof value === 'object') {
|
|
304
|
+
if (!value.enabled && (!value.value || value.value === 0)) {
|
|
305
|
+
return undefined;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return value;
|
|
309
|
+
}
|
|
310
|
+
function buildCategoryYaml(category, vals, oauthsObj, reqPreexisting) {
|
|
311
|
+
const categorySettings = getSettingsForCategory(category);
|
|
312
|
+
const obj = {};
|
|
313
|
+
for (const s of categorySettings) {
|
|
314
|
+
const normalized = normalizeValue(vals[s.key], s.key);
|
|
315
|
+
if (normalized !== undefined) {
|
|
316
|
+
obj[s.key] = vals[s.key];
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
if (category === 'Auth/OAuth/SAML') {
|
|
320
|
+
if (Object.keys(stripEmpty(oauthsObj)).length > 0) {
|
|
321
|
+
obj['oauths'] = oauthsObj;
|
|
322
|
+
}
|
|
323
|
+
if (reqPreexisting) {
|
|
324
|
+
obj['require_preexisting_user_for_oauth'] = reqPreexisting;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return YAML.stringify(obj);
|
|
328
|
+
}
|
|
329
|
+
let dirtyCategories = $derived.by(() => {
|
|
330
|
+
const result = {};
|
|
331
|
+
for (const category of settingsKeys) {
|
|
332
|
+
const initialYaml = buildCategoryYaml(category, initialValues, initialOauths, initialRequirePreexistingUserForOauth);
|
|
333
|
+
const currentYaml = buildCategoryYaml(category, $values, oauths, requirePreexistingUserForOauth);
|
|
334
|
+
result[category] = initialYaml !== currentYaml;
|
|
335
|
+
}
|
|
336
|
+
return result;
|
|
337
|
+
});
|
|
338
|
+
let invalidCategories = $derived.by(() => {
|
|
339
|
+
const currentValues = $values;
|
|
340
|
+
const result = {};
|
|
341
|
+
for (const category of settingsKeys) {
|
|
342
|
+
const categorySettings = getSettingsForCategory(category);
|
|
343
|
+
result[category] = categorySettings.some((s) => {
|
|
344
|
+
if (s.isValid && !s.isValid(currentValues?.[s.key]))
|
|
345
|
+
return true;
|
|
346
|
+
if (s.validate) {
|
|
347
|
+
const errors = s.validate(currentValues?.[s.key]);
|
|
348
|
+
return Object.keys(errors).length > 0;
|
|
349
|
+
}
|
|
350
|
+
return false;
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
return result;
|
|
354
|
+
});
|
|
355
|
+
export function isDirty(category) {
|
|
356
|
+
return dirtyCategories[category] ?? false;
|
|
357
|
+
}
|
|
358
|
+
export function discardCategory(category) {
|
|
359
|
+
if (category === 'Auth/OAuth/SAML') {
|
|
360
|
+
for (const s of scimSamlSetting) {
|
|
361
|
+
const v = initialValues[s.key];
|
|
362
|
+
$values[s.key] = v !== undefined ? JSON.parse(JSON.stringify(v)) : undefined;
|
|
363
|
+
}
|
|
364
|
+
oauths = JSON.parse(JSON.stringify(initialOauths));
|
|
365
|
+
requirePreexistingUserForOauth = initialRequirePreexistingUserForOauth;
|
|
366
|
+
const account_identifier = initialOauths?.snowflake_oauth?.connect_config?.extra_params?.account_identifier;
|
|
367
|
+
snowflakeAccountIdentifier = account_identifier ?? '';
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
const categorySettings = getSettingsForCategory(category);
|
|
371
|
+
for (const s of categorySettings) {
|
|
372
|
+
const v = initialValues[s.key];
|
|
373
|
+
$values[s.key] = v !== undefined ? JSON.parse(JSON.stringify(v)) : undefined;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
export function discardAll() {
|
|
378
|
+
// Reset all values to initial state (deep copy to avoid reference sharing)
|
|
379
|
+
$values = JSON.parse(JSON.stringify(initialValues));
|
|
380
|
+
oauths = JSON.parse(JSON.stringify(initialOauths));
|
|
381
|
+
requirePreexistingUserForOauth = initialRequirePreexistingUserForOauth;
|
|
382
|
+
const account_identifier = initialOauths?.snowflake_oauth?.connect_config?.extra_params?.account_identifier;
|
|
383
|
+
snowflakeAccountIdentifier = account_identifier ?? '';
|
|
384
|
+
if (yamlMode) {
|
|
385
|
+
syncFormToYaml();
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
export async function saveCategorySettings(category) {
|
|
389
|
+
// Category-specific pre-processing
|
|
390
|
+
if (category === 'Auth/OAuth/SAML') {
|
|
391
|
+
if (oauths?.snowflake_oauth &&
|
|
392
|
+
oauths?.snowflake_oauth?.connect_config?.extra_params?.account_identifier !==
|
|
393
|
+
snowflakeAccountIdentifier) {
|
|
394
|
+
setupSnowflakeUrls();
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
if (category === 'Alerts' && $values?.critical_error_channels) {
|
|
398
|
+
$values.critical_error_channels = $values.critical_error_channels.filter((entry) => {
|
|
399
|
+
if (!entry || typeof entry !== 'object')
|
|
400
|
+
return false;
|
|
401
|
+
if ('teams_channel' in entry)
|
|
402
|
+
return isValidTeamsChannel(entry.teams_channel);
|
|
403
|
+
if ('slack_channel' in entry)
|
|
404
|
+
return typeof entry.slack_channel === 'string' && entry.slack_channel.trim() !== '';
|
|
405
|
+
if ('email' in entry)
|
|
406
|
+
return typeof entry.email === 'string' && entry.email.trim() !== '';
|
|
407
|
+
return false;
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
if (category === 'Core' &&
|
|
411
|
+
$values?.['license_key'] &&
|
|
412
|
+
typeof $values['license_key'] === 'string') {
|
|
413
|
+
$values['license_key'] = $values['license_key'].trim();
|
|
414
|
+
}
|
|
415
|
+
let shouldReloadPage = false;
|
|
416
|
+
const categorySettings = getSettingsForCategory(category);
|
|
417
|
+
let licenseKeySet = false;
|
|
418
|
+
await Promise.all(categorySettings
|
|
419
|
+
.filter((x) => {
|
|
420
|
+
return (x.storage === 'setting' &&
|
|
421
|
+
!deepEqual(initialValues?.[x.key], $values?.[x.key]) &&
|
|
422
|
+
($values?.[x.key] !== '' ||
|
|
423
|
+
initialValues?.[x.key] !== undefined ||
|
|
424
|
+
initialValues?.[x.key] !== null));
|
|
425
|
+
})
|
|
426
|
+
.map(async (x) => {
|
|
427
|
+
if (x.key === 'license_key')
|
|
428
|
+
licenseKeySet = true;
|
|
429
|
+
if (x.requiresReloadOnChange)
|
|
430
|
+
shouldReloadPage = true;
|
|
431
|
+
let value = $values?.[x.key];
|
|
432
|
+
if (x.fieldType === 'codearea' && typeof value === 'string' && value.trim() === '') {
|
|
433
|
+
value = undefined;
|
|
434
|
+
}
|
|
435
|
+
return await SettingService.setGlobal({
|
|
436
|
+
key: x.key,
|
|
437
|
+
requestBody: { value }
|
|
438
|
+
});
|
|
439
|
+
}));
|
|
440
|
+
// Update only the saved category's initial values
|
|
441
|
+
for (const s of categorySettings) {
|
|
442
|
+
const v = $values[s.key];
|
|
443
|
+
initialValues[s.key] = v !== undefined ? JSON.parse(JSON.stringify(v)) : undefined;
|
|
444
|
+
}
|
|
445
|
+
if (categorySettings.some((s) => s.key === 'base_url')) {
|
|
446
|
+
baseUrlIsFallback = false;
|
|
447
|
+
}
|
|
448
|
+
// Handle Auth/OAuth/SAML-specific saves
|
|
449
|
+
if (category === 'Auth/OAuth/SAML') {
|
|
450
|
+
if (!deepEqual(stripEmpty(initialOauths), stripEmpty(oauths))) {
|
|
451
|
+
await SettingService.setGlobal({
|
|
452
|
+
key: 'oauths',
|
|
453
|
+
requestBody: { value: oauths }
|
|
454
|
+
});
|
|
455
|
+
initialOauths = JSON.parse(JSON.stringify(oauths));
|
|
456
|
+
}
|
|
457
|
+
if (initialRequirePreexistingUserForOauth !== requirePreexistingUserForOauth) {
|
|
458
|
+
await SettingService.setGlobal({
|
|
459
|
+
key: 'require_preexisting_user_for_oauth',
|
|
460
|
+
requestBody: { value: requirePreexistingUserForOauth }
|
|
461
|
+
});
|
|
462
|
+
initialRequirePreexistingUserForOauth = requirePreexistingUserForOauth;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
if (licenseKeySet)
|
|
466
|
+
setLicense();
|
|
467
|
+
if (shouldReloadPage) {
|
|
468
|
+
sendUserToast('Settings updated, reloading page...');
|
|
469
|
+
await sleep(1000);
|
|
470
|
+
window.location.reload();
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
sendUserToast('Settings updated');
|
|
474
|
+
dispatch('saved');
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
let yamlCode = $state('');
|
|
478
|
+
let yamlCodeInitial = $state('');
|
|
479
|
+
let yamlEditor = $state(undefined);
|
|
480
|
+
let yamlError = $state('');
|
|
481
|
+
let showSensitive = $state(false);
|
|
482
|
+
const SENSITIVE_UNCHANGED = '__SENSITIVE_AND_UNCHANGED__';
|
|
483
|
+
const sensitiveKeys = new Set([
|
|
484
|
+
...[...Object.values(settings), scimSamlSetting]
|
|
485
|
+
.flatMap((s) => Object.values(s))
|
|
486
|
+
.filter((s) => s.fieldType === 'password' || s.fieldType === 'license_key')
|
|
487
|
+
.map((s) => s.key),
|
|
488
|
+
'ducklake_user_pg_pwd',
|
|
489
|
+
'jwt_secret'
|
|
490
|
+
]);
|
|
491
|
+
// Settings that should never appear in YAML export/import
|
|
492
|
+
const excludedKeys = new Set([]);
|
|
493
|
+
// Nested fields inside object-valued settings that contain secrets.
|
|
494
|
+
// Each entry maps a top-level key to its sensitive sub-field names.
|
|
495
|
+
const nestedSensitiveFields = {
|
|
496
|
+
smtp_settings: ['smtp_password'],
|
|
497
|
+
secret_backend: ['token'],
|
|
498
|
+
object_store_cache_config: ['secret_key', 'serviceAccountKey'],
|
|
499
|
+
custom_instance_pg_databases: ['user_pwd'],
|
|
500
|
+
rsa_keys: ['private_key']
|
|
501
|
+
};
|
|
502
|
+
/** Returns SENSITIVE_UNCHANGED if the value is non-empty and matches the initial */
|
|
503
|
+
function maskField(current, initial) {
|
|
504
|
+
if (current != null && current !== '' && current === initial)
|
|
505
|
+
return SENSITIVE_UNCHANGED;
|
|
506
|
+
return undefined;
|
|
507
|
+
}
|
|
508
|
+
function maskSensitive(obj) {
|
|
509
|
+
const masked = {};
|
|
510
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
511
|
+
if (key === 'oauths' && typeof value === 'object' && value !== null) {
|
|
512
|
+
const maskedOauths = {};
|
|
513
|
+
for (const [provider, config] of Object.entries(value)) {
|
|
514
|
+
if (typeof config === 'object' && config !== null && 'secret' in config) {
|
|
515
|
+
const m = maskField(config.secret, initialOauths?.[provider]?.secret);
|
|
516
|
+
maskedOauths[provider] = m ? { ...config, secret: m } : config;
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
maskedOauths[provider] = config;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
masked[key] = maskedOauths;
|
|
523
|
+
}
|
|
524
|
+
else if (key in nestedSensitiveFields && typeof value === 'object' && value !== null) {
|
|
525
|
+
const cp = { ...value };
|
|
526
|
+
const init = initialValues?.[key];
|
|
527
|
+
for (const field of nestedSensitiveFields[key]) {
|
|
528
|
+
const m = maskField(field === 'serviceAccountKey' ? JSON.stringify(cp[field]) : cp[field], field === 'serviceAccountKey' ? JSON.stringify(init?.[field]) : init?.[field]);
|
|
529
|
+
if (m)
|
|
530
|
+
cp[field] = m;
|
|
531
|
+
}
|
|
532
|
+
masked[key] = cp;
|
|
533
|
+
}
|
|
534
|
+
else if (sensitiveKeys.has(key) && value != null && value !== '') {
|
|
535
|
+
masked[key] = value === initialValues?.[key] ? SENSITIVE_UNCHANGED : value;
|
|
536
|
+
}
|
|
537
|
+
else {
|
|
538
|
+
masked[key] = value;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
return masked;
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* Builds a sorted YAML string of all instance settings.
|
|
545
|
+
* - normalize: strip keys whose values match the default (empty/falsy or key-specific defaults)
|
|
546
|
+
* - mask: replace sensitive values with placeholder (for display)
|
|
547
|
+
*/
|
|
548
|
+
function buildSettingsYaml(vals, oauthsObj, reqPreexisting, opts = {}) {
|
|
549
|
+
// Merge all settings (including oauths) into one object so they sort together
|
|
550
|
+
const merged = { ...vals };
|
|
551
|
+
if (oauthsObj && Object.keys(stripEmpty(oauthsObj)).length > 0) {
|
|
552
|
+
merged['oauths'] = oauthsObj;
|
|
553
|
+
}
|
|
554
|
+
if (reqPreexisting) {
|
|
555
|
+
merged['require_preexisting_user_for_oauth'] = reqPreexisting;
|
|
556
|
+
}
|
|
557
|
+
const obj = {};
|
|
558
|
+
for (const key of Object.keys(merged).sort()) {
|
|
559
|
+
if (excludedKeys.has(key))
|
|
560
|
+
continue;
|
|
561
|
+
if (opts.normalize && normalizeValue(merged[key], key) === undefined)
|
|
562
|
+
continue;
|
|
563
|
+
obj[key] = merged[key];
|
|
564
|
+
}
|
|
565
|
+
// Strip runtime-only `databases` sub-field from custom_instance_pg_databases
|
|
566
|
+
if (obj['custom_instance_pg_databases']?.databases) {
|
|
567
|
+
obj['custom_instance_pg_databases'] = { ...obj['custom_instance_pg_databases'] };
|
|
568
|
+
delete obj['custom_instance_pg_databases'].databases;
|
|
569
|
+
}
|
|
570
|
+
return YAML.stringify(opts.mask ? maskSensitive(obj) : obj);
|
|
571
|
+
}
|
|
572
|
+
function syncFormToYaml() {
|
|
573
|
+
yamlCode = buildSettingsYaml($values, oauths, requirePreexistingUserForOauth, {
|
|
574
|
+
normalize: true,
|
|
575
|
+
mask: !showSensitive
|
|
576
|
+
});
|
|
577
|
+
yamlCodeInitial = buildSettingsYaml(initialValues, initialOauths, initialRequirePreexistingUserForOauth, { normalize: true, mask: !showSensitive });
|
|
578
|
+
yamlEditor?.setCode(yamlCode);
|
|
579
|
+
yamlError = '';
|
|
580
|
+
}
|
|
581
|
+
function syncYamlToForm() {
|
|
582
|
+
try {
|
|
583
|
+
// Flush the editor's current content (bypasses the 200ms debounce in SimpleEditor)
|
|
584
|
+
const currentCode = yamlEditor?.getCode() ?? yamlCode;
|
|
585
|
+
if (currentCode !== yamlCode) {
|
|
586
|
+
yamlCode = currentCode;
|
|
587
|
+
}
|
|
588
|
+
const parsed = YAML.parse(yamlCode);
|
|
589
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
590
|
+
sendUserToast('YAML must be a mapping (key: value)', true);
|
|
591
|
+
return false;
|
|
592
|
+
}
|
|
593
|
+
// Restore sensitive values that were not changed (placeholder → original value)
|
|
594
|
+
if ('oauths' in parsed && typeof parsed['oauths'] === 'object') {
|
|
595
|
+
for (const [provider, config] of Object.entries(parsed['oauths'])) {
|
|
596
|
+
if (typeof config === 'object' &&
|
|
597
|
+
config !== null &&
|
|
598
|
+
config.secret === SENSITIVE_UNCHANGED) {
|
|
599
|
+
config.secret = initialOauths?.[provider]?.secret;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
oauths = parsed['oauths'] ?? {};
|
|
603
|
+
delete parsed['oauths'];
|
|
604
|
+
}
|
|
605
|
+
if ('require_preexisting_user_for_oauth' in parsed) {
|
|
606
|
+
requirePreexistingUserForOauth = parsed['require_preexisting_user_for_oauth'] ?? false;
|
|
607
|
+
delete parsed['require_preexisting_user_for_oauth'];
|
|
608
|
+
}
|
|
609
|
+
// Restore unchanged sensitive settings (placeholder → original value)
|
|
610
|
+
for (const key of sensitiveKeys) {
|
|
611
|
+
if (key in parsed && parsed[key] === SENSITIVE_UNCHANGED) {
|
|
612
|
+
parsed[key] = initialValues?.[key];
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
// Restore nested sensitive fields
|
|
616
|
+
for (const [parentKey, fields] of Object.entries(nestedSensitiveFields)) {
|
|
617
|
+
if (parsed[parentKey] && typeof parsed[parentKey] === 'object') {
|
|
618
|
+
const init = initialValues?.[parentKey];
|
|
619
|
+
for (const field of fields) {
|
|
620
|
+
if (parsed[parentKey][field] === SENSITIVE_UNCHANGED) {
|
|
621
|
+
parsed[parentKey][field] = init?.[field];
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
// Preserve excluded keys from current form state
|
|
627
|
+
for (const key of excludedKeys) {
|
|
628
|
+
if (key in $values) {
|
|
629
|
+
parsed[key] = $values[key];
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
// Preserve runtime-only `databases` sub-field in custom_instance_pg_databases
|
|
633
|
+
const existingDatabases = initialValues?.['custom_instance_pg_databases']?.databases;
|
|
634
|
+
if (existingDatabases && parsed['custom_instance_pg_databases']) {
|
|
635
|
+
parsed['custom_instance_pg_databases'].databases = existingDatabases;
|
|
636
|
+
}
|
|
637
|
+
$values = parsed;
|
|
638
|
+
applyFormDefaults($values);
|
|
639
|
+
yamlError = '';
|
|
640
|
+
return true;
|
|
641
|
+
}
|
|
642
|
+
catch (e) {
|
|
643
|
+
yamlError = String(e);
|
|
644
|
+
sendUserToast('Invalid YAML: ' + e, true);
|
|
645
|
+
return false;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
let prevYamlMode = false;
|
|
649
|
+
let prevLoading = true;
|
|
650
|
+
$effect(() => {
|
|
651
|
+
if (yamlMode && !prevYamlMode) {
|
|
652
|
+
syncFormToYaml();
|
|
653
|
+
}
|
|
654
|
+
else if (!yamlMode && prevYamlMode) {
|
|
655
|
+
if (!syncYamlToForm()) {
|
|
656
|
+
// Reset toggle back to YAML on parse failure
|
|
657
|
+
yamlMode = true;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
else if (yamlMode && prevLoading && !loading) {
|
|
661
|
+
// Settings just finished loading while in YAML mode
|
|
662
|
+
syncFormToYaml();
|
|
663
|
+
}
|
|
664
|
+
prevYamlMode = yamlMode;
|
|
665
|
+
prevLoading = loading;
|
|
666
|
+
});
|
|
667
|
+
function handleShowSensitiveToggle(checked) {
|
|
668
|
+
// Sync any in-progress edits back to form state before re-rendering
|
|
669
|
+
syncYamlToForm();
|
|
670
|
+
showSensitive = checked;
|
|
671
|
+
syncFormToYaml();
|
|
672
|
+
}
|
|
673
|
+
/** Call before entering diff mode to sync YAML edits into form state */
|
|
674
|
+
export function syncBeforeDiff() {
|
|
675
|
+
if (yamlMode) {
|
|
676
|
+
return syncYamlToForm();
|
|
677
|
+
}
|
|
678
|
+
return true;
|
|
679
|
+
}
|
|
680
|
+
export function buildFullDiff() {
|
|
681
|
+
return {
|
|
682
|
+
original: buildSettingsYaml(initialValues, initialOauths, initialRequirePreexistingUserForOauth, { normalize: true }),
|
|
683
|
+
modified: buildSettingsYaml($values, oauths, requirePreexistingUserForOauth, {
|
|
684
|
+
normalize: true
|
|
685
|
+
})
|
|
686
|
+
};
|
|
687
|
+
}
|
|
688
|
+
$effect(() => {
|
|
689
|
+
if (yamlMode) {
|
|
690
|
+
// In YAML mode, compare editor content against snapshot taken on entry
|
|
691
|
+
hasUnsavedChanges = yamlCodeInitial !== '' && yamlCode !== yamlCodeInitial;
|
|
692
|
+
}
|
|
693
|
+
else {
|
|
694
|
+
// Reuse per-category dirty tracking instead of rebuilding full YAML
|
|
695
|
+
hasUnsavedChanges = Object.values(dirtyCategories).some(Boolean);
|
|
696
|
+
}
|
|
697
|
+
});
|
|
199
698
|
</script>
|
|
200
699
|
|
|
201
700
|
<div class="pb-12">
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
701
|
+
{#if yamlMode}
|
|
702
|
+
<div class="flex flex-row justify-between">
|
|
703
|
+
<p class="text-2xs text-tertiary">
|
|
704
|
+
Use this YAML to manage instance settings as code.
|
|
705
|
+
<a
|
|
706
|
+
href="https://www.windmill.dev/docs/advanced/instance_settings#kubernetes-operator"
|
|
707
|
+
target="_blank"
|
|
708
|
+
rel="noopener noreferrer">Learn more <ExternalLink size={12} class="inline-block" /></a
|
|
709
|
+
>
|
|
710
|
+
</p>
|
|
711
|
+
<!-- svelte-ignore a11y_label_has_associated_control -->
|
|
712
|
+
<div class="flex items-center justify-end gap-4 mb-2">
|
|
713
|
+
<Toggle
|
|
714
|
+
checked={showSensitive}
|
|
715
|
+
on:change={(e) => handleShowSensitiveToggle(e.detail)}
|
|
716
|
+
options={{ right: 'Show sensitive values' }}
|
|
717
|
+
size="xs"
|
|
718
|
+
/>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
<div class="border rounded w-full h-[calc(100vh-12rem)]">
|
|
722
|
+
{#await import('./SimpleEditor.svelte')}
|
|
723
|
+
<Loader2 class="animate-spin" />
|
|
724
|
+
{:then Module}
|
|
725
|
+
<Module.default
|
|
726
|
+
bind:this={yamlEditor}
|
|
727
|
+
class="h-full"
|
|
728
|
+
lang="yaml"
|
|
729
|
+
bind:code={yamlCode}
|
|
730
|
+
fixedOverflowWidgets={false}
|
|
731
|
+
/>
|
|
732
|
+
{/await}
|
|
733
|
+
</div>
|
|
734
|
+
{#if yamlError}
|
|
735
|
+
<div class="text-red-500 text-xs mt-1">{yamlError}</div>
|
|
736
|
+
{/if}
|
|
737
|
+
{:else if hideTabs}
|
|
738
|
+
{@render categoryContent(tab)}
|
|
205
739
|
{:else}
|
|
206
740
|
<Tabs bind:selected={tab}>
|
|
207
741
|
{#each settingsKeys as category}
|
|
@@ -210,127 +744,155 @@ function openSmtpSettings() {
|
|
|
210
744
|
|
|
211
745
|
{#snippet content()}
|
|
212
746
|
<div class="pt-4"></div>
|
|
213
|
-
{
|
|
747
|
+
{#each Object.keys(settings) as category}
|
|
748
|
+
<TabContent value={category}>
|
|
749
|
+
{@render categoryContent(category)}
|
|
750
|
+
</TabContent>
|
|
751
|
+
{/each}
|
|
214
752
|
{/snippet}
|
|
215
753
|
</Tabs>
|
|
216
754
|
{/if}
|
|
217
755
|
|
|
218
|
-
{#snippet
|
|
219
|
-
{#
|
|
220
|
-
<
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
756
|
+
{#snippet categoryContent(category: string)}
|
|
757
|
+
{#if category == 'Core'}
|
|
758
|
+
<SettingsPageHeader
|
|
759
|
+
title="Core"
|
|
760
|
+
description="Configure the core settings of your Windmill instance."
|
|
761
|
+
link="https://www.windmill.dev/docs/advanced/instance_settings"
|
|
762
|
+
/>
|
|
763
|
+
{:else if category == 'SMTP'}
|
|
764
|
+
<SettingsPageHeader
|
|
765
|
+
title="SMTP"
|
|
766
|
+
description="Setting SMTP unlocks sending emails upon adding new users to the workspace or the instance or sending critical alerts via email."
|
|
767
|
+
link="https://www.windmill.dev/docs/advanced/instance_settings#smtp"
|
|
768
|
+
/>
|
|
769
|
+
{:else if category == 'Registries'}
|
|
770
|
+
<SettingsPageHeader
|
|
771
|
+
title="Registries"
|
|
772
|
+
description="Add private registries for Pip, Bun and npm."
|
|
773
|
+
link="https://www.windmill.dev/docs/advanced/imports"
|
|
774
|
+
/>
|
|
775
|
+
{#if !$enterpriseLicense}
|
|
776
|
+
<Alert type="info" title="Private registries configuration is an EE feature" class="mb-2" />
|
|
777
|
+
{/if}
|
|
778
|
+
{:else if category == 'Alerts'}
|
|
779
|
+
<SettingsPageHeader
|
|
780
|
+
title="Alerts"
|
|
781
|
+
description="Critical alerts automatically notify administrators about system events like job crashes, license issues, worker failures, and queue delays through email, Slack, or Teams."
|
|
782
|
+
link="https://www.windmill.dev/docs/core_concepts/critical_alerts"
|
|
783
|
+
/>
|
|
784
|
+
{:else if category == 'OTEL/Prom'}
|
|
785
|
+
<SettingsPageHeader
|
|
786
|
+
title="OTEL/Prometheus"
|
|
787
|
+
description="Configure OpenTelemetry and Prometheus metrics export for monitoring your Windmill instance."
|
|
788
|
+
link="https://www.windmill.dev/docs/misc/guides/otel"
|
|
789
|
+
/>
|
|
790
|
+
{:else if category == 'Indexer'}
|
|
791
|
+
<SettingsPageHeader
|
|
792
|
+
title="Indexer"
|
|
793
|
+
description="The indexer service unlocks full text search across jobs and service logs. It requires spinning up its own separate container."
|
|
794
|
+
link="https://www.windmill.dev/docs/core_concepts/search_bar#setup"
|
|
795
|
+
/>
|
|
796
|
+
{#if !$enterpriseLicense}
|
|
797
|
+
<Alert
|
|
798
|
+
type="info"
|
|
799
|
+
title="Full text search across jobs and service logs is an EE feature"
|
|
800
|
+
class="mb-2"
|
|
801
|
+
/>
|
|
802
|
+
{/if}
|
|
803
|
+
{:else if category == 'Telemetry'}
|
|
804
|
+
<SettingsPageHeader title="Telemetry" />
|
|
805
|
+
{#if $enterpriseLicense}
|
|
806
|
+
<div class="text-primary pb-4 text-xs">
|
|
807
|
+
Telemetry is required on Enterprise Edition for license compliance. When minimal telemetry
|
|
808
|
+
is enabled, only the following data is sent:
|
|
809
|
+
<ul class="list-disc list-inside pl-2">
|
|
810
|
+
<li>version of your instance</li>
|
|
811
|
+
<li>instance base URL</li>
|
|
812
|
+
<li>login type usage (login type, count)</li>
|
|
813
|
+
<li>worker usage (worker, worker instance, vCPUs, memory)</li>
|
|
814
|
+
<li>user usage (author count, operator count)</li>
|
|
815
|
+
<li>superadmin email addresses</li>
|
|
816
|
+
<li>development instance status</li>
|
|
817
|
+
</ul>
|
|
818
|
+
<br />When minimal telemetry is disabled, the following is also collected:
|
|
819
|
+
<ul class="list-disc list-inside pl-2">
|
|
820
|
+
<li>job usage (language, total duration, count)</li>
|
|
821
|
+
</ul>
|
|
822
|
+
<br />For air-gapped instances, you can download the telemetry data and send it manually.
|
|
823
|
+
</div>
|
|
824
|
+
<div class="flex gap-2 mb-4">
|
|
825
|
+
<Button
|
|
826
|
+
on:click={sendStats}
|
|
827
|
+
variant="default"
|
|
828
|
+
btnClasses="w-auto"
|
|
829
|
+
loading={sendingStats}
|
|
830
|
+
size="xs"
|
|
236
831
|
>
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
{:else if category == 'Registries'}
|
|
246
|
-
<div class="text-secondary pb-4 text-xs">
|
|
247
|
-
Add private registries for Pip, Bun and npm. <a
|
|
248
|
-
target="_blank"
|
|
249
|
-
href="https://www.windmill.dev/docs/advanced/imports">Learn more</a
|
|
250
|
-
>
|
|
251
|
-
</div>
|
|
252
|
-
{:else if category == 'Slack'}
|
|
253
|
-
<div class="text-secondary pb-4 text-xs">
|
|
254
|
-
Connecting your instance to a Slack workspace enables critical alerts to be sent to a
|
|
255
|
-
Slack channel.
|
|
256
|
-
<a target="_blank" href="https://www.windmill.dev/docs/misc/saml_and_scim">Learn more</a
|
|
257
|
-
>
|
|
258
|
-
</div>
|
|
259
|
-
{:else if category == 'SCIM/SAML'}
|
|
260
|
-
<div class="text-secondary pb-4 text-xs">
|
|
261
|
-
Setting up SAML and SCIM allows you to authenticate users using your identity provider.
|
|
262
|
-
<a target="_blank" href="https://www.windmill.dev/docs/advanced/instance_settings#slack"
|
|
263
|
-
>Learn more</a
|
|
264
|
-
>
|
|
265
|
-
</div>
|
|
266
|
-
{:else if category == 'Debug'}
|
|
267
|
-
<div class="text-secondary pb-4 text-xs">
|
|
268
|
-
Enable debug mode to get more detailed logs.
|
|
269
|
-
</div>
|
|
270
|
-
{:else if category == 'Telemetry'}
|
|
271
|
-
<div class="text-primary pb-4 text-xs">
|
|
272
|
-
Anonymous usage data is collected to help improve Windmill.
|
|
273
|
-
<br />The following information is collected:
|
|
274
|
-
<ul class="list-disc list-inside pl-2">
|
|
275
|
-
<li>version of your instances</li>
|
|
276
|
-
<li>instance base URL</li>
|
|
277
|
-
<li>job usage (language, total duration, count)</li>
|
|
278
|
-
<li>login type usage (login type, count)</li>
|
|
279
|
-
<li>worker usage (worker, worker instance, vCPUs, memory)</li>
|
|
280
|
-
<li>user usage (author count, operator count)</li>
|
|
281
|
-
<li>superadmin email addresses</li>
|
|
282
|
-
<li>vCPU usage</li>
|
|
283
|
-
<li>memory usage</li>
|
|
284
|
-
<li>development instance status</li>
|
|
285
|
-
</ul>
|
|
286
|
-
</div>
|
|
287
|
-
{#if $enterpriseLicense}
|
|
288
|
-
<div class="text-primary pb-4 text-xs">
|
|
289
|
-
On Enterprise Edition, you must send data to check that usage is in line with the
|
|
290
|
-
terms of the subscription. You can either enable telemetry or regularly send usage
|
|
291
|
-
data by clicking the button below.
|
|
292
|
-
</div>
|
|
293
|
-
<Button
|
|
294
|
-
on:click={sendStats}
|
|
295
|
-
variant="default"
|
|
296
|
-
btnClasses="w-auto"
|
|
297
|
-
wrapperClasses="mb-4"
|
|
298
|
-
loading={sendingStats}
|
|
299
|
-
size="xs"
|
|
300
|
-
>
|
|
301
|
-
Send usage
|
|
302
|
-
</Button>
|
|
303
|
-
{/if}
|
|
304
|
-
{:else if category == 'Auth/OAuth/SAML'}
|
|
305
|
-
<AuthSettings
|
|
306
|
-
bind:oauths
|
|
307
|
-
bind:snowflakeAccountIdentifier
|
|
308
|
-
bind:requirePreexistingUserForOauth
|
|
309
|
-
baseUrl={$values?.base_url}
|
|
832
|
+
Send usage
|
|
833
|
+
</Button>
|
|
834
|
+
<Button
|
|
835
|
+
on:click={downloadStats}
|
|
836
|
+
variant="default"
|
|
837
|
+
btnClasses="w-auto"
|
|
838
|
+
loading={downloadingStats}
|
|
839
|
+
size="xs"
|
|
310
840
|
>
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
841
|
+
Download usage
|
|
842
|
+
</Button>
|
|
843
|
+
</div>
|
|
844
|
+
{:else}
|
|
845
|
+
<div class="text-primary pb-4 text-xs">
|
|
846
|
+
Anonymous usage data is collected to help improve Windmill.
|
|
847
|
+
<br />The following information is collected:
|
|
848
|
+
<ul class="list-disc list-inside pl-2">
|
|
849
|
+
<li>version of your instance</li>
|
|
850
|
+
<li>instance base URL</li>
|
|
851
|
+
<li>job usage (language, total duration, count)</li>
|
|
852
|
+
<li>login type usage (login type, count)</li>
|
|
853
|
+
<li>worker usage (worker, worker instance, vCPUs, memory)</li>
|
|
854
|
+
<li>user usage (author count, operator count)</li>
|
|
855
|
+
<li>development instance status</li>
|
|
856
|
+
</ul>
|
|
857
|
+
</div>
|
|
858
|
+
{/if}
|
|
859
|
+
{:else if category == 'Jobs'}
|
|
860
|
+
<SettingsPageHeader
|
|
861
|
+
title="Jobs"
|
|
862
|
+
description="Configure default timeouts and retention policies for job execution."
|
|
863
|
+
link="https://www.windmill.dev/docs/advanced/instance_settings#jobs"
|
|
864
|
+
/>
|
|
865
|
+
{:else if category == 'Object Storage'}
|
|
866
|
+
<SettingsPageHeader
|
|
867
|
+
title="Object Storage"
|
|
868
|
+
description="Configure S3-compatible storage for large logs and distributed dependency caching."
|
|
869
|
+
link="https://www.windmill.dev/docs/core_concepts/object_storage_in_windmill"
|
|
870
|
+
/>
|
|
871
|
+
{:else if category == 'Private Hub'}
|
|
872
|
+
<SettingsPageHeader
|
|
873
|
+
title="Private Hub"
|
|
874
|
+
description="Connect to a Private Hub instance for sharing custom scripts and integrations."
|
|
875
|
+
link="https://www.windmill.dev/docs/core_concepts/private_hub"
|
|
876
|
+
/>
|
|
877
|
+
{:else if category == 'Secret Storage'}
|
|
878
|
+
<SettingsPageHeader
|
|
879
|
+
title="Secret Storage"
|
|
880
|
+
description="Configure where secrets (secret variables) are stored."
|
|
881
|
+
link="https://www.windmill.dev/docs/core_concepts/workspace_secret_encryption"
|
|
882
|
+
/>
|
|
883
|
+
{:else if category == 'Auth/OAuth/SAML'}
|
|
884
|
+
<AuthSettings
|
|
885
|
+
bind:oauths
|
|
886
|
+
bind:snowflakeAccountIdentifier
|
|
887
|
+
bind:requirePreexistingUserForOauth
|
|
888
|
+
baseUrl={$values?.base_url}
|
|
889
|
+
bind:tab={authSubTab}
|
|
890
|
+
{hideTabs}
|
|
891
|
+
>
|
|
892
|
+
{#snippet scim()}
|
|
893
|
+
<div class="flex-col flex gap-6 pb-4">
|
|
894
|
+
{#each scimSamlSetting as setting}
|
|
332
895
|
<InstanceSetting
|
|
333
|
-
{openSmtpSettings}
|
|
334
896
|
on:closeDrawer={() => closeDrawer?.()}
|
|
335
897
|
{loading}
|
|
336
898
|
{setting}
|
|
@@ -338,15 +900,78 @@ function openSmtpSettings() {
|
|
|
338
900
|
{version}
|
|
339
901
|
{oauths}
|
|
340
902
|
/>
|
|
341
|
-
{/
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
</
|
|
345
|
-
{/
|
|
903
|
+
{/each}
|
|
904
|
+
</div>
|
|
905
|
+
{/snippet}
|
|
906
|
+
</AuthSettings>
|
|
907
|
+
{/if}
|
|
908
|
+
|
|
909
|
+
<div class="flex-col flex gap-6 pb-6">
|
|
910
|
+
{#each settings[category] as setting}
|
|
911
|
+
<!-- slack connect is handled with the alert channels settings, smtp_connect is handled in InstanceSetting -->
|
|
912
|
+
{#if setting.fieldType != 'slack_connect' && !(quickSetup && setting.hideInQuickSetup) && !(quickSetup && category === 'Core' && setting.key === 'license_key')}
|
|
913
|
+
<InstanceSetting
|
|
914
|
+
{openSmtpSettings}
|
|
915
|
+
on:closeDrawer={() => closeDrawer?.()}
|
|
916
|
+
{loading}
|
|
917
|
+
{setting}
|
|
918
|
+
{values}
|
|
919
|
+
{version}
|
|
920
|
+
{oauths}
|
|
921
|
+
warning={setting.key === 'base_url' && baseUrlIsFallback
|
|
922
|
+
? 'Auto-detected from browser — not yet saved'
|
|
923
|
+
: setting.key === 'nuget_config' &&
|
|
924
|
+
$values['nuget_config'] &&
|
|
925
|
+
!/<clear\s*\/>/.test($values['nuget_config'])
|
|
926
|
+
? 'Missing <clear /> in <packageSources>. Without it, default sources (like nuget.org) are merged with your custom sources, which is likely not what you want.'
|
|
927
|
+
: undefined}
|
|
928
|
+
/>
|
|
929
|
+
{/if}
|
|
930
|
+
{#if quickSetup && category === 'Core' && setting.key === 'base_url'}
|
|
931
|
+
{@const licenseKeySetting = settings['Core'].find((s) => s.key === 'license_key')}
|
|
932
|
+
{#if licenseKeySetting}
|
|
933
|
+
<InstanceSetting
|
|
934
|
+
{openSmtpSettings}
|
|
935
|
+
on:closeDrawer={() => closeDrawer?.()}
|
|
936
|
+
{loading}
|
|
937
|
+
setting={licenseKeySetting}
|
|
938
|
+
{values}
|
|
939
|
+
{version}
|
|
940
|
+
{oauths}
|
|
941
|
+
/>
|
|
942
|
+
{/if}
|
|
943
|
+
{/if}
|
|
944
|
+
{/each}
|
|
945
|
+
{#if quickSetup && category === 'Core'}
|
|
946
|
+
{@const extraSettings = [
|
|
947
|
+
...settings['Jobs'].filter((s) => s.key === 'job_isolation'),
|
|
948
|
+
...settings['Jobs'].filter((s) => s.key === 'retention_period_secs'),
|
|
949
|
+
...(settings['Object Storage']?.filter((s) => s.key === 'object_store_cache_config') ??
|
|
950
|
+
[])
|
|
951
|
+
]}
|
|
952
|
+
{#each extraSettings as setting}
|
|
953
|
+
<InstanceSetting
|
|
954
|
+
{openSmtpSettings}
|
|
955
|
+
on:closeDrawer={() => closeDrawer?.()}
|
|
956
|
+
{loading}
|
|
957
|
+
{setting}
|
|
958
|
+
{values}
|
|
959
|
+
{version}
|
|
960
|
+
{oauths}
|
|
961
|
+
/>
|
|
962
|
+
{/each}
|
|
963
|
+
{/if}
|
|
964
|
+
</div>
|
|
965
|
+
|
|
966
|
+
{#if !loading && !quickSetup && !hideTabs}
|
|
967
|
+
<SettingsFooter
|
|
968
|
+
hasUnsavedChanges={dirtyCategories[category] ?? false}
|
|
969
|
+
disabled={invalidCategories[category] ?? false}
|
|
970
|
+
onSave={() => saveCategorySettings(category)}
|
|
971
|
+
onDiscard={() => discardCategory(category)}
|
|
972
|
+
saveLabel={`Save ${category.toLowerCase()} settings`}
|
|
973
|
+
class="bg-surface"
|
|
974
|
+
/>
|
|
975
|
+
{/if}
|
|
346
976
|
{/snippet}
|
|
347
977
|
</div>
|
|
348
|
-
|
|
349
|
-
{#if !hideSave}
|
|
350
|
-
<Button on:click={saveSettings} variant="accent">Save settings</Button>
|
|
351
|
-
<div class="pb-8"></div>
|
|
352
|
-
{/if}
|