windmill-components 1.613.5 → 1.623.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/assets/tokens/tokens.json +1 -11
- package/package/ata/apis.js +5 -78
- package/package/components/AddUser.svelte +1 -1
- package/package/components/CenteredModal.svelte +24 -32
- package/package/components/CenteredModal.svelte.d.ts +27 -7
- package/package/components/CenteredPage.svelte +2 -5
- package/package/components/CenteredPage.svelte.d.ts +0 -2
- package/package/components/ConcurrentJobsChart.svelte +2 -3
- package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
- package/package/components/CustomPopover.svelte +23 -20
- package/package/components/CustomPopover.svelte.d.ts +39 -14
- package/package/components/DBManager.svelte +17 -105
- package/package/components/DBManager.svelte.d.ts +1 -2
- package/package/components/DBManagerContent.svelte +3 -4
- package/package/components/DBManagerContent.svelte.d.ts +1 -1
- package/package/components/DBTableEditor.svelte +171 -210
- package/package/components/DBTableEditor.svelte.d.ts +3 -22
- package/package/components/Description.svelte +2 -3
- package/package/components/Dev.svelte +2 -36
- package/package/components/DiffDrawer.svelte +29 -8
- package/package/components/DiffEditor.svelte +2 -32
- package/package/components/DisplayResult.svelte +24 -32
- package/package/components/Editor.svelte +16 -70
- package/package/components/Editor.svelte.d.ts +0 -3
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowBuilder.svelte +11 -17
- package/package/components/FlowPreviewContent.svelte +2 -3
- package/package/components/FlowPreviewResult.svelte +4 -0
- package/package/components/FlowRestartButton.svelte +3 -2
- package/package/components/FlowRestartButton.svelte.d.ts +0 -3
- package/package/components/FlowStatusViewerInner.svelte +33 -50
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
- package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
- package/package/components/FlowViewer.svelte +2 -103
- package/package/components/FlowViewer.svelte.d.ts +3 -9
- package/package/components/ForkWorkspaceBanner.svelte +13 -16
- package/package/components/GraphqlSchemaViewer.svelte +1 -8
- package/package/components/HistoricInputs.svelte +27 -25
- package/package/components/HistoricInputs.svelte.d.ts +2 -2
- package/package/components/InstanceSetting.svelte +0 -38
- package/package/components/InviteUser.svelte +42 -16
- package/package/components/InviteUser.svelte.d.ts +18 -4
- package/package/components/JsonInputs.svelte +8 -6
- package/package/components/JsonInputs.svelte.d.ts +8 -7
- package/package/components/LogViewer.svelte +33 -91
- package/package/components/Login.svelte +0 -21
- package/package/components/ManualPopover.svelte +6 -5
- package/package/components/ManualPopover.svelte.d.ts +35 -9
- package/package/components/MemoryFootprintViewer.svelte +6 -2
- package/package/components/ModulePreview.svelte +21 -23
- package/package/components/ModulePreview.svelte.d.ts +0 -1
- package/package/components/OAuthSetting.svelte +11 -23
- package/package/components/Path.svelte +2 -2
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourcePicker.svelte +0 -3
- package/package/components/ResourcePicker.svelte.d.ts +0 -1
- package/package/components/RunButton.svelte +15 -5
- package/package/components/RunButton.svelte.d.ts +19 -7
- package/package/components/RunChart.svelte +4 -8
- package/package/components/RunChart.svelte.d.ts +2 -2
- package/package/components/RunFormAdvancedPopup.svelte +1 -1
- package/package/components/RunsPage.svelte +539 -170
- package/package/components/RunsPage.svelte.d.ts +5 -5
- package/package/components/S3FilePicker.svelte +11 -7
- package/package/components/S3FilePickerInner.svelte +3 -2
- package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
- package/package/components/SavedInputs.svelte +416 -0
- package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
- package/package/components/SchemaForm.svelte +19 -26
- package/package/components/SchemaFormWithArgPicker.svelte +3 -4
- package/package/components/ScriptBuilder.svelte +1 -1
- package/package/components/ScriptEditor.svelte +101 -575
- package/package/components/Section.svelte +1 -3
- package/package/components/ServiceLogsInner.svelte +4 -4
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleEditor.svelte +2 -46
- package/package/components/SuperadminSettingsInner.svelte +1 -1
- package/package/components/TemplateEditor.svelte +29 -54
- package/package/components/TemplateEditor.svelte.d.ts +102 -13
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagPicker.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +2 -5
- package/package/components/WorkspaceTutorials.svelte +0 -5
- package/package/components/apps/components/buttons/AppButton.svelte +6 -21
- package/package/components/apps/components/buttons/AppForm.svelte +1 -2
- package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
- package/package/components/apps/components/display/dbtable/metadata.js +30 -69
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
- package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
- package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
- package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
- package/package/components/apps/components/display/dbtable/utils.js +20 -52
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +1 -8
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
- package/package/components/apps/editor/PublicApp.svelte +30 -49
- package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/utils.js +1 -10
- package/package/components/apps/inputType.d.ts +1 -6
- package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/model.js +1 -1
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
- package/package/components/common/languageIcons/TypeScript.svelte +3 -5
- package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
- package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
- package/package/components/copilot/chat/AIButtonStyle.js +1 -2
- package/package/components/copilot/chat/AIChat.svelte +1 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
- package/package/components/copilot/chat/AIChatInput.svelte +0 -275
- package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
- package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
- package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
- package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
- package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
- package/package/components/copilot/chat/app/core.d.ts +15 -56
- package/package/components/copilot/chat/app/core.js +22 -141
- package/package/components/copilot/chat/context.d.ts +2 -59
- package/package/components/copilot/chat/context.js +2 -6
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
- package/package/components/copilot/chat/flow/core.d.ts +1 -3
- package/package/components/copilot/chat/flow/core.js +2 -29
- package/package/components/copilot/chat/flow/openFlow.json +1 -1
- package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
- package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
- package/package/components/copilot/chat/script/core.d.ts +1 -4
- package/package/components/copilot/chat/script/core.js +2 -38
- package/package/components/copilot/chat/shared.d.ts +0 -10
- package/package/components/copilot/chat/shared.js +0 -24
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/custom_ui.d.ts +0 -2
- package/package/components/dbOps.d.ts +4 -18
- package/package/components/dbOps.js +3 -25
- package/package/components/flows/CreateActionsApp.svelte +4 -6
- package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
- package/package/components/flows/FlowHistoryInner.svelte +4 -15
- package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
- package/package/components/flows/content/FlowInput.svelte +37 -211
- package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
- package/package/components/flows/content/McpToolEditor.svelte +37 -50
- package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
- package/package/components/flows/conversations/FlowChat.svelte +2 -16
- package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
- package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
- package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
- package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
- package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
- package/package/components/flows/types.d.ts +0 -2
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
- package/package/components/home/ItemsList.svelte +5 -5
- package/package/components/home/TutorialBanner.svelte +18 -34
- package/package/components/icons/CssIcon.svelte +0 -20
- package/package/components/icons/CssIcon.svelte.d.ts +25 -7
- package/package/components/icons/JavaScriptIcon.svelte +2 -10
- package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
- package/package/components/icons/JsonIcon.svelte +2 -8
- package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
- package/package/components/icons/ReactIcon.svelte +2 -10
- package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
- package/package/components/icons/SvelteIcon.svelte +2 -10
- package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
- package/package/components/icons/VueIcon.svelte +2 -10
- package/package/components/icons/VueIcon.svelte.d.ts +0 -1
- package/package/components/instanceSettings.d.ts +1 -2
- package/package/components/instanceSettings.js +1 -32
- package/package/components/jobs/JobPreview.svelte +39 -46
- package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
- package/package/components/monacoLanguagesOptions.js +15 -16
- package/package/components/propertyPicker/PropPicker.svelte +2 -16
- package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
- package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
- package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
- package/package/components/raw_apps/FileTreeNode.svelte +83 -119
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
- package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
- package/package/components/raw_apps/RawAppEditor.svelte +68 -218
- package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
- package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
- package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
- package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
- package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
- package/package/components/raw_apps/RawAppModules.svelte +7 -13
- package/package/components/raw_apps/RawAppPreview.svelte +6 -48
- package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
- package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +18 -76
- package/package/components/runs/JobsLoader.svelte +468 -0
- package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
- package/package/components/runs/ManuelDatePicker.svelte +3 -3
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
- package/package/components/runs/RunsFilter.svelte +63 -75
- package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
- package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/runs/RunsTable.svelte.d.ts +1 -1
- package/package/components/schema/SchemaPicker.svelte +92 -0
- package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
- package/package/components/scriptEditor/LogPanel.svelte +2 -17
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
- package/package/components/select/SelectDropdown.svelte +2 -2
- package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
- package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
- package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
- package/package/components/settings/CreateToken.svelte +1 -1
- package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
- package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
- package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
- package/package/components/sidebar/MenuButton.svelte +24 -46
- package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
- package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
- package/package/components/sidebar/OperatorMenu.svelte +88 -63
- package/package/components/sidebar/SidebarContent.svelte +2 -7
- package/package/components/sidebar/UserMenu.svelte +1 -1
- package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
- package/package/components/sqlTypeService.js +3 -4
- package/package/components/table/DataTable.svelte +2 -3
- package/package/components/table/DataTable.svelte.d.ts +0 -1
- package/package/components/text_input/TextInput.svelte +0 -3
- package/package/components/text_input/TextInput.svelte.d.ts +0 -2
- package/package/components/triggers/utils.js +1 -0
- package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
- package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
- package/package/components/tutorials/utils.d.ts +0 -16
- package/package/components/tutorials/utils.js +0 -96
- package/package/components/vscode.js +6 -6
- package/package/components/workspaceSettings/AISettings.svelte +108 -146
- package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
- package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
- package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
- package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
- package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
- package/package/consts.js +1 -4
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +1 -133
- package/package/gen/schemas.gen.js +1 -133
- package/package/gen/services.gen.d.ts +10 -160
- package/package/gen/services.gen.js +20 -319
- package/package/gen/types.gen.d.ts +19 -609
- package/package/hubPaths.json +2 -3
- package/package/infer.js +0 -2
- package/package/logout.d.ts +2 -0
- package/package/logout.js +23 -2
- package/package/monaco_workers/graphql.worker.bundle.js +121 -121
- package/package/navigation.d.ts +1 -1
- package/package/rawAppWmillTs.d.ts +0 -11
- package/package/rawAppWmillTs.js +1 -38
- package/package/svelte5Utils.svelte.d.ts +1 -7
- package/package/svelte5Utils.svelte.js +2 -23
- package/package/tutorialUtils.js +4 -0
- package/package/tutorials/config.js +3 -31
- package/package/tutorials/roleUtils.d.ts +1 -1
- package/package/tutorials/roleUtils.js +2 -6
- package/package/utils.js +1 -159
- package/package.json +4 -6
- package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
- package/dist/sharedUtils/base.d.ts +0 -1
- package/dist/sharedUtils/cloud.d.ts +0 -1
- package/dist/sharedUtils/common.d.ts +0 -111
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
- package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
- package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
- package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
- package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
- package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
- package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
- package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
- package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
- package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
- package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
- package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
- package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
- package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
- package/dist/sharedUtils/components/apps/types.d.ts +0 -274
- package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
- package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
- package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
- package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
- package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
- package/dist/sharedUtils/components/common/index.d.ts +0 -24
- package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
- package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
- package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
- package/dist/sharedUtils/components/ducklake.d.ts +0 -1
- package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
- package/dist/sharedUtils/components/icons/index.d.ts +0 -101
- package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
- package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
- package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
- package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
- package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
- package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
- package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
- package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
- package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
- package/dist/sharedUtils/components/triggers.d.ts +0 -20
- package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
- package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
- package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
- package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
- package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
- package/dist/sharedUtils/gen/core/request.d.ts +0 -29
- package/dist/sharedUtils/gen/index.d.ts +0 -6
- package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
- package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
- package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
- package/dist/sharedUtils/history.svelte.d.ts +0 -9
- package/dist/sharedUtils/hub.d.ts +0 -49
- package/dist/sharedUtils/jsr.json +0 -6
- package/dist/sharedUtils/lib.d.ts +0 -5
- package/dist/sharedUtils/lib.es.js +0 -1588
- package/dist/sharedUtils/package.json +0 -12
- package/dist/sharedUtils/schema.d.ts +0 -3
- package/dist/sharedUtils/stores.d.ts +0 -97
- package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
- package/dist/sharedUtils/toast.d.ts +0 -8
- package/dist/sharedUtils/utils.d.ts +0 -265
- package/package/components/FlowDiffViewer.svelte +0 -37
- package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
- package/package/components/JobOtelTraces.svelte +0 -287
- package/package/components/JobOtelTraces.svelte.d.ts +0 -6
- package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
- package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
- package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
- package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
- package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
- package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
- package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
- package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
- package/package/components/debug/DebugConsole.svelte +0 -277
- package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
- package/package/components/debug/DebugPanel.svelte +0 -97
- package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
- package/package/components/debug/DebugToolbar.svelte +0 -148
- package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
- package/package/components/debug/DebugVariableViewer.svelte +0 -115
- package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
- package/package/components/debug/MonacoDebugger.svelte +0 -384
- package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
- package/package/components/debug/dapClient.d.ts +0 -192
- package/package/components/debug/dapClient.js +0 -426
- package/package/components/debug/debugUtils.d.ts +0 -30
- package/package/components/debug/debugUtils.js +0 -131
- package/package/components/debug/index.d.ts +0 -75
- package/package/components/debug/index.js +0 -82
- package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
- package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
- package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
- package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
- package/package/components/icons/HtmlIcon.svelte +0 -20
- package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
- package/package/components/icons/LessIcon.svelte +0 -16
- package/package/components/icons/LessIcon.svelte.d.ts +0 -8
- package/package/components/icons/MarkdownIcon.svelte +0 -20
- package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
- package/package/components/icons/SassIcon.svelte +0 -28
- package/package/components/icons/SassIcon.svelte.d.ts +0 -8
- package/package/components/icons/YamlIcon.svelte +0 -20
- package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
- package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
- package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
- package/package/components/raw_apps/RunnableRow.svelte +0 -41
- package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
- package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
- package/package/components/runs/useJobsLoader.svelte.js +0 -507
- package/package/components/settings/AIPromptsModal.svelte +0 -88
- package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
- package/package/components/tutorials/RunsTutorial.svelte +0 -399
- package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
- package/package/components/workspace/WorkspaceCard.svelte +0 -184
- package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
- package/package/components/workspace/WorkspaceIcon.svelte +0 -21
- package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
- package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
- package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
- package/package/logoutKit.d.ts +0 -2
- package/package/logoutKit.js +0 -26
- package/package/svelte5UtilsKit.svelte.d.ts +0 -3
- package/package/svelte5UtilsKit.svelte.js +0 -30
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
<script lang="ts">import AddUser from '../AddUser.svelte';
|
|
2
|
-
import {
|
|
2
|
+
import { Badge, Button, Skeleton } from '../common';
|
|
3
3
|
import Popover from '../meltComponents/Popover.svelte';
|
|
4
4
|
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
5
5
|
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
6
6
|
import WorkspaceOperatorSettings from './WorkspaceOperatorSettings.svelte';
|
|
7
7
|
import InviteUser from '../InviteUser.svelte';
|
|
8
|
+
import PageHeader from '../PageHeader.svelte';
|
|
8
9
|
import DataTable from '../table/DataTable.svelte';
|
|
9
10
|
import Head from '../table/Head.svelte';
|
|
10
11
|
import Toggle from '../Toggle.svelte';
|
|
11
12
|
import Tooltip from '../Tooltip.svelte';
|
|
12
13
|
import { UserService, WorkspaceService, GroupService } from '../../gen';
|
|
13
|
-
import { userStore, workspaceStore
|
|
14
|
+
import { userStore, workspaceStore } from '../../stores';
|
|
14
15
|
import { sendUserToast } from '../../toast';
|
|
15
|
-
import { Loader2, Mails, Search, Plus
|
|
16
|
+
import { Loader2, Mails, Search, Plus } from 'lucide-svelte';
|
|
16
17
|
import Select from '../select/Select.svelte';
|
|
17
18
|
import SearchItems from '../SearchItems.svelte';
|
|
18
19
|
import Cell from '../table/Cell.svelte';
|
|
@@ -21,14 +22,13 @@ import ConfirmationModal from '../common/confirmationModal/ConfirmationModal.sve
|
|
|
21
22
|
import { isCloudHosted } from '../../cloud';
|
|
22
23
|
import { truncate } from '../../utils';
|
|
23
24
|
import { onDestroy, untrack } from 'svelte';
|
|
24
|
-
import { goto } from '../../navigation';
|
|
25
25
|
let users = $state(undefined);
|
|
26
26
|
let invites = $state([]);
|
|
27
27
|
let filteredUsers = $state(undefined);
|
|
28
28
|
let userFilter = $state('');
|
|
29
29
|
let auto_invite_domain = $state();
|
|
30
30
|
let operatorOnly = $state(undefined);
|
|
31
|
-
let autoAdd = $state(
|
|
31
|
+
let autoAdd = $state(undefined);
|
|
32
32
|
let nbDisplayed = $state(30);
|
|
33
33
|
// Instance group auto-add settings
|
|
34
34
|
let instanceGroups = $state([]);
|
|
@@ -219,10 +219,6 @@ onDestroy(() => {
|
|
|
219
219
|
let deleteConfirmedCallback = $state(undefined);
|
|
220
220
|
let removeInstanceGroupConfirmedCallback = $state(undefined);
|
|
221
221
|
let convertConfirmedCallback = $state(undefined);
|
|
222
|
-
// Auto-add/invite confirmation modal states
|
|
223
|
-
let autoAddConfirmCallback = $state(undefined);
|
|
224
|
-
let autoInviteDisableConfirmCallback = $state(undefined);
|
|
225
|
-
let switchToAutoAddConfirmCallback = $state(undefined);
|
|
226
222
|
async function removeAllInvitesFromDomain() {
|
|
227
223
|
await Promise.all(invites
|
|
228
224
|
.filter((x) => isCloudHosted() ? x.email.endsWith('@' + (auto_invite_domain ?? '')) : true)
|
|
@@ -236,93 +232,9 @@ async function removeAllInvitesFromDomain() {
|
|
|
236
232
|
})));
|
|
237
233
|
}
|
|
238
234
|
let nbInviteDisplayed = $state(50);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
workspace: $workspaceStore,
|
|
243
|
-
requestBody: {
|
|
244
|
-
email,
|
|
245
|
-
is_admin: selected == 'admin',
|
|
246
|
-
operator: selected == 'operator'
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
sendUserToast(`Invited ${email}`);
|
|
250
|
-
}
|
|
251
|
-
catch (e) {
|
|
252
|
-
console.error('Failed to invite user:', e);
|
|
253
|
-
sendUserToast('Failed to invite user', true);
|
|
254
|
-
}
|
|
255
|
-
if (!(await UserService.existsEmail({ email }))) {
|
|
256
|
-
let isSuperadmin = $superadmin;
|
|
257
|
-
if (!isCloudHosted()) {
|
|
258
|
-
sendUserToast(`User ${email} is not registered yet on the instance. ${!isSuperadmin
|
|
259
|
-
? `If not using SSO, ask an administrator to add ${email} to the instance`
|
|
260
|
-
: ''}`, true, isSuperadmin
|
|
261
|
-
? [
|
|
262
|
-
{
|
|
263
|
-
label: 'Add user to the instance',
|
|
264
|
-
callback: () => {
|
|
265
|
-
$globalEmailInvite = email;
|
|
266
|
-
goto('#superadmin-settings');
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
]
|
|
270
|
-
: []);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
listInvites();
|
|
274
|
-
}
|
|
275
|
-
async function updateAutoInvite(enable) {
|
|
276
|
-
// Cleanup invites if auto add is enabled
|
|
277
|
-
if (enable && autoAdd) {
|
|
278
|
-
await removeAllInvitesFromDomain();
|
|
279
|
-
}
|
|
280
|
-
const updateType = enable ? (autoInviteOrAddEnabled ? 'update' : 'enable') : 'disable';
|
|
281
|
-
try {
|
|
282
|
-
// await removeAllInvitesFromDomain()
|
|
283
|
-
await WorkspaceService.editAutoInvite({
|
|
284
|
-
workspace: $workspaceStore ?? '',
|
|
285
|
-
requestBody: enable
|
|
286
|
-
? {
|
|
287
|
-
operator: operatorOnly ?? false,
|
|
288
|
-
invite_all: !isCloudHosted(),
|
|
289
|
-
auto_add: autoAdd
|
|
290
|
-
}
|
|
291
|
-
: {
|
|
292
|
-
operator: undefined,
|
|
293
|
-
auto_add: undefined
|
|
294
|
-
}
|
|
295
|
-
});
|
|
296
|
-
const message = updateType === 'update'
|
|
297
|
-
? `Auto-${autoAdd ? 'add' : 'invite'} updated`
|
|
298
|
-
: updateType === 'enable'
|
|
299
|
-
? `Auto-${autoAdd ? 'add' : 'invite'} enabled`
|
|
300
|
-
: `Auto-${autoAdd ? 'add' : 'invite'} disabled`;
|
|
301
|
-
sendUserToast(message);
|
|
302
|
-
}
|
|
303
|
-
catch (e) {
|
|
304
|
-
console.error('Failed to update auto invite:', e);
|
|
305
|
-
sendUserToast('Failed to update auto invite', true);
|
|
306
|
-
}
|
|
307
|
-
loadSettings();
|
|
308
|
-
listInvites();
|
|
309
|
-
listUsers();
|
|
310
|
-
}
|
|
311
|
-
const autoInviteOrAddEnabled = $derived(auto_invite_domain != undefined);
|
|
312
|
-
// Legacy auto-invite: user already has auto-invite enabled (not auto-add) on a non-cloud instance
|
|
313
|
-
// This preserves their existing setup even though auto-invite is deprecated for new setups
|
|
314
|
-
const isLegacyAutoInvite = $derived(autoInviteOrAddEnabled && !autoAdd && !isCloudHosted());
|
|
315
|
-
// Show auto-invite toggle only for:
|
|
316
|
-
// - Cloud hosted users (always available)
|
|
317
|
-
// - Legacy users who already have auto-invite enabled (preserve existing setup)
|
|
318
|
-
const showAutoInviteToggle = $derived(isCloudHosted() || isLegacyAutoInvite);
|
|
319
|
-
// Display mode for labels: for non-cloud, non-legacy users, always show "add"
|
|
320
|
-
// For cloud or legacy users, show based on actual autoAdd setting
|
|
321
|
-
const displayMode = $derived.by(() => {
|
|
322
|
-
if (!isCloudHosted() && !isLegacyAutoInvite) {
|
|
323
|
-
return 'add';
|
|
324
|
-
}
|
|
325
|
-
return autoAdd ? 'add' : 'invite';
|
|
235
|
+
let showInvites = $state(false);
|
|
236
|
+
$effect(() => {
|
|
237
|
+
showInvites = invites?.length > 0 || (auto_invite_domain != undefined && !autoAdd);
|
|
326
238
|
});
|
|
327
239
|
</script>
|
|
328
240
|
|
|
@@ -345,334 +257,336 @@ const displayMode = $derived.by(() => {
|
|
|
345
257
|
</div>
|
|
346
258
|
</div>
|
|
347
259
|
</div>
|
|
260
|
+
<div class="flex flex-row justify-between items-center pt-2">
|
|
261
|
+
<PageHeader
|
|
262
|
+
title="Members {(filteredUsers?.length ?? users?.length) != undefined
|
|
263
|
+
? `(${filteredUsers?.length ?? users?.length})`
|
|
264
|
+
: ''}"
|
|
265
|
+
primary={false}
|
|
266
|
+
tooltip="Manage users manually or enable SSO authentication."
|
|
267
|
+
documentationLink="https://www.windmill.dev/docs/core_concepts/authentification"
|
|
268
|
+
/>
|
|
269
|
+
|
|
270
|
+
<div class="flex flex-row items-center gap-2 relative whitespace-nowrap">
|
|
271
|
+
<input placeholder="Filter members" bind:value={userFilter} class="input !pl-8" />
|
|
272
|
+
<Search class="absolute left-2" size={14} />
|
|
273
|
+
|
|
274
|
+
<Popover
|
|
275
|
+
floatingConfig={{ strategy: 'absolute', placement: 'bottom-end' }}
|
|
276
|
+
usePointerDownOutside
|
|
277
|
+
>
|
|
278
|
+
{#snippet trigger()}
|
|
279
|
+
<Button
|
|
280
|
+
color={'accent'}
|
|
281
|
+
destructive={auto_invite_domain === undefined}
|
|
282
|
+
variant="default"
|
|
283
|
+
size="xs"
|
|
284
|
+
nonCaptureEvent={true}
|
|
285
|
+
startIcon={{ icon: Mails }}
|
|
286
|
+
>Auto-{showInvites && !autoAdd ? 'invite' : 'add'}: {auto_invite_domain != undefined
|
|
287
|
+
? 'ON'
|
|
288
|
+
: 'OFF'}
|
|
289
|
+
</Button>
|
|
290
|
+
{/snippet}
|
|
291
|
+
{#snippet content()}
|
|
292
|
+
<div class="flex flex-col items-start p-4">
|
|
293
|
+
<span class="text-sm leading-6 font-semibold">
|
|
294
|
+
{isCloudHosted()
|
|
295
|
+
? `Auto-add anyone from ${
|
|
296
|
+
auto_invite_domain != undefined ? auto_invite_domain : domain
|
|
297
|
+
}`
|
|
298
|
+
: `Auto-add anyone joining the instance`}
|
|
299
|
+
</span>
|
|
300
|
+
|
|
301
|
+
{#if showInvites}
|
|
302
|
+
<span class="text-xs mb-1 leading-6 pt-2"
|
|
303
|
+
>Mode <Tooltip>Whether to invite or add users directly to the workspace.</Tooltip>
|
|
304
|
+
</span>
|
|
305
|
+
<ToggleButtonGroup
|
|
306
|
+
selected={autoAdd ? 'add' : 'invite'}
|
|
307
|
+
on:selected={async (e) => {
|
|
308
|
+
if (auto_invite_domain != undefined) {
|
|
309
|
+
await removeAllInvitesFromDomain()
|
|
310
|
+
await WorkspaceService.editAutoInvite({
|
|
311
|
+
workspace: $workspaceStore ?? '',
|
|
312
|
+
requestBody: {
|
|
313
|
+
operator: operatorOnly ?? false,
|
|
314
|
+
invite_all: !isCloudHosted(),
|
|
315
|
+
auto_add: e.detail === 'add'
|
|
316
|
+
}
|
|
317
|
+
})
|
|
318
|
+
loadSettings()
|
|
319
|
+
listInvites()
|
|
320
|
+
listUsers()
|
|
321
|
+
autoAdd = e.detail === 'add'
|
|
322
|
+
} else {
|
|
323
|
+
autoAdd = e.detail === 'add'
|
|
324
|
+
}
|
|
325
|
+
}}
|
|
326
|
+
>
|
|
327
|
+
{#snippet children({ item })}
|
|
328
|
+
<ToggleButton value="invite" small label="Auto-invite" {item} />
|
|
329
|
+
<ToggleButton value="add" small label="Auto-add" {item} />
|
|
330
|
+
{/snippet}
|
|
331
|
+
</ToggleButtonGroup>
|
|
332
|
+
{/if}
|
|
348
333
|
|
|
349
|
-
<
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
334
|
+
<span class="text-xs mb-1 leading-6 pt-2"
|
|
335
|
+
>Role <Tooltip>Role of the auto-added users</Tooltip></span
|
|
336
|
+
>
|
|
337
|
+
<ToggleButtonGroup
|
|
338
|
+
selected={operatorOnly ? 'operator' : 'developer'}
|
|
339
|
+
on:selected={async (e) => {
|
|
340
|
+
if (auto_invite_domain != undefined) {
|
|
341
|
+
await removeAllInvitesFromDomain()
|
|
342
|
+
await WorkspaceService.editAutoInvite({
|
|
343
|
+
workspace: $workspaceStore ?? '',
|
|
344
|
+
requestBody: {
|
|
345
|
+
operator: e.detail === 'operator',
|
|
346
|
+
invite_all: !isCloudHosted(),
|
|
347
|
+
auto_add: showInvites ? (autoAdd ?? false) : true
|
|
348
|
+
}
|
|
349
|
+
})
|
|
350
|
+
operatorOnly = e.detail === 'operator'
|
|
351
|
+
loadSettings()
|
|
352
|
+
listInvites()
|
|
353
|
+
listUsers()
|
|
354
|
+
} else {
|
|
355
|
+
operatorOnly = e.detail === 'operator'
|
|
356
|
+
}
|
|
357
|
+
}}
|
|
358
|
+
>
|
|
359
|
+
{#snippet children({ item })}
|
|
360
|
+
<ToggleButton
|
|
361
|
+
value="operator"
|
|
362
|
+
label="Operator"
|
|
363
|
+
tooltip="An operator can only execute and view scripts/flows/apps from your workspace, and only those that he has visibility on."
|
|
364
|
+
{item}
|
|
365
|
+
/>
|
|
366
|
+
<ToggleButton
|
|
367
|
+
value="developer"
|
|
368
|
+
label="Developer"
|
|
369
|
+
tooltip="A Developer can execute and view scripts/flows/apps, but they can also create new ones and edit those they are allowed to by their path (either u/ or Writer or Admin of their folder found at /f)."
|
|
370
|
+
{item}
|
|
371
|
+
/>
|
|
372
|
+
{/snippet}
|
|
373
|
+
</ToggleButtonGroup>
|
|
374
|
+
<div class="pt-2">
|
|
375
|
+
<Toggle
|
|
376
|
+
size="xs"
|
|
377
|
+
checked={auto_invite_domain != undefined}
|
|
378
|
+
on:change={async (e) => {
|
|
379
|
+
await removeAllInvitesFromDomain()
|
|
380
|
+
await WorkspaceService.editAutoInvite({
|
|
381
|
+
workspace: $workspaceStore ?? '',
|
|
382
|
+
requestBody: e.detail
|
|
383
|
+
? {
|
|
384
|
+
operator: operatorOnly ?? false,
|
|
385
|
+
invite_all: !isCloudHosted(),
|
|
386
|
+
auto_add: showInvites ? (autoAdd ?? false) : true
|
|
387
|
+
}
|
|
388
|
+
: {
|
|
389
|
+
operator: undefined,
|
|
390
|
+
auto_add: undefined
|
|
391
|
+
}
|
|
392
|
+
})
|
|
393
|
+
loadSettings()
|
|
394
|
+
listInvites()
|
|
395
|
+
listUsers()
|
|
396
|
+
}}
|
|
397
|
+
disabled={isCloudHosted() && !allowedAutoDomain}
|
|
398
|
+
options={{
|
|
399
|
+
right: 'Enabled'
|
|
400
|
+
}}
|
|
401
|
+
/>
|
|
402
|
+
</div>
|
|
403
|
+
{#if isCloudHosted() && !allowedAutoDomain}
|
|
404
|
+
<div class="text-red-400 text-xs">{domain} domain not allowed for auto-add</div>
|
|
405
|
+
{/if}
|
|
406
|
+
</div>
|
|
407
|
+
{/snippet}
|
|
408
|
+
</Popover>
|
|
360
409
|
|
|
410
|
+
{#if instanceGroups.length > 0}
|
|
361
411
|
<Popover
|
|
362
412
|
floatingConfig={{ strategy: 'absolute', placement: 'bottom-end' }}
|
|
363
413
|
usePointerDownOutside
|
|
414
|
+
floatingClass="!z-20"
|
|
364
415
|
>
|
|
365
416
|
{#snippet trigger()}
|
|
366
417
|
<Button
|
|
367
|
-
|
|
368
|
-
|
|
418
|
+
color={autoAddInstanceGroups.length > 0 ? 'green' : 'gray'}
|
|
419
|
+
variant="border"
|
|
420
|
+
size="xs"
|
|
369
421
|
nonCaptureEvent={true}
|
|
370
422
|
startIcon={{ icon: Mails }}
|
|
371
|
-
>
|
|
423
|
+
>Instance groups: {autoAddInstanceGroups.length}
|
|
372
424
|
</Button>
|
|
373
425
|
{/snippet}
|
|
374
426
|
{#snippet content()}
|
|
375
|
-
<div class="flex flex-col
|
|
376
|
-
|
|
377
|
-
<
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
427
|
+
<div class="flex flex-col p-4 min-w-[500px]">
|
|
428
|
+
<div class="flex flex-col gap-4">
|
|
429
|
+
<span class="text-sm leading-6 font-semibold"> Auto-add instance groups </span>
|
|
430
|
+
|
|
431
|
+
<!-- Add new instance group form -->
|
|
432
|
+
{#if availableGroupItems.length > 0}
|
|
433
|
+
<div class="flex w-full mt-1 gap-2 items-end justify-between">
|
|
434
|
+
<div class="flex gap-2 items-end">
|
|
435
|
+
<div class="flex flex-col gap-1">
|
|
436
|
+
<span class="text-xs text-primary">Instance group</span>
|
|
437
|
+
<Select
|
|
438
|
+
items={availableGroupItems}
|
|
439
|
+
placeholder="Select group"
|
|
440
|
+
bind:value={selectedNewInstanceGroup}
|
|
441
|
+
class="max-w-[160px]"
|
|
442
|
+
disablePortal={true}
|
|
443
|
+
/>
|
|
444
|
+
</div>
|
|
384
445
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
446
|
+
<div class="flex flex-col gap-1">
|
|
447
|
+
<span class="text-xs text-primary">Role</span>
|
|
448
|
+
<ToggleButtonGroup
|
|
449
|
+
selected={selectedNewRole}
|
|
450
|
+
on:selected={(e) => {
|
|
451
|
+
selectedNewRole = e.detail
|
|
452
|
+
}}
|
|
453
|
+
>
|
|
454
|
+
{#snippet children({ item })}
|
|
455
|
+
<ToggleButton
|
|
456
|
+
value="operator"
|
|
457
|
+
label="Operator"
|
|
458
|
+
tooltip="An operator can only execute and view scripts/flows/apps from your workspace, and only those that he has visibility on."
|
|
459
|
+
{item}
|
|
460
|
+
/>
|
|
461
|
+
<ToggleButton
|
|
462
|
+
value="developer"
|
|
463
|
+
label="Developer"
|
|
464
|
+
tooltip="A Developer can execute and view scripts/flows/apps, but they can also create new ones and edit those they are allowed to by their path (either u/ or Writer or Admin of their folder found at /f)."
|
|
465
|
+
{item}
|
|
466
|
+
/>
|
|
467
|
+
<ToggleButton
|
|
468
|
+
value="admin"
|
|
469
|
+
label="Admin"
|
|
470
|
+
tooltip="An admin has full control over a specific Windmill workspace, including the ability to manage users, edit entities, and control permissions within the workspace."
|
|
471
|
+
{item}
|
|
472
|
+
/>
|
|
473
|
+
{/snippet}
|
|
474
|
+
</ToggleButtonGroup>
|
|
475
|
+
</div>
|
|
476
|
+
</div>
|
|
406
477
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
478
|
+
<Button
|
|
479
|
+
color="blue"
|
|
480
|
+
size="xs"
|
|
481
|
+
startIcon={{ icon: Plus }}
|
|
482
|
+
disabled={!selectedNewInstanceGroup || !selectedNewRole}
|
|
483
|
+
onclick={addInstanceGroup}
|
|
484
|
+
>
|
|
485
|
+
Add
|
|
486
|
+
</Button>
|
|
413
487
|
</div>
|
|
414
488
|
{/if}
|
|
415
489
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
490
|
+
<!-- Configured groups table -->
|
|
491
|
+
{#if autoAddInstanceGroups.length > 0}
|
|
492
|
+
<div class="flex flex-col gap-2">
|
|
493
|
+
<p class="text-sm font-medium text-secondary">Configured groups:</p>
|
|
494
|
+
<div class="flex flex-col gap-1">
|
|
495
|
+
<table class="w-full text-sm">
|
|
496
|
+
<thead>
|
|
497
|
+
<tr class="text-left text-xs text-primary">
|
|
498
|
+
<th class="pb-2 w-1/2">Group</th>
|
|
499
|
+
<th class="pb-2 w-1/4">Role</th>
|
|
500
|
+
<th class="pb-2 w-1/4"></th>
|
|
501
|
+
</tr>
|
|
502
|
+
</thead>
|
|
503
|
+
<tbody>
|
|
504
|
+
{#each autoAddInstanceGroups as groupName (groupName)}
|
|
505
|
+
{@const group = instanceGroups.find((g) => g.name === groupName)}
|
|
506
|
+
<tr class="border-t border-gray-200 dark:border-gray-700">
|
|
507
|
+
<td class="py-2">
|
|
508
|
+
<div class="font-medium">{groupName}</div>
|
|
509
|
+
{#if group?.summary}
|
|
510
|
+
<div class="text-xs text-primary">{group.summary}</div>
|
|
511
|
+
{/if}
|
|
512
|
+
</td>
|
|
513
|
+
<td class="py-2">
|
|
514
|
+
<div>
|
|
515
|
+
<ToggleButtonGroup
|
|
516
|
+
selected={autoAddInstanceGroupsRoles[groupName] || 'developer'}
|
|
517
|
+
on:selected={async (e) => {
|
|
518
|
+
autoAddInstanceGroupsRoles[groupName] = e.detail
|
|
519
|
+
await updateGroupRole(groupName, e.detail)
|
|
520
|
+
}}
|
|
521
|
+
>
|
|
522
|
+
{#snippet children({ item })}
|
|
523
|
+
<ToggleButton
|
|
524
|
+
value="operator"
|
|
525
|
+
label="Operator"
|
|
526
|
+
tooltip="An operator can only execute and view scripts/flows/apps from your workspace, and only those that he has visibility on."
|
|
527
|
+
{item}
|
|
528
|
+
/>
|
|
529
|
+
<ToggleButton
|
|
530
|
+
value="developer"
|
|
531
|
+
label="Developer"
|
|
532
|
+
tooltip="A Developer can execute and view scripts/flows/apps, but they can also create new ones and edit those they are allowed to by their path (either u/ or Writer or Admin of their folder found at /f)."
|
|
533
|
+
{item}
|
|
534
|
+
/>
|
|
535
|
+
<ToggleButton
|
|
536
|
+
value="admin"
|
|
537
|
+
label="Admin"
|
|
538
|
+
tooltip="An admin has full control over a specific Windmill workspace, including the ability to manage users, edit entities, and control permissions within the workspace."
|
|
539
|
+
{item}
|
|
540
|
+
/>
|
|
541
|
+
{/snippet}
|
|
542
|
+
</ToggleButtonGroup>
|
|
543
|
+
</div>
|
|
544
|
+
</td>
|
|
545
|
+
<td class="py-2">
|
|
546
|
+
<div class="flex justify-end">
|
|
547
|
+
<Button
|
|
548
|
+
color="light"
|
|
549
|
+
variant="contained"
|
|
550
|
+
btnClasses="text-red-500"
|
|
551
|
+
size="xs"
|
|
552
|
+
spacingSize="xs2"
|
|
553
|
+
onclick={() => {
|
|
554
|
+
removeInstanceGroupConfirmedCallback = async () => {
|
|
555
|
+
await removeInstanceGroup(groupName)
|
|
556
|
+
}
|
|
557
|
+
}}
|
|
558
|
+
>
|
|
559
|
+
Remove
|
|
560
|
+
</Button>
|
|
561
|
+
</div>
|
|
562
|
+
</td>
|
|
563
|
+
</tr>
|
|
564
|
+
{/each}
|
|
565
|
+
</tbody>
|
|
566
|
+
</table>
|
|
567
|
+
</div>
|
|
568
|
+
</div>
|
|
569
|
+
{:else}
|
|
570
|
+
<div class="text-center text-primary text-sm py-4">
|
|
571
|
+
No instance groups configured for auto-add
|
|
572
|
+
</div>
|
|
573
|
+
{/if}
|
|
485
574
|
</div>
|
|
486
|
-
{#if isCloudHosted() && !allowedAutoDomain}
|
|
487
|
-
<div class="text-red-400 text-xs">{domain} domain not allowed for auto-add</div>
|
|
488
|
-
{/if}
|
|
489
575
|
</div>
|
|
490
576
|
{/snippet}
|
|
491
577
|
</Popover>
|
|
578
|
+
{/if}
|
|
492
579
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
color={autoAddInstanceGroups.length > 0 ? 'green' : 'gray'}
|
|
502
|
-
variant="border"
|
|
503
|
-
size="xs"
|
|
504
|
-
nonCaptureEvent={true}
|
|
505
|
-
startIcon={{ icon: Mails }}
|
|
506
|
-
>Instance groups: {autoAddInstanceGroups.length}
|
|
507
|
-
</Button>
|
|
508
|
-
{/snippet}
|
|
509
|
-
{#snippet content()}
|
|
510
|
-
<div class="flex flex-col p-4 min-w-[500px]">
|
|
511
|
-
<div class="flex flex-col gap-4">
|
|
512
|
-
<span class="text-sm leading-6 font-semibold"> Auto-add instance groups </span>
|
|
513
|
-
|
|
514
|
-
<!-- Add new instance group form -->
|
|
515
|
-
{#if availableGroupItems.length > 0}
|
|
516
|
-
<div class="flex w-full mt-1 gap-2 items-end justify-between">
|
|
517
|
-
<div class="flex gap-2 items-end">
|
|
518
|
-
<div class="flex flex-col gap-1">
|
|
519
|
-
<span class="text-xs text-primary">Instance group</span>
|
|
520
|
-
<Select
|
|
521
|
-
items={availableGroupItems}
|
|
522
|
-
placeholder="Select group"
|
|
523
|
-
bind:value={selectedNewInstanceGroup}
|
|
524
|
-
class="max-w-[160px]"
|
|
525
|
-
disablePortal={true}
|
|
526
|
-
/>
|
|
527
|
-
</div>
|
|
528
|
-
|
|
529
|
-
<div class="flex flex-col gap-1">
|
|
530
|
-
<span class="text-xs text-primary">Role</span>
|
|
531
|
-
<ToggleButtonGroup
|
|
532
|
-
selected={selectedNewRole}
|
|
533
|
-
on:selected={(e) => {
|
|
534
|
-
selectedNewRole = e.detail
|
|
535
|
-
}}
|
|
536
|
-
>
|
|
537
|
-
{#snippet children({ item })}
|
|
538
|
-
<ToggleButton
|
|
539
|
-
value="operator"
|
|
540
|
-
label="Operator"
|
|
541
|
-
tooltip="An operator can only execute and view scripts/flows/apps from your workspace, and only those that he has visibility on."
|
|
542
|
-
{item}
|
|
543
|
-
/>
|
|
544
|
-
<ToggleButton
|
|
545
|
-
value="developer"
|
|
546
|
-
label="Developer"
|
|
547
|
-
tooltip="A Developer can execute and view scripts/flows/apps, but they can also create new ones and edit those they are allowed to by their path (either u/ or Writer or Admin of their folder found at /f)."
|
|
548
|
-
{item}
|
|
549
|
-
/>
|
|
550
|
-
<ToggleButton
|
|
551
|
-
value="admin"
|
|
552
|
-
label="Admin"
|
|
553
|
-
tooltip="An admin has full control over a specific Windmill workspace, including the ability to manage users, edit entities, and control permissions within the workspace."
|
|
554
|
-
{item}
|
|
555
|
-
/>
|
|
556
|
-
{/snippet}
|
|
557
|
-
</ToggleButtonGroup>
|
|
558
|
-
</div>
|
|
559
|
-
</div>
|
|
560
|
-
|
|
561
|
-
<Button
|
|
562
|
-
color="blue"
|
|
563
|
-
size="xs"
|
|
564
|
-
startIcon={{ icon: Plus }}
|
|
565
|
-
disabled={!selectedNewInstanceGroup || !selectedNewRole}
|
|
566
|
-
onclick={addInstanceGroup}
|
|
567
|
-
>
|
|
568
|
-
Add
|
|
569
|
-
</Button>
|
|
570
|
-
</div>
|
|
571
|
-
{/if}
|
|
572
|
-
|
|
573
|
-
<!-- Configured groups table -->
|
|
574
|
-
{#if autoAddInstanceGroups.length > 0}
|
|
575
|
-
<div class="flex flex-col gap-2">
|
|
576
|
-
<p class="text-sm font-medium text-secondary">Configured groups:</p>
|
|
577
|
-
<div class="flex flex-col gap-1">
|
|
578
|
-
<table class="w-full text-sm">
|
|
579
|
-
<thead>
|
|
580
|
-
<tr class="text-left text-xs text-primary">
|
|
581
|
-
<th class="pb-2 w-1/2">Group</th>
|
|
582
|
-
<th class="pb-2 w-1/4">Role</th>
|
|
583
|
-
<th class="pb-2 w-1/4"></th>
|
|
584
|
-
</tr>
|
|
585
|
-
</thead>
|
|
586
|
-
<tbody>
|
|
587
|
-
{#each autoAddInstanceGroups as groupName (groupName)}
|
|
588
|
-
{@const group = instanceGroups.find((g) => g.name === groupName)}
|
|
589
|
-
<tr class="border-t border-gray-200 dark:border-gray-700">
|
|
590
|
-
<td class="py-2">
|
|
591
|
-
<div class="font-medium">{groupName}</div>
|
|
592
|
-
{#if group?.summary}
|
|
593
|
-
<div class="text-xs text-primary">{group.summary}</div>
|
|
594
|
-
{/if}
|
|
595
|
-
</td>
|
|
596
|
-
<td class="py-2">
|
|
597
|
-
<div>
|
|
598
|
-
<ToggleButtonGroup
|
|
599
|
-
selected={autoAddInstanceGroupsRoles[groupName] || 'developer'}
|
|
600
|
-
on:selected={async (e) => {
|
|
601
|
-
autoAddInstanceGroupsRoles[groupName] = e.detail
|
|
602
|
-
await updateGroupRole(groupName, e.detail)
|
|
603
|
-
}}
|
|
604
|
-
>
|
|
605
|
-
{#snippet children({ item })}
|
|
606
|
-
<ToggleButton
|
|
607
|
-
value="operator"
|
|
608
|
-
label="Operator"
|
|
609
|
-
tooltip="An operator can only execute and view scripts/flows/apps from your workspace, and only those that he has visibility on."
|
|
610
|
-
{item}
|
|
611
|
-
/>
|
|
612
|
-
<ToggleButton
|
|
613
|
-
value="developer"
|
|
614
|
-
label="Developer"
|
|
615
|
-
tooltip="A Developer can execute and view scripts/flows/apps, but they can also create new ones and edit those they are allowed to by their path (either u/ or Writer or Admin of their folder found at /f)."
|
|
616
|
-
{item}
|
|
617
|
-
/>
|
|
618
|
-
<ToggleButton
|
|
619
|
-
value="admin"
|
|
620
|
-
label="Admin"
|
|
621
|
-
tooltip="An admin has full control over a specific Windmill workspace, including the ability to manage users, edit entities, and control permissions within the workspace."
|
|
622
|
-
{item}
|
|
623
|
-
/>
|
|
624
|
-
{/snippet}
|
|
625
|
-
</ToggleButtonGroup>
|
|
626
|
-
</div>
|
|
627
|
-
</td>
|
|
628
|
-
<td class="py-2">
|
|
629
|
-
<div class="flex justify-end">
|
|
630
|
-
<Button
|
|
631
|
-
color="light"
|
|
632
|
-
variant="contained"
|
|
633
|
-
btnClasses="text-red-500"
|
|
634
|
-
size="xs"
|
|
635
|
-
spacingSize="xs2"
|
|
636
|
-
onclick={() => {
|
|
637
|
-
removeInstanceGroupConfirmedCallback = async () => {
|
|
638
|
-
await removeInstanceGroup(groupName)
|
|
639
|
-
}
|
|
640
|
-
}}
|
|
641
|
-
>
|
|
642
|
-
Remove
|
|
643
|
-
</Button>
|
|
644
|
-
</div>
|
|
645
|
-
</td>
|
|
646
|
-
</tr>
|
|
647
|
-
{/each}
|
|
648
|
-
</tbody>
|
|
649
|
-
</table>
|
|
650
|
-
</div>
|
|
651
|
-
</div>
|
|
652
|
-
{:else}
|
|
653
|
-
<div class="text-center text-primary text-sm py-4">
|
|
654
|
-
No instance groups configured for auto-add
|
|
655
|
-
</div>
|
|
656
|
-
{/if}
|
|
657
|
-
</div>
|
|
658
|
-
</div>
|
|
659
|
-
{/snippet}
|
|
660
|
-
</Popover>
|
|
661
|
-
{/if}
|
|
662
|
-
|
|
663
|
-
{#if showAutoInviteToggle}
|
|
664
|
-
<InviteUser {inviteUser} />
|
|
665
|
-
{/if}
|
|
666
|
-
|
|
667
|
-
<AddUser
|
|
668
|
-
on:new={() => {
|
|
669
|
-
listUsers()
|
|
670
|
-
listInvites()
|
|
671
|
-
}}
|
|
672
|
-
/>
|
|
673
|
-
</div>
|
|
674
|
-
{/snippet}
|
|
580
|
+
<AddUser
|
|
581
|
+
on:new={() => {
|
|
582
|
+
listUsers()
|
|
583
|
+
listInvites()
|
|
584
|
+
}}
|
|
585
|
+
/>
|
|
586
|
+
</div>
|
|
587
|
+
</div>
|
|
675
588
|
|
|
589
|
+
<div class="">
|
|
676
590
|
<DataTable
|
|
677
591
|
shouldLoadMore={(filteredUsers?.length ?? 0) > 30}
|
|
678
592
|
loadMore={30}
|
|
@@ -701,8 +615,8 @@ const displayMode = $derived.by(() => {
|
|
|
701
615
|
first one
|
|
702
616
|
</Tooltip>
|
|
703
617
|
</Cell>
|
|
618
|
+
<Cell head>Status</Cell>
|
|
704
619
|
<Cell head>Role</Cell>
|
|
705
|
-
<Cell head>Enabled</Cell>
|
|
706
620
|
<Cell head last>
|
|
707
621
|
<span class="sr-only">Actions</span>
|
|
708
622
|
</Cell>
|
|
@@ -743,6 +657,15 @@ const displayMode = $derived.by(() => {
|
|
|
743
657
|
class="animate-spin"
|
|
744
658
|
/>{/if}</Cell
|
|
745
659
|
>
|
|
660
|
+
<Cell>
|
|
661
|
+
<div class="flex gap-1">
|
|
662
|
+
{#if disabled}
|
|
663
|
+
<Badge color="red">Disabled</Badge>
|
|
664
|
+
{:else}
|
|
665
|
+
<Badge color="green">Enabled</Badge>
|
|
666
|
+
{/if}
|
|
667
|
+
</div>
|
|
668
|
+
</Cell>
|
|
746
669
|
<Cell>
|
|
747
670
|
<div>
|
|
748
671
|
{#if added_via?.source === 'instance_group'}
|
|
@@ -806,10 +729,13 @@ const displayMode = $derived.by(() => {
|
|
|
806
729
|
</div>
|
|
807
730
|
</Cell>
|
|
808
731
|
<Cell>
|
|
809
|
-
<
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
732
|
+
<div class="flex gap-1">
|
|
733
|
+
<Button
|
|
734
|
+
color="light"
|
|
735
|
+
variant="contained"
|
|
736
|
+
size="xs"
|
|
737
|
+
spacingSize="xs2"
|
|
738
|
+
on:click={async () => {
|
|
813
739
|
await UserService.updateUser({
|
|
814
740
|
workspace: $workspaceStore ?? '',
|
|
815
741
|
username,
|
|
@@ -817,43 +743,24 @@ const displayMode = $derived.by(() => {
|
|
|
817
743
|
disabled: !disabled
|
|
818
744
|
}
|
|
819
745
|
})
|
|
820
|
-
sendUserToast(`User ${username} ${disabled ? 'enabled' : 'disabled'}`)
|
|
821
746
|
listUsers()
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
}}
|
|
827
|
-
size="xs"
|
|
828
|
-
/>
|
|
829
|
-
</Cell>
|
|
830
|
-
<Cell>
|
|
831
|
-
<div class="flex gap-1">
|
|
832
|
-
{#snippet removeUserButton(disabled: boolean)}
|
|
833
|
-
<Button
|
|
834
|
-
unifiedSize="sm"
|
|
835
|
-
variant="subtle"
|
|
836
|
-
destructive
|
|
837
|
-
{disabled}
|
|
838
|
-
onClick={() => {
|
|
839
|
-
deleteConfirmedCallback = async () => {
|
|
840
|
-
await UserService.deleteUser({
|
|
841
|
-
workspace: $workspaceStore ?? '',
|
|
842
|
-
username
|
|
843
|
-
})
|
|
844
|
-
sendUserToast('User removed')
|
|
845
|
-
listUsers()
|
|
846
|
-
}
|
|
847
|
-
}}
|
|
848
|
-
startIcon={{ icon: UserMinus }}
|
|
849
|
-
>
|
|
850
|
-
Remove
|
|
851
|
-
</Button>
|
|
852
|
-
{/snippet}
|
|
747
|
+
}}
|
|
748
|
+
>
|
|
749
|
+
{disabled ? 'Enable' : 'Disable'}
|
|
750
|
+
</Button>
|
|
853
751
|
|
|
854
752
|
{#if added_via?.source === 'instance_group'}
|
|
855
753
|
<div class="flex items-center gap-1">
|
|
856
|
-
|
|
754
|
+
<Button
|
|
755
|
+
color="light"
|
|
756
|
+
variant="contained"
|
|
757
|
+
btnClasses="text-gray-400"
|
|
758
|
+
size="xs"
|
|
759
|
+
spacingSize="xs2"
|
|
760
|
+
disabled={true}
|
|
761
|
+
>
|
|
762
|
+
Remove
|
|
763
|
+
</Button>
|
|
857
764
|
<Tooltip
|
|
858
765
|
>Cannot remove users synced from instance groups. Either disable the user or
|
|
859
766
|
remove them from the SCIM group.</Tooltip
|
|
@@ -861,8 +768,11 @@ const displayMode = $derived.by(() => {
|
|
|
861
768
|
</div>
|
|
862
769
|
{:else if canConvertToGroup(user)}
|
|
863
770
|
<Button
|
|
864
|
-
|
|
865
|
-
|
|
771
|
+
color="light"
|
|
772
|
+
variant="contained"
|
|
773
|
+
btnClasses="text-blue-500"
|
|
774
|
+
size="xs"
|
|
775
|
+
spacingSize="xs2"
|
|
866
776
|
on:click={() => {
|
|
867
777
|
convertConfirmedCallback = async () => {
|
|
868
778
|
await convertUserToGroup(username)
|
|
@@ -871,8 +781,45 @@ const displayMode = $derived.by(() => {
|
|
|
871
781
|
>
|
|
872
782
|
Convert
|
|
873
783
|
</Button>
|
|
784
|
+
<Button
|
|
785
|
+
color="light"
|
|
786
|
+
variant="contained"
|
|
787
|
+
btnClasses="text-red-500"
|
|
788
|
+
size="xs"
|
|
789
|
+
spacingSize="xs2"
|
|
790
|
+
on:click={() => {
|
|
791
|
+
deleteConfirmedCallback = async () => {
|
|
792
|
+
await UserService.deleteUser({
|
|
793
|
+
workspace: $workspaceStore ?? '',
|
|
794
|
+
username
|
|
795
|
+
})
|
|
796
|
+
sendUserToast('User removed')
|
|
797
|
+
listUsers()
|
|
798
|
+
}
|
|
799
|
+
}}
|
|
800
|
+
>
|
|
801
|
+
Remove
|
|
802
|
+
</Button>
|
|
874
803
|
{:else}
|
|
875
|
-
|
|
804
|
+
<Button
|
|
805
|
+
color="light"
|
|
806
|
+
variant="contained"
|
|
807
|
+
btnClasses="text-red-500"
|
|
808
|
+
size="xs"
|
|
809
|
+
spacingSize="xs2"
|
|
810
|
+
on:click={() => {
|
|
811
|
+
deleteConfirmedCallback = async () => {
|
|
812
|
+
await UserService.deleteUser({
|
|
813
|
+
workspace: $workspaceStore ?? '',
|
|
814
|
+
username
|
|
815
|
+
})
|
|
816
|
+
sendUserToast('User removed')
|
|
817
|
+
listUsers()
|
|
818
|
+
}
|
|
819
|
+
}}
|
|
820
|
+
>
|
|
821
|
+
Remove
|
|
822
|
+
</Button>
|
|
876
823
|
{/if}
|
|
877
824
|
</div>
|
|
878
825
|
</Cell>
|
|
@@ -889,27 +836,23 @@ const displayMode = $derived.by(() => {
|
|
|
889
836
|
{/if}
|
|
890
837
|
</tbody>
|
|
891
838
|
</DataTable>
|
|
892
|
-
</
|
|
893
|
-
|
|
894
|
-
<div class="pt-12"></div>
|
|
839
|
+
</div>
|
|
895
840
|
|
|
896
841
|
<WorkspaceOperatorSettings />
|
|
897
842
|
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
{
|
|
901
|
-
|
|
902
|
-
label="Invites ({invites.length ?? ''})"
|
|
843
|
+
{#if showInvites}
|
|
844
|
+
<PageHeader
|
|
845
|
+
title="Invites ({invites.length ?? ''})"
|
|
846
|
+
primary={false}
|
|
903
847
|
tooltip="Manage invites on your workspace."
|
|
904
848
|
documentationLink="https://www.windmill.dev/docs/core_concepts/authentification#adding-users-to-a-workspace"
|
|
905
849
|
>
|
|
906
|
-
|
|
907
|
-
{
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
{/snippet}
|
|
850
|
+
<div class="flex gap-2 items-center">
|
|
851
|
+
<InviteUser on:new={listInvites} />
|
|
852
|
+
</div>
|
|
853
|
+
</PageHeader>
|
|
854
|
+
|
|
855
|
+
<div>
|
|
913
856
|
<DataTable>
|
|
914
857
|
<Head>
|
|
915
858
|
<tr>
|
|
@@ -970,13 +913,9 @@ const displayMode = $derived.by(() => {
|
|
|
970
913
|
</div>
|
|
971
914
|
</Cell>
|
|
972
915
|
<Cell last>
|
|
973
|
-
<
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
unifiedSize="sm"
|
|
977
|
-
startIcon={{ icon: X }}
|
|
978
|
-
btnClasses="w-fit"
|
|
979
|
-
onClick={async () => {
|
|
916
|
+
<button
|
|
917
|
+
class="ml-2 text-red-500"
|
|
918
|
+
onclick={async () => {
|
|
980
919
|
await WorkspaceService.deleteInvite({
|
|
981
920
|
workspace: $workspaceStore ?? '',
|
|
982
921
|
requestBody: {
|
|
@@ -988,8 +927,8 @@ const displayMode = $derived.by(() => {
|
|
|
988
927
|
listInvites()
|
|
989
928
|
}}
|
|
990
929
|
>
|
|
991
|
-
Cancel
|
|
992
|
-
</
|
|
930
|
+
Cancel
|
|
931
|
+
</button>
|
|
993
932
|
</Cell>
|
|
994
933
|
</Row>
|
|
995
934
|
{/each}
|
|
@@ -1008,8 +947,9 @@ const displayMode = $derived.by(() => {
|
|
|
1008
947
|
<button class="ml-4" onclick={() => (nbInviteDisplayed += 50)}>load 50 more</button></span
|
|
1009
948
|
>
|
|
1010
949
|
{/if}
|
|
1011
|
-
</
|
|
950
|
+
</div>
|
|
1012
951
|
{/if}
|
|
952
|
+
|
|
1013
953
|
<ConfirmationModal
|
|
1014
954
|
open={Boolean(deleteConfirmedCallback)}
|
|
1015
955
|
title="Remove user"
|
|
@@ -1077,68 +1017,3 @@ const displayMode = $derived.by(() => {
|
|
|
1077
1017
|
</ul>
|
|
1078
1018
|
</div>
|
|
1079
1019
|
</ConfirmationModal>
|
|
1080
|
-
|
|
1081
|
-
<!-- Auto-add/invite confirmation modals - z-index to appear above popover -->
|
|
1082
|
-
<div class="[&>div]:!z-[5002]">
|
|
1083
|
-
<ConfirmationModal
|
|
1084
|
-
open={Boolean(autoAddConfirmCallback)}
|
|
1085
|
-
title="Enable Auto-add"
|
|
1086
|
-
confirmationText="Enable"
|
|
1087
|
-
on:canceled={() => {
|
|
1088
|
-
autoAddConfirmCallback = undefined
|
|
1089
|
-
}}
|
|
1090
|
-
on:confirmed={() => {
|
|
1091
|
-
if (autoAddConfirmCallback) {
|
|
1092
|
-
autoAddConfirmCallback()
|
|
1093
|
-
}
|
|
1094
|
-
autoAddConfirmCallback = undefined
|
|
1095
|
-
}}
|
|
1096
|
-
>
|
|
1097
|
-
Are you sure you want to enable auto-add?<br />
|
|
1098
|
-
Anyone added to the instance will automatically join this workspace.
|
|
1099
|
-
</ConfirmationModal>
|
|
1100
|
-
</div>
|
|
1101
|
-
|
|
1102
|
-
<div class="[&>div]:!z-[5002]">
|
|
1103
|
-
<ConfirmationModal
|
|
1104
|
-
open={Boolean(autoInviteDisableConfirmCallback)}
|
|
1105
|
-
title="Disable Auto-invite"
|
|
1106
|
-
confirmationText="Disable"
|
|
1107
|
-
on:canceled={() => {
|
|
1108
|
-
autoInviteDisableConfirmCallback = undefined
|
|
1109
|
-
}}
|
|
1110
|
-
on:confirmed={() => {
|
|
1111
|
-
if (autoInviteDisableConfirmCallback) {
|
|
1112
|
-
autoInviteDisableConfirmCallback()
|
|
1113
|
-
}
|
|
1114
|
-
autoInviteDisableConfirmCallback = undefined
|
|
1115
|
-
}}
|
|
1116
|
-
>
|
|
1117
|
-
Are you sure you want to disable auto-invite? Auto-invite is a legacy feature. After disabling,
|
|
1118
|
-
it will no longer be available for this workspace. You will only be able to use auto-add. <br />
|
|
1119
|
-
Anyone added to the instance will automatically join this workspace.
|
|
1120
|
-
</ConfirmationModal>
|
|
1121
|
-
</div>
|
|
1122
|
-
|
|
1123
|
-
<div class="[&>div]:!z-[5002]">
|
|
1124
|
-
<ConfirmationModal
|
|
1125
|
-
open={Boolean(switchToAutoAddConfirmCallback)}
|
|
1126
|
-
title="Switch to Auto-add"
|
|
1127
|
-
confirmationText="Switch"
|
|
1128
|
-
on:canceled={() => {
|
|
1129
|
-
switchToAutoAddConfirmCallback = undefined
|
|
1130
|
-
}}
|
|
1131
|
-
on:confirmed={() => {
|
|
1132
|
-
if (switchToAutoAddConfirmCallback) {
|
|
1133
|
-
switchToAutoAddConfirmCallback()
|
|
1134
|
-
}
|
|
1135
|
-
switchToAutoAddConfirmCallback = undefined
|
|
1136
|
-
}}
|
|
1137
|
-
>
|
|
1138
|
-
Are you sure you want to switch from auto-invite to auto-add?<br />
|
|
1139
|
-
Auto-invite is a legacy feature. After switching to auto-add, auto-invite will no longer be available
|
|
1140
|
-
for this workspace. <br />
|
|
1141
|
-
With auto-add, anyone added to the instance will automatically join this workspace without needing
|
|
1142
|
-
to accept an invitation.
|
|
1143
|
-
</ConfirmationModal>
|
|
1144
|
-
</div>
|