windmill-components 1.339.2 → 1.352.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/package/assets/app.css +0 -12
  2. package/package/ata/index.js +1 -0
  3. package/package/autosize.js +1 -1
  4. package/package/common.d.ts +6 -2
  5. package/package/common.js +2 -1
  6. package/package/components/AppConnectDrawer.svelte +1 -1
  7. package/package/components/AppConnectInner.svelte +9 -15
  8. package/package/components/ArgEnum.svelte +4 -1
  9. package/package/components/ArgEnum.svelte.d.ts +3 -1
  10. package/package/components/ArgInput.svelte +184 -141
  11. package/package/components/ArgInput.svelte.d.ts +7 -7
  12. package/package/components/ArrayTypeNarrowing.svelte +29 -27
  13. package/package/components/CenteredPage.svelte +2 -2
  14. package/package/components/DefaultTagsInner.svelte +1 -1
  15. package/package/components/Dev.svelte +2 -1
  16. package/package/components/DiffDrawer.svelte +1 -2
  17. package/package/components/DisplayResult.svelte +293 -233
  18. package/package/components/DurationMs.svelte +11 -3
  19. package/package/components/DurationMs.svelte.d.ts +2 -0
  20. package/package/components/EditableSchemaForm.svelte +447 -103
  21. package/package/components/EditableSchemaForm.svelte.d.ts +16 -6
  22. package/package/components/Editor.svelte +3 -1
  23. package/package/components/EditorBar.svelte +2 -2
  24. package/package/components/FlowBuilder.svelte +14 -6
  25. package/package/components/FlowGraphViewer.svelte +1 -1
  26. package/package/components/FlowGraphViewerStep.svelte +37 -9
  27. package/package/components/FlowGraphViewerStep.svelte.d.ts +2 -7
  28. package/package/components/FlowJobResult.svelte +1 -3
  29. package/package/components/FlowMetadata.svelte +1 -1
  30. package/package/components/FlowPreviewContent.svelte +5 -3
  31. package/package/components/FlowStatusViewer.svelte +4 -0
  32. package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
  33. package/package/components/FlowStatusViewerInner.svelte +50 -17
  34. package/package/components/FlowStatusViewerInner.svelte.d.ts +3 -0
  35. package/package/components/FlowTimeline.svelte +13 -0
  36. package/package/components/FlowTimeline.svelte.d.ts +2 -0
  37. package/package/components/FlowViewer.svelte +0 -5
  38. package/package/components/FolderEditor.svelte +25 -0
  39. package/package/components/FolderEditor.svelte.d.ts +2 -0
  40. package/package/components/GroupEditor.svelte +36 -91
  41. package/package/components/GroupInfo.svelte +1 -1
  42. package/package/components/InputTransformForm.svelte +16 -1
  43. package/package/components/InputTransformForm.svelte.d.ts +2 -0
  44. package/package/components/InputTransformSchemaForm.svelte +6 -0
  45. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  46. package/package/components/InstanceSettings.svelte +36 -3
  47. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  48. package/package/components/JobStatus.svelte +2 -2
  49. package/package/components/LightweightArgInput.svelte +66 -14
  50. package/package/components/LightweightArgInput.svelte.d.ts +3 -2
  51. package/package/components/LightweightSchemaForm.svelte +24 -15
  52. package/package/components/ModulePreviewForm.svelte +1 -0
  53. package/package/components/NumberTypeNarrowing.svelte +71 -44
  54. package/package/components/ObjectResourceInput.svelte +2 -0
  55. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  56. package/package/components/ObjectTypeNarrowing.svelte +0 -1
  57. package/package/components/ParqetCsvTableRenderer.svelte +181 -0
  58. package/package/components/ParqetCsvTableRenderer.svelte.d.ts +21 -0
  59. package/package/components/Path.svelte +2 -2
  60. package/package/components/PersistentScriptDrawer.svelte +6 -3
  61. package/package/components/Range.svelte +88 -286
  62. package/package/components/Range.svelte.d.ts +9 -23
  63. package/package/components/ResourceEditor.svelte +138 -141
  64. package/package/components/ResourceEditor.svelte.d.ts +9 -2
  65. package/package/components/ResourceEditorDrawer.svelte +45 -0
  66. package/package/components/ResourceEditorDrawer.svelte.d.ts +21 -0
  67. package/package/components/ResourcePicker.svelte +5 -2
  68. package/package/components/ResourceTypePicker.svelte +88 -36
  69. package/package/components/RunChart.svelte +55 -5
  70. package/package/components/RunChart.svelte.d.ts +1 -0
  71. package/package/components/RunForm.svelte +1 -1
  72. package/package/components/S3FilePicker.svelte +20 -8
  73. package/package/components/S3FilePicker.svelte.d.ts +2 -0
  74. package/package/components/ScheduleEditorInner.svelte +40 -37
  75. package/package/components/SchemaForm.svelte +192 -103
  76. package/package/components/SchemaForm.svelte.d.ts +16 -2
  77. package/package/components/ScriptBuilder.svelte +13 -8
  78. package/package/components/ScriptSchedules.svelte +11 -8
  79. package/package/components/ScriptSchema.svelte +3 -21
  80. package/package/components/ScriptVersionHistory.svelte +1 -1
  81. package/package/components/StringTypeNarrowing.svelte +217 -174
  82. package/package/components/StringTypeNarrowing.svelte.d.ts +5 -1
  83. package/package/components/Toggle.svelte +6 -3
  84. package/package/components/Toggle.svelte.d.ts +1 -0
  85. package/package/components/UserSettings.svelte +24 -1
  86. package/package/components/WorkspaceGroup.svelte +11 -13
  87. package/package/components/apps/components/buttons/AppButton.svelte +2 -0
  88. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  89. package/package/components/apps/components/display/AppFlowStatusComponent.svelte +13 -70
  90. package/package/components/apps/components/display/AppFlowStatusComponent.svelte.d.ts +1 -9
  91. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +21 -8
  92. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +1 -3
  93. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +19 -7
  94. package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +1 -3
  95. package/package/components/apps/components/display/AppLogsComponent.svelte +13 -70
  96. package/package/components/apps/components/display/AppLogsComponent.svelte.d.ts +1 -9
  97. package/package/components/apps/components/display/charts/AppAgCharts.svelte +25 -15
  98. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +2 -0
  99. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +1 -1
  100. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -1
  101. package/package/components/apps/components/helpers/RunnableComponent.svelte +18 -8
  102. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
  103. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -0
  104. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  105. package/package/components/apps/components/helpers/eval.js +1 -36
  106. package/package/components/apps/components/inputs/AppFileInput.svelte +3 -1
  107. package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
  108. package/package/components/apps/components/inputs/AppS3FileInput.svelte +3 -1
  109. package/package/components/apps/components/inputs/AppS3FileInput.svelte.d.ts +1 -0
  110. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +3 -1
  111. package/package/components/apps/components/layout/AppConditionalWrapper.svelte.d.ts +1 -0
  112. package/package/components/apps/components/layout/AppStepper.svelte +5 -1
  113. package/package/components/apps/components/layout/AppStepper.svelte.d.ts +2 -0
  114. package/package/components/apps/components/layout/AppTabs.svelte +3 -1
  115. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  116. package/package/components/apps/editor/AppEditorHeader.svelte +6 -7
  117. package/package/components/apps/editor/SettingsPanel.svelte +13 -3
  118. package/package/components/apps/editor/component/Component.svelte +8 -16
  119. package/package/components/apps/editor/component/components.d.ts +11 -2
  120. package/package/components/apps/editor/component/components.js +2 -1
  121. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -1
  122. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +5 -34
  123. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +3 -41
  124. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte +33 -0
  125. package/package/components/apps/editor/settingsPanel/EventHandlerItem.svelte.d.ts +19 -0
  126. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +103 -0
  127. package/package/components/apps/editor/settingsPanel/EventHandlers.svelte.d.ts +18 -0
  128. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +21 -45
  129. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -23
  130. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +5 -1
  131. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +0 -2
  132. package/package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +0 -1
  133. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +7 -1
  134. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +7 -14
  135. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +0 -1
  136. package/package/components/common/button/ButtonDropdown.svelte +1 -0
  137. package/package/components/common/drawer/Disposable.svelte +3 -2
  138. package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
  139. package/package/components/common/drawer/Drawer.svelte +12 -2
  140. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  141. package/package/components/common/fileDownload/FileDownload.svelte +4 -2
  142. package/package/components/common/fileUpload/FileUpload.svelte +4 -3
  143. package/package/components/common/modal/Modal.svelte +4 -1
  144. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  145. package/package/components/common/popup/Popup.svelte +1 -1
  146. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -1
  147. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  148. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte +79 -0
  149. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +18 -0
  150. package/package/components/flows/content/FlowEditorPanel.svelte +16 -2
  151. package/package/components/flows/content/FlowInput.svelte +63 -53
  152. package/package/components/flows/content/FlowModuleComponent.svelte +26 -3
  153. package/package/components/flows/content/FlowModuleScript.svelte +40 -1
  154. package/package/components/flows/content/FlowModuleScript.svelte.d.ts +2 -0
  155. package/package/components/flows/content/FlowModuleSuspend.svelte +99 -59
  156. package/package/components/flows/content/FlowModuleWrapper.svelte +16 -1
  157. package/package/components/flows/content/FlowSchedules.svelte +11 -8
  158. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -4
  159. package/package/components/flows/flowStateUtils.js +4 -1
  160. package/package/components/flows/map/FlowModuleSchemaItem.svelte +16 -1
  161. package/package/components/flows/map/FlowModuleSchemaMap.svelte +6 -1
  162. package/package/components/flows/types.d.ts +4 -0
  163. package/package/components/flows/utils.d.ts +5 -1
  164. package/package/components/flows/utils.js +36 -0
  165. package/package/components/graph/FlowGraph.svelte +5 -2
  166. package/package/components/graph/FlowGraph.svelte.d.ts +2 -0
  167. package/package/components/graph/svelvet/container/models/index.d.ts +0 -5
  168. package/package/components/graph/svelvet/container/models/index.js +1 -1
  169. package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -5
  170. package/package/components/graph/util.d.ts +1 -37
  171. package/package/components/graph/util.js +0 -34
  172. package/package/components/instanceSettings.js +2 -1
  173. package/package/components/jobs/JobPreview.svelte +1 -1
  174. package/package/components/multiselect/MultiSelect.svelte +4 -3
  175. package/package/components/multiselect/MultiSelect.svelte.d.ts +1 -0
  176. package/package/components/multiselect/MultiSelectWrapper.svelte +89 -0
  177. package/package/components/multiselect/MultiSelectWrapper.svelte.d.ts +20 -0
  178. package/package/components/propertyPicker/ObjectViewer.svelte +6 -2
  179. package/package/components/runs/JobPreview.svelte +5 -1
  180. package/package/components/runs/RunRow.svelte +22 -3
  181. package/package/components/runs/RunRow.svelte.d.ts +2 -1
  182. package/package/components/runs/RunsTable.svelte +22 -9
  183. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  184. package/package/components/schema/AddProperty.svelte +149 -0
  185. package/package/components/schema/AddProperty.svelte.d.ts +23 -0
  186. package/package/components/schema/AddPropertyForm.svelte +33 -0
  187. package/package/components/schema/AddPropertyForm.svelte.d.ts +16 -0
  188. package/package/components/schema/EditableSchemaDrawer.svelte +198 -0
  189. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +21 -0
  190. package/package/components/schema/EditableSchemaWrapper.svelte +31 -0
  191. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +22 -0
  192. package/package/components/schema/FlowPropertyEditor.svelte +393 -0
  193. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +47 -0
  194. package/package/components/schema/PropertyEditor.svelte +185 -0
  195. package/package/components/schema/PropertyEditor.svelte.d.ts +46 -0
  196. package/package/components/schema/SchemaFormDND.svelte +75 -0
  197. package/package/components/schema/SchemaFormDND.svelte.d.ts +28 -0
  198. package/package/components/table/AutoDataTable.svelte +90 -104
  199. package/package/components/table/Cell.svelte +4 -1
  200. package/package/components/table/Cell.svelte.d.ts +1 -0
  201. package/package/components/table/DownloadCsv.svelte +30 -0
  202. package/package/components/table/DownloadCsv.svelte.d.ts +17 -0
  203. package/package/components/table/tableUtils.d.ts +8 -0
  204. package/package/components/table/tableUtils.js +37 -0
  205. package/package/consts.js +3 -1
  206. package/package/deno_fetch.d.ts.txt +6 -0
  207. package/package/gen/core/OpenAPI.js +1 -1
  208. package/package/gen/schemas.gen.d.ts +76 -0
  209. package/package/gen/schemas.gen.js +76 -0
  210. package/package/gen/services.gen.d.ts +100 -5
  211. package/package/gen/services.gen.js +216 -16
  212. package/package/gen/types.gen.d.ts +378 -5
  213. package/package/inferArgSig.d.ts +10 -0
  214. package/package/inferArgSig.js +59 -2
  215. package/package/scripts.d.ts +2 -0
  216. package/package/scripts.js +6 -3
  217. package/package/utils.d.ts +4 -3
  218. package/package/utils.js +9 -4
  219. package/package/workspace_settings.d.ts +15 -0
  220. package/package/workspace_settings.js +81 -0
  221. package/package.json +16 -7
  222. package/package/components/ParqetTableRenderer.svelte +0 -117
  223. package/package/components/ParqetTableRenderer.svelte.d.ts +0 -18
  224. package/package/components/PropertyRow.svelte +0 -88
  225. package/package/components/PropertyRow.svelte.d.ts +0 -23
  226. package/package/components/SchemaEditor.svelte +0 -346
  227. package/package/components/SchemaEditor.svelte.d.ts +0 -25
  228. package/package/components/SchemaModal.svelte +0 -443
  229. package/package/components/SchemaModal.svelte.d.ts +0 -33
  230. package/package/components/apps/editor/settingsPanel/Recompute.svelte +0 -55
  231. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +0 -20
@@ -8,16 +8,22 @@ export let jobs = [];
8
8
  export let maxIsNow = false;
9
9
  export let minTimeSet = undefined;
10
10
  export let maxTimeSet = undefined;
11
+ export let selectedIds = [];
11
12
  const dispatch = createEventDispatcher();
13
+ const SUCCESS_COLOR = '#4ade80';
14
+ // const SUCCESS_COLOR_TRANSPARENT = '#c9b638'
15
+ const SUCCESS_COLOR_TRANSPARENT = mergeColors(SUCCESS_COLOR, getBackgorundColor(), 0.8);
16
+ const FAIL_COLOR = '#f87171';
17
+ const FAIL_COLOR_TRANSPARENT = mergeColors(FAIL_COLOR, getBackgorundColor(), 0.8);
12
18
  $: success = jobs?.filter((x) => x.success);
13
19
  $: failed = jobs?.filter((x) => !x.success);
14
20
  ChartJS.register(Title, Tooltip, Legend, zoomPlugin, LineElement, CategoryScale, LinearScale, LogarithmicScale, PointElement, TimeScale);
15
21
  $: data = {
16
- labels: ['Duration'],
17
22
  datasets: [
18
23
  {
19
- // borderColor: 'rgba(99,0,125, .2)',
20
- backgroundColor: '#f87171',
24
+ borderColor: 'rgba(99,0,125, 0)',
25
+ backgroundColor: FAIL_COLOR,
26
+ radius: 3,
21
27
  label: 'Failed',
22
28
  data: failed?.map((job) => ({
23
29
  x: job.started_at,
@@ -27,8 +33,9 @@ $: data = {
27
33
  })) ?? []
28
34
  },
29
35
  {
30
- // borderColor: 'rgba(99,0,125, .2)',
31
- backgroundColor: '#4ade80',
36
+ borderColor: 'rgba(99,0,125, 0)',
37
+ backgroundColor: SUCCESS_COLOR,
38
+ radius: 3,
32
39
  label: 'Successful',
33
40
  data: success?.map((job) => ({
34
41
  x: job.started_at,
@@ -63,6 +70,44 @@ const zoomOptions = {
63
70
  }
64
71
  }
65
72
  };
73
+ function getBackgorundColor() {
74
+ const isDark = document.documentElement.classList.contains('dark');
75
+ return isDark ? '#2e3440' : '#ffffff';
76
+ }
77
+ function hexToRgb(hexColor) {
78
+ hexColor = hexColor.replace(/^#/, '');
79
+ const r = parseInt(hexColor.substring(0, 2), 16);
80
+ const g = parseInt(hexColor.substring(2, 4), 16);
81
+ const b = parseInt(hexColor.substring(4, 6), 16);
82
+ return [r, g, b];
83
+ }
84
+ function rgbToHex(rgbColor) {
85
+ // Convert RGB components to hexadecimal string
86
+ return ('#' +
87
+ rgbColor
88
+ .map((c) => {
89
+ const hex = c.toString(16);
90
+ return hex.length === 1 ? '0' + hex : hex;
91
+ })
92
+ .join(''));
93
+ }
94
+ function mergeColors(color1, color2, slider) {
95
+ const rgb1 = hexToRgb(color1);
96
+ const rgb2 = hexToRgb(color2);
97
+ // Blend colors based on percentage
98
+ const blendedRgb = rgb1.map((c1, i) => Math.round(c1 * (1 - slider) + rgb2[i] * slider));
99
+ return rgbToHex(blendedRgb);
100
+ }
101
+ function highlightSelectedPoints(ids) {
102
+ if (ids.length === 0) {
103
+ data.datasets[0].backgroundColor = FAIL_COLOR;
104
+ data.datasets[1].backgroundColor = SUCCESS_COLOR;
105
+ }
106
+ else {
107
+ data.datasets[0].backgroundColor = data.datasets[0].data.map((p) => ids.includes(p.id) ? FAIL_COLOR : FAIL_COLOR_TRANSPARENT);
108
+ data.datasets[1].backgroundColor = data.datasets[1].data.map((p) => ids.includes(p.id) ? SUCCESS_COLOR : SUCCESS_COLOR_TRANSPARENT);
109
+ }
110
+ }
66
111
  function getPath(x) {
67
112
  return x.path;
68
113
  }
@@ -131,6 +176,10 @@ $: scatterOptions = {
131
176
  }
132
177
  }
133
178
  },
179
+ onClick: (e, u) => {
180
+ const ids = u.map((j) => data.datasets[j.datasetIndex].data[j.index].id);
181
+ selectedIds = ids;
182
+ },
134
183
  scales: {
135
184
  x: {
136
185
  type: 'time',
@@ -153,6 +202,7 @@ $: scatterOptions = {
153
202
  },
154
203
  animation: false
155
204
  };
205
+ $: data && scatterOptions && highlightSelectedPoints(selectedIds);
156
206
  </script>
157
207
 
158
208
  <!-- {JSON.stringify(minTime)}
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  maxIsNow?: boolean | undefined;
8
8
  minTimeSet?: string | undefined;
9
9
  maxTimeSet?: string | undefined;
10
+ selectedIds?: string[] | undefined;
10
11
  };
11
12
  events: {
12
13
  zoom: CustomEvent<any>;
@@ -56,7 +56,7 @@ $: cliCommand = `wmill ${isFlow ? 'flow' : 'script'} run ${runnable?.path} -d '$
56
56
  <div class="flex items-center gap-2">
57
57
  <span class="text-sm text-tertiary">
58
58
  {#if runnable}
59
- Edited <TimeAgo date={runnable.created_at || ''} /> by {runnable.created_by ||
59
+ Edited <TimeAgo withDate date={runnable.created_at || ''} /> by {runnable.created_by ||
60
60
  'unknown'}
61
61
  {/if}
62
62
  </span>
@@ -62,7 +62,8 @@ async function loadFiles() {
62
62
  workspace: $workspaceStore,
63
63
  maxKeys: maxKeys,
64
64
  marker: page == 0 ? undefined : listMarkers[page - 1],
65
- prefix: filter.trim() != '' ? filter : undefined
65
+ prefix: filter.trim() != '' ? filter : undefined,
66
+ storage: storage
66
67
  });
67
68
  if (availableFiles.restricted_access === null ||
68
69
  availableFiles.restricted_access === undefined ||
@@ -135,7 +136,8 @@ async function loadFileMetadataPlusPreviewAsync(fileKey) {
135
136
  fileInfoLoading = true;
136
137
  let fileMetadataRaw = await HelpersService.loadFileMetadata({
137
138
  workspace: $workspaceStore,
138
- fileKey: fileKey
139
+ fileKey: fileKey,
140
+ storage: storage
139
141
  });
140
142
  if (fileMetadataRaw !== undefined) {
141
143
  fileMetadata = {
@@ -159,7 +161,8 @@ async function loadFilePreview(fileKey, fileSizeInBytes, fileMimeType) {
159
161
  csvSeparator: csvSeparatorChar,
160
162
  csvHasHeader: csvHasHeader,
161
163
  readBytesFrom: 0,
162
- readBytesLength: 128 * 1024 // For now static limit of 128Kb per file
164
+ readBytesLength: 128 * 1024,
165
+ storage: storage
163
166
  });
164
167
  let filePreviewContent = filePreviewRaw.content;
165
168
  if (filePreviewContent !== null &&
@@ -187,7 +190,8 @@ async function deleteFileFromS3(fileKey) {
187
190
  try {
188
191
  await HelpersService.deleteS3File({
189
192
  workspace: $workspaceStore,
190
- fileKey: fileKey
193
+ fileKey: fileKey,
194
+ storage: storage
191
195
  });
192
196
  }
193
197
  finally {
@@ -212,7 +216,8 @@ async function moveS3File(srcFileKey, destFileKey) {
212
216
  await HelpersService.moveS3File({
213
217
  workspace: $workspaceStore,
214
218
  srcFileKey: srcFileKey,
215
- destFileKey: destFileKey
219
+ destFileKey: destFileKey,
220
+ storage: storage
216
221
  });
217
222
  }
218
223
  finally {
@@ -224,7 +229,9 @@ async function moveS3File(srcFileKey, destFileKey) {
224
229
  await loadFiles();
225
230
  await loadFileMetadataPlusPreviewAsync(selectedFileKey.s3);
226
231
  }
232
+ let storage = undefined;
227
233
  export async function open(preSelectedFileKey = undefined) {
234
+ storage = preSelectedFileKey?.storage;
228
235
  if (preSelectedFileKey !== undefined) {
229
236
  initialFileKey = { ...preSelectedFileKey };
230
237
  selectedFileKey = { ...preSelectedFileKey };
@@ -245,11 +252,14 @@ async function reloadContent() {
245
252
  initialFileKeyInternalCopy = { ...initialFileKey };
246
253
  }
247
254
  try {
248
- await HelpersService.datasetStorageTestConnection({ workspace: $workspaceStore });
255
+ await HelpersService.datasetStorageTestConnection({
256
+ workspace: $workspaceStore,
257
+ storage: storage
258
+ });
249
259
  workspaceSettingsInitialized = true;
250
260
  }
251
261
  catch (e) {
252
- console.error('Workspace not connected to S3 bucket: ', e);
262
+ console.error('Workspace not connected to object storage: ', e);
253
263
  workspaceSettingsInitialized = false;
254
264
  return;
255
265
  }
@@ -489,7 +499,9 @@ function selectItem(index, toggleCollapsed = true) {
489
499
  title="Download file from S3"
490
500
  variant="border"
491
501
  color="light"
492
- href={`/api/w/${$workspaceStore}/job_helpers/download_s3_file?file_key=${fileMetadata?.fileKey}`}
502
+ href={`/api/w/${$workspaceStore}/job_helpers/download_s3_file?file_key=${
503
+ fileMetadata?.fileKey
504
+ }${storage ? `&storage=${storage}` : ''}`}
493
505
  download={fileMetadata?.fileKey.split('/').pop() ?? 'unnamed_download.file'}
494
506
  startIcon={{ icon: Download }}
495
507
  iconOnly={true}
@@ -11,6 +11,7 @@ declare const __propDef: {
11
11
  } | undefined;
12
12
  open?: ((preSelectedFileKey?: {
13
13
  s3: string;
14
+ storage: string | undefined;
14
15
  } | undefined) => Promise<void>) | undefined;
15
16
  };
16
17
  events: {
@@ -28,6 +29,7 @@ export type S3FilePickerSlots = typeof __propDef.slots;
28
29
  export default class S3FilePicker extends SvelteComponent<S3FilePickerProps, S3FilePickerEvents, S3FilePickerSlots> {
29
30
  get open(): (preSelectedFileKey?: {
30
31
  s3: string;
32
+ storage: string | undefined;
31
33
  } | undefined) => Promise<void>;
32
34
  }
33
35
  export {};
@@ -18,6 +18,7 @@ import Section from './Section.svelte';
18
18
  import { List, Loader2, Save } from 'lucide-svelte';
19
19
  import FlowRetries from './flows/content/FlowRetries.svelte';
20
20
  import WorkerTagPicker from './WorkerTagPicker.svelte';
21
+ import Label from './Label.svelte';
21
22
  let optionTabSelected = 'error_handler';
22
23
  let is_flow = false;
23
24
  let initialPath = '';
@@ -412,16 +413,16 @@ let dirtyPath = false;
412
413
  </svelte:fragment>
413
414
 
414
415
  <div class="flex flex-col gap-12">
415
- <div>
416
+ <div class="flex flex-col gap-4">
416
417
  <div>
417
- <h2 class="text-base font-semibold">Metadata</h2>
418
- <div class="w-full py-2">
418
+ <h2 class="text-base font-semibold mb-2">Metadata</h2>
419
+ <Label label="Summary">
419
420
  <!-- svelte-ignore a11y-autofocus -->
420
421
  <input
421
422
  autofocus
422
423
  type="text"
423
- placeholder="Schedule summary"
424
- class="text-sm w-full font-semibold"
424
+ placeholder="Short summary to be displayed when listed"
425
+ class="text-sm w-full"
425
426
  bind:value={summary}
426
427
  on:keyup={() => {
427
428
  if (!edit && summary?.length > 0 && !dirtyPath) {
@@ -435,40 +436,42 @@ let dirtyPath = false;
435
436
  }
436
437
  }}
437
438
  />
438
- </div>
439
+ </Label>
439
440
  </div>
440
- {#if !edit}
441
- <Path
442
- bind:dirty={dirtyPath}
443
- bind:this={pathC}
444
- checkInitialPathExistence
445
- bind:error={pathError}
446
- bind:path
447
- {initialPath}
448
- namePlaceholder="schedule"
449
- kind="schedule"
450
- />
451
- {:else}
452
- <div class="flex justify-start w-full">
453
- <Badge
454
- color="gray"
455
- class="center-center !bg-surface-secondary !text-tertiary !h-[24px] rounded-r-none border"
456
- >
457
- Schedule path (not editable)
458
- </Badge>
459
- <input
460
- type="text"
461
- readonly
462
- value={path}
463
- size={path?.length || 50}
464
- class="font-mono !text-xs grow shrink overflow-x-auto !h-[24px] !py-0 !border-l-0 !rounded-l-none"
465
- on:focus={({ currentTarget }) => {
466
- currentTarget.select()
467
- }}
441
+ <Label label="Path">
442
+ {#if !edit}
443
+ <Path
444
+ bind:dirty={dirtyPath}
445
+ bind:this={pathC}
446
+ checkInitialPathExistence
447
+ bind:error={pathError}
448
+ bind:path
449
+ {initialPath}
450
+ namePlaceholder="schedule"
451
+ kind="schedule"
468
452
  />
469
- <!-- <span class="font-mono text-sm break-all">{path}</span> -->
470
- </div>
471
- {/if}
453
+ {:else}
454
+ <div class="flex justify-start w-full">
455
+ <Badge
456
+ color="gray"
457
+ class="center-center !bg-surface-secondary !text-tertiary !h-[24px] rounded-r-none border"
458
+ >
459
+ Schedule path (not editable)
460
+ </Badge>
461
+ <input
462
+ type="text"
463
+ readonly
464
+ value={path}
465
+ size={path?.length || 50}
466
+ class="font-mono !text-xs grow shrink overflow-x-auto !h-[24px] !py-0 !border-l-0 !rounded-l-none"
467
+ on:focus={({ currentTarget }) => {
468
+ currentTarget.select()
469
+ }}
470
+ />
471
+ <!-- <span class="font-mono text-sm break-all">{path}</span> -->
472
+ </div>
473
+ {/if}
474
+ </Label>
472
475
  </div>
473
476
 
474
477
  <Section label="Schedule">