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
@@ -81,7 +81,7 @@ export default class ResultJobLoader extends SvelteComponent<ResultJobLoaderProp
81
81
  cancel: () => void;
82
82
  error: (err: Error) => void;
83
83
  } | undefined) => Promise<string>;
84
- get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible", args: Record<string, any>, tag: string | undefined, callbacks?: {
84
+ get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | "csharp", args: Record<string, any>, tag: string | undefined, callbacks?: {
85
85
  done: (x: any) => void;
86
86
  cancel: () => void;
87
87
  error: (err: Error) => void;
@@ -12,6 +12,7 @@ import { emptyString, sendUserToast } from '../utils';
12
12
  import Toggle from './Toggle.svelte';
13
13
  import { loadSchedules, saveSchedule } from './flows/scheduleUtils';
14
14
  import { writable } from 'svelte/store';
15
+ import Description from './Description.svelte';
15
16
  export let schema;
16
17
  export let isFlow;
17
18
  export let path;
@@ -31,14 +32,18 @@ async function save() {
31
32
  }
32
33
  </script>
33
34
 
34
- <ScheduleEditor
35
- on:update={() => {
36
- updateSchedules(true)
37
- }}
38
- bind:this={scheduleEditor}
39
- />
40
-
41
35
  <div class="flex flex-col gap-4 w-full">
36
+ <Description link="https://www.windmill.dev/docs/core_concepts/scheduling">
37
+ Run scripts and flows automatically on a recurring basis using cron expressions. Each script or
38
+ flow can have multiple schedules, with one designated as primary.
39
+ </Description>
40
+ <ScheduleEditor
41
+ on:update={() => {
42
+ updateSchedules(true)
43
+ }}
44
+ bind:this={scheduleEditor}
45
+ />
46
+
42
47
  {#if $primarySchedule == undefined}
43
48
  <Skeleton layout={[[12]]} />
44
49
  {:else if $primarySchedule}
@@ -146,10 +151,10 @@ async function save() {
146
151
  }}
147
152
  variant="contained"
148
153
  color="dark"
149
- size="md"
154
+ size="sm"
150
155
  startIcon={{ icon: Calendar }}
151
156
  >
152
- Set Primary Schedule
157
+ Set primary schedule
153
158
  </Button>
154
159
  </div>
155
160
  {#if $initialPrimarySchedule != undefined && $initialPrimarySchedule != false && !newItem}
@@ -186,7 +191,7 @@ async function save() {
186
191
  size="xs"
187
192
  startIcon={{ icon: Calendar }}
188
193
  >
189
- New Schedule
194
+ New schedule
190
195
  </Button>
191
196
  {/if}
192
197
 
@@ -431,7 +431,7 @@ async function loadLargeArgs(id, input, allowLarge) {
431
431
  disabled={!selectedInput}
432
432
  >
433
433
  <ArrowLeftIcon class="w-4 h-4 mr-2" />
434
- Use Input
434
+ Use input
435
435
  </Button>
436
436
  </div>
437
437
  <div class="w-full min-h-0 grow overflow-auto">
@@ -196,12 +196,15 @@ const dispatch = createEventDispatcher();
196
196
  async function loadScript(p) {
197
197
  if (p) {
198
198
  runnable = undefined;
199
- if (is_flow) {
200
- runnable = await FlowService.getFlowByPath({ workspace: $workspaceStore, path: p });
201
- }
202
- else {
203
- runnable = await ScriptService.getScriptByPath({ workspace: $workspaceStore, path: p });
199
+ try {
200
+ if (is_flow) {
201
+ runnable = await FlowService.getFlowByPath({ workspace: $workspaceStore, path: p });
202
+ }
203
+ else {
204
+ runnable = await ScriptService.getScriptByPath({ workspace: $workspaceStore, path: p });
205
+ }
204
206
  }
207
+ catch (err) { }
205
208
  }
206
209
  else {
207
210
  runnable = undefined;
@@ -494,7 +497,11 @@ function onVersionChange() {
494
497
 
495
498
  <Drawer size="900px" bind:this={drawer}>
496
499
  <DrawerContent
497
- title={edit ? `Edit schedule ${initialPath}` : 'New schedule'}
500
+ title={edit
501
+ ? can_write
502
+ ? `Edit schedule ${initialPath}`
503
+ : `View schedule ${initialPath}`
504
+ : 'New schedule'}
498
505
  on:close={drawer.closeDrawer}
499
506
  >
500
507
  <svelte:fragment slot="actions">
@@ -511,22 +518,24 @@ function onVersionChange() {
511
518
  View runs
512
519
  </Button>
513
520
  </div>
514
- <div class="mr-8 center-center -mt-1">
515
- <Toggle
516
- disabled={!can_write}
517
- checked={enabled}
518
- options={{ right: 'Enabled' }}
519
- on:change={async (e) => {
520
- await ScheduleService.setScheduleEnabled({
521
- path: initialPath,
522
- workspace: $workspaceStore ?? '',
523
- requestBody: { enabled: e.detail }
524
- })
525
- dispatch('update')
526
- sendUserToast(`${e.detail ? 'enabled' : 'disabled'} schedule ${initialPath}`)
527
- }}
528
- />
529
- </div>
521
+ {#if can_write}
522
+ <div class="mr-8 center-center -mt-1">
523
+ <Toggle
524
+ disabled={!can_write}
525
+ checked={enabled}
526
+ options={{ right: 'Enabled' }}
527
+ on:change={async (e) => {
528
+ await ScheduleService.setScheduleEnabled({
529
+ path: initialPath,
530
+ workspace: $workspaceStore ?? '',
531
+ requestBody: { enabled: e.detail }
532
+ })
533
+ dispatch('update')
534
+ sendUserToast(`${e.detail ? 'enabled' : 'disabled'} schedule ${initialPath}`)
535
+ }}
536
+ />
537
+ </div>
538
+ {/if}
530
539
  {/if}
531
540
  <Button
532
541
  startIcon={{ icon: Save }}
@@ -535,7 +544,8 @@ function onVersionChange() {
535
544
  emptyString(script_path) ||
536
545
  (errorHandlerSelected == 'slack' &&
537
546
  !emptyString(errorHandlerPath) &&
538
- emptyString(errorHandlerExtraArgs['channel']))}
547
+ emptyString(errorHandlerExtraArgs['channel'])) ||
548
+ !can_write}
539
549
  on:click={scheduleScript}
540
550
  >
541
551
  {edit ? 'Save' : 'Schedule'}
@@ -545,6 +555,7 @@ function onVersionChange() {
545
555
  {#if drawerLoading}
546
556
  <Loader2 class="animate-spin" />
547
557
  {:else}
558
+ {can_write}
548
559
  <div class="flex flex-col gap-12">
549
560
  <div class="flex flex-col gap-4">
550
561
  <div>
@@ -557,6 +568,7 @@ function onVersionChange() {
557
568
  placeholder="Short summary to be displayed when listed"
558
569
  class="text-sm w-full"
559
570
  bind:value={summary}
571
+ disabled={!can_write}
560
572
  on:keyup={() => {
561
573
  if (!edit && summary?.length > 0 && !dirtyPath) {
562
574
  pathC?.setName(
@@ -634,6 +646,7 @@ function onVersionChange() {
634
646
  size="xs"
635
647
  bind:checked={isLatestCron}
636
648
  on:change={onVersionChange}
649
+ disabled={!can_write}
637
650
  />
638
651
  </div>
639
652
  {/if}
@@ -652,6 +665,7 @@ function onVersionChange() {
652
665
  }}
653
666
  bind:checked={showPauseUntil}
654
667
  size="xs"
668
+ disabled={!can_write}
655
669
  />
656
670
  {#if showPauseUntil}
657
671
  <DateTimeInput bind:value={paused_until} />
@@ -685,6 +699,8 @@ function onVersionChange() {
685
699
  scriptPath={script_path}
686
700
  allowFlow={true}
687
701
  {itemKind}
702
+ allowView={script_path != '' && !!runnable}
703
+ allowEdit={script_path != '' && !!runnable && !$userStore?.operator}
688
704
  />
689
705
  {/if}
690
706
  {#if itemKind == 'flow'}
@@ -722,6 +738,11 @@ function onVersionChange() {
722
738
  This {is_flow ? 'flow' : 'script'} takes no argument
723
739
  </div>
724
740
  {/if}
741
+ {:else if script_path != ''}
742
+ <div class="text-xs texg-gray-700 my-2">
743
+ You cannot see the the {is_flow ? 'flow' : 'script'} input form as you do not have
744
+ access to it.
745
+ </div>
725
746
  {:else}
726
747
  <div class="text-xs texg-gray-700 my-2">
727
748
  Pick a {is_flow ? 'flow' : 'script'} and fill its argument here
@@ -757,6 +778,7 @@ function onVersionChange() {
757
778
  <div class="flex flex-row items-center gap-1 text-2xs text-tertiary">
758
779
  defaults
759
780
  <Dropdown
781
+ disabled={!can_write}
760
782
  items={[
761
783
  {
762
784
  displayName: `Override future schedules only`,
@@ -849,6 +871,7 @@ function onVersionChange() {
849
871
  </div>
850
872
  </Section>
851
873
  {:else if optionTabSelected === 'recovery_handler'}
874
+ {@const disabled = !can_write || emptyString($enterpriseLicense)}
852
875
  <Section label="Recovery handler">
853
876
  <svelte:fragment slot="header">
854
877
  <div class="flex flex-row gap-2">
@@ -860,6 +883,7 @@ function onVersionChange() {
860
883
  <div class="flex flex-row items-center text-tertiary text-2xs gap-2">
861
884
  defaults
862
885
  <Dropdown
886
+ {disabled}
863
887
  items={[
864
888
  {
865
889
  displayName: `Override future schedules only`,
@@ -880,7 +904,7 @@ function onVersionChange() {
880
904
  </div>
881
905
  </svelte:fragment>
882
906
  <ErrorOrRecoveryHandler
883
- isEditable={can_write && !emptyString($enterpriseLicense)}
907
+ isEditable={!disabled}
884
908
  errorOrRecovery="recovery"
885
909
  bind:handlerSelected={recoveryHandlerSelected}
886
910
  bind:handlerPath={recoveryHandlerPath}
@@ -933,12 +957,14 @@ function onVersionChange() {
933
957
  class="!w-14 mx-2 text-center"
934
958
  bind:value={recoveredTimes}
935
959
  min="1"
960
+ {disabled}
936
961
  />
937
962
  <p>time{recoveredTimes > 1 ? 's in a row' : ''}</p>
938
963
  </div>
939
964
  </div>
940
965
  </Section>
941
966
  {:else if optionTabSelected === 'success_handler'}
967
+ {@const disabled = !can_write || emptyString($enterpriseLicense)}
942
968
  <Section label="Success handler">
943
969
  <svelte:fragment slot="header">
944
970
  <div class="flex flex-row gap-2">
@@ -950,6 +976,7 @@ function onVersionChange() {
950
976
  <div class="flex flex-row items-center text-tertiary text-2xs gap-2">
951
977
  defaults
952
978
  <Dropdown
979
+ {disabled}
953
980
  items={[
954
981
  {
955
982
  displayName: `Override future schedules only`,
@@ -970,7 +997,7 @@ function onVersionChange() {
970
997
  </div>
971
998
  </svelte:fragment>
972
999
  <ErrorOrRecoveryHandler
973
- isEditable={can_write && !emptyString($enterpriseLicense)}
1000
+ isEditable={!disabled}
974
1001
  errorOrRecovery="success"
975
1002
  bind:handlerSelected={successHandlerSelected}
976
1003
  bind:handlerPath={successHandlerPath}
@@ -1001,6 +1028,7 @@ function onVersionChange() {
1001
1028
  </ErrorOrRecoveryHandler>
1002
1029
  </Section>
1003
1030
  {:else if optionTabSelected === 'retries'}
1031
+ {@const disabled = !can_write || emptyString($enterpriseLicense)}
1004
1032
  <Section label="Retries">
1005
1033
  <svelte:fragment slot="header">
1006
1034
  <div class="flex flex-row gap-2">
@@ -1015,14 +1043,17 @@ function onVersionChange() {
1015
1043
  flow step in the flow editor.
1016
1044
  </Tooltip>
1017
1045
  </svelte:fragment>
1018
- <FlowRetries bind:flowModuleRetry={retry} disabled={itemKind !== 'script'} />
1046
+ <FlowRetries
1047
+ bind:flowModuleRetry={retry}
1048
+ disabled={itemKind !== 'script' || disabled}
1049
+ />
1019
1050
  </Section>
1020
1051
  {:else if optionTabSelected === 'tag'}
1021
1052
  <Section
1022
1053
  label="Custom script tag"
1023
1054
  tooltip="When set, the script tag will be overridden by this tag"
1024
1055
  >
1025
- <WorkerTagPicker bind:tag popupPlacement="top-end" />
1056
+ <WorkerTagPicker bind:tag popupPlacement="top-end" disabled={!can_write} />
1026
1057
  </Section>
1027
1058
  {/if}
1028
1059
  {:else}
@@ -37,6 +37,7 @@ export let lightweightMode = false;
37
37
  export let dndConfig = undefined;
38
38
  export let items = undefined;
39
39
  export let helperScript = undefined;
40
+ export let lightHeader = false;
40
41
  const dispatch = createEventDispatcher();
41
42
  let inputCheck = {};
42
43
  $: if (args == undefined || typeof args !== 'object') {
@@ -47,7 +48,7 @@ export function setDefaults() {
47
48
  Object.keys(schema?.properties ?? {}).forEach((key) => {
48
49
  if (schema?.properties[key].default != undefined && args[key] == undefined) {
49
50
  let value = schema?.properties[key].default;
50
- nargs[key] = value === 'object' ? JSON.parse(JSON.stringify(value)) : value;
51
+ nargs[key] = value === 'object' ? structuredClone(value) : value;
51
52
  }
52
53
  });
53
54
  args = nargs;
@@ -126,7 +127,7 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
126
127
  {@const argName = item.value}
127
128
  <div>
128
129
  <!-- svelte-ignore a11y-click-events-have-key-events -->
129
- {#if !schemaSkippedValues.includes(argName) && Object.keys(schema?.properties ?? {}).includes(argName)}
130
+ {#if !schemaSkippedValues.includes(argName) && keys.includes(argName)}
130
131
  <!-- svelte-ignore a11y-no-static-element-interactions -->
131
132
  <div
132
133
  class="flex flex-row items-center bg-surface"
@@ -146,7 +147,7 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
146
147
  required={schema?.required?.includes(argName)}
147
148
  pattern={schema.properties[argName].pattern}
148
149
  bind:valid={inputCheck[argName]}
149
- defaultValue={schema.properties[argName].default}
150
+ defaultValue={structuredClone(schema.properties[argName].default)}
150
151
  enum_={schema.properties[argName].enum}
151
152
  format={schema.properties[argName].format}
152
153
  contentEncoding={schema.properties[argName].contentEncoding}
@@ -207,7 +208,7 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
207
208
  required={schema?.required?.includes(argName)}
208
209
  pattern={schema.properties[argName].pattern}
209
210
  bind:valid={inputCheck[argName]}
210
- defaultValue={schema.properties[argName].default}
211
+ defaultValue={structuredClone(schema.properties[argName].default)}
211
212
  enum_={schema.properties[argName].enum}
212
213
  format={schema.properties[argName].format}
213
214
  contentEncoding={schema.properties[argName].contentEncoding}
@@ -234,6 +235,7 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
234
235
  orderEditable={dndConfig != undefined}
235
236
  otherArgs={args}
236
237
  {helperScript}
238
+ {lightHeader}
237
239
  >
238
240
  <svelte:fragment slot="actions">
239
241
  <slot name="actions" />
@@ -305,7 +307,7 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
305
307
  startIcon={{ icon: Plus }}
306
308
  on:click={() => variableEditor?.initNew?.()}
307
309
  >
308
- New Variable
310
+ New variable
309
311
  </Button>
310
312
  </div>
311
313
  </ItemPicker>
@@ -40,6 +40,7 @@ declare const __propDef: {
40
40
  type: 'hash';
41
41
  hash: string;
42
42
  } | undefined;
43
+ lightHeader?: boolean | undefined;
43
44
  setDefaults?: (() => void) | undefined;
44
45
  };
45
46
  events: {
@@ -32,6 +32,8 @@ import CustomPopover from './CustomPopover.svelte';
32
32
  import Summary from './Summary.svelte';
33
33
  import DeployOverrideConfirmationModal from './common/confirmationModal/DeployOverrideConfirmationModal.svelte';
34
34
  import TriggersEditor from './triggers/TriggersEditor.svelte';
35
+ import { BUN_PREPROCESSOR_MODULE_CODE, PYTHON_PREPROCESSOR_MODULE_CODE } from '../script_helpers';
36
+ import CaptureTable from './triggers/CaptureTable.svelte';
35
37
  export let script;
36
38
  export let fullyLoaded = true;
37
39
  export let initialPath = '';
@@ -51,6 +53,9 @@ let deployedValue = undefined; // Value to diff against
51
53
  let deployedBy = undefined; // Author
52
54
  let confirmCallback = () => { }; // What happens when user clicks `override` in warning
53
55
  let open = false; // Is confirmation modal open
56
+ let args = initialArgs; // Test args input
57
+ let selectedInputTab = 'main';
58
+ let hasPreprocessor = false;
54
59
  let metadataOpen = !neverShowMeta &&
55
60
  (showMeta ||
56
61
  (initialPath == '' &&
@@ -58,6 +63,7 @@ let metadataOpen = !neverShowMeta &&
58
63
  searchParams.get('collab') == undefined));
59
64
  let editor = undefined;
60
65
  let scriptEditor = undefined;
66
+ let captureTable = undefined;
61
67
  const primaryScheduleStore = writable(savedPrimarySchedule);
62
68
  const triggersCount = writable(savedPrimarySchedule
63
69
  ? { schedule_count: 1, primary_schedule: { schedule: savedPrimarySchedule.cron } }
@@ -85,11 +91,15 @@ async function loadTriggers() {
85
91
  };
86
92
  }
87
93
  }
94
+ const triggerDefaultValuesStore = writable(undefined);
95
+ const captureOn = writable(undefined);
88
96
  setContext('TriggerContext', {
89
97
  selectedTrigger: selectedTriggerStore,
90
98
  primarySchedule: primaryScheduleStore,
91
99
  triggersCount,
92
- simplifiedPoll
100
+ simplifiedPoll,
101
+ defaultValues: triggerDefaultValuesStore,
102
+ captureOn: captureOn
93
103
  });
94
104
  const enterpriseLangs = ['bigquery', 'snowflake', 'mssql'];
95
105
  export function setCode(code) {
@@ -145,7 +155,7 @@ if (script.content == '') {
145
155
  function initContent(language, kind, template) {
146
156
  scriptEditor?.disableCollaboration();
147
157
  script.content = initialCode(language, kind, template);
148
- scriptEditor?.inferSchema(script.content, language);
158
+ scriptEditor?.inferSchema(script.content, language, true);
149
159
  if (script.content != editor?.getCode()) {
150
160
  setCode(script.content);
151
161
  }
@@ -506,6 +516,34 @@ function langToLanguage(lang) {
506
516
  }
507
517
  return lang;
508
518
  }
519
+ async function applyArgs(e) {
520
+ selectedInputTab = e.detail.kind;
521
+ metadataOpen = false;
522
+ args = e.detail.args ?? {};
523
+ }
524
+ function openTriggers(ev) {
525
+ metadataOpen = true;
526
+ selectedTab = 'triggers';
527
+ selectedTriggerStore.set(ev.detail.kind);
528
+ triggerDefaultValuesStore.set(ev.detail.config);
529
+ captureOn.set(true);
530
+ }
531
+ function addPreprocessor() {
532
+ const code = editor?.getCode();
533
+ if (code) {
534
+ const preprocessorCode = script.language === 'python3'
535
+ ? PYTHON_PREPROCESSOR_MODULE_CODE
536
+ : BUN_PREPROCESSOR_MODULE_CODE;
537
+ const mainIndex = code.indexOf(script.language === 'python3' ? 'def main' : 'export async function main');
538
+ if (mainIndex === -1) {
539
+ editor?.setCode(code + preprocessorCode);
540
+ }
541
+ else {
542
+ editor?.setCode(code.slice(0, mainIndex) + preprocessorCode + '\n' + code.slice(mainIndex) + '\n\n');
543
+ }
544
+ }
545
+ selectedInputTab = 'preprocessor';
546
+ }
509
547
  </script>
510
548
 
511
549
  <svelte:window on:keydown={onKeyDown} />
@@ -541,9 +579,7 @@ function langToLanguage(lang) {
541
579
  </Tab>
542
580
  <Tab value="triggers">
543
581
  Triggers
544
- <Tooltip
545
- documentationLink="https://www.windmill.dev/docs/getting_started/trigger_scripts"
546
- >
582
+ <Tooltip documentationLink="https://www.windmill.dev/docs/getting_started/triggers">
547
583
  Configure how this script will be triggered.
548
584
  </Tooltip>
549
585
  </Tab>
@@ -1102,12 +1138,22 @@ function langToLanguage(lang) {
1102
1138
  </TabContent>
1103
1139
  <TabContent value="triggers">
1104
1140
  <TriggersEditor
1141
+ on:applyArgs={applyArgs}
1142
+ on:addPreprocessor={addPreprocessor}
1143
+ on:exitTriggers={() => {
1144
+ captureTable?.refreshCaptures()
1145
+ }}
1105
1146
  {initialPath}
1106
1147
  schema={script.schema}
1107
1148
  noEditor={true}
1108
1149
  isFlow={false}
1109
1150
  currentPath={script.path}
1151
+ hash={script.parent_hash}
1110
1152
  newItem={initialPath == ''}
1153
+ canHavePreprocessor={script.language === 'bun' ||
1154
+ script.language === 'deno' ||
1155
+ script.language === 'python3'}
1156
+ {hasPreprocessor}
1111
1157
  />
1112
1158
  <!-- <ScriptSchedules {initialPath} schema={script.schema} schedule={scheduleStore} /> -->
1113
1159
  </TabContent>
@@ -1286,6 +1332,7 @@ function langToLanguage(lang) {
1286
1332
  </div>
1287
1333
 
1288
1334
  <ScriptEditor
1335
+ bind:selectedTab={selectedInputTab}
1289
1336
  {customUi}
1290
1337
  collabMode
1291
1338
  edit={initialPath != ''}
@@ -1295,6 +1342,9 @@ function langToLanguage(lang) {
1295
1342
  on:saveDraft={() => {
1296
1343
  saveDraft()
1297
1344
  }}
1345
+ on:openTriggers={openTriggers}
1346
+ on:applyArgs={applyArgs}
1347
+ on:addPreprocessor={addPreprocessor}
1298
1348
  bind:editor
1299
1349
  bind:this={scriptEditor}
1300
1350
  bind:schema={script.schema}
@@ -1305,6 +1355,9 @@ function langToLanguage(lang) {
1305
1355
  kind={script.kind}
1306
1356
  {template}
1307
1357
  tag={script.tag}
1358
+ bind:args
1359
+ bind:hasPreprocessor
1360
+ bind:captureTable
1308
1361
  />
1309
1362
  </div>
1310
1363
  {:else}