windmill-components 1.655.2 → 1.665.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/components/ApiConnectForm.svelte +6 -6
- package/package/components/ApiConnectForm.svelte.d.ts +3 -2
- package/package/components/AppConnectDrawer.svelte +3 -1
- package/package/components/AppConnectDrawer.svelte.d.ts +2 -0
- package/package/components/AppConnectInner.svelte +137 -72
- package/package/components/AppConnectInner.svelte.d.ts +1 -0
- package/package/components/CompareWorkspaces.svelte +32 -24
- package/package/components/DBManager.svelte +7 -13
- package/package/components/DBTable.svelte +2 -2
- package/package/components/DBTableEditor.svelte +39 -31
- package/package/components/DBTableEditor.svelte.d.ts +2 -2
- package/package/components/DedicatedWorkersSelector.svelte +292 -85
- package/package/components/DeployWorkspace.svelte +30 -26
- package/package/components/Dev.svelte +7 -2
- package/package/components/Dev.svelte.d.ts +3 -0
- package/package/components/Editor.svelte +17 -13
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/FilterSearchbar.svelte +1 -1
- package/package/components/FirstStepInputs.svelte +0 -1
- package/package/components/FlowBuilder.svelte +5 -0
- package/package/components/FlowGraphDiffViewer.svelte +3 -0
- package/package/components/FlowGraphViewer.svelte +7 -4
- package/package/components/FlowGraphViewer.svelte.d.ts +1 -0
- package/package/components/FlowGraphViewerStep.svelte +3 -3
- package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +11 -1
- package/package/components/FlowStatusViewer.svelte +4 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -1
- package/package/components/FlowStatusViewerInner.svelte +46 -11
- package/package/components/FlowStatusViewerInner.svelte.d.ts +4 -1
- package/package/components/FlowStatusWaitingForEvents.svelte +48 -103
- package/package/components/FlowTimeline.svelte +76 -84
- package/package/components/FlowViewer.svelte +40 -22
- package/package/components/FlowViewer.svelte.d.ts +8 -2
- package/package/components/GroupEditor.svelte +7 -9
- package/package/components/HistoricList.svelte +12 -4
- package/package/components/InstanceGroupEditor.svelte +92 -19
- package/package/components/InstanceSetting.svelte +16 -6
- package/package/components/InstanceSettings.svelte +51 -7
- package/package/components/InstanceSettings.svelte.d.ts +2 -1
- package/package/components/JobLoader.svelte +5 -4
- package/package/components/JobLoader.svelte.d.ts +1 -1
- package/package/components/Login.svelte +9 -1
- package/package/components/NoMainFuncBadge.svelte +2 -2
- package/package/components/OnBehalfOfSelector.svelte +49 -37
- package/package/components/OnBehalfOfSelector.svelte.d.ts +16 -6
- package/package/components/ResourceEditor.svelte +16 -11
- package/package/components/ResourceEditor.svelte.d.ts +1 -0
- package/package/components/ResourceEditorDrawer.svelte +3 -1
- package/package/components/ResourceEditorDrawer.svelte.d.ts +6 -2
- package/package/components/ResourcePicker.svelte +10 -5
- package/package/components/ResourcePicker.svelte.d.ts +2 -0
- package/package/components/S3FilePickerInner.svelte +12 -4
- package/package/components/SchemaForm.svelte +20 -14
- package/package/components/SchemaForm.svelte.d.ts +2 -2
- package/package/components/ScriptBuilder.svelte +158 -18
- package/package/components/ScriptEditor.svelte +674 -150
- package/package/components/ScriptEditor.svelte.d.ts +7 -3
- package/package/components/SuperadminSettings.svelte +4 -1
- package/package/components/SuperadminSettingsInner.svelte +176 -67
- package/package/components/SuperadminSettingsInner.svelte.d.ts +3 -1
- package/package/components/SyncResourceTypes.svelte +31 -0
- package/package/components/SyncResourceTypes.svelte.d.ts +6 -0
- package/package/components/TimelineBar.svelte +14 -8
- package/package/components/TimelineBar.svelte.d.ts +1 -0
- package/package/components/WorkerGroup.svelte +11 -4
- package/package/components/WorkflowTimeline.svelte +386 -58
- package/package/components/WorkflowTimeline.svelte.d.ts +6 -1
- package/package/components/WorkspaceDependenciesEditor.svelte +32 -2
- 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.js +44 -222
- package/package/components/apps/components/display/dbtable/queries/count.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/delete.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/insert.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +7 -0
- package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +1 -1
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +9 -0
- package/package/components/apps/components/display/dbtable/queries/update.d.ts +9 -0
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +11 -9
- package/package/components/apps/editor/appUtilsS3.js +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -10
- package/package/components/common/clearableInput/ClearableInput.svelte +3 -7
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
- package/package/components/common/drawer/Disposable.svelte +24 -2
- package/package/components/common/drawer/Disposable.svelte.d.ts +5 -0
- package/package/components/common/modal/Modal.svelte +84 -58
- package/package/components/common/table/AppRow.svelte.d.ts +1 -1
- package/package/components/common/table/FlowRow.svelte.d.ts +1 -1
- package/package/components/common/table/ScriptRow.svelte +31 -3
- package/package/components/common/table/ScriptRow.svelte.d.ts +1 -1
- package/package/components/copilot/MetadataGen.svelte +8 -5
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -0
- package/package/components/copilot/TestAIKey.svelte +2 -1
- package/package/components/copilot/TestAIKey.svelte.d.ts +1 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +62 -80
- package/package/components/copilot/chat/HistoryManager.svelte.d.ts +1 -0
- package/package/components/copilot/chat/HistoryManager.svelte.js +3 -0
- package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +47 -31
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +1 -6
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +18 -13
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +14 -5
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +13 -12
- package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +46 -29
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +1 -4
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +14 -5
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +13 -12
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +5 -8
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +82 -108
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +4 -7
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +19 -11
- package/package/components/copilot/chat/__tests__/shared/types.d.ts +3 -0
- package/package/components/copilot/chat/anthropic.d.ts +9 -2
- package/package/components/copilot/chat/anthropic.js +12 -6
- package/package/components/copilot/chat/app/core.js +5 -12
- package/package/components/copilot/chat/chatLoop.d.ts +40 -0
- package/package/components/copilot/chat/chatLoop.js +97 -0
- package/package/components/copilot/chat/openai-responses.d.ts +8 -2
- package/package/components/copilot/chat/openai-responses.js +17 -17
- package/package/components/copilot/chat/shared.d.ts +2 -1
- package/package/components/copilot/chat/shared.js +2 -2
- package/package/components/copilot/lib.d.ts +14 -5
- package/package/components/copilot/lib.js +68 -48
- package/package/components/dbOps.d.ts +2 -2
- package/package/components/dbOps.js +129 -53
- package/package/components/debug/debugUtils.d.ts +5 -0
- package/package/components/debug/debugUtils.js +20 -0
- package/package/components/debug/index.d.ts +1 -1
- package/package/components/debug/index.js +3 -7
- package/package/components/flows/CreateActionsFlow.svelte +221 -43
- package/package/components/flows/DebounceLimit.svelte +42 -9
- package/package/components/flows/common/FlowCard.svelte +2 -1
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +14 -10
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/AgentToolWrapper.svelte +2 -1
- package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +32 -18
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleDebounce.svelte +46 -0
- package/package/components/flows/content/FlowModuleDebounce.svelte.d.ts +8 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +26 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte +1 -0
- package/package/components/flows/content/FlowRetries.svelte +57 -57
- package/package/components/flows/content/FlowSelectionPanel.svelte +9 -14
- package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowSettings.svelte +6 -6
- package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
- package/package/components/flows/content/SuspendDrawer.svelte +0 -18
- package/package/components/flows/header/FlowYamlEditor.svelte +20 -4
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +32 -14
- package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -10
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -8
- package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +0 -2
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +343 -137
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowStickyNode.svelte +24 -16
- package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
- package/package/components/flows/map/VirtualItemWrapper.svelte +1 -1
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +5 -1
- package/package/components/flows/scheduleUtils.js +3 -1
- package/package/components/flows/utils.svelte.js +6 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +13 -2
- package/package/components/git_sync/GitSyncSection.svelte +135 -99
- package/package/components/graph/DragGhost.svelte +11 -2
- package/package/components/graph/FlowGraphV2.svelte +138 -42
- package/package/components/graph/FlowGraphV2.svelte.d.ts +15 -1
- package/package/components/graph/GroupActionBar.svelte +124 -0
- package/package/components/graph/GroupActionBar.svelte.d.ts +20 -0
- package/package/components/graph/GroupHeader.svelte +98 -0
- package/package/components/graph/GroupHeader.svelte.d.ts +11 -0
- package/package/components/graph/GroupHeaderBlock.svelte +58 -0
- package/package/components/graph/GroupHeaderBlock.svelte.d.ts +13 -0
- package/package/components/graph/GroupModuleIcons.svelte +163 -0
- package/package/components/graph/GroupModuleIcons.svelte.d.ts +11 -0
- package/package/components/graph/GroupNodeCard.svelte +127 -0
- package/package/components/graph/GroupNodeCard.svelte.d.ts +18 -0
- package/package/components/graph/GroupNoteArea.svelte +132 -0
- package/package/components/graph/GroupNoteArea.svelte.d.ts +11 -0
- package/package/components/graph/GroupOverlay.svelte +71 -0
- package/package/components/graph/GroupOverlay.svelte.d.ts +12 -0
- package/package/components/graph/MiniFlowGraph.svelte +17 -2
- package/package/components/graph/SelectionBoundingBox.svelte +14 -14
- package/package/components/graph/compoundLayout.d.ts +17 -1
- package/package/components/graph/compoundLayout.js +129 -14
- package/package/components/graph/flowStructure.d.ts +63 -0
- package/package/components/graph/flowStructure.js +422 -0
- package/package/components/graph/flowStructure.test.d.ts +1 -0
- package/package/components/graph/flowStructure.test.js +205 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +52 -3
- package/package/components/graph/graphBuilder.svelte.js +170 -67
- package/package/components/graph/graphContext.d.ts +7 -0
- package/package/components/graph/groupDetectionUtils.d.ts +24 -1
- package/package/components/graph/groupDetectionUtils.js +101 -1
- package/package/components/graph/groupEditor.svelte.d.ts +105 -0
- package/package/components/graph/groupEditor.svelte.js +253 -0
- package/package/components/graph/groupedModulesProxy.svelte.d.ts +55 -0
- package/package/components/graph/groupedModulesProxy.svelte.js +130 -0
- package/package/components/graph/model.d.ts +2 -1
- package/package/components/graph/moveManager.svelte.js +0 -3
- package/package/components/graph/nodeExtraSpace.d.ts +32 -0
- package/package/components/graph/nodeExtraSpace.js +113 -0
- package/package/components/graph/noteColors.d.ts +1 -0
- package/package/components/graph/noteColors.js +20 -10
- package/package/components/graph/noteUtils.svelte.d.ts +0 -18
- package/package/components/graph/noteUtils.svelte.js +6 -41
- package/package/components/graph/renderers/edges/BaseEdge.svelte +26 -11
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +24 -49
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -4
- package/package/components/graph/renderers/nodes/AssetNode.svelte +1 -27
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +0 -4
- package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte +85 -0
- package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte.d.ts +8 -0
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +3 -2
- package/package/components/graph/renderers/nodes/GroupEndNode.svelte +9 -0
- package/package/components/graph/renderers/nodes/GroupEndNode.svelte.d.ts +6 -0
- package/package/components/graph/renderers/nodes/GroupHeadNode.svelte +20 -0
- package/package/components/graph/renderers/nodes/GroupHeadNode.svelte.d.ts +8 -0
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +8 -5
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
- package/package/components/graph/util.d.ts +5 -1
- package/package/components/graph/util.js +7 -5
- package/package/components/home/Item.svelte +1 -0
- package/package/components/home/ItemsList.svelte +1 -1
- package/package/components/icons/ActiveCampaignIcon.svelte +10 -0
- package/package/components/icons/ActiveCampaignIcon.svelte.d.ts +7 -0
- package/package/components/icons/AlgoliaIcon.svelte +7 -0
- package/package/components/icons/AlgoliaIcon.svelte.d.ts +7 -0
- package/package/components/icons/ApolloIcon.svelte +7 -0
- package/package/components/icons/ApolloIcon.svelte.d.ts +7 -0
- package/package/components/icons/BambooHrIcon.svelte +7 -0
- package/package/components/icons/BambooHrIcon.svelte.d.ts +7 -0
- package/package/components/icons/BaremetricsIcon.svelte +7 -0
- package/package/components/icons/BaremetricsIcon.svelte.d.ts +7 -0
- package/package/components/icons/BitlyIcon.svelte +7 -0
- package/package/components/icons/BitlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/BloggerIcon.svelte +7 -0
- package/package/components/icons/BloggerIcon.svelte.d.ts +7 -0
- package/package/components/icons/BlueskyIcon.svelte +7 -0
- package/package/components/icons/BlueskyIcon.svelte.d.ts +7 -0
- package/package/components/icons/BoxIcon.svelte +7 -0
- package/package/components/icons/BoxIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrevoIcon.svelte +7 -0
- package/package/components/icons/BrevoIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrexIcon.svelte +7 -0
- package/package/components/icons/BrexIcon.svelte.d.ts +7 -0
- package/package/components/icons/BrowserlessIcon.svelte +7 -0
- package/package/components/icons/BrowserlessIcon.svelte.d.ts +7 -0
- package/package/components/icons/BubbleIcon.svelte +11 -0
- package/package/components/icons/BubbleIcon.svelte.d.ts +7 -0
- package/package/components/icons/BuildkiteIcon.svelte +7 -0
- package/package/components/icons/BuildkiteIcon.svelte.d.ts +7 -0
- package/package/components/icons/CalcomIcon.svelte +1 -1
- package/package/components/icons/CalendlyIcon.svelte +7 -0
- package/package/components/icons/CalendlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/CircleCiIcon.svelte +7 -0
- package/package/components/icons/CircleCiIcon.svelte.d.ts +7 -0
- package/package/components/icons/CiscoIcon.svelte +7 -0
- package/package/components/icons/CiscoIcon.svelte.d.ts +7 -0
- package/package/components/icons/ClearbitIcon.svelte +7 -0
- package/package/components/icons/ClearbitIcon.svelte.d.ts +7 -0
- package/package/components/icons/ClerkIcon.svelte +7 -0
- package/package/components/icons/ClerkIcon.svelte.d.ts +7 -0
- package/package/components/icons/CloseIcon.svelte +37 -0
- package/package/components/icons/CloseIcon.svelte.d.ts +7 -0
- package/package/components/icons/CloudinaryIcon.svelte +7 -0
- package/package/components/icons/CloudinaryIcon.svelte.d.ts +7 -0
- package/package/components/icons/CockroachDbIcon.svelte +7 -0
- package/package/components/icons/CockroachDbIcon.svelte.d.ts +7 -0
- package/package/components/icons/CodaIcon.svelte +7 -0
- package/package/components/icons/CodaIcon.svelte.d.ts +7 -0
- package/package/components/icons/CohereIcon.svelte +16 -0
- package/package/components/icons/CohereIcon.svelte.d.ts +7 -0
- package/package/components/icons/CoinMarketCapIcon.svelte +7 -0
- package/package/components/icons/CoinMarketCapIcon.svelte.d.ts +7 -0
- package/package/components/icons/CoinbaseIcon.svelte +7 -0
- package/package/components/icons/CoinbaseIcon.svelte.d.ts +7 -0
- package/package/components/icons/ConfluenceIcon.svelte +7 -0
- package/package/components/icons/ConfluenceIcon.svelte.d.ts +7 -0
- package/package/components/icons/ContentfulIcon.svelte +7 -0
- package/package/components/icons/ContentfulIcon.svelte.d.ts +7 -0
- package/package/components/icons/ConvertKitIcon.svelte +7 -0
- package/package/components/icons/ConvertKitIcon.svelte.d.ts +7 -0
- package/package/components/icons/DatoCmsIcon.svelte +7 -0
- package/package/components/icons/DatoCmsIcon.svelte.d.ts +7 -0
- package/package/components/icons/DeelIcon.svelte +7 -0
- package/package/components/icons/DeelIcon.svelte.d.ts +7 -0
- package/package/components/icons/DeepLIcon.svelte +7 -0
- package/package/components/icons/DeepLIcon.svelte.d.ts +7 -0
- package/package/components/icons/DigitalOceanIcon.svelte +7 -0
- package/package/components/icons/DigitalOceanIcon.svelte.d.ts +7 -0
- package/package/components/icons/DiscourseIcon.svelte +7 -0
- package/package/components/icons/DiscourseIcon.svelte.d.ts +7 -0
- package/package/components/icons/DocusignIcon.svelte +7 -0
- package/package/components/icons/DocusignIcon.svelte.d.ts +7 -0
- package/package/components/icons/DropboxIcon.svelte +7 -0
- package/package/components/icons/DropboxIcon.svelte.d.ts +7 -0
- package/package/components/icons/EdgeDbIcon.svelte +16 -20
- package/package/components/icons/EventbriteIcon.svelte +10 -0
- package/package/components/icons/EventbriteIcon.svelte.d.ts +7 -0
- package/package/components/icons/FigmaIcon.svelte +7 -0
- package/package/components/icons/FigmaIcon.svelte.d.ts +7 -0
- package/package/components/icons/FlyIcon.svelte +7 -0
- package/package/components/icons/FlyIcon.svelte.d.ts +7 -0
- package/package/components/icons/FreshdeskIcon.svelte +7 -0
- package/package/components/icons/FreshdeskIcon.svelte.d.ts +7 -0
- package/package/components/icons/FrontAppIcon.svelte +7 -0
- package/package/components/icons/FrontAppIcon.svelte.d.ts +7 -0
- package/package/components/icons/GhostCmsIcon.svelte +7 -0
- package/package/components/icons/GhostCmsIcon.svelte.d.ts +7 -0
- package/package/components/icons/GiphyIcon.svelte +7 -0
- package/package/components/icons/GiphyIcon.svelte.d.ts +7 -0
- package/package/components/icons/GitBookIcon.svelte +7 -0
- package/package/components/icons/GitBookIcon.svelte.d.ts +7 -0
- package/package/components/icons/GroqIcon.svelte +7 -0
- package/package/components/icons/GroqIcon.svelte.d.ts +7 -0
- package/package/components/icons/HoneybadgerIcon.svelte +7 -0
- package/package/components/icons/HoneybadgerIcon.svelte.d.ts +7 -0
- package/package/components/icons/HttpIcon.svelte +1 -0
- package/package/components/icons/IftttIcon.svelte +7 -0
- package/package/components/icons/IftttIcon.svelte.d.ts +7 -0
- package/package/components/icons/IntercomIcon.svelte +7 -0
- package/package/components/icons/IntercomIcon.svelte.d.ts +7 -0
- package/package/components/icons/JoomlaIcon.svelte +7 -0
- package/package/components/icons/JoomlaIcon.svelte.d.ts +7 -0
- package/package/components/icons/LineIcon.svelte +7 -0
- package/package/components/icons/LineIcon.svelte.d.ts +7 -0
- package/package/components/icons/LinearIcon.svelte +7 -0
- package/package/components/icons/LinearIcon.svelte.d.ts +7 -0
- package/package/components/icons/LinodeIcon.svelte +7 -0
- package/package/components/icons/LinodeIcon.svelte.d.ts +7 -0
- package/package/components/icons/LumaAiIcon.svelte +39 -0
- package/package/components/icons/LumaAiIcon.svelte.d.ts +7 -0
- package/package/components/icons/MSTeamsIcon.svelte +20 -38
- package/package/components/icons/MSTeamsIcon.svelte.d.ts +2 -0
- package/package/components/icons/MagentoIcon.svelte +7 -0
- package/package/components/icons/MagentoIcon.svelte.d.ts +7 -0
- package/package/components/icons/MailchimpIcon.svelte +25 -13
- package/package/components/icons/MandrillIcon.svelte +7 -0
- package/package/components/icons/MandrillIcon.svelte.d.ts +7 -0
- package/package/components/icons/MauticIcon.svelte +7 -0
- package/package/components/icons/MauticIcon.svelte.d.ts +7 -0
- package/package/components/icons/MediumIcon.svelte +7 -0
- package/package/components/icons/MediumIcon.svelte.d.ts +7 -0
- package/package/components/icons/MiroIcon.svelte +7 -0
- package/package/components/icons/MiroIcon.svelte.d.ts +7 -0
- package/package/components/icons/MistralIcon.svelte +7 -0
- package/package/components/icons/MistralIcon.svelte.d.ts +7 -0
- package/package/components/icons/MixpanelIcon.svelte +7 -0
- package/package/components/icons/MixpanelIcon.svelte.d.ts +7 -0
- package/package/components/icons/MondayIcon.svelte +7 -0
- package/package/components/icons/MondayIcon.svelte.d.ts +7 -0
- package/package/components/icons/NeonDbIcon.svelte +23 -0
- package/package/components/icons/NeonDbIcon.svelte.d.ts +7 -0
- package/package/components/icons/NetlifyIcon.svelte +7 -0
- package/package/components/icons/NetlifyIcon.svelte.d.ts +7 -0
- package/package/components/icons/OneSignalIcon.svelte +9 -0
- package/package/components/icons/OneSignalIcon.svelte.d.ts +7 -0
- package/package/components/icons/OpenWeatherIcon.svelte +7 -0
- package/package/components/icons/OpenWeatherIcon.svelte.d.ts +7 -0
- package/package/components/icons/PagerDutyIcon.svelte +7 -0
- package/package/components/icons/PagerDutyIcon.svelte.d.ts +7 -0
- package/package/components/icons/PandaDocIcon.svelte +7 -0
- package/package/components/icons/PandaDocIcon.svelte.d.ts +7 -0
- package/package/components/icons/PaypalIcon.svelte +7 -0
- package/package/components/icons/PaypalIcon.svelte.d.ts +7 -0
- package/package/components/icons/PersonioIcon.svelte +7 -0
- package/package/components/icons/PersonioIcon.svelte.d.ts +7 -0
- package/package/components/icons/PinterestIcon.svelte +7 -0
- package/package/components/icons/PinterestIcon.svelte.d.ts +7 -0
- package/package/components/icons/PipedriveIcon.svelte +11 -0
- package/package/components/icons/PipedriveIcon.svelte.d.ts +7 -0
- package/package/components/icons/PlanetScaleIcon.svelte +7 -0
- package/package/components/icons/PlanetScaleIcon.svelte.d.ts +7 -0
- package/package/components/icons/PostmarkIcon.svelte +7 -0
- package/package/components/icons/PostmarkIcon.svelte.d.ts +7 -0
- package/package/components/icons/PusherIcon.svelte +7 -0
- package/package/components/icons/PusherIcon.svelte.d.ts +7 -0
- package/package/components/icons/QuickbooksIcon.svelte +13 -1
- package/package/components/icons/RaindropIcon.svelte +27 -0
- package/package/components/icons/RaindropIcon.svelte.d.ts +7 -0
- package/package/components/icons/ReadwiseIcon.svelte +12 -0
- package/package/components/icons/ReadwiseIcon.svelte.d.ts +7 -0
- package/package/components/icons/RenderIcon.svelte +7 -0
- package/package/components/icons/RenderIcon.svelte.d.ts +7 -0
- package/package/components/icons/ReplicateIcon.svelte +7 -0
- package/package/components/icons/ReplicateIcon.svelte.d.ts +7 -0
- package/package/components/icons/ResendIcon.svelte +1 -1
- package/package/components/icons/RestIcon.svelte +1 -0
- package/package/components/icons/RingCentralIcon.svelte +7 -0
- package/package/components/icons/RingCentralIcon.svelte.d.ts +7 -0
- package/package/components/icons/RocketChatIcon.svelte +7 -0
- package/package/components/icons/RocketChatIcon.svelte.d.ts +7 -0
- package/package/components/icons/RunPodIcon.svelte +8 -0
- package/package/components/icons/RunPodIcon.svelte.d.ts +7 -0
- package/package/components/icons/RustIcon.svelte +74 -56
- package/package/components/icons/SalesforceIcon.svelte +7 -0
- package/package/components/icons/SalesforceIcon.svelte.d.ts +7 -0
- package/package/components/icons/SegmentIcon.svelte +7 -0
- package/package/components/icons/SegmentIcon.svelte.d.ts +7 -0
- package/package/components/icons/SentryIcon.svelte +7 -0
- package/package/components/icons/SentryIcon.svelte.d.ts +7 -0
- package/package/components/icons/ServiceNowIcon.svelte +7 -0
- package/package/components/icons/ServiceNowIcon.svelte.d.ts +7 -0
- package/package/components/icons/ShortcutIcon.svelte +7 -0
- package/package/components/icons/ShortcutIcon.svelte.d.ts +7 -0
- package/package/components/icons/SigNozIcon.svelte +8 -0
- package/package/components/icons/SigNozIcon.svelte.d.ts +7 -0
- package/package/components/icons/SmartsheetIcon.svelte +7 -0
- package/package/components/icons/SmartsheetIcon.svelte.d.ts +7 -0
- package/package/components/icons/SpeechifyIcon.svelte +7 -0
- package/package/components/icons/SpeechifyIcon.svelte.d.ts +7 -0
- package/package/components/icons/SplitwiseIcon.svelte +7 -0
- package/package/components/icons/SplitwiseIcon.svelte.d.ts +7 -0
- package/package/components/icons/StravaIcon.svelte +7 -0
- package/package/components/icons/StravaIcon.svelte.d.ts +7 -0
- package/package/components/icons/TallyIcon.svelte +7 -0
- package/package/components/icons/TallyIcon.svelte.d.ts +7 -0
- package/package/components/icons/TelnyxIcon.svelte +19 -0
- package/package/components/icons/TelnyxIcon.svelte.d.ts +7 -0
- package/package/components/icons/ThreadsIcon.svelte +7 -0
- package/package/components/icons/ThreadsIcon.svelte.d.ts +7 -0
- package/package/components/icons/TodoistIcon.svelte +7 -0
- package/package/components/icons/TodoistIcon.svelte.d.ts +7 -0
- package/package/components/icons/TogetherAiIcon.svelte +23 -0
- package/package/components/icons/TogetherAiIcon.svelte.d.ts +7 -0
- package/package/components/icons/TrelloIcon.svelte +22 -1
- package/package/components/icons/TursoIcon.svelte +7 -0
- package/package/components/icons/TursoIcon.svelte.d.ts +7 -0
- package/package/components/icons/TwitchIcon.svelte +7 -0
- package/package/components/icons/TwitchIcon.svelte.d.ts +7 -0
- package/package/components/icons/TwitterIcon.svelte +7 -0
- package/package/components/icons/TwitterIcon.svelte.d.ts +7 -0
- package/package/components/icons/TypeformIcon.svelte +1 -1
- package/package/components/icons/VercelIcon.svelte +7 -0
- package/package/components/icons/VercelIcon.svelte.d.ts +7 -0
- package/package/components/icons/WebflowIcon.svelte +7 -0
- package/package/components/icons/WebflowIcon.svelte.d.ts +7 -0
- package/package/components/icons/WooCommerceIcon.svelte +7 -0
- package/package/components/icons/WooCommerceIcon.svelte.d.ts +7 -0
- package/package/components/icons/WordpressIcon.svelte +7 -0
- package/package/components/icons/WordpressIcon.svelte.d.ts +7 -0
- package/package/components/icons/XataIcon.svelte +13 -0
- package/package/components/icons/XataIcon.svelte.d.ts +7 -0
- package/package/components/icons/YelpIcon.svelte +7 -0
- package/package/components/icons/YelpIcon.svelte.d.ts +7 -0
- package/package/components/icons/YnabIcon.svelte +7 -0
- package/package/components/icons/YnabIcon.svelte.d.ts +7 -0
- package/package/components/icons/YoutubeIcon.svelte +7 -0
- package/package/components/icons/YoutubeIcon.svelte.d.ts +7 -0
- package/package/components/icons/ZendeskIcon.svelte +1 -1
- package/package/components/icons/ZeroTierIcon.svelte +7 -0
- package/package/components/icons/ZeroTierIcon.svelte.d.ts +7 -0
- package/package/components/icons/ZoomIcon.svelte +7 -0
- package/package/components/icons/ZoomIcon.svelte.d.ts +7 -0
- package/package/components/icons/index.d.ts +111 -1
- package/package/components/icons/index.js +225 -2
- package/package/components/instanceSettings/GhesAppSettings.svelte +161 -0
- package/package/components/instanceSettings/GhesAppSettings.svelte.d.ts +8 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +19 -8
- package/package/components/instanceSettings/InstanceAISettings.svelte +132 -0
- package/package/components/instanceSettings/InstanceAISettings.svelte.d.ts +10 -0
- package/package/components/instanceSettings/WorkspaceRegistries.svelte +293 -0
- package/package/components/instanceSettings/WorkspaceRegistries.svelte.d.ts +8 -0
- package/package/components/instanceSettings/WsConnectivityTest.svelte +177 -0
- package/package/components/instanceSettings/WsConnectivityTest.svelte.d.ts +7 -0
- package/package/components/instanceSettings.d.ts +3 -1
- package/package/components/instanceSettings.js +92 -2
- package/package/components/mcp/McpScopeSelector.svelte +408 -0
- package/package/components/mcp/McpScopeSelector.svelte.d.ts +7 -0
- package/package/components/meltComponents/Popover.svelte +0 -1
- package/package/components/raw_apps/RawAppPreview.svelte +6 -2
- package/package/components/recording/FlowRecordingReplay.svelte +94 -52
- package/package/components/recording/FlowRecordingReplay.svelte.d.ts +10 -1
- package/package/components/recording/ScriptRecordingReplay.svelte +139 -76
- package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +10 -1
- package/package/components/runs/JobRunsPreview.svelte +8 -1
- package/package/components/runs/TimeframeSelect.svelte +0 -1
- package/package/components/schema/JobSchemaPicker.svelte +8 -2
- package/package/components/schema/JobSchemaPicker.svelte.d.ts +1 -0
- package/package/components/schema/SchemaFormDND.svelte +15 -3
- package/package/components/scriptEditor/LogPanel.svelte +78 -68
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/scripts/CreateActionsScript.svelte +3 -3
- package/package/components/scripts/WacExportDrawer.svelte +127 -0
- package/package/components/scripts/WacExportDrawer.svelte.d.ts +8 -0
- package/package/components/scripts/scriptStore.svelte.d.ts +2 -0
- package/package/components/scripts/scriptStore.svelte.js +2 -0
- package/package/components/select/SelectDropdown.svelte +1 -1
- package/package/components/settings/AIPromptsModal.svelte +5 -2
- package/package/components/settings/AIPromptsModal.svelte.d.ts +1 -1
- package/package/components/settings/CloudQuotas.svelte +152 -0
- package/package/components/settings/CloudQuotas.svelte.d.ts +3 -0
- package/package/components/settings/CreateToken.svelte +15 -430
- package/package/components/settings/Trashbin.svelte +248 -0
- package/package/components/settings/Trashbin.svelte.d.ts +3 -0
- package/package/components/sidebar/MultiplayerMenu.svelte +14 -4
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -0
- package/package/components/triggers/PermissionedAsLine.svelte +66 -0
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +9 -0
- package/package/components/triggers/TriggerEditorToolbar.svelte +2 -2
- package/package/components/triggers/TriggerTokens.svelte +3 -3
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/email/utils.js +3 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +24 -4
- package/package/components/triggers/gcp/utils.js +2 -0
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +22 -3
- package/package/components/triggers/http/RouteEditorInner.svelte +28 -6
- package/package/components/triggers/http/RoutesGenerator.svelte +13 -2
- package/package/components/triggers/http/utils.js +3 -1
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +23 -6
- package/package/components/triggers/kafka/utils.js +3 -1
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +27 -5
- package/package/components/triggers/mqtt/utils.js +2 -0
- package/package/components/triggers/native/NativeTriggerEditor.svelte +23 -1
- package/package/components/triggers/native/NativeTriggerTable.svelte +14 -3
- package/package/components/triggers/native/utils.js +3 -2
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/nats/utils.js +2 -0
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/postgres/utils.js +2 -0
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +29 -7
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +19 -1
- package/package/components/triggers/sqs/utils.js +2 -0
- package/package/components/triggers/utils.js +9 -2
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +24 -4
- package/package/components/triggers/websocket/utils.js +3 -1
- package/package/components/workspaceSettings/AISettings.svelte +342 -214
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +18 -10
- package/package/components/workspaceSettings/CreateWorkspace.svelte +304 -196
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +1 -2
- package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
- package/package/components/workspaceSettings/InstanceFallbackSettings.svelte +75 -0
- package/package/components/workspaceSettings/InstanceFallbackSettings.svelte.d.ts +9 -0
- package/package/components/workspaceSettings/StorageSettings.svelte +4 -35
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte +80 -0
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte.d.ts +10 -0
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +4 -1
- package/package/forLater.js +4 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +294 -94
- package/package/gen/schemas.gen.js +294 -94
- package/package/gen/services.gen.d.ts +121 -5
- package/package/gen/services.gen.js +237 -5
- package/package/gen/types.gen.d.ts +715 -91
- package/package/githubApp.js +19 -1
- package/package/hubPaths.json +8 -4
- package/package/infer.d.ts +1 -1
- package/package/infer.js +5 -1
- package/package/logoutRedirect.d.ts +1 -0
- package/package/logoutRedirect.js +24 -0
- package/package/script_helpers.d.ts +8 -2
- package/package/script_helpers.js +15 -1
- package/package/services/trashService.d.ts +28 -0
- package/package/services/trashService.js +47 -0
- package/package/stores.d.ts +1 -0
- package/package/stores.js +1 -0
- package/package/system_prompts/index.d.ts +1 -0
- package/package/system_prompts/index.js +7 -0
- package/package/system_prompts/prompts.d.ts +7 -5
- package/package/system_prompts/prompts.js +182 -11
- package/package/templates/wac_python.py.template +42 -0
- package/package/templates/wac_typescript.ts.template +48 -0
- package/package/utils_deployable.d.ts +22 -21
- package/package/utils_deployable.js +58 -25
- package/package/utils_workspace_deploy.d.ts +15 -4
- package/package/utils_workspace_deploy.js +19 -15
- package/package/wsUrl.d.ts +1 -0
- package/package/wsUrl.js +15 -0
- package/package.json +13 -5
- 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/graph/NodeContextMenu.svelte +0 -36
- package/package/components/graph/NodeContextMenu.svelte.d.ts +0 -8
- package/package/svelte5Utils.svelte.d.ts +0 -184
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<script lang="ts">import TextInput from '../text_input/TextInput.svelte';
|
|
2
|
+
import Toggle from '../Toggle.svelte';
|
|
3
|
+
let { values, disabled = false } = $props();
|
|
4
|
+
// Ensure the nested object exists
|
|
5
|
+
if (!$values['github_enterprise_app']) {
|
|
6
|
+
$values['github_enterprise_app'] = {};
|
|
7
|
+
}
|
|
8
|
+
let selfManaged = $derived(!!$values['github_enterprise_app'].self_managed);
|
|
9
|
+
let fieldsDisabled = $derived(disabled || !selfManaged);
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<div class="space-y-6">
|
|
13
|
+
<Toggle
|
|
14
|
+
size="xs"
|
|
15
|
+
options={{ right: 'Self-managed GitHub App' }}
|
|
16
|
+
checked={selfManaged}
|
|
17
|
+
on:change={() => {
|
|
18
|
+
$values['github_enterprise_app'] = {
|
|
19
|
+
...$values['github_enterprise_app'],
|
|
20
|
+
self_managed: !selfManaged
|
|
21
|
+
}
|
|
22
|
+
}}
|
|
23
|
+
/>
|
|
24
|
+
|
|
25
|
+
{#if !selfManaged}
|
|
26
|
+
<p class="text-xs text-secondary">
|
|
27
|
+
Using the managed Windmill GitHub App via stats.windmill.dev. Enable self-managed mode to
|
|
28
|
+
configure your own GitHub App (required for GitHub Enterprise Server).
|
|
29
|
+
</p>
|
|
30
|
+
{:else}
|
|
31
|
+
<details class="mt-1">
|
|
32
|
+
<summary class="text-xs font-medium text-secondary cursor-pointer hover:text-primary"
|
|
33
|
+
>How to create a GitHub App</summary
|
|
34
|
+
>
|
|
35
|
+
<div class="mt-2 p-3 bg-surface rounded text-2xs text-secondary space-y-2">
|
|
36
|
+
<p>
|
|
37
|
+
<strong>1.</strong> On your GitHub instance, go to
|
|
38
|
+
<strong
|
|
39
|
+
>Settings → Developer settings → GitHub Apps → New GitHub App</strong
|
|
40
|
+
>.
|
|
41
|
+
</p>
|
|
42
|
+
<p><strong>2.</strong> Fill in the required fields:</p>
|
|
43
|
+
<ul class="list-disc ml-4 space-y-1">
|
|
44
|
+
<li>
|
|
45
|
+
<strong>GitHub App name</strong>: e.g. <code>windmill-sync</code> (this becomes the app slug)
|
|
46
|
+
</li>
|
|
47
|
+
<li>
|
|
48
|
+
<strong>Homepage URL</strong>: your Windmill instance URL
|
|
49
|
+
</li>
|
|
50
|
+
<li>
|
|
51
|
+
<strong>Callback URL</strong>: <code><your-windmill-url>/gh_success</code>
|
|
52
|
+
</li>
|
|
53
|
+
<li>
|
|
54
|
+
<strong>Setup URL</strong> (optional):
|
|
55
|
+
<code><your-windmill-url>/gh_success</code> with "Redirect on update" checked
|
|
56
|
+
</li>
|
|
57
|
+
<li>Uncheck <strong>Active</strong> under Webhook (not needed)</li>
|
|
58
|
+
</ul>
|
|
59
|
+
<p><strong>3.</strong> Set repository permissions:</p>
|
|
60
|
+
<ul class="list-disc ml-4 space-y-1">
|
|
61
|
+
<li><strong>Contents</strong>: Read & write</li>
|
|
62
|
+
<li><strong>Metadata</strong>: Read-only</li>
|
|
63
|
+
</ul>
|
|
64
|
+
<p>
|
|
65
|
+
<strong>4.</strong> Under "Where can this GitHub App be installed?", choose
|
|
66
|
+
<strong>Any account</strong> (or restrict to your organization).
|
|
67
|
+
</p>
|
|
68
|
+
<p>
|
|
69
|
+
<strong>5.</strong> Click <strong>Create GitHub App</strong>. On the next page, note the
|
|
70
|
+
<strong>App ID</strong> and <strong>Client ID</strong>.
|
|
71
|
+
</p>
|
|
72
|
+
<p>
|
|
73
|
+
<strong>6.</strong> Scroll down and click <strong>Generate a private key</strong>. Save
|
|
74
|
+
the downloaded <code>.pem</code> file — paste its contents into the Private Key field below.
|
|
75
|
+
</p>
|
|
76
|
+
<p>
|
|
77
|
+
<strong>7.</strong> The <strong>App Slug</strong> is the URL-friendly name shown in the
|
|
78
|
+
app's URL (e.g. <code>github.com/apps/<strong>windmill-sync</strong></code>).
|
|
79
|
+
</p>
|
|
80
|
+
<p>
|
|
81
|
+
<strong>8.</strong> The <strong>Base URL</strong> is your GitHub instance root (e.g.
|
|
82
|
+
<code>https://github.com</code> or <code>https://github.mycompany.com</code>).
|
|
83
|
+
</p>
|
|
84
|
+
</div>
|
|
85
|
+
</details>
|
|
86
|
+
{/if}
|
|
87
|
+
|
|
88
|
+
<div class="grid grid-cols-2 gap-x-2 gap-y-6">
|
|
89
|
+
<div class="flex flex-col gap-1">
|
|
90
|
+
<label for="ghes_base_url" class="block text-xs font-semibold text-emphasis mb-1">
|
|
91
|
+
Base URL
|
|
92
|
+
</label>
|
|
93
|
+
<TextInput
|
|
94
|
+
inputProps={{
|
|
95
|
+
type: 'text',
|
|
96
|
+
id: 'ghes_base_url',
|
|
97
|
+
placeholder: 'https://github.mycompany.com',
|
|
98
|
+
disabled: fieldsDisabled
|
|
99
|
+
}}
|
|
100
|
+
bind:value={$values['github_enterprise_app'].base_url}
|
|
101
|
+
/>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="flex flex-col gap-1">
|
|
104
|
+
<label for="ghes_app_id" class="block text-xs font-semibold text-emphasis mb-1">
|
|
105
|
+
App ID
|
|
106
|
+
</label>
|
|
107
|
+
<TextInput
|
|
108
|
+
inputProps={{
|
|
109
|
+
type: 'number',
|
|
110
|
+
id: 'ghes_app_id',
|
|
111
|
+
placeholder: '12345',
|
|
112
|
+
disabled: fieldsDisabled
|
|
113
|
+
}}
|
|
114
|
+
bind:value={$values['github_enterprise_app'].app_id}
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="flex flex-col gap-1">
|
|
118
|
+
<label for="ghes_app_slug" class="block text-xs font-semibold text-emphasis mb-1">
|
|
119
|
+
App Slug
|
|
120
|
+
</label>
|
|
121
|
+
<TextInput
|
|
122
|
+
inputProps={{
|
|
123
|
+
type: 'text',
|
|
124
|
+
id: 'ghes_app_slug',
|
|
125
|
+
placeholder: 'my-windmill-app',
|
|
126
|
+
disabled: fieldsDisabled
|
|
127
|
+
}}
|
|
128
|
+
bind:value={$values['github_enterprise_app'].app_slug}
|
|
129
|
+
/>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="flex flex-col gap-1">
|
|
132
|
+
<label for="ghes_client_id" class="block text-xs font-semibold text-emphasis mb-1">
|
|
133
|
+
Client ID
|
|
134
|
+
</label>
|
|
135
|
+
<TextInput
|
|
136
|
+
inputProps={{
|
|
137
|
+
type: 'text',
|
|
138
|
+
id: 'ghes_client_id',
|
|
139
|
+
placeholder: 'Iv1.abc123',
|
|
140
|
+
disabled: fieldsDisabled
|
|
141
|
+
}}
|
|
142
|
+
bind:value={$values['github_enterprise_app'].client_id}
|
|
143
|
+
/>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
|
|
147
|
+
<div class="flex flex-col gap-1">
|
|
148
|
+
<label for="ghes_private_key" class="block text-xs font-semibold text-emphasis mb-1">
|
|
149
|
+
Private Key (PEM)
|
|
150
|
+
</label>
|
|
151
|
+
<textarea
|
|
152
|
+
id="ghes_private_key"
|
|
153
|
+
class="w-full h-32 font-mono text-xs p-2 border rounded resize-y {fieldsDisabled
|
|
154
|
+
? 'bg-surface-disabled text-disabled cursor-not-allowed'
|
|
155
|
+
: 'bg-surface text-primary'}"
|
|
156
|
+
placeholder="-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----"
|
|
157
|
+
disabled={fieldsDisabled}
|
|
158
|
+
bind:value={$values['github_enterprise_app'].private_key}
|
|
159
|
+
></textarea>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Writable } from 'svelte/store';
|
|
2
|
+
interface Props {
|
|
3
|
+
values: Writable<Record<string, any>>;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const GhesAppSettings: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type GhesAppSettings = ReturnType<typeof GhesAppSettings>;
|
|
8
|
+
export default GhesAppSettings;
|
|
@@ -12,6 +12,7 @@ let { values, disabled = false, errors = {} } = $props();
|
|
|
12
12
|
let clearJobsIndexModalOpen = $state(false);
|
|
13
13
|
let clearServiceLogsIndexModalOpen = $state(false);
|
|
14
14
|
let status = $state(undefined);
|
|
15
|
+
let diskSizes = $state(undefined);
|
|
15
16
|
let statusLoading = $state(true);
|
|
16
17
|
let statusError = $state(false);
|
|
17
18
|
function formatTimeAgo(isoDate) {
|
|
@@ -29,10 +30,16 @@ async function loadStatus() {
|
|
|
29
30
|
statusLoading = true;
|
|
30
31
|
statusError = false;
|
|
31
32
|
try {
|
|
32
|
-
|
|
33
|
+
const [statusRes, diskRes] = await Promise.all([
|
|
34
|
+
IndexSearchService.getIndexerStatus(),
|
|
35
|
+
IndexSearchService.getIndexDiskStorageSizes().catch(() => undefined)
|
|
36
|
+
]);
|
|
37
|
+
status = statusRes;
|
|
38
|
+
diskSizes = diskRes;
|
|
33
39
|
}
|
|
34
40
|
catch (e) {
|
|
35
41
|
status = undefined;
|
|
42
|
+
diskSizes = undefined;
|
|
36
43
|
statusError = true;
|
|
37
44
|
}
|
|
38
45
|
finally {
|
|
@@ -128,7 +135,11 @@ loadStatus();
|
|
|
128
135
|
: 'bg-red-500'}"
|
|
129
136
|
></span>
|
|
130
137
|
<span class="text-primary font-medium">{label}:</span>
|
|
131
|
-
<span
|
|
138
|
+
<span
|
|
139
|
+
class="font-semibold {entry?.is_alive
|
|
140
|
+
? 'text-green-600 dark:text-green-400'
|
|
141
|
+
: 'text-red-600 dark:text-red-400'}"
|
|
142
|
+
>
|
|
132
143
|
{entry?.is_alive ? 'Running' : 'Stopped'}
|
|
133
144
|
</span>
|
|
134
145
|
{#if entry?.last_locked_at}
|
|
@@ -150,21 +161,21 @@ loadStatus();
|
|
|
150
161
|
<div class="flex flex-col gap-1 text-2xs text-tertiary">
|
|
151
162
|
<span>
|
|
152
163
|
Jobs index:
|
|
153
|
-
{#if
|
|
154
|
-
Disk: {displaySize(
|
|
164
|
+
{#if diskSizes?.job_index_disk_size_bytes != null}
|
|
165
|
+
Disk: {displaySize(diskSizes.job_index_disk_size_bytes) ?? 'N/A'}
|
|
155
166
|
{/if}
|
|
156
167
|
{#if status.job_indexer?.storage?.s3_size_bytes != null}
|
|
157
|
-
{#if
|
|
168
|
+
{#if diskSizes?.job_index_disk_size_bytes != null}·{/if}
|
|
158
169
|
S3: {displaySize(status.job_indexer.storage.s3_size_bytes) ?? 'N/A'}
|
|
159
170
|
{/if}
|
|
160
171
|
</span>
|
|
161
172
|
<span>
|
|
162
173
|
Service logs index:
|
|
163
|
-
{#if
|
|
164
|
-
Disk: {displaySize(
|
|
174
|
+
{#if diskSizes?.log_index_disk_size_bytes != null}
|
|
175
|
+
Disk: {displaySize(diskSizes.log_index_disk_size_bytes) ?? 'N/A'}
|
|
165
176
|
{/if}
|
|
166
177
|
{#if status.log_indexer?.storage?.s3_size_bytes != null}
|
|
167
|
-
{#if
|
|
178
|
+
{#if diskSizes?.log_index_disk_size_bytes != null}·{/if}
|
|
168
179
|
S3: {displaySize(status.log_indexer.storage.s3_size_bytes) ?? 'N/A'}
|
|
169
180
|
{/if}
|
|
170
181
|
</span>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<script lang="ts">import { JobService, SettingService, WorkspaceService } from '../../gen';
|
|
2
|
+
import { setCopilotInfo } from '../../aiStore';
|
|
3
|
+
import { workspaceStore, userStore } from '../../stores';
|
|
4
|
+
import { getUserExt } from '../../user';
|
|
5
|
+
import { sendUserToast } from '../../toast';
|
|
6
|
+
import { workspaceAIClients } from '../copilot/lib';
|
|
7
|
+
import AISettings from '../workspaceSettings/AISettings.svelte';
|
|
8
|
+
import { Alert, Button } from '../common';
|
|
9
|
+
let { hasUnsavedChanges = $bindable(false), disableChatOffset = false, showHubSync = false } = $props();
|
|
10
|
+
let initialConfig = $state(undefined);
|
|
11
|
+
let loaded = $state(false);
|
|
12
|
+
let aiSettings = $state(undefined);
|
|
13
|
+
async function loadConfig() {
|
|
14
|
+
try {
|
|
15
|
+
initialConfig =
|
|
16
|
+
(await SettingService.getGlobal({ key: 'ai_config' })) ?? {};
|
|
17
|
+
loaded = true;
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
console.error('Failed to load instance AI config', e);
|
|
21
|
+
sendUserToast('Failed to load instance AI config', true);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function handleCustomSave(config) {
|
|
25
|
+
const hasProviders = Object.keys(config.providers ?? {}).length > 0;
|
|
26
|
+
await SettingService.setGlobal({
|
|
27
|
+
key: 'ai_config',
|
|
28
|
+
requestBody: { value: hasProviders ? config : null }
|
|
29
|
+
});
|
|
30
|
+
if ($workspaceStore) {
|
|
31
|
+
try {
|
|
32
|
+
const effectiveConfig = await WorkspaceService.getCopilotInfo({
|
|
33
|
+
workspace: $workspaceStore
|
|
34
|
+
});
|
|
35
|
+
setCopilotInfo(effectiveConfig);
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.error('Failed to refresh workspace AI state after instance save', e);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
sendUserToast('Instance AI settings saved');
|
|
42
|
+
}
|
|
43
|
+
export async function persistBeforeExit() {
|
|
44
|
+
return (await aiSettings?.saveIfDirtyAndValid()) ?? true;
|
|
45
|
+
}
|
|
46
|
+
// Ensure stores are set (this page may bypass the (logged) layout)
|
|
47
|
+
async function ensureStores() {
|
|
48
|
+
if (!$workspaceStore) {
|
|
49
|
+
$workspaceStore = 'admins';
|
|
50
|
+
}
|
|
51
|
+
if (!$userStore) {
|
|
52
|
+
$userStore = await getUserExt($workspaceStore);
|
|
53
|
+
}
|
|
54
|
+
workspaceAIClients.init($workspaceStore);
|
|
55
|
+
}
|
|
56
|
+
ensureStores();
|
|
57
|
+
loadConfig();
|
|
58
|
+
// --- Hub sync ---
|
|
59
|
+
let hubSyncStatus = $state('idle');
|
|
60
|
+
let hubSyncMessage = $state('');
|
|
61
|
+
async function syncFromHub() {
|
|
62
|
+
hubSyncStatus = 'loading';
|
|
63
|
+
hubSyncMessage = '';
|
|
64
|
+
try {
|
|
65
|
+
await JobService.runWaitResultScriptByPath({
|
|
66
|
+
workspace: 'admins',
|
|
67
|
+
path: 'u/admin/hub_sync',
|
|
68
|
+
requestBody: {}
|
|
69
|
+
});
|
|
70
|
+
hubSyncStatus = 'success';
|
|
71
|
+
hubSyncMessage = 'Resource types synced from hub successfully';
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
hubSyncMessage =
|
|
75
|
+
e?.body?.error?.message ||
|
|
76
|
+
e?.body?.message ||
|
|
77
|
+
(typeof e?.body === 'string' ? e.body : null) ||
|
|
78
|
+
e?.message ||
|
|
79
|
+
'Failed to sync from hub';
|
|
80
|
+
hubSyncStatus = 'error';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
{#if loaded}
|
|
86
|
+
{#if showHubSync}
|
|
87
|
+
<div
|
|
88
|
+
class="p-3 border rounded-md bg-surface-secondary mb-4 mt-4 flex items-center justify-between gap-4"
|
|
89
|
+
>
|
|
90
|
+
<div>
|
|
91
|
+
<p class="text-xs font-medium text-secondary">Resource types</p>
|
|
92
|
+
<p class="text-2xs text-tertiary mt-0.5">
|
|
93
|
+
AI providers require their resource types. Sync from the Hub if they are missing.
|
|
94
|
+
</p>
|
|
95
|
+
</div>
|
|
96
|
+
<Button
|
|
97
|
+
variant="default"
|
|
98
|
+
unifiedSize="sm"
|
|
99
|
+
loading={hubSyncStatus === 'loading'}
|
|
100
|
+
onClick={syncFromHub}
|
|
101
|
+
>
|
|
102
|
+
Sync from hub
|
|
103
|
+
</Button>
|
|
104
|
+
</div>
|
|
105
|
+
{#if hubSyncStatus === 'success'}
|
|
106
|
+
<div class="mb-4">
|
|
107
|
+
<Alert type="success" title="Resource types synced">
|
|
108
|
+
{hubSyncMessage}
|
|
109
|
+
</Alert>
|
|
110
|
+
</div>
|
|
111
|
+
{:else if hubSyncStatus === 'error'}
|
|
112
|
+
<div class="mb-4">
|
|
113
|
+
<Alert type="error" title="Sync failed">
|
|
114
|
+
{hubSyncMessage}
|
|
115
|
+
</Alert>
|
|
116
|
+
</div>
|
|
117
|
+
{/if}
|
|
118
|
+
{/if}
|
|
119
|
+
|
|
120
|
+
<AISettings
|
|
121
|
+
bind:this={aiSettings}
|
|
122
|
+
bind:hasUnsavedChanges
|
|
123
|
+
{initialConfig}
|
|
124
|
+
workspace="admins"
|
|
125
|
+
{disableChatOffset}
|
|
126
|
+
title="Windmill AI"
|
|
127
|
+
description="Windmill AI integrates with your favorite AI providers and models. Set your AI settings at the instance level to be able to use them on all your workspaces. Workspace-level settings can override these."
|
|
128
|
+
link="https://www.windmill.dev/docs/core_concepts/ai_generation"
|
|
129
|
+
promptScope="instance"
|
|
130
|
+
customSave={handleCustomSave}
|
|
131
|
+
/>
|
|
132
|
+
{/if}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
hasUnsavedChanges?: boolean;
|
|
3
|
+
disableChatOffset?: boolean;
|
|
4
|
+
showHubSync?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const InstanceAISettings: import("svelte").Component<Props, {
|
|
7
|
+
persistBeforeExit: () => Promise<boolean>;
|
|
8
|
+
}, "hasUnsavedChanges">;
|
|
9
|
+
type InstanceAISettings = ReturnType<typeof InstanceAISettings>;
|
|
10
|
+
export default InstanceAISettings;
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
<script lang="ts">import { WORKSPACE_REGISTRY_SETTINGS } from '../instanceSettings';
|
|
2
|
+
import { Button } from '../common';
|
|
3
|
+
import SettingCard from './SettingCard.svelte';
|
|
4
|
+
import { WorkspaceService } from '../../gen';
|
|
5
|
+
import { sendUserToast } from '../../toast';
|
|
6
|
+
import Toggle from '../Toggle.svelte';
|
|
7
|
+
import SimpleEditor from '../SimpleEditor.svelte';
|
|
8
|
+
import { ChevronDown, ChevronRight, Plus, Trash2, X } from 'lucide-svelte';
|
|
9
|
+
import Password from '../Password.svelte';
|
|
10
|
+
import { SvelteSet } from 'svelte/reactivity';
|
|
11
|
+
import { untrack } from 'svelte';
|
|
12
|
+
let { values, loading } = $props();
|
|
13
|
+
let workspaces = $state([]);
|
|
14
|
+
let expandedWorkspaces = new SvelteSet();
|
|
15
|
+
let showAddWorkspace = $state(false);
|
|
16
|
+
let newWorkspaceId = $state('');
|
|
17
|
+
const registries = $derived(($values['workspace_registries'] ?? {}));
|
|
18
|
+
const workspaceIds = $derived(Object.keys(registries).sort());
|
|
19
|
+
async function loadWorkspaces() {
|
|
20
|
+
try {
|
|
21
|
+
const result = await WorkspaceService.listWorkspacesAsSuperAdmin({ perPage: 1000 });
|
|
22
|
+
workspaces = result.map((w) => ({ id: w.id, name: w.name }));
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
console.error('Failed to load workspaces', e);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
$effect(() => {
|
|
29
|
+
if (!loading) {
|
|
30
|
+
untrack(() => loadWorkspaces());
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
function addWorkspace(wsId) {
|
|
34
|
+
if (!wsId || registries[wsId]) {
|
|
35
|
+
sendUserToast('Workspace already has overrides or invalid ID', true);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (!$values['workspace_registries']) {
|
|
39
|
+
$values['workspace_registries'] = {};
|
|
40
|
+
}
|
|
41
|
+
$values['workspace_registries'] = { ...$values['workspace_registries'], [wsId]: {} };
|
|
42
|
+
expandedWorkspaces.add(wsId);
|
|
43
|
+
showAddWorkspace = false;
|
|
44
|
+
newWorkspaceId = '';
|
|
45
|
+
}
|
|
46
|
+
function removeWorkspace(wsId) {
|
|
47
|
+
if ($values['workspace_registries']) {
|
|
48
|
+
const copy = { ...$values['workspace_registries'] };
|
|
49
|
+
delete copy[wsId];
|
|
50
|
+
$values['workspace_registries'] = Object.keys(copy).length > 0 ? copy : undefined;
|
|
51
|
+
expandedWorkspaces.delete(wsId);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function toggleExpand(wsId) {
|
|
55
|
+
if (expandedWorkspaces.has(wsId)) {
|
|
56
|
+
expandedWorkspaces.delete(wsId);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
expandedWorkspaces.add(wsId);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function updateSetting(wsId, key, value, isBool = false) {
|
|
63
|
+
if (!$values['workspace_registries']) {
|
|
64
|
+
$values['workspace_registries'] = {};
|
|
65
|
+
}
|
|
66
|
+
if (!$values['workspace_registries'][wsId]) {
|
|
67
|
+
$values['workspace_registries'][wsId] = {};
|
|
68
|
+
}
|
|
69
|
+
const ws = { ...$values['workspace_registries'][wsId] };
|
|
70
|
+
if (!isBool && (value === undefined || value === null || value === '')) {
|
|
71
|
+
delete ws[key];
|
|
72
|
+
}
|
|
73
|
+
else if (isBool && (value === undefined || value === null)) {
|
|
74
|
+
delete ws[key];
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
ws[key] = value;
|
|
78
|
+
}
|
|
79
|
+
$values['workspace_registries'] = {
|
|
80
|
+
...$values['workspace_registries'],
|
|
81
|
+
[wsId]: ws
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function addField(wsId, key) {
|
|
85
|
+
const setting = WORKSPACE_REGISTRY_SETTINGS.find((s) => s.key === key);
|
|
86
|
+
if (!setting)
|
|
87
|
+
return;
|
|
88
|
+
if (!$values['workspace_registries']) {
|
|
89
|
+
$values['workspace_registries'] = {};
|
|
90
|
+
}
|
|
91
|
+
if (!$values['workspace_registries'][wsId]) {
|
|
92
|
+
$values['workspace_registries'][wsId] = {};
|
|
93
|
+
}
|
|
94
|
+
// Initialize with proper default — bypass updateSetting to avoid empty-string deletion
|
|
95
|
+
const ws = { ...$values['workspace_registries'][wsId] };
|
|
96
|
+
ws[key] = setting.fieldType === 'boolean' ? false : '';
|
|
97
|
+
$values['workspace_registries'] = {
|
|
98
|
+
...$values['workspace_registries'],
|
|
99
|
+
[wsId]: ws
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function removeField(wsId, key) {
|
|
103
|
+
if (!$values['workspace_registries']?.[wsId])
|
|
104
|
+
return;
|
|
105
|
+
const ws = { ...$values['workspace_registries'][wsId] };
|
|
106
|
+
delete ws[key];
|
|
107
|
+
$values['workspace_registries'] = {
|
|
108
|
+
...$values['workspace_registries'],
|
|
109
|
+
[wsId]: ws
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function getAvailableFields(wsId) {
|
|
113
|
+
const wsSettings = registries[wsId] ?? {};
|
|
114
|
+
return WORKSPACE_REGISTRY_SETTINGS.filter((s) => !(s.key in wsSettings));
|
|
115
|
+
}
|
|
116
|
+
const availableWorkspaces = $derived(workspaces.filter((w) => !registries[w.id]));
|
|
117
|
+
</script>
|
|
118
|
+
|
|
119
|
+
<SettingCard
|
|
120
|
+
label="Workspace-Specific Registry Overrides"
|
|
121
|
+
ee_only=""
|
|
122
|
+
description="Override global registry settings for specific workspaces. Workspace overrides fully replace the global value for each configured key."
|
|
123
|
+
>
|
|
124
|
+
{#if workspaceIds.length === 0 && !showAddWorkspace}
|
|
125
|
+
<p class="text-secondary text-xs">No workspace overrides configured.</p>
|
|
126
|
+
{/if}
|
|
127
|
+
|
|
128
|
+
<div class="flex flex-col gap-2">
|
|
129
|
+
{#each workspaceIds as wsId (wsId)}
|
|
130
|
+
{@const wsName = workspaces.find((w) => w.id === wsId)?.name}
|
|
131
|
+
{@const isExpanded = expandedWorkspaces.has(wsId)}
|
|
132
|
+
{@const wsSettings = registries[wsId] ?? {}}
|
|
133
|
+
{@const activeKeys = Object.keys(wsSettings)}
|
|
134
|
+
{@const activeSettings = WORKSPACE_REGISTRY_SETTINGS.filter((s) =>
|
|
135
|
+
activeKeys.includes(s.key)
|
|
136
|
+
)}
|
|
137
|
+
<div class="bg-surface-tertiary border rounded-md">
|
|
138
|
+
<button
|
|
139
|
+
class="w-full flex items-center justify-between px-3 py-2.5 hover:bg-surface-hover rounded-md text-left"
|
|
140
|
+
onclick={() => toggleExpand(wsId)}
|
|
141
|
+
>
|
|
142
|
+
<div class="flex items-center gap-2">
|
|
143
|
+
{#if isExpanded}
|
|
144
|
+
<ChevronDown size={14} class="text-secondary" />
|
|
145
|
+
{:else}
|
|
146
|
+
<ChevronRight size={14} class="text-secondary" />
|
|
147
|
+
{/if}
|
|
148
|
+
<span class="font-semibold text-xs text-primary">{wsId}</span>
|
|
149
|
+
{#if wsName}
|
|
150
|
+
<span class="text-secondary text-xs">({wsName})</span>
|
|
151
|
+
{/if}
|
|
152
|
+
{#if activeKeys.length > 0}
|
|
153
|
+
<span class="text-tertiary text-2xs"
|
|
154
|
+
>{activeKeys.length} override{activeKeys.length !== 1 ? 's' : ''}</span
|
|
155
|
+
>
|
|
156
|
+
{/if}
|
|
157
|
+
</div>
|
|
158
|
+
<Button
|
|
159
|
+
startIcon={{ icon: Trash2 }}
|
|
160
|
+
iconOnly
|
|
161
|
+
variant="subtle"
|
|
162
|
+
size="xs"
|
|
163
|
+
destructive
|
|
164
|
+
onclick={(e) => {
|
|
165
|
+
e.stopPropagation()
|
|
166
|
+
removeWorkspace(wsId)
|
|
167
|
+
}}
|
|
168
|
+
/>
|
|
169
|
+
</button>
|
|
170
|
+
|
|
171
|
+
{#if isExpanded}
|
|
172
|
+
<div class="px-3 pb-3 flex flex-col gap-3 border-t border-border pt-3">
|
|
173
|
+
{#each activeSettings as setting (setting.key)}
|
|
174
|
+
{@const currentValue = wsSettings[setting.key]}
|
|
175
|
+
<div class="flex flex-col gap-1">
|
|
176
|
+
<div class="flex items-center justify-between">
|
|
177
|
+
<span class="text-xs font-medium text-emphasis">{setting.label}</span>
|
|
178
|
+
<Button
|
|
179
|
+
startIcon={{ icon: X }}
|
|
180
|
+
iconOnly
|
|
181
|
+
variant="subtle"
|
|
182
|
+
size="xs"
|
|
183
|
+
destructive
|
|
184
|
+
onclick={() => removeField(wsId, setting.key)}
|
|
185
|
+
title="Remove override"
|
|
186
|
+
/>
|
|
187
|
+
</div>
|
|
188
|
+
{#if setting.fieldType === 'boolean'}
|
|
189
|
+
<Toggle
|
|
190
|
+
bind:checked={
|
|
191
|
+
() => currentValue ?? false, (v) => updateSetting(wsId, setting.key, v, true)
|
|
192
|
+
}
|
|
193
|
+
/>
|
|
194
|
+
{:else if setting.fieldType === 'codearea'}
|
|
195
|
+
<SimpleEditor
|
|
196
|
+
lang={setting.codeAreaLang ?? 'text'}
|
|
197
|
+
bind:code={() => currentValue ?? '', (v) => updateSetting(wsId, setting.key, v)}
|
|
198
|
+
autoHeight
|
|
199
|
+
fixedOverflowWidgets={false}
|
|
200
|
+
/>
|
|
201
|
+
{:else if setting.fieldType === 'password'}
|
|
202
|
+
<Password
|
|
203
|
+
bind:password={
|
|
204
|
+
() => currentValue ?? '', (v) => updateSetting(wsId, setting.key, v)
|
|
205
|
+
}
|
|
206
|
+
placeholder={setting.placeholder}
|
|
207
|
+
/>
|
|
208
|
+
{:else}
|
|
209
|
+
<input
|
|
210
|
+
type="text"
|
|
211
|
+
class="input-base text-sm"
|
|
212
|
+
value={currentValue ?? ''}
|
|
213
|
+
placeholder={setting.placeholder}
|
|
214
|
+
oninput={(e) => updateSetting(wsId, setting.key, e.currentTarget.value)}
|
|
215
|
+
/>
|
|
216
|
+
{/if}
|
|
217
|
+
</div>
|
|
218
|
+
{/each}
|
|
219
|
+
|
|
220
|
+
{#if getAvailableFields(wsId).length > 0}
|
|
221
|
+
<select
|
|
222
|
+
class="input-base text-xs"
|
|
223
|
+
value=""
|
|
224
|
+
onchange={(e) => {
|
|
225
|
+
const key = e.currentTarget.value
|
|
226
|
+
if (key) {
|
|
227
|
+
addField(wsId, key)
|
|
228
|
+
e.currentTarget.value = ''
|
|
229
|
+
}
|
|
230
|
+
}}
|
|
231
|
+
>
|
|
232
|
+
<option value="">+ Add a registry override...</option>
|
|
233
|
+
{#each getAvailableFields(wsId) as s (s.key)}
|
|
234
|
+
<option value={s.key}>{s.label}</option>
|
|
235
|
+
{/each}
|
|
236
|
+
</select>
|
|
237
|
+
{/if}
|
|
238
|
+
</div>
|
|
239
|
+
{/if}
|
|
240
|
+
</div>
|
|
241
|
+
{/each}
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
{#if showAddWorkspace}
|
|
245
|
+
<div class="flex items-center gap-2 mt-2">
|
|
246
|
+
{#if availableWorkspaces.length > 0}
|
|
247
|
+
<select class="input-base text-xs flex-1" bind:value={newWorkspaceId}>
|
|
248
|
+
<option value="">Select a workspace...</option>
|
|
249
|
+
{#each availableWorkspaces as ws (ws.id)}
|
|
250
|
+
<option value={ws.id}>{ws.id} ({ws.name})</option>
|
|
251
|
+
{/each}
|
|
252
|
+
</select>
|
|
253
|
+
{:else}
|
|
254
|
+
<input
|
|
255
|
+
type="text"
|
|
256
|
+
class="input-base text-xs"
|
|
257
|
+
placeholder="Workspace ID"
|
|
258
|
+
bind:value={newWorkspaceId}
|
|
259
|
+
/>
|
|
260
|
+
{/if}
|
|
261
|
+
<Button
|
|
262
|
+
variant="default"
|
|
263
|
+
size="xs"
|
|
264
|
+
disabled={!newWorkspaceId}
|
|
265
|
+
onclick={() => addWorkspace(newWorkspaceId)}
|
|
266
|
+
>
|
|
267
|
+
Add
|
|
268
|
+
</Button>
|
|
269
|
+
<Button
|
|
270
|
+
variant="subtle"
|
|
271
|
+
size="xs"
|
|
272
|
+
onclick={() => {
|
|
273
|
+
showAddWorkspace = false
|
|
274
|
+
newWorkspaceId = ''
|
|
275
|
+
}}
|
|
276
|
+
>
|
|
277
|
+
Cancel
|
|
278
|
+
</Button>
|
|
279
|
+
</div>
|
|
280
|
+
{:else}
|
|
281
|
+
<div class="flex justify-start mt-1">
|
|
282
|
+
<Button
|
|
283
|
+
variant="default"
|
|
284
|
+
size="xs"
|
|
285
|
+
onclick={() => (showAddWorkspace = true)}
|
|
286
|
+
btnClasses="text-xs flex items-center gap-2"
|
|
287
|
+
>
|
|
288
|
+
<Plus size={14} />
|
|
289
|
+
Add workspace override
|
|
290
|
+
</Button>
|
|
291
|
+
</div>
|
|
292
|
+
{/if}
|
|
293
|
+
</SettingCard>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Writable } from 'svelte/store';
|
|
2
|
+
interface Props {
|
|
3
|
+
values: Writable<Record<string, any>>;
|
|
4
|
+
loading: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const WorkspaceRegistries: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type WorkspaceRegistries = ReturnType<typeof WorkspaceRegistries>;
|
|
8
|
+
export default WorkspaceRegistries;
|