windmill-components 1.434.1 → 1.444.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.
Files changed (285) hide show
  1. package/package/components/ArgInput.svelte +12 -16
  2. package/package/components/ArgInput.svelte.d.ts +1 -0
  3. package/package/components/AssignableTags.svelte +3 -1
  4. package/package/components/AssignableTags.svelte.d.ts +1 -0
  5. package/package/components/AuthSettings.svelte +248 -0
  6. package/package/components/AuthSettings.svelte.d.ts +19 -0
  7. package/package/components/AutoscalingConfigEditor.svelte +2 -2
  8. package/package/components/CronInput.svelte +2 -2
  9. package/package/components/DeployWorkspace.svelte +1 -1
  10. package/package/components/Description.svelte +9 -0
  11. package/package/components/Description.svelte.d.ts +18 -0
  12. package/package/components/Dev.svelte +18 -3
  13. package/package/components/DisplayResult.svelte +7 -4
  14. package/package/components/DisplayResult.svelte.d.ts +1 -0
  15. package/package/components/DropdownV2.svelte +2 -1
  16. package/package/components/DropdownV2.svelte.d.ts +1 -0
  17. package/package/components/EditableSchemaForm.svelte +2 -2
  18. package/package/components/Editor.svelte +9 -6
  19. package/package/components/Editor.svelte.d.ts +4 -2
  20. package/package/components/EditorBar.svelte +51 -6
  21. package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
  22. package/package/components/ExecutionDuration.svelte +2 -1
  23. package/package/components/FieldHeader.svelte +9 -1
  24. package/package/components/FieldHeader.svelte.d.ts +1 -0
  25. package/package/components/FlowBuilder.svelte +16 -3
  26. package/package/components/FlowGraphViewer.svelte +2 -0
  27. package/package/components/FlowPreviewContent.svelte +6 -15
  28. package/package/components/FlowStatusViewerInner.svelte +14 -10
  29. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InputTransformSchemaForm.svelte +1 -1
  32. package/package/components/InstanceSetting.svelte +774 -0
  33. package/package/components/InstanceSetting.svelte.d.ts +27 -0
  34. package/package/components/InstanceSettings.svelte +68 -1005
  35. package/package/components/InstanceSettings.svelte.d.ts +0 -4
  36. package/package/components/Label.svelte +16 -6
  37. package/package/components/Label.svelte.d.ts +3 -0
  38. package/package/components/Login.svelte +17 -9
  39. package/package/components/OAuthSetting.svelte +4 -3
  40. package/package/components/OauthExtraParams.svelte +1 -1
  41. package/package/components/OauthScopes.svelte +2 -2
  42. package/package/components/ObjectStoreConfigSettings.svelte +141 -128
  43. package/package/components/QueueMetricsDrawer.svelte +5 -5
  44. package/package/components/ResourceEditor.svelte +4 -0
  45. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  46. package/package/components/ResourceEditorDrawer.svelte +15 -3
  47. package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
  48. package/package/components/ResourcePicker.svelte +16 -5
  49. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  50. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  51. package/package/components/RunPageSchedules.svelte +15 -10
  52. package/package/components/SavedInputs.svelte +1 -1
  53. package/package/components/ScheduleEditorInner.svelte +58 -27
  54. package/package/components/SchemaForm.svelte +7 -5
  55. package/package/components/SchemaForm.svelte.d.ts +1 -0
  56. package/package/components/ScriptBuilder.svelte +58 -5
  57. package/package/components/ScriptEditor.svelte +78 -40
  58. package/package/components/ScriptEditor.svelte.d.ts +17 -2
  59. package/package/components/ScriptPicker.svelte +41 -34
  60. package/package/components/ScriptPicker.svelte.d.ts +1 -0
  61. package/package/components/ScriptVersionHistory.svelte +1 -1
  62. package/package/components/Section.svelte +38 -35
  63. package/package/components/Section.svelte.d.ts +2 -0
  64. package/package/components/ServiceLogsInner.svelte +1 -1
  65. package/package/components/SimpleEditor.svelte +2 -0
  66. package/package/components/Subsection.svelte +52 -0
  67. package/package/components/Subsection.svelte.d.ts +27 -0
  68. package/package/components/SuperadminSettings.svelte +23 -13
  69. package/package/components/TemplateEditor.svelte +4 -3
  70. package/package/components/TestConnection.svelte +5 -0
  71. package/package/components/TestJobLoader.svelte +2 -1
  72. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  73. package/package/components/Toggle.svelte +2 -4
  74. package/package/components/UserSettings.svelte +1 -1
  75. package/package/components/WorkerGroup.svelte +4 -4
  76. package/package/components/WorkerTagPicker.svelte +4 -2
  77. package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
  78. package/package/components/WorkerTagSelect.svelte +2 -0
  79. package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
  80. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
  81. package/package/components/apps/components/display/dbtable/utils.js +26 -1
  82. package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
  83. package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
  84. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
  85. package/package/components/apps/editor/AppEditor.svelte +5 -34
  86. package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  87. package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
  88. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
  89. package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
  90. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  92. package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
  93. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
  94. package/package/components/apps/editor/appUtils.d.ts +1 -0
  95. package/package/components/apps/editor/appUtils.js +17 -0
  96. package/package/components/apps/editor/component/components.d.ts +82 -81
  97. package/package/components/apps/editor/component/components.js +4 -3
  98. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
  99. package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
  100. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
  103. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
  104. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
  105. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
  106. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
  107. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
  108. package/package/components/apps/inputType.d.ts +2 -2
  109. package/package/components/apps/types.d.ts +2 -0
  110. package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
  111. package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
  112. package/package/components/common/alert/Notification.svelte +15 -0
  113. package/package/components/common/alert/Notification.svelte.d.ts +17 -0
  114. package/package/components/common/button/AnimatedButton.svelte +1 -1
  115. package/package/components/common/button/RefreshButton.svelte +30 -0
  116. package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
  117. package/package/components/common/fileDownload/FileDownload.svelte +4 -3
  118. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
  119. package/package/components/common/fileUpload/FileUpload.svelte +3 -3
  120. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  121. package/package/components/common/layout/List.svelte +35 -0
  122. package/package/components/common/layout/List.svelte.d.ts +21 -0
  123. package/package/components/common/layout/ListElement.svelte +3 -0
  124. package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
  125. package/package/components/common/menu/MenuV2.svelte +3 -2
  126. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  127. package/package/components/common/modal/Modal.svelte +6 -4
  128. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  129. package/package/components/common/modal/Modal2.svelte +101 -0
  130. package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
  131. package/package/components/common/popup/Popup.svelte +5 -1
  132. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  133. package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
  134. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  135. package/package/components/details/ClipboardPanel.svelte +12 -2
  136. package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +24 -0
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
  139. package/package/components/details/DetailPageLayout.svelte +3 -1
  140. package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
  141. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
  142. package/package/components/details/EmailTriggerPanel.svelte +27 -74
  143. package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
  144. package/package/components/flows/FlowEditor.svelte +1 -1
  145. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  146. package/package/components/flows/FlowHistoryInner.svelte +1 -1
  147. package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
  148. package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
  149. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
  150. package/package/components/flows/content/FlowInput.svelte +2 -15
  151. package/package/components/flows/content/FlowInputs.svelte +1 -1
  152. package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
  153. package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
  154. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  155. package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
  156. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  157. package/package/components/flows/content/FlowPathViewer.svelte +3 -1
  158. package/package/components/flows/content/FlowRetries.svelte +32 -5
  159. package/package/components/flows/content/FlowSettings.svelte +56 -48
  160. package/package/components/flows/flowStateUtils.d.ts +10 -1
  161. package/package/components/flows/flowStateUtils.js +23 -0
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
  163. package/package/components/flows/map/InsertModuleButton.svelte +3 -3
  164. package/package/components/flows/map/VirtualItem.svelte +29 -1
  165. package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
  166. package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
  167. package/package/components/flows/previousResults.js +8 -2
  168. package/package/components/flows/types.d.ts +1 -0
  169. package/package/components/graph/FlowGraphV2.svelte +5 -1
  170. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  171. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
  172. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
  173. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  174. package/package/components/icons/CSharpIcon.svelte +14 -0
  175. package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
  176. package/package/components/icons/GitIcon.svelte +5 -2
  177. package/package/components/icons/XeroIcon.svelte +24 -0
  178. package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
  179. package/package/components/icons/index.d.ts +3 -1
  180. package/package/components/icons/index.js +4 -2
  181. package/package/components/instanceSettings.d.ts +3 -1
  182. package/package/components/instanceSettings.js +77 -69
  183. package/package/components/meltComponents/Popover.svelte +82 -0
  184. package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
  185. package/package/components/propertyPicker/PropPicker.svelte +5 -3
  186. package/package/components/runs/JobLoader.svelte +5 -2
  187. package/package/components/runs/JobPreview.svelte +5 -5
  188. package/package/components/runs/RunRow.svelte +3 -4
  189. package/package/components/runs/RunsFilter.svelte +4 -4
  190. package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
  191. package/package/components/schema/PropertyEditor.svelte +1 -1
  192. package/package/components/schema/SchemaFormDND.svelte +2 -0
  193. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  194. package/package/components/scriptEditor/LogPanel.svelte +176 -164
  195. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  196. package/package/components/search/GlobalSearchModal.svelte +3 -3
  197. package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
  198. package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
  199. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
  200. package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
  201. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
  202. package/package/components/sidebar/OperatorMenu.svelte +30 -8
  203. package/package/components/sidebar/SideBarNotification.svelte +3 -6
  204. package/package/components/sidebar/SidebarContent.svelte +5 -5
  205. package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
  206. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
  207. package/package/components/sidebar/changelogs.js +82 -17
  208. package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
  209. package/package/components/table/AutoDataTable.svelte +1 -1
  210. package/package/components/table/Cell.svelte +5 -3
  211. package/package/components/table/Cell.svelte.d.ts +1 -0
  212. package/package/components/table/DataTable.svelte +65 -58
  213. package/package/components/table/DataTable.svelte.d.ts +2 -0
  214. package/package/components/table/Head.svelte +1 -1
  215. package/package/components/table/Row.svelte +3 -1
  216. package/package/components/table/Row.svelte.d.ts +1 -0
  217. package/package/components/toast.js +3 -1
  218. package/package/components/triggers/CaptureButton.svelte +77 -0
  219. package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
  220. package/package/components/triggers/CaptureIcon.svelte +17 -0
  221. package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
  222. package/package/components/triggers/CaptureSection.svelte +76 -0
  223. package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
  224. package/package/components/triggers/CaptureTable.svelte +224 -0
  225. package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
  226. package/package/components/triggers/CaptureWrapper.svelte +237 -0
  227. package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
  228. package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
  229. package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
  230. package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
  231. package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
  232. package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
  233. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
  234. package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
  235. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
  236. package/package/components/triggers/RouteEditor.svelte +2 -2
  237. package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
  238. package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
  239. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
  240. package/package/components/triggers/RouteEditorInner.svelte +98 -163
  241. package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
  242. package/package/components/triggers/RoutesPanel.svelte +69 -54
  243. package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
  244. package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
  245. package/package/components/triggers/TriggersEditor.svelte +119 -89
  246. package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
  247. package/package/components/triggers/TriggersEditorSection.svelte +109 -0
  248. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
  249. package/package/components/triggers/TriggersWrapper.svelte +60 -0
  250. package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
  251. package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
  252. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
  253. package/package/components/triggers/WebhooksPanel.svelte +32 -331
  254. package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
  255. package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
  256. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
  257. package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
  258. package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
  259. package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
  260. package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
  261. package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
  262. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
  263. package/package/components/triggers.d.ts +6 -2
  264. package/package/components/triggers.js +16 -0
  265. package/package/components/wizards/AgGridWizard.svelte +4 -4
  266. package/package/editorUtils.d.ts +2 -0
  267. package/package/editorUtils.js +6 -3
  268. package/package/gen/core/OpenAPI.js +1 -1
  269. package/package/gen/schemas.gen.d.ts +17 -8
  270. package/package/gen/schemas.gen.js +17 -8
  271. package/package/gen/services.gen.d.ts +55 -5
  272. package/package/gen/services.gen.js +108 -5
  273. package/package/gen/types.gen.d.ts +180 -13
  274. package/package/hubPaths.json +6 -3
  275. package/package/infer.js +9 -0
  276. package/package/script_helpers.d.ts +5 -0
  277. package/package/script_helpers.js +68 -8
  278. package/package/scripts.d.ts +1 -1
  279. package/package/scripts.js +5 -1
  280. package/package/stores.d.ts +1 -0
  281. package/package/utils.d.ts +3 -1
  282. package/package/utils.js +20 -4
  283. package/package.json +11 -8
  284. package/package/components/flows/content/CapturePayload.svelte +0 -114
  285. package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
@@ -6,8 +6,6 @@ declare const __propDef: {
6
6
  hideSave?: boolean | undefined;
7
7
  closeDrawer?: (() => void) | undefined;
8
8
  saveSettings?: (() => Promise<void>) | undefined;
9
- renewLicenseKey?: (() => Promise<void>) | undefined;
10
- openCustomerPortal?: (() => Promise<void>) | undefined;
11
9
  };
12
10
  events: {
13
11
  saved: CustomEvent<any>;
@@ -21,7 +19,5 @@ export type InstanceSettingsEvents = typeof __propDef.events;
21
19
  export type InstanceSettingsSlots = typeof __propDef.slots;
22
20
  export default class InstanceSettings extends SvelteComponent<InstanceSettingsProps, InstanceSettingsEvents, InstanceSettingsSlots> {
23
21
  get saveSettings(): () => Promise<void>;
24
- get renewLicenseKey(): () => Promise<void>;
25
- get openCustomerPortal(): () => Promise<void>;
26
22
  }
27
23
  export {};
@@ -1,13 +1,23 @@
1
- <script>export let label = undefined;
1
+ <script>import { twMerge } from 'tailwind-merge';
2
+ import Required from './Required.svelte';
3
+ export let label = undefined;
2
4
  export let primary = false;
5
+ export let disabled = false;
6
+ export let headless = false;
7
+ export let required = false;
3
8
  </script>
4
9
 
5
- <div class={$$props.class}>
10
+ <div class={twMerge(disabled ? 'opacity-60 pointer-events-none' : '', $$props.class)}>
6
11
  <div class="flex flex-row justify-between items-center w-full">
7
- <div class="flex flex-row items-center gap-1">
8
- <span class="{primary ? 'text-primary' : 'text-secondary'} text-sm leading-6">{label}</span>
9
- <slot name="header" />
10
- </div>
12
+ {#if !headless}
13
+ <div class="flex flex-row items-center gap-2">
14
+ <span class="{primary ? 'text-primary' : 'text-secondary'} text-sm leading-6">{label}</span>
15
+ {#if required}
16
+ <Required required={true} />
17
+ {/if}
18
+ <slot name="header" />
19
+ </div>
20
+ {/if}
11
21
  <slot name="error" />
12
22
  <slot name="action" />
13
23
  </div>
@@ -4,6 +4,9 @@ declare const __propDef: {
4
4
  [x: string]: any;
5
5
  label?: string | undefined;
6
6
  primary?: boolean | undefined;
7
+ disabled?: boolean | undefined;
8
+ headless?: boolean | undefined;
9
+ required?: boolean | undefined;
7
10
  };
8
11
  events: {
9
12
  [evt: string]: CustomEvent<any>;
@@ -133,13 +133,21 @@ async function redirectUser() {
133
133
  }
134
134
  }
135
135
  async function loadLogins() {
136
- const allLogins = await OauthService.listOauthLogins();
137
- logins = allLogins.oauth.map((login) => ({
138
- type: login.type,
139
- displayName: login.display_name || login.type
140
- }));
141
- saml = allLogins.saml;
142
- showPassword = (logins.length == 0 && !saml) || (email != undefined && email.length > 0);
136
+ try {
137
+ const allLogins = await OauthService.listOauthLogins();
138
+ logins = allLogins.oauth.map((login) => ({
139
+ type: login.type,
140
+ displayName: login.display_name || login.type
141
+ }));
142
+ saml = allLogins.saml;
143
+ showPassword = (logins.length == 0 && !saml) || (email != undefined && email.length > 0);
144
+ }
145
+ catch (e) {
146
+ logins = [];
147
+ saml = undefined;
148
+ showPassword = true;
149
+ console.error('Could not load logins', e);
150
+ }
143
151
  }
144
152
  loadLogins();
145
153
  function handleKeyUp(event) {
@@ -342,11 +350,11 @@ $: error && sendUserToast(error, true);
342
350
  <p class="text-2xs text-tertiary italic mt-10 text-center">
343
351
  By logging in, you agree to our
344
352
  <a href="https://windmill.dev/terms_of_service" target="_blank" rel="noreferrer">
345
- Terms of Service
353
+ Terms of service
346
354
  </a>
347
355
  and
348
356
  <a href="https://windmill.dev/privacy_policy" target="_blank" rel="noreferrer">
349
- Privacy Policy
357
+ Privacy policy
350
358
  </a>
351
359
  </p>
352
360
  {/if}
@@ -44,9 +44,10 @@ function changeTenantId(tenant) {
44
44
  }
45
45
  </script>
46
46
 
47
- <div class="flex flex-col gap-1">
47
+ <div class="flex flex-col">
48
48
  <!-- svelte-ignore a11y-label-has-associated-control -->
49
- <label class="text-sm flex gap-4 items-center font-medium text-primary"
49
+ <label
50
+ class="text-sm flex gap-4 items-center font-medium text-primary {enabled ? 'rounded py-2' : ''}"
50
51
  ><div class="w-[120px]"><IconedResourceType {name} after={true} /></div><Toggle
51
52
  checked={enabled}
52
53
  on:change={(e) => {
@@ -59,7 +60,7 @@ function changeTenantId(tenant) {
59
60
  /></label
60
61
  >
61
62
  {#if enabled}
62
- <div class="p-2 rounded border">
63
+ <div class="p-2 rounded border mb-4">
63
64
  {#if name != 'slack'}
64
65
  <label class="block pb-2">
65
66
  <span class="text-primary font-semibold text-sm">Custom Name</span>
@@ -28,7 +28,7 @@ function sync() {
28
28
  <div class="flex items-center mt-1">
29
29
  <Button
30
30
  variant="border"
31
- color="blue"
31
+ color="light"
32
32
  hover="yo"
33
33
  size="sm"
34
34
  endIcon={{ icon: Plus }}
@@ -9,7 +9,7 @@ export let scopes = [];
9
9
  <input type="text" bind:value={v} />
10
10
  <Button
11
11
  variant="border"
12
- color="red"
12
+ color="light"
13
13
  size="xs"
14
14
  btnClasses="mx-6"
15
15
  on:click={() => {
@@ -25,7 +25,7 @@ export let scopes = [];
25
25
  <div class="flex items-center mt-1">
26
26
  <Button
27
27
  variant="border"
28
- color="blue"
28
+ color="light"
29
29
  hover="yo"
30
30
  size="sm"
31
31
  endIcon={{ icon: Plus }}
@@ -4,6 +4,7 @@ import { Button, Tab, Tabs } from './common';
4
4
  import { SettingService } from '../gen';
5
5
  import { sendUserToast } from '../toast';
6
6
  import TestConnection from './TestConnection.svelte';
7
+ import { enterpriseLicense } from '../stores';
7
8
  export let bucket_config = undefined;
8
9
  $: bucket_config?.type == 'S3' &&
9
10
  bucket_config.allow_http == undefined &&
@@ -28,9 +29,10 @@ async function testConnection() {
28
29
  }
29
30
  </script>
30
31
 
31
- <div>
32
+ <div class="my-0.5">
32
33
  <Toggle
33
- options={{ right: 'Enable' }}
34
+ disabled={!$enterpriseLicense}
35
+ options={{ right: bucket_config ? '' : 'set object store' }}
34
36
  checked={Boolean(bucket_config)}
35
37
  on:change={(e) => {
36
38
  if (e.detail) {
@@ -49,134 +51,145 @@ async function testConnection() {
49
51
  />
50
52
  </div>
51
53
  {#if bucket_config}
52
- <div class="flex gap-2 py-1">
53
- <Button
54
- spacingSize="sm"
55
- size="xs"
56
- btnClasses="h-8"
57
- color="light"
58
- variant="border"
59
- on:click={testConnection}
60
- >
61
- {#if loading}
62
- <Loader2 class="animate-spin mr-2 !h-4 !w-4" />
63
- {:else}
64
- <Database class="mr-2 !h-4 !w-4" />
65
- {/if}
66
- Test from a server
67
- </Button>
68
- <TestConnection
69
- args={bucket_config}
70
- resourceType="s3_bucket"
71
- workspaceOverride="admins"
72
- buttonTextOverride="Test from a worker"
73
- />
74
- </div>
75
- <Tabs
76
- bind:selected={bucket_config.type}
77
- on:selected={(e) => {
78
- if (e.detail === 'S3') {
79
- bucket_config = {
80
- type: 'S3',
81
- bucket: '',
82
- region: '',
83
- access_key: '',
84
- secret_key: '',
85
- endpoint: ''
54
+ <div class="p-2">
55
+ <div class="flex gap-2 py-1">
56
+ <Button
57
+ spacingSize="sm"
58
+ size="xs"
59
+ btnClasses="h-8"
60
+ color="light"
61
+ variant="border"
62
+ on:click={testConnection}
63
+ >
64
+ {#if loading}
65
+ <Loader2 class="animate-spin mr-2 !h-4 !w-4" />
66
+ {:else}
67
+ <Database class="mr-2 !h-4 !w-4" />
68
+ {/if}
69
+ Test from a server
70
+ </Button>
71
+ <TestConnection
72
+ args={bucket_config}
73
+ resourceType="s3_bucket"
74
+ workspaceOverride="admins"
75
+ buttonTextOverride="Test from a worker"
76
+ />
77
+ </div>
78
+ <Tabs
79
+ bind:selected={bucket_config.type}
80
+ on:selected={(e) => {
81
+ if (e.detail === 'S3') {
82
+ bucket_config = {
83
+ type: 'S3',
84
+ bucket: '',
85
+ region: '',
86
+ access_key: '',
87
+ secret_key: '',
88
+ endpoint: ''
89
+ }
90
+ } else if (e.detail === 'Azure') {
91
+ bucket_config = {
92
+ type: 'Azure',
93
+ accountName: '',
94
+ containerName: '',
95
+ useSSL: false,
96
+ tenantId: '',
97
+ clientId: '',
98
+ accessKey: ''
99
+ }
86
100
  }
87
- } else if (e.detail === 'Azure') {
88
- bucket_config = {
89
- type: 'Azure',
90
- accountName: '',
91
- containerName: '',
92
- useSSL: false,
93
- tenantId: '',
94
- clientId: '',
95
- accessKey: ''
96
- }
97
- }
98
- }}
99
- >
100
- <Tab size="sm" value="S3">S3</Tab>
101
- <Tab size="sm" value="Azure">Azure Blob</Tab>
102
- </Tabs>
103
- <div class="flex flex-col gap-2 mt-2 p-2 border rounded-md">
104
- {#if bucket_config.type === 'S3'}
105
- <label class="block pb-2">
106
- <span class="text-primary font-semibold text-sm">Bucket</span>
107
- <input type="text" placeholder="bucket-name" bind:value={bucket_config.bucket} />
108
- </label>
101
+ }}
102
+ >
103
+ <Tab size="sm" value="S3">S3</Tab>
104
+ <Tab size="sm" value="Azure">Azure Blob</Tab>
105
+ </Tabs>
106
+ <div class="flex flex-col gap-2 mt-2 p-2 border rounded-md">
107
+ {#if bucket_config.type === 'S3'}
108
+ <label class="block pb-2">
109
+ <span class="text-primary font-semibold text-sm">Bucket</span>
110
+ <input type="text" placeholder="bucket-name" bind:value={bucket_config.bucket} />
111
+ </label>
109
112
 
110
- <label class="block pb-2">
111
- <span class="text-primary font-semibold text-sm">Region</span>
112
- <span class="text-tertiary text-2xs"
113
- >If left empty, will be derived automatically from $AWS_REGION</span
114
- >
115
- <input type="text" bind:value={bucket_config.region} />
116
- </label>
117
- <label class="block pb-2">
118
- <span class="text-primary font-semibold text-sm">Access key ID</span>
119
- <span class="text-tertiary text-2xs"
120
- >If left empty, will be derived automatically from $AWS_ACCESS_KEY_ID, pod or ec2 profile</span
121
- >
122
- <input type="text" bind:value={bucket_config.access_key} />
123
- </label>
124
- <label class="block pb-2">
125
- <span class="text-primary font-semibold text-sm">Secret key</span>
126
- <span class="text-tertiary text-2xs"
127
- >If left empty, will be derived automatically from $AWS_SECRET_KEY, pod or ec2 profile</span
128
- >
129
- <input type="password" autocomplete="new-password" bind:value={bucket_config.secret_key} />
130
- </label>
131
- <label class="block pb-2">
132
- <span class="text-primary font-semibold text-sm">Endpoint</span>
133
- <span class="text-tertiary text-2xs"
134
- >Only needed for non AWS S3 providers like R2 or MinIo</span
135
- >
136
- <input type="text" bind:value={bucket_config.endpoint} />
137
- </label>
138
- <div class="block pb-2">
139
- <span class="text-tertiary text-2xs">Disable if using https only policy</span>
140
- <div>
141
- <Toggle bind:checked={bucket_config.allow_http} options={{ right: 'Allow http' }} />
113
+ <label class="block pb-2">
114
+ <span class="text-primary font-semibold text-sm">Region</span>
115
+ <span class="text-tertiary text-2xs"
116
+ >If left empty, will be derived automatically from $AWS_REGION</span
117
+ >
118
+ <input type="text" bind:value={bucket_config.region} />
119
+ </label>
120
+ <label class="block pb-2">
121
+ <span class="text-primary font-semibold text-sm">Access key ID</span>
122
+ <span class="text-tertiary text-2xs"
123
+ >If left empty, will be derived automatically from $AWS_ACCESS_KEY_ID, pod or ec2
124
+ profile</span
125
+ >
126
+ <input type="text" bind:value={bucket_config.access_key} />
127
+ </label>
128
+ <label class="block pb-2">
129
+ <span class="text-primary font-semibold text-sm">Secret key</span>
130
+ <span class="text-tertiary text-2xs"
131
+ >If left empty, will be derived automatically from $AWS_SECRET_KEY, pod or ec2 profile</span
132
+ >
133
+ <input
134
+ type="password"
135
+ autocomplete="new-password"
136
+ bind:value={bucket_config.secret_key}
137
+ />
138
+ </label>
139
+ <label class="block pb-2">
140
+ <span class="text-primary font-semibold text-sm">Endpoint</span>
141
+ <span class="text-tertiary text-2xs"
142
+ >Only needed for non AWS S3 providers like R2 or MinIo</span
143
+ >
144
+ <input type="text" bind:value={bucket_config.endpoint} />
145
+ </label>
146
+ <div class="block pb-2">
147
+ <span class="text-tertiary text-2xs">Disable if using https only policy</span>
148
+ <div>
149
+ <Toggle bind:checked={bucket_config.allow_http} options={{ right: 'Allow http' }} />
150
+ </div>
142
151
  </div>
143
- </div>
144
- {:else if bucket_config.type === 'Azure'}
145
- <label class="block pb-2">
146
- <span class="text-primary font-semibold text-sm">Account name</span>
147
- <input type="text" placeholder="account-name" bind:value={bucket_config.accountName} />
148
- </label>
149
- <label class="block pb-2">
150
- <span class="text-primary font-semibold text-sm">Container name</span>
151
- <input type="text" placeholder="container-name" bind:value={bucket_config.containerName} />
152
- </label>
153
- <label class="block pb-2">
154
- <span class="text-primary font-semibold text-sm">Access key</span>
155
- <input type="password" autocomplete="new-password" bind:value={bucket_config.accessKey} />
156
- </label>
157
- <label class="block pb-2">
158
- <span class="text-primary font-semibold text-sm"
159
- >Tenant ID <span class="text-2xs text-tertiary">(optional)</span></span
160
- >
161
- <input type="text" bind:value={bucket_config.tenantId} />
162
- </label>
163
- <label class="block pb-2">
164
- <span class="text-primary font-semibold text-sm"
165
- >Client ID <span class="text-2xs text-tertiary">(optional)</span></span
166
- >
167
- <input type="text" bind:value={bucket_config.clientId} />
168
- </label>
169
- <label class="block pb-2">
170
- <span class="text-primary font-semibold text-sm"
171
- >Endpoint <span class="text-2xs text-tertiary">(optional)</span></span
172
- >
173
- <span class="text-tertiary text-2xs"
174
- >Only needed for non Azure Blob providers like Azurite</span
175
- >
176
- <input type="text" bind:value={bucket_config.endpoint} />
177
- </label>
178
- {:else}
179
- <div>Unknown bucket type {bucket_config['type']}</div>
180
- {/if}
152
+ {:else if bucket_config.type === 'Azure'}
153
+ <label class="block pb-2">
154
+ <span class="text-primary font-semibold text-sm">Account name</span>
155
+ <input type="text" placeholder="account-name" bind:value={bucket_config.accountName} />
156
+ </label>
157
+ <label class="block pb-2">
158
+ <span class="text-primary font-semibold text-sm">Container name</span>
159
+ <input
160
+ type="text"
161
+ placeholder="container-name"
162
+ bind:value={bucket_config.containerName}
163
+ />
164
+ </label>
165
+ <label class="block pb-2">
166
+ <span class="text-primary font-semibold text-sm">Access key</span>
167
+ <input type="password" autocomplete="new-password" bind:value={bucket_config.accessKey} />
168
+ </label>
169
+ <label class="block pb-2">
170
+ <span class="text-primary font-semibold text-sm"
171
+ >Tenant ID <span class="text-2xs text-tertiary">(optional)</span></span
172
+ >
173
+ <input type="text" bind:value={bucket_config.tenantId} />
174
+ </label>
175
+ <label class="block pb-2">
176
+ <span class="text-primary font-semibold text-sm"
177
+ >Client ID <span class="text-2xs text-tertiary">(optional)</span></span
178
+ >
179
+ <input type="text" bind:value={bucket_config.clientId} />
180
+ </label>
181
+ <label class="block pb-2">
182
+ <span class="text-primary font-semibold text-sm"
183
+ >Endpoint <span class="text-2xs text-tertiary">(optional)</span></span
184
+ >
185
+ <span class="text-tertiary text-2xs"
186
+ >Only needed for non Azure Blob providers like Azurite</span
187
+ >
188
+ <input type="text" bind:value={bucket_config.endpoint} />
189
+ </label>
190
+ {:else}
191
+ <div>Unknown bucket type {bucket_config['type']}</div>
192
+ {/if}
193
+ </div>
181
194
  </div>
182
195
  {/if}
@@ -182,7 +182,7 @@ function addAllTags(alertIndex) {
182
182
  documentationLink="https://www.windmill.dev/docs/core_concepts/worker_groups#queue-metrics"
183
183
  >
184
184
  <Section
185
- label="Queue Alert Settings"
185
+ label="Queue alert settings"
186
186
  collapsable={true}
187
187
  tooltip="A critical alert is triggered when the number of jobs in the queue exceeds the set threshold and they have been waiting for at least the specified time. After an alert, no new alerts will be triggered during the cooldown period."
188
188
  eeOnly={true}
@@ -193,7 +193,7 @@ function addAllTags(alertIndex) {
193
193
  {/if}
194
194
  <div class="flex gap-2 pb-2">
195
195
  <Button color="blue" size="xs" on:click={applyConfig} disabled={!changesMade}>
196
- <SaveIcon size={16} /> Apply Config
196
+ <SaveIcon size={16} /> Apply config
197
197
  </Button>
198
198
  <Button color="light" size="xs" on:click={cancelChanges} disabled={!changesMade}>
199
199
  Cancel
@@ -248,7 +248,7 @@ function addAllTags(alertIndex) {
248
248
  {tag}
249
249
  <button
250
250
  on:click={() => removeTag(index, tag)}
251
- aria-label="Remove Tag"
251
+ aria-label="Remove tag"
252
252
  class="ml-1 text-xs">x</button
253
253
  >
254
254
  </span>
@@ -263,7 +263,7 @@ function addAllTags(alertIndex) {
263
263
  disabled={workerTags.length === alert.tags_to_monitor.length}
264
264
  class="p-1 flex-grow mr-1"
265
265
  />
266
- <button on:click={() => addTag(index, newTag)} aria-label="Add Tag">
266
+ <button on:click={() => addTag(index, newTag)} aria-label="Add tag">
267
267
  <PlusCircle size={16} />
268
268
  </button>
269
269
  </div>
@@ -366,7 +366,7 @@ function addAllTags(alertIndex) {
366
366
  <div class="flex">
367
367
  <Button color="blue" size="xs" on:click={addNewAlert}>
368
368
  <PlusCircle size={16} />
369
- Add New Alert
369
+ Add new alert
370
370
  </Button>
371
371
  </div>
372
372
  {:else}
@@ -20,6 +20,10 @@ export let path = '';
20
20
  export let newResource = false;
21
21
  export let hidePath = false;
22
22
  export let watchChanges = false;
23
+ export let defaultValues = undefined;
24
+ $: if (defaultValues && Object.keys(defaultValues).length > 0) {
25
+ args = defaultValues;
26
+ }
23
27
  let isValid = true;
24
28
  let jsonError = '';
25
29
  let can_write = true;
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  newResource?: boolean | undefined;
8
8
  hidePath?: boolean | undefined;
9
9
  watchChanges?: boolean | undefined;
10
+ defaultValues?: Record<string, any> | undefined;
10
11
  editResource?: (() => Promise<void>) | undefined;
11
12
  createResource?: (() => Promise<void>) | undefined;
12
13
  };
@@ -4,6 +4,7 @@ import { Loader2, Save } from 'lucide-svelte';
4
4
  let drawer;
5
5
  let canSave = true;
6
6
  let resource_type = undefined;
7
+ let defaultValues = undefined;
7
8
  let resourceEditor = undefined;
8
9
  let path = undefined;
9
10
  let newResource = false;
@@ -13,16 +14,22 @@ export async function initEdit(p) {
13
14
  path = p;
14
15
  drawer.openDrawer?.();
15
16
  }
16
- export async function initNew(resourceType) {
17
+ export async function initNew(resourceType, nDefaultValues) {
17
18
  newResource = true;
18
19
  path = undefined;
19
20
  resource_type = resourceType;
21
+ defaultValues = nDefaultValues;
20
22
  drawer.openDrawer?.();
21
23
  }
24
+ let mode = newResource ? 'new' : 'edit';
25
+ $: path ? (mode = 'edit') : (mode = 'new');
22
26
  </script>
23
27
 
24
28
  <Drawer bind:this={drawer} size="800px">
25
- <DrawerContent title={path ? 'Edit ' + path : 'Add a resource'} on:close={drawer.closeDrawer}>
29
+ <DrawerContent
30
+ title={mode == 'edit' ? 'Edit ' + path : 'Add a resourcee'}
31
+ on:close={drawer.closeDrawer}
32
+ >
26
33
  {#await import('./ResourceEditor.svelte')}
27
34
  <Loader2 class="animate-spin" />
28
35
  {:then Module}
@@ -30,6 +37,7 @@ export async function initNew(resourceType) {
30
37
  {newResource}
31
38
  {path}
32
39
  {resource_type}
40
+ {defaultValues}
33
41
  on:refresh
34
42
  bind:this={resourceEditor}
35
43
  bind:canSave
@@ -39,7 +47,11 @@ export async function initNew(resourceType) {
39
47
  <Button
40
48
  startIcon={{ icon: Save }}
41
49
  on:click={() => {
42
- resourceEditor?.editResource()
50
+ if (mode == 'edit') {
51
+ resourceEditor?.editResource()
52
+ } else {
53
+ resourceEditor?.createResource()
54
+ }
43
55
  drawer.closeDrawer()
44
56
  }}
45
57
  disabled={!canSave}
@@ -2,7 +2,7 @@ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  initEdit?: ((p: string) => Promise<void>) | undefined;
5
- initNew?: ((resourceType: string) => Promise<void>) | undefined;
5
+ initNew?: ((resourceType: string, nDefaultValues?: Record<string, any>) => Promise<void>) | undefined;
6
6
  };
7
7
  events: {
8
8
  refresh: any;
@@ -16,6 +16,6 @@ export type ResourceEditorDrawerEvents = typeof __propDef.events;
16
16
  export type ResourceEditorDrawerSlots = typeof __propDef.slots;
17
17
  export default class ResourceEditorDrawer extends SvelteComponent<ResourceEditorDrawerProps, ResourceEditorDrawerEvents, ResourceEditorDrawerSlots> {
18
18
  get initEdit(): (p: string) => Promise<void>;
19
- get initNew(): (resourceType: string) => Promise<void>;
19
+ get initNew(): (resourceType: string, nDefaultValues?: Record<string, any> | undefined) => Promise<void>;
20
20
  }
21
21
  export {};
@@ -1,6 +1,6 @@
1
1
  <script>import { ResourceService } from '../gen';
2
2
  import { workspaceStore } from '../stores';
3
- import { createEventDispatcher } from 'svelte';
3
+ import { createEventDispatcher, onMount } from 'svelte';
4
4
  import Select from './apps/svelte-select/lib/index';
5
5
  import { SELECT_INPUT_DEFAULT_STYLE } from '../defaults';
6
6
  import AppConnect from './AppConnectDrawer.svelte';
@@ -20,6 +20,14 @@ export let disablePortal = false;
20
20
  export let showSchemaExplorer = false;
21
21
  export let selectFirst = false;
22
22
  export let expressOAuthSetup = false;
23
+ export let defaultValues = undefined;
24
+ onMount(() => {
25
+ setTimeout(() => {
26
+ if (Object.keys(defaultValues ?? {}).length > 0 && resourceType) {
27
+ resourceEditor?.initNew?.(resourceType, defaultValues);
28
+ }
29
+ }, 500);
30
+ });
23
31
  let valueSelect = initialValue || value
24
32
  ? {
25
33
  value: value ?? initialValue,
@@ -38,10 +46,13 @@ let loading = true;
38
46
  async function loadResources(resourceType) {
39
47
  loading = true;
40
48
  try {
41
- const nc = (await ResourceService.listResource({
49
+ const resourceTypesToQuery = resourceType === 'snowflake' ? ['snowflake', 'snowflake_oauth'] : [resourceType];
50
+ const resources = await Promise.all(resourceTypesToQuery.map((rt) => ResourceService.listResource({
42
51
  workspace: $workspaceStore,
43
- resourceType
44
- }))
52
+ resourceType: rt
53
+ })));
54
+ const nc = resources
55
+ .flat()
45
56
  .filter((x) => x.resource_type != 'state' && x.resource_type != 'cache')
46
57
  .map((x) => ({
47
58
  value: x.path,
@@ -163,7 +174,7 @@ let darkMode = false;
163
174
  {disabled}
164
175
  color="light"
165
176
  variant="border"
166
- size="sm"
177
+ size="xs"
167
178
  on:click={() => appConnect?.open?.(resourceType)}
168
179
  startIcon={{ icon: Plus }}
169
180
  iconOnly={collection?.length > 0}
@@ -10,6 +10,7 @@ declare const __propDef: {
10
10
  showSchemaExplorer?: boolean | undefined;
11
11
  selectFirst?: boolean | undefined;
12
12
  expressOAuthSetup?: boolean | undefined;
13
+ defaultValues?: Record<string, any> | undefined;
13
14
  askNewResource?: (() => Promise<void>) | undefined;
14
15
  };
15
16
  events: {