windmill-components 1.383.9 → 1.389.2

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 (189) hide show
  1. package/package/assets/app.css +25 -1
  2. package/package/components/ArgInput.svelte +2 -1
  3. package/package/components/ChangeInstanceUsername.svelte +9 -108
  4. package/package/components/ChangeInstanceUsernameInner.svelte +112 -0
  5. package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +21 -0
  6. package/package/components/DiffDrawer.svelte +27 -20
  7. package/package/components/DiffEditor.svelte +5 -1
  8. package/package/components/DisplayResult.svelte +39 -9
  9. package/package/components/DropdownV2.svelte +4 -26
  10. package/package/components/DropdownV2.svelte.d.ts +9 -1
  11. package/package/components/DropdownV2Inner.svelte +42 -0
  12. package/package/components/DropdownV2Inner.svelte.d.ts +40 -0
  13. package/package/components/Editor.svelte +24 -4
  14. package/package/components/Editor.svelte.d.ts +5 -4
  15. package/package/components/EditorBar.svelte +9 -11
  16. package/package/components/EditorSettings.svelte +44 -0
  17. package/package/components/EditorSettings.svelte.d.ts +17 -0
  18. package/package/components/EditorTheme.svelte +1 -1
  19. package/package/components/ErrorOrRecoveryHandler.svelte +27 -20
  20. package/package/components/FlowBuilder.svelte +17 -3
  21. package/package/components/FlowBuilder.svelte.d.ts +3 -0
  22. package/package/components/FlowGraphViewerStep.svelte +1 -1
  23. package/package/components/FlowStatusViewer.svelte +3 -1
  24. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  25. package/package/components/FlowStatusViewerInner.svelte +5 -2
  26. package/package/components/FlowViewerInner.svelte +3 -7
  27. package/package/components/FormatOnSave.svelte +12 -29
  28. package/package/components/GraphqlSchemaViewer.svelte +1 -1
  29. package/package/components/GraphqlSchemaViewer.svelte.d.ts +1 -1
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InstanceNameEditor.svelte +64 -0
  32. package/package/components/InstanceNameEditor.svelte.d.ts +23 -0
  33. package/package/components/LightweightArgInput.svelte +6 -11
  34. package/package/components/LogViewer.svelte +37 -29
  35. package/package/components/LogViewer.svelte.d.ts +2 -0
  36. package/package/components/ObjectResourceInput.svelte +1 -1
  37. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  38. package/package/components/Path.svelte +3 -3
  39. package/package/components/QueueMetricsDrawer.svelte +6 -218
  40. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -3
  41. package/package/components/QueueMetricsDrawerInner.svelte +211 -0
  42. package/package/components/QueueMetricsDrawerInner.svelte.d.ts +15 -0
  43. package/package/components/ResourceEditorDrawer.svelte +14 -11
  44. package/package/components/ResourceEditorDrawer.svelte.d.ts +1 -1
  45. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  46. package/package/components/S3FilePicker.svelte +20 -8
  47. package/package/components/ScheduleEditorInner.svelte +497 -469
  48. package/package/components/ScriptBuilder.svelte +37 -24
  49. package/package/components/ScriptBuilder.svelte.d.ts +3 -0
  50. package/package/components/ScriptEditor.svelte +1 -0
  51. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  52. package/package/components/ServiceLogsInner.svelte +511 -0
  53. package/package/components/ServiceLogsInner.svelte.d.ts +20 -0
  54. package/package/components/SimpleEditor.svelte +27 -2
  55. package/package/components/SimpleEditor.svelte.d.ts +5 -3
  56. package/package/components/Summary.svelte +33 -31
  57. package/package/components/Summary.svelte.d.ts +1 -0
  58. package/package/components/SuperadminSettings.svelte +28 -10
  59. package/package/components/TemplateEditor.svelte +1 -1
  60. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  61. package/package/components/VimMode.svelte +16 -0
  62. package/package/components/VimMode.svelte.d.ts +14 -0
  63. package/package/components/WorkerTagPicker.svelte +4 -1
  64. package/package/components/WorkspaceGroup.svelte +139 -68
  65. package/package/components/WorkspaceGroup.svelte.d.ts +3 -0
  66. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +19 -2
  67. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  68. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +2 -1
  69. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -0
  70. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +2 -1
  71. package/package/components/apps/components/display/table/AppAggridTable.svelte +45 -3
  72. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -1
  73. package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -0
  74. package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +2 -1
  75. package/package/components/apps/editor/AppEditor.svelte +239 -92
  76. package/package/components/apps/editor/AppEditorBottomPanel.svelte +22 -0
  77. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +24 -0
  78. package/package/components/apps/editor/AppEditorHeader.svelte +44 -2
  79. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/AppExportButton.svelte +1 -1
  81. package/package/components/apps/editor/AppPreview.svelte +4 -0
  82. package/package/components/apps/editor/DeploymentHistory.svelte +7 -3
  83. package/package/components/apps/editor/GridEditor.svelte +4 -13
  84. package/package/components/apps/editor/RunnableJobPanel.svelte +25 -58
  85. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +10 -1
  86. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte +56 -0
  87. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte.d.ts +18 -0
  88. package/package/components/apps/editor/SubGridEditor.svelte +3 -1
  89. package/package/components/apps/editor/component/Component.svelte +26 -4
  90. package/package/components/apps/editor/component/Component.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/component/components.d.ts +5 -0
  92. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +2 -0
  93. package/package/components/apps/editor/componentsPanel/tailwindUtils.js +267 -1
  94. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +9 -1
  95. package/package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +2 -0
  96. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -0
  97. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +3 -0
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +7 -2
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte.d.ts +5 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +14 -2
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -0
  102. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +25 -5
  103. package/package/components/apps/editor/settingsPanel/HideButton.svelte +47 -0
  104. package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +22 -0
  105. package/package/components/apps/editor/settingsPanel/TableActions.svelte +43 -4
  106. package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  107. package/package/components/apps/svelte-grid/Grid.svelte +6 -2
  108. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -0
  109. package/package/components/apps/svelte-grid/MoveResize.svelte +11 -3
  110. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
  111. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  112. package/package/components/apps/svelte-grid/utils/item.js +11 -4
  113. package/package/components/common/button/Button.svelte.d.ts +2 -2
  114. package/package/components/common/calendarPicker/CalendarPicker.svelte +6 -2
  115. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
  116. package/package/components/common/drawer/ConditionalPortal.svelte +2 -1
  117. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +1 -0
  118. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  119. package/package/components/common/popup/Popup.svelte +2 -1
  120. package/package/components/common/popup/Popup.svelte.d.ts +1 -0
  121. package/package/components/common/table/AppRow.svelte +11 -8
  122. package/package/components/common/table/AppRow.svelte.d.ts +1 -2
  123. package/package/components/common/table/FlowRow.svelte +3 -3
  124. package/package/components/common/table/FlowRow.svelte.d.ts +1 -2
  125. package/package/components/common/table/RawAppRow.svelte +3 -3
  126. package/package/components/common/table/RawAppRow.svelte.d.ts +1 -2
  127. package/package/components/common/table/ScriptRow.svelte +3 -3
  128. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -2
  129. package/package/components/copilot/CodeCompletionStatus.svelte +21 -46
  130. package/package/components/copilot/StepGen.svelte +2 -1
  131. package/package/components/custom_ui.d.ts +5 -1
  132. package/package/components/flows/CreateActionsApp.svelte +11 -8
  133. package/package/components/flows/CreateActionsFlow.svelte +11 -8
  134. package/package/components/flows/FlowEditor.svelte +1 -2
  135. package/package/components/flows/FlowEditor.svelte.d.ts +0 -1
  136. package/package/components/flows/FlowHistory.svelte +6 -3
  137. package/package/components/flows/content/FlowModuleScript.svelte +15 -11
  138. package/package/components/flows/content/FlowSettings.svelte +1 -4
  139. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -0
  140. package/package/components/flows/header/FlowYamlEditor.svelte +55 -0
  141. package/package/components/flows/header/FlowYamlEditor.svelte.d.ts +17 -0
  142. package/package/components/flows/map/InsertTriggerButton.svelte +1 -1
  143. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +1 -0
  144. package/package/components/flows/map/VirtualItem.svelte +1 -1
  145. package/package/components/flows/pickers/PickHubScript.svelte +1 -0
  146. package/package/components/flows/types.d.ts +7 -6
  147. package/package/components/flows/utils.d.ts +9 -0
  148. package/package/components/flows/utils.js +21 -0
  149. package/package/components/graph/graphBuilder.js +1 -0
  150. package/package/components/graph/model.d.ts +1 -0
  151. package/package/components/graph/renderers/edges/BaseEdge.svelte +16 -0
  152. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  153. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +5 -1
  154. package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
  155. package/package/components/home/Item.svelte +0 -17
  156. package/package/components/home/deploy_ui.d.ts +2 -0
  157. package/package/components/home/deploy_ui.js +21 -0
  158. package/package/components/icons/RustIcon.svelte +70 -0
  159. package/package/components/icons/RustIcon.svelte.d.ts +25 -0
  160. package/package/components/icons/rust-logo.svg +1 -0
  161. package/package/components/instanceSettings.js +2 -2
  162. package/package/components/monaco_keybindings.d.ts +3 -0
  163. package/package/components/monaco_keybindings.js +9 -0
  164. package/package/components/preview/FlowPreviewStatus.svelte +6 -2
  165. package/package/components/runs/JobLoader.svelte +12 -3
  166. package/package/components/runs/JobLoader.svelte.d.ts +1 -1
  167. package/package/components/runs/ManuelDatePicker.svelte +31 -44
  168. package/package/components/runs/ManuelDatePicker.svelte.d.ts +6 -2
  169. package/package/components/runs/RunsFilter.svelte +4 -1
  170. package/package/components/runs/RunsFilter.svelte.d.ts +1 -0
  171. package/package/components/search/GlobalSearchModal.svelte +36 -25
  172. package/package/components/wizards/TableActionsWizard.svelte +84 -0
  173. package/package/components/wizards/TableActionsWizard.svelte.d.ts +22 -0
  174. package/package/editorUtils.js +2 -0
  175. package/package/gen/core/OpenAPI.js +1 -1
  176. package/package/gen/schemas.gen.d.ts +8 -8
  177. package/package/gen/schemas.gen.js +8 -8
  178. package/package/gen/services.gen.d.ts +4 -0
  179. package/package/gen/services.gen.js +16 -0
  180. package/package/gen/types.gen.d.ts +20 -8
  181. package/package/infer.d.ts +1 -1
  182. package/package/infer.js +48 -7
  183. package/package/script_helpers.d.ts +1 -0
  184. package/package/script_helpers.js +39 -1
  185. package/package/scripts.d.ts +1 -1
  186. package/package/scripts.js +11 -3
  187. package/package/stores.d.ts +5 -1
  188. package/package/stores.js +7 -2
  189. package/package.json +13 -7
@@ -1,20 +1,24 @@
1
1
  <script>import { base } from '../../base';
2
2
  import JobStatus from '../JobStatus.svelte';
3
+ import { ExternalLinkIcon } from 'lucide-svelte';
4
+ import { getContext } from 'svelte';
3
5
  export let job;
6
+ let { hideJobId } = getContext('FlowStatusViewer');
4
7
  </script>
5
8
 
6
9
  <div class="grid grid-cols-2 gap-4 mb-1 text-tertiary dark:text-gray-400">
7
10
  <JobStatus {job} />
8
- {#if job}
11
+ {#if job && !hideJobId}
9
12
  <div>
10
13
  <div class="text-primary whitespace-nowrap truncate text-sm">
11
- <span class="font-semibold mr-1">Flow's job Id:</span>
14
+ <span class="font-semibold mr-1">Flow:</span>
12
15
  <a
13
16
  rel="noreferrer"
14
17
  target="_blank"
15
18
  href="{base}/run/{job?.id}?workspace={job?.workspace_id}"
16
19
  >
17
20
  {job?.id}
21
+ <ExternalLinkIcon size={14} class="inline mb-1 ml-1" />
18
22
  </a>
19
23
  </div>
20
24
  </div>
@@ -121,7 +121,11 @@ async function fetchJobs(startedBefore, startedAfter, startedAfterCompletedJobs)
121
121
  scriptPathStart: scriptPathStart,
122
122
  jobKinds,
123
123
  success: success == 'success' ? true : success == 'failure' ? false : undefined,
124
- running: (success == 'running' || success == 'suspended') ? true : (success == 'waiting') ? false : undefined,
124
+ running: success == 'running' || success == 'suspended'
125
+ ? true
126
+ : success == 'waiting'
127
+ ? false
128
+ : undefined,
125
129
  isSkipped: isSkipped ? undefined : false,
126
130
  // isFlowStep: jobKindsCat != 'all' ? false : undefined,
127
131
  hasNullParent: scriptPathExact != undefined || scriptPathStart != undefined || jobKindsCat != 'all'
@@ -131,7 +135,9 @@ async function fetchJobs(startedBefore, startedAfter, startedAfterCompletedJobs)
131
135
  tag: tag === null || tag === '' ? undefined : tag,
132
136
  isNotSchedule: showSchedules == false ? true : undefined,
133
137
  suspended: success == 'waiting' ? false : success == 'suspended' ? true : undefined,
134
- scheduledForBeforeNow: showFutureJobs == false || (success == 'waiting' || success == 'suspended') ? true : undefined,
138
+ scheduledForBeforeNow: showFutureJobs == false || success == 'waiting' || success == 'suspended'
139
+ ? true
140
+ : undefined,
135
141
  args: argFilter && argFilter != '{}' && argFilter != '' && argError == ''
136
142
  ? argFilter
137
143
  : undefined,
@@ -259,7 +265,10 @@ async function loadJobsIntern(shouldGetCount) {
259
265
  loading = false;
260
266
  }
261
267
  async function getCount() {
262
- const { database_length, suspended } = (await JobService.getQueueCount({ workspace: $workspaceStore, allWorkspaces }));
268
+ const { database_length, suspended } = await JobService.getQueueCount({
269
+ workspace: $workspaceStore,
270
+ allWorkspaces
271
+ });
263
272
  if (queue_count) {
264
273
  queue_count.set(database_length);
265
274
  }
@@ -35,7 +35,7 @@ declare const __propDef: {
35
35
  allWorkspaces?: boolean | undefined;
36
36
  computeMinAndMax: (() => {
37
37
  minTs: string;
38
- maxTs: string;
38
+ maxTs: string | undefined;
39
39
  } | undefined) | undefined;
40
40
  lookback?: number | undefined;
41
41
  perPage?: number | undefined;
@@ -5,71 +5,57 @@ export let minTs;
5
5
  export let maxTs;
6
6
  export let loading = false;
7
7
  export let selectedManualDate = 0;
8
+ export let loadText = undefined;
9
+ export let serviceLogsChoices = false;
8
10
  export function computeMinMax() {
9
11
  return manualDates[selectedManualDate].computeMinMax();
10
12
  }
13
+ export function resetChoice() {
14
+ selectedManualDate = 0;
15
+ }
16
+ function computeMinMaxInc(inc) {
17
+ let minTs = new Date(new Date().getTime() - inc).toISOString();
18
+ let maxTs = undefined;
19
+ return { minTs, maxTs };
20
+ }
11
21
  const manualDates = [
12
22
  {
13
- label: 'Last 1000 runs',
23
+ label: loadText ?? 'Last 1000 runs',
14
24
  computeMinMax: () => {
15
25
  return undefined;
16
26
  }
17
27
  },
18
- {
19
- label: 'Within 30 seconds',
20
- computeMinMax: () => {
21
- let minTs = new Date(new Date().getTime() - 30 * 1000).toISOString();
22
- let maxTs = new Date().toISOString();
23
- return { minTs, maxTs };
24
- }
25
- },
26
- {
27
- label: 'Within last minute',
28
- computeMinMax: () => {
29
- let minTs = new Date(new Date().getTime() - 60 * 1000).toISOString();
30
- let maxTs = new Date().toISOString();
31
- return { minTs, maxTs };
32
- }
33
- },
28
+ ...(!serviceLogsChoices
29
+ ? [
30
+ {
31
+ label: 'Within 30 seconds',
32
+ computeMinMax: () => computeMinMaxInc(30 * 1000)
33
+ },
34
+ {
35
+ label: 'Within last minute',
36
+ computeMinMax: () => computeMinMaxInc(60 * 1000)
37
+ }
38
+ ]
39
+ : []),
34
40
  {
35
41
  label: 'Within last 5 minutes',
36
- computeMinMax: () => {
37
- let minTs = new Date(new Date().getTime() - 5 * 60 * 1000).toISOString();
38
- let maxTs = new Date().toISOString();
39
- return { minTs, maxTs };
40
- }
42
+ computeMinMax: () => computeMinMaxInc(5 * 60 * 1000)
41
43
  },
42
44
  {
43
45
  label: 'Within last 30 minutes',
44
- computeMinMax: () => {
45
- let minTs = new Date(new Date().getTime() - 30 * 60 * 1000).toISOString();
46
- let maxTs = new Date().toISOString();
47
- return { minTs, maxTs };
48
- }
46
+ computeMinMax: () => computeMinMaxInc(30 * 60 * 1000)
49
47
  },
50
48
  {
51
49
  label: 'Within last 24 hours',
52
- computeMinMax: () => {
53
- let minTs = new Date(new Date().getTime() - 24 * 60 * 60 * 1000).toISOString();
54
- let maxTs = new Date().toISOString();
55
- return { minTs, maxTs };
56
- }
50
+ computeMinMax: () => computeMinMaxInc(24 * 60 * 60 * 1000)
57
51
  },
58
52
  {
59
53
  label: 'Within last 7 days',
60
- computeMinMax: () => {
61
- let minTs = new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000).toISOString();
62
- let maxTs = new Date().toISOString();
63
- return { minTs, maxTs };
64
- }
54
+ computeMinMax: () => computeMinMaxInc(7 * 24 * 60 * 60 * 1000)
65
55
  },
66
56
  {
67
57
  label: 'Within last month',
68
- computeMinMax: () => {
69
- let minTs = new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000).toISOString();
70
- let maxTs = new Date().toISOString();
71
- return { minTs, maxTs };
72
- }
58
+ computeMinMax: () => computeMinMaxInc(30 * 24 * 60 * 60 * 1000)
73
59
  }
74
60
  ];
75
61
  const dispatch = createEventDispatcher();
@@ -85,12 +71,13 @@ const dispatch = createEventDispatcher();
85
71
  minTs = ts.minTs
86
72
  maxTs = ts.maxTs
87
73
  }
88
- dispatch('loadJobs')
74
+ dispatch('loadJobs', { minTs, maxTs })
89
75
  }}
90
76
  dropdownItems={[
91
77
  ...manualDates.map((d, i) => ({
92
78
  label: d.label,
93
- onClick: () => {
79
+ onClick: (e) => {
80
+ e.preventDefault()
94
81
  selectedManualDate = i
95
82
  const ts = d.computeMinMax()
96
83
  if (ts) {
@@ -5,10 +5,13 @@ declare const __propDef: {
5
5
  maxTs: string | undefined;
6
6
  loading?: boolean | undefined;
7
7
  selectedManualDate?: number | undefined;
8
+ loadText?: string | undefined;
9
+ serviceLogsChoices?: boolean | undefined;
8
10
  computeMinMax?: (() => {
9
11
  minTs: string;
10
- maxTs: string;
12
+ maxTs: string | undefined;
11
13
  } | undefined) | undefined;
14
+ resetChoice?: (() => void) | undefined;
12
15
  };
13
16
  events: {
14
17
  loadJobs: CustomEvent<any>;
@@ -23,7 +26,8 @@ export type ManuelDatePickerSlots = typeof __propDef.slots;
23
26
  export default class ManuelDatePicker extends SvelteComponent<ManuelDatePickerProps, ManuelDatePickerEvents, ManuelDatePickerSlots> {
24
27
  get computeMinMax(): () => {
25
28
  minTs: string;
26
- maxTs: string;
29
+ maxTs: string | undefined;
27
30
  } | undefined;
31
+ get resetChoice(): () => void;
28
32
  }
29
33
  export {};
@@ -407,7 +407,10 @@ let tagTimeout = undefined;
407
407
  </div>
408
408
  <div class="relative">
409
409
  <span class="text-xs absolute -top-4">Status</span>
410
- <ToggleButtonGroup bind:selected={success}>
410
+ <ToggleButtonGroup
411
+ bind:selected={success}
412
+ on:selected={() => dispatch('successChange', success)}
413
+ >
411
414
  <ToggleButton value={undefined} label="All" />
412
415
  <ToggleButton
413
416
  value={'running'}
@@ -24,6 +24,7 @@ declare const __propDef: {
24
24
  };
25
25
  events: {
26
26
  reset: CustomEvent<any>;
27
+ successChange: CustomEvent<any>;
27
28
  } & {
28
29
  [evt: string]: CustomEvent<any>;
29
30
  };
@@ -9,12 +9,13 @@ import { twMerge } from 'tailwind-merge';
9
9
  import ContentSearchInner from '../ContentSearchInner.svelte';
10
10
  import { goto } from '$app/navigation';
11
11
  import QuickMenuItem from '../search/QuickMenuItem.svelte';
12
- import { enterpriseLicense, workspaceStore } from '../../stores';
12
+ import { enterpriseLicense, superadmin, workspaceStore } from '../../stores';
13
13
  import uFuzzy from '@leeoniya/ufuzzy';
14
14
  import BarsStaggered from '../icons/BarsStaggered.svelte';
15
15
  import { scroll_into_view_if_needed_polyfill } from '../multiselect/utils';
16
16
  import { Alert } from '../common';
17
17
  import Popover from '../Popover.svelte';
18
+ import ServiceLogsInner from '../ServiceLogsInner.svelte';
18
19
  let open = false;
19
20
  let searchTerm = '';
20
21
  let textInput;
@@ -209,26 +210,28 @@ async function handleKeydown(event) {
209
210
  open = false;
210
211
  }
211
212
  }
212
- if (event.key === 'ArrowDown') {
213
- event.preventDefault();
214
- let idx = itemMap[tab].indexOf(selectedItem);
215
- if (idx != -1) {
216
- idx = (idx + 1) % itemMap[tab].length;
217
- selectedItem = selectItem(idx);
218
- let el = document.getElementById(selectedItem.search_id);
219
- if (el)
220
- scroll_into_view_if_needed_polyfill(el, false);
213
+ if (tab != 'logs') {
214
+ if (event.key === 'ArrowDown') {
215
+ event.preventDefault();
216
+ let idx = itemMap[tab].indexOf(selectedItem);
217
+ if (idx != -1) {
218
+ idx = (idx + 1) % itemMap[tab].length;
219
+ selectedItem = selectItem(idx);
220
+ let el = document.getElementById(selectedItem.search_id);
221
+ if (el)
222
+ scroll_into_view_if_needed_polyfill(el, false);
223
+ }
221
224
  }
222
- }
223
- else if (event.key === 'ArrowUp') {
224
- event.preventDefault();
225
- let idx = itemMap[tab].indexOf(selectedItem);
226
- if (idx != -1) {
227
- idx = (idx - 1 + itemMap[tab].length) % itemMap[tab].length;
228
- selectedItem = selectItem(idx);
229
- let el = document.getElementById(selectedItem.search_id);
230
- if (el)
231
- scroll_into_view_if_needed_polyfill(el, false);
225
+ else if (event.key === 'ArrowUp') {
226
+ event.preventDefault();
227
+ let idx = itemMap[tab].indexOf(selectedItem);
228
+ if (idx != -1) {
229
+ idx = (idx - 1 + itemMap[tab].length) % itemMap[tab].length;
230
+ selectedItem = selectItem(idx);
231
+ let el = document.getElementById(selectedItem.search_id);
232
+ if (el)
233
+ scroll_into_view_if_needed_polyfill(el, false);
234
+ }
232
235
  }
233
236
  }
234
237
  }
@@ -375,7 +378,7 @@ function closeModal() {
375
378
  open = false;
376
379
  }
377
380
  function maxModalWidth(tab) {
378
- if (tab === 'runs') {
381
+ if (tab === 'runs' || tab === 'logs') {
379
382
  return 'max-w-7xl';
380
383
  }
381
384
  else {
@@ -383,7 +386,7 @@ function maxModalWidth(tab) {
383
386
  }
384
387
  }
385
388
  function maxModalHeight(tab) {
386
- if (tab === 'runs') {
389
+ if (tab === 'runs' || tab === 'logs') {
387
390
  return '';
388
391
  }
389
392
  else if (tab === 'content') {
@@ -503,9 +506,17 @@ function maxModalHeight(tab) {
503
506
  />
504
507
  {:else if tab === 'logs'}
505
508
  <div class="p-2">
506
- <Alert title="Service log search is coming soon" type="info">
507
- Full text search on windmill's service logs is coming soon
508
- </Alert>
509
+ {#if !$superadmin}
510
+ <Alert title="Service logs are only available to superadmins" type="warning">
511
+ Service logs are only available to superadmins
512
+ </Alert>
513
+ {:else if searchTerm.length == 1}
514
+ <ServiceLogsInner />
515
+ {:else}
516
+ <Alert title="Not yet supported" type="info">
517
+ Full-text search across Windmill logs is not yet supported
518
+ </Alert>
519
+ {/if}
509
520
  </div>
510
521
  {:else if tab === 'runs'}
511
522
  <div class="flex h-full p-2 divide-x">
@@ -0,0 +1,84 @@
1
+ <script>import { Code } from 'lucide-svelte';
2
+ import PanelSection from '../apps/editor/settingsPanel/common/PanelSection.svelte';
3
+ import InputsSpecEditor from '../apps/editor/settingsPanel/InputsSpecEditor.svelte';
4
+ import { Button, Popup } from '../common';
5
+ import { offset, flip, shift } from 'svelte-floating-ui/dom';
6
+ export let actionsOrder = undefined;
7
+ export let selectedId = undefined;
8
+ export let components;
9
+ </script>
10
+
11
+ <Popup
12
+ floatingConfig={{
13
+ strategy: 'fixed',
14
+ placement: 'left-end',
15
+ middleware: [offset(8), flip(), shift()]
16
+ }}
17
+ containerClasses="border rounded-lg shadow-lg bg-surface p-4"
18
+ >
19
+ <svelte:fragment slot="button">
20
+ <slot name="trigger" />
21
+ </svelte:fragment>
22
+ <div class="w-96">
23
+ <PanelSection
24
+ title={`Manage actions programmatically`}
25
+ tooltip="
26
+ You can manage the order of the actions programmatically: You need to return an array of action ids in the order you want them to appear in the table. You can also hide actions by not including them in the array."
27
+ >
28
+ <div class="w-full flex gap-2 flex-col mt-2">
29
+ {#if actionsOrder}
30
+ <InputsSpecEditor
31
+ key={'Order'}
32
+ bind:componentInput={actionsOrder}
33
+ id={selectedId ?? ''}
34
+ userInputEnabled={false}
35
+ shouldCapitalize={true}
36
+ resourceOnly={false}
37
+ fieldType={actionsOrder?.['fieldType']}
38
+ subFieldType={actionsOrder?.['subFieldType']}
39
+ format={actionsOrder?.['format']}
40
+ selectOptions={actionsOrder?.['selectOptions']}
41
+ tooltip={actionsOrder?.['tooltip']}
42
+ fileUpload={actionsOrder?.['fileUpload']}
43
+ placeholder={actionsOrder?.['placeholder']}
44
+ customTitle={actionsOrder?.['customTitle']}
45
+ allowTypeChange={false}
46
+ displayType={false}
47
+ />
48
+ <Button
49
+ size="xs"
50
+ color="light"
51
+ startIcon={{
52
+ icon: Code
53
+ }}
54
+ variant="border"
55
+ on:click={() => {
56
+ actionsOrder = undefined
57
+ }}
58
+ >
59
+ Disable
60
+ </Button>
61
+ {:else}
62
+ <Button
63
+ size="xs"
64
+ color="light"
65
+ startIcon={{
66
+ icon: Code
67
+ }}
68
+ variant="border"
69
+ on:click={() => {
70
+ actionsOrder = {
71
+ fieldType: 'text',
72
+ type: 'evalv2',
73
+ expr: JSON.stringify(components?.map((x) => x.id) ?? []),
74
+ connections: []
75
+ }
76
+ }}
77
+ >
78
+ Enable
79
+ </Button>
80
+ {/if}
81
+ </div>
82
+ </PanelSection>
83
+ </div>
84
+ </Popup>
@@ -0,0 +1,22 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { BaseAppComponent, RichConfiguration } from '../apps/types';
3
+ import type { ButtonComponent, CheckboxComponent, SelectComponent } from '../apps/editor/component';
4
+ declare const __propDef: {
5
+ props: {
6
+ actionsOrder?: RichConfiguration | undefined;
7
+ selectedId?: string | undefined;
8
+ components: (BaseAppComponent & (ButtonComponent | CheckboxComponent | SelectComponent))[] | undefined;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {
14
+ trigger: {};
15
+ };
16
+ };
17
+ export type TableActionsWizardProps = typeof __propDef.props;
18
+ export type TableActionsWizardEvents = typeof __propDef.events;
19
+ export type TableActionsWizardSlots = typeof __propDef.slots;
20
+ export default class TableActionsWizard extends SvelteComponent<TableActionsWizardProps, TableActionsWizardEvents, TableActionsWizardSlots> {
21
+ }
22
+ export {};
@@ -60,6 +60,8 @@ export function langToExt(lang) {
60
60
  return 'ps1';
61
61
  case 'php':
62
62
  return 'php';
63
+ case 'rust':
64
+ return 'rs';
63
65
  case 'deno':
64
66
  return 'ts';
65
67
  case 'nativets':
@@ -21,7 +21,7 @@ export const OpenAPI = {
21
21
  PASSWORD: undefined,
22
22
  TOKEN: undefined,
23
23
  USERNAME: undefined,
24
- VERSION: '1.382.2',
24
+ VERSION: '1.388.0',
25
25
  WITH_CREDENTIALS: false,
26
26
  interceptors: {
27
27
  request: new Interceptors(),
@@ -59,7 +59,7 @@ export declare const $Script: {
59
59
  };
60
60
  readonly language: {
61
61
  readonly type: "string";
62
- readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php"];
62
+ readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php", "rust"];
63
63
  };
64
64
  readonly kind: {
65
65
  readonly type: "string";
@@ -154,7 +154,7 @@ export declare const $NewScript: {
154
154
  };
155
155
  readonly language: {
156
156
  readonly type: "string";
157
- readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php"];
157
+ readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php", "rust"];
158
158
  };
159
159
  readonly kind: {
160
160
  readonly type: "string";
@@ -387,7 +387,7 @@ export declare const $QueuedJob: {
387
387
  };
388
388
  readonly language: {
389
389
  readonly type: "string";
390
- readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php"];
390
+ readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php", "rust"];
391
391
  };
392
392
  readonly email: {
393
393
  readonly type: "string";
@@ -494,7 +494,7 @@ export declare const $CompletedJob: {
494
494
  };
495
495
  readonly language: {
496
496
  readonly type: "string";
497
- readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php"];
497
+ readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php", "rust"];
498
498
  };
499
499
  readonly is_skipped: {
500
500
  readonly type: "boolean";
@@ -990,7 +990,7 @@ export declare const $Preview: {
990
990
  };
991
991
  readonly language: {
992
992
  readonly type: "string";
993
- readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php"];
993
+ readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php", "rust"];
994
994
  };
995
995
  readonly tag: {
996
996
  readonly type: "string";
@@ -1529,10 +1529,10 @@ export declare const $WorkerPing: {
1529
1529
  readonly wm_version: {
1530
1530
  readonly type: "string";
1531
1531
  };
1532
- readonly current_job_id: {
1532
+ readonly last_job_id: {
1533
1533
  readonly type: "string";
1534
1534
  };
1535
- readonly current_job_workspace_id: {
1535
+ readonly last_job_workspace_id: {
1536
1536
  readonly type: "string";
1537
1537
  };
1538
1538
  readonly occupancy_rate: {
@@ -2309,7 +2309,7 @@ export declare const $RawScriptForDependencies: {
2309
2309
  };
2310
2310
  readonly language: {
2311
2311
  readonly type: "string";
2312
- readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php"];
2312
+ readonly enum: readonly ["python3", "deno", "go", "bash", "powershell", "postgresql", "mysql", "bigquery", "snowflake", "mssql", "graphql", "nativets", "bun", "php", "rust"];
2313
2313
  };
2314
2314
  };
2315
2315
  readonly required: readonly ["raw_code", "path", "language"];
@@ -61,7 +61,7 @@ export const $Script = {
61
61
  },
62
62
  language: {
63
63
  type: 'string',
64
- enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php']
64
+ enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php', 'rust']
65
65
  },
66
66
  kind: {
67
67
  type: 'string',
@@ -156,7 +156,7 @@ export const $NewScript = {
156
156
  },
157
157
  language: {
158
158
  type: 'string',
159
- enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php']
159
+ enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php', 'rust']
160
160
  },
161
161
  kind: {
162
162
  type: 'string',
@@ -394,7 +394,7 @@ the execution of this script will be permissioned_as and by extension its DT_TOK
394
394
  },
395
395
  language: {
396
396
  type: 'string',
397
- enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php']
397
+ enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php', 'rust']
398
398
  },
399
399
  email: {
400
400
  type: 'string'
@@ -503,7 +503,7 @@ the execution of this script will be permissioned_as and by extension its DT_TOK
503
503
  },
504
504
  language: {
505
505
  type: 'string',
506
- enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php']
506
+ enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php', 'rust']
507
507
  },
508
508
  is_skipped: {
509
509
  type: 'boolean'
@@ -1020,7 +1020,7 @@ export const $Preview = {
1020
1020
  },
1021
1021
  language: {
1022
1022
  type: 'string',
1023
- enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php']
1023
+ enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php', 'rust']
1024
1024
  },
1025
1025
  tag: {
1026
1026
  type: 'string'
@@ -1562,10 +1562,10 @@ export const $WorkerPing = {
1562
1562
  wm_version: {
1563
1563
  type: 'string'
1564
1564
  },
1565
- current_job_id: {
1565
+ last_job_id: {
1566
1566
  type: 'string'
1567
1567
  },
1568
- current_job_workspace_id: {
1568
+ last_job_workspace_id: {
1569
1569
  type: 'string'
1570
1570
  },
1571
1571
  occupancy_rate: {
@@ -2351,7 +2351,7 @@ export const $RawScriptForDependencies = {
2351
2351
  },
2352
2352
  language: {
2353
2353
  type: 'string',
2354
- enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php']
2354
+ enum: ['python3', 'deno', 'go', 'bash', 'powershell', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bun', 'php', 'rust']
2355
2355
  }
2356
2356
  },
2357
2357
  required: ['raw_code', 'path', 'language']
@@ -1301,6 +1301,7 @@ export declare class FlowService {
1301
1301
  * @param data The data for the request.
1302
1302
  * @param data.workspace
1303
1303
  * @param data.path
1304
+ * @param data.withStarredInfo
1304
1305
  * @returns Flow flow details
1305
1306
  * @throws ApiError
1306
1307
  */
@@ -1452,6 +1453,7 @@ export declare class AppService {
1452
1453
  * @param data The data for the request.
1453
1454
  * @param data.workspace
1454
1455
  * @param data.path
1456
+ * @param data.withStarredInfo
1455
1457
  * @returns AppWithLastVersion app details
1456
1458
  * @throws ApiError
1457
1459
  */
@@ -1716,6 +1718,7 @@ export declare class ScriptService {
1716
1718
  * @param data The data for the request.
1717
1719
  * @param data.workspace
1718
1720
  * @param data.path
1721
+ * @param data.withStarredInfo
1719
1722
  * @returns Script script details
1720
1723
  * @throws ApiError
1721
1724
  */
@@ -1782,6 +1785,7 @@ export declare class ScriptService {
1782
1785
  * @param data The data for the request.
1783
1786
  * @param data.workspace
1784
1787
  * @param data.hash
1788
+ * @param data.withStarredInfo
1785
1789
  * @returns Script script details
1786
1790
  * @throws ApiError
1787
1791
  */