windmill-components 1.665.1 → 1.677.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 (253) hide show
  1. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
  2. package/dist/sharedUtils/base.d.ts +1 -0
  3. package/dist/sharedUtils/cloud.d.ts +1 -0
  4. package/dist/sharedUtils/common.d.ts +111 -0
  5. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
  6. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
  7. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  8. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +13 -0
  9. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
  10. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +95 -0
  11. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
  12. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
  13. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +33 -0
  14. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
  15. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5371 -0
  16. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
  17. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
  18. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
  19. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
  20. package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
  21. package/dist/sharedUtils/components/apps/inputType.d.ts +178 -0
  22. package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
  23. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +21 -0
  24. package/dist/sharedUtils/components/apps/types.d.ts +274 -0
  25. package/dist/sharedUtils/components/assets/lib.d.ts +25 -0
  26. package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
  27. package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
  28. package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
  29. package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
  30. package/dist/sharedUtils/components/common/index.d.ts +24 -0
  31. package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
  32. package/dist/sharedUtils/components/dbTypes.d.ts +14 -0
  33. package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
  34. package/dist/sharedUtils/components/ducklake.d.ts +1 -0
  35. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
  36. package/dist/sharedUtils/components/icons/index.d.ts +101 -0
  37. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
  38. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
  39. package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
  40. package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
  41. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
  42. package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
  43. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
  44. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
  45. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
  46. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
  47. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
  48. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
  49. package/dist/sharedUtils/components/triggers/utils.d.ts +80 -0
  50. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
  51. package/dist/sharedUtils/components/triggers.d.ts +20 -0
  52. package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
  53. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
  54. package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
  55. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
  56. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
  57. package/dist/sharedUtils/gen/core/request.d.ts +29 -0
  58. package/dist/sharedUtils/gen/index.d.ts +6 -0
  59. package/dist/sharedUtils/gen/schemas.gen.d.ts +7036 -0
  60. package/dist/sharedUtils/gen/services.gen.d.ts +6047 -0
  61. package/dist/sharedUtils/gen/types.gen.d.ts +21881 -0
  62. package/dist/sharedUtils/history.svelte.d.ts +9 -0
  63. package/dist/sharedUtils/hub.d.ts +49 -0
  64. package/dist/sharedUtils/jsr.json +6 -0
  65. package/dist/sharedUtils/lib.d.ts +5 -0
  66. package/dist/sharedUtils/lib.es.js +1588 -0
  67. package/dist/sharedUtils/package.json +12 -0
  68. package/dist/sharedUtils/schema.d.ts +3 -0
  69. package/dist/sharedUtils/stores.d.ts +97 -0
  70. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +80 -0
  71. package/dist/sharedUtils/toast.d.ts +8 -0
  72. package/dist/sharedUtils/utils.d.ts +265 -0
  73. package/package/components/AddUser.svelte +67 -34
  74. package/package/components/AppConnectInner.svelte +9 -1
  75. package/package/components/ArgInfo.svelte +9 -1
  76. package/package/components/ArgInput.svelte +21 -1
  77. package/package/components/CompareWorkspaces.svelte +11 -2
  78. package/package/components/DedicatedWorkersSelector.svelte +262 -247
  79. package/package/components/DefaultTagsInner.svelte +40 -2
  80. package/package/components/DeployWorkspace.svelte +13 -0
  81. package/package/components/DiffEditor.svelte +44 -1
  82. package/package/components/EditableSchemaForm.svelte +5 -2
  83. package/package/components/EditableSchemaForm.svelte.d.ts +1 -0
  84. package/package/components/Editor.svelte +5 -1
  85. package/package/components/EditorBar.svelte +12 -3
  86. package/package/components/FilterSearchbar.svelte +26 -2
  87. package/package/components/FlowBuilder.svelte +6 -3
  88. package/package/components/FlowGraphDiffViewer.svelte +16 -17
  89. package/package/components/FlowGraphViewer.svelte +20 -6
  90. package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
  91. package/package/components/FlowGraphViewerStep.svelte +14 -32
  92. package/package/components/FlowMetadata.svelte +4 -1
  93. package/package/components/FlowPreviewContent.svelte +2 -0
  94. package/package/components/FlowStatusWaitingForEvents.svelte +25 -4
  95. package/package/components/HighlightCode.svelte +3 -0
  96. package/package/components/InstanceSetting.svelte +9 -25
  97. package/package/components/InstanceSettings.svelte +16 -0
  98. package/package/components/LabelsInput.svelte +149 -0
  99. package/package/components/LabelsInput.svelte.d.ts +8 -0
  100. package/package/components/Login.svelte +6 -1
  101. package/package/components/ObjectStoreConfigSettings.svelte +273 -1
  102. package/package/components/OktaSetting.svelte +6 -5
  103. package/package/components/Password.svelte +74 -20
  104. package/package/components/Password.svelte.d.ts +1 -0
  105. package/package/components/PasswordArgInput.svelte +2 -2
  106. package/package/components/PasswordArgInput.svelte.d.ts +1 -0
  107. package/package/components/Path.svelte +8 -10
  108. package/package/components/PathNameAutocomplete.svelte +308 -0
  109. package/package/components/PathNameAutocomplete.svelte.d.ts +27 -0
  110. package/package/components/PowerShellCommonParams.svelte +84 -0
  111. package/package/components/PowerShellCommonParams.svelte.d.ts +6 -0
  112. package/package/components/Range.svelte +8 -3
  113. package/package/components/ResourceEditor.svelte +6 -2
  114. package/package/components/RunForm.svelte +71 -7
  115. package/package/components/RunForm.svelte.d.ts +2 -1
  116. package/package/components/ScriptBuilder.svelte +7 -3
  117. package/package/components/ScriptEditor.svelte +221 -187
  118. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  119. package/package/components/ScriptSchema.svelte +1 -1
  120. package/package/components/StringTypeNarrowing.svelte +1 -1
  121. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  122. package/package/components/SummaryPathDisplay.svelte +32 -10
  123. package/package/components/SummaryPathDisplay.svelte.d.ts +2 -1
  124. package/package/components/VariableEditor.svelte +9 -2
  125. package/package/components/WorkerGroup.svelte +47 -2
  126. package/package/components/apps/editor/DeploymentHistory.svelte +112 -13
  127. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +135 -35
  128. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +3 -1
  129. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +11 -35
  130. package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.d.ts +10 -0
  131. package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.js +14 -0
  132. package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.test.d.ts +1 -0
  133. package/package/components/apps/editor/settingsPanel/mainInput/runnableSelectorUtils.test.js +34 -0
  134. package/package/components/assets/AssetButtons.svelte +21 -25
  135. package/package/components/assets/AssetsUsageDrawer.svelte +7 -9
  136. package/package/components/common/fileUpload/FileUpload.svelte +6 -2
  137. package/package/components/common/languageIcons/LanguageIcon.svelte +3 -0
  138. package/package/components/common/table/AppRow.svelte +18 -0
  139. package/package/components/common/table/FlowRow.svelte +18 -0
  140. package/package/components/common/table/ScriptRow.svelte +18 -0
  141. package/package/components/copilot/chat/AIChatManager.svelte.js +3 -3
  142. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  143. package/package/components/copilot/chat/flow/openFlowZod.js +3 -3
  144. package/package/components/custom_ui.d.ts +2 -0
  145. package/package/components/details/DetailPageHeader.svelte +2 -2
  146. package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
  147. package/package/components/flows/agentToolUtils.d.ts +5 -0
  148. package/package/components/flows/agentToolUtils.js +49 -0
  149. package/package/components/flows/agentToolUtils.test.d.ts +1 -0
  150. package/package/components/flows/agentToolUtils.test.js +55 -0
  151. package/package/components/flows/content/FlowInput.svelte +2 -0
  152. package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
  153. package/package/components/flows/content/FlowLoop.svelte +5 -12
  154. package/package/components/flows/content/FlowModuleScript.svelte +5 -3
  155. package/package/components/flows/content/FlowPathViewer.svelte +2 -2
  156. package/package/components/flows/content/FlowPathViewer.svelte.d.ts +1 -0
  157. package/package/components/flows/content/FlowSettings.svelte +2 -0
  158. package/package/components/flows/content/FlowWhileLoop.svelte +5 -12
  159. package/package/components/flows/flowInfers.js +8 -3
  160. package/package/components/flows/flowStore.svelte.d.ts +1 -1
  161. package/package/components/flows/map/FlowModuleSchemaMap.svelte +49 -9
  162. package/package/components/flows/pickers/PickHubScriptQuick.svelte +5 -3
  163. package/package/components/flows/scheduleUtils.js +2 -1
  164. package/package/components/graph/FlowGraphV2.svelte +13 -1
  165. package/package/components/graph/WacDiagram.svelte +96 -0
  166. package/package/components/graph/WacDiagram.svelte.d.ts +7 -0
  167. package/package/components/graph/noteEditor.svelte.d.ts +1 -1
  168. package/package/components/graph/noteEditor.svelte.js +12 -1
  169. package/package/components/graph/noteUtils.svelte.d.ts +1 -1
  170. package/package/components/graph/noteUtils.svelte.js +9 -2
  171. package/package/components/graph/renderers/edges/WacEdge.svelte +41 -0
  172. package/package/components/graph/renderers/edges/WacEdge.svelte.d.ts +4 -0
  173. package/package/components/graph/renderers/nodes/WacControlNode.svelte +51 -0
  174. package/package/components/graph/renderers/nodes/WacControlNode.svelte.d.ts +9 -0
  175. package/package/components/graph/renderers/nodes/WacStepNode.svelte +35 -0
  176. package/package/components/graph/renderers/nodes/WacStepNode.svelte.d.ts +9 -0
  177. package/package/components/graph/wacDagLayout.d.ts +10 -0
  178. package/package/components/graph/wacDagLayout.js +120 -0
  179. package/package/components/graph/wacToFlow.js +1 -1
  180. package/package/components/home/ItemsList.svelte +28 -4
  181. package/package/components/icons/RIcon.svelte +32 -0
  182. package/package/components/icons/RIcon.svelte.d.ts +7 -0
  183. package/package/components/instanceSettings/DbHealth.svelte +723 -0
  184. package/package/components/instanceSettings/DbHealth.svelte.d.ts +3 -0
  185. package/package/components/instanceSettings/SecretBackendConfig.svelte +343 -304
  186. package/package/components/instanceSettings/SmtpSettings.svelte +8 -0
  187. package/package/components/instanceSettings.js +14 -5
  188. package/package/components/mcp/McpScopeSelector.svelte +82 -16
  189. package/package/components/moveRenameManager.d.ts +1 -0
  190. package/package/components/moveRenameManager.js +7 -4
  191. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +14 -1
  192. package/package/components/raw_apps/rawAppPolicy.js +3 -2
  193. package/package/components/raw_apps/utils.test.d.ts +1 -0
  194. package/package/components/raw_apps/utils.test.js +38 -0
  195. package/package/components/resources/resourcesFilter.d.ts +15 -2
  196. package/package/components/resources/resourcesFilter.js +11 -2
  197. package/package/components/runs/JobDetailFieldConfig.js +5 -3
  198. package/package/components/runs/JobDetailHeader.svelte +5 -2
  199. package/package/components/runs/JobRunsPreview.svelte +1 -0
  200. package/package/components/runs/RunBadges.svelte +7 -4
  201. package/package/components/runs/RunRow.svelte +7 -7
  202. package/package/components/schedules/schedulesFilter.d.ts +15 -2
  203. package/package/components/schedules/schedulesFilter.js +11 -2
  204. package/package/components/schema/EditableSchemaWrapper.svelte +6 -8
  205. package/package/components/schema/PropertyEditor.svelte +22 -1
  206. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -0
  207. package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
  208. package/package/components/secretArgUtils.d.ts +7 -0
  209. package/package/components/secretArgUtils.js +45 -0
  210. package/package/components/settings/WorkspaceUserSettings.svelte +359 -286
  211. package/package/components/sidebar/OperatorMenu.svelte +215 -197
  212. package/package/components/triggers/CaptureWrapper.svelte +1 -1
  213. package/package/components/triggers/TriggerFilters.svelte +17 -5
  214. package/package/components/triggers/TriggerFilters.svelte.d.ts +2 -1
  215. package/package/components/triggers/kafka/KafkaCapture.svelte +6 -2
  216. package/package/components/triggers/kafka/KafkaCapture.svelte.d.ts +1 -1
  217. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +5 -1
  218. package/package/components/triggers/kafka/utils.js +1 -0
  219. package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +1 -1
  220. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +6 -0
  221. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +87 -1
  222. package/package/components/triggers/websocket/utils.js +2 -0
  223. package/package/components/variables/variablesFilter.d.ts +15 -2
  224. package/package/components/variables/variablesFilter.js +11 -2
  225. package/package/components/worker_group.js +1 -0
  226. package/package/components/workspaceSettings/DucklakeSettings.svelte +33 -41
  227. package/package/consts.d.ts +1 -0
  228. package/package/consts.js +1 -0
  229. package/package/editorLangUtils.d.ts +1 -1
  230. package/package/editorLangUtils.js +2 -0
  231. package/package/gen/core/OpenAPI.js +1 -1
  232. package/package/gen/schemas.gen.d.ts +346 -4
  233. package/package/gen/schemas.gen.js +347 -5
  234. package/package/gen/services.gen.d.ts +163 -1
  235. package/package/gen/services.gen.js +323 -17
  236. package/package/gen/types.gen.d.ts +671 -5
  237. package/package/hubPaths.json +6 -3
  238. package/package/infer.d.ts +55 -0
  239. package/package/infer.js +131 -0
  240. package/package/infer.svelte.js +2 -0
  241. package/package/mcpEndpointTools.js +213 -22
  242. package/package/script_helpers.d.ts +3 -0
  243. package/package/script_helpers.js +26 -0
  244. package/package/scripts.d.ts +2 -1
  245. package/package/scripts.js +15 -3
  246. package/package/stores.d.ts +2 -0
  247. package/package/system_prompts/prompts.d.ts +6 -5
  248. package/package/system_prompts/prompts.js +188 -29
  249. package/package/user.js +5 -1
  250. package/package/utils.js +21 -0
  251. package/package/utils_deployable.d.ts +11 -0
  252. package/package/utils_workspace_deploy.js +36 -8
  253. package/package.json +5 -4
@@ -4,6 +4,7 @@ import Drawer from '../../common/drawer/Drawer.svelte';
4
4
  import DrawerContent from '../../common/drawer/DrawerContent.svelte';
5
5
  import CronInput from '../../CronInput.svelte';
6
6
  import Path from '../../Path.svelte';
7
+ import LabelsInput from '../../LabelsInput.svelte';
7
8
  import Required from '../../Required.svelte';
8
9
  import ScriptPicker from '../../ScriptPicker.svelte';
9
10
  import ErrorOrRecoveryHandler from '../../ErrorOrRecoveryHandler.svelte';
@@ -74,6 +75,7 @@ let path = $state('');
74
75
  let enabled = $state(false);
75
76
  let pathError = $state('');
76
77
  let summary = $state('');
78
+ let labels = $state(undefined);
77
79
  let description = $state('');
78
80
  let no_flow_overlap = $state(false);
79
81
  let tag = $state(undefined);
@@ -262,6 +264,7 @@ export async function openNew(nis_flow, initial_script_path, defaultValues, sche
262
264
  paused_until = s?.paused_until ?? undefined;
263
265
  showPauseUntil = paused_until !== undefined;
264
266
  summary = s?.summary ?? '';
267
+ labels = s?.labels ?? undefined;
265
268
  description = s?.description ?? '';
266
269
  script_path = s?.script_path ?? initialScriptPath;
267
270
  args = s?.args ?? {};
@@ -416,6 +419,7 @@ async function loadScheduleCfg(cfg) {
416
419
  paused_until = cfg.paused_until;
417
420
  showPauseUntil = paused_until !== undefined;
418
421
  summary = cfg.summary ?? '';
422
+ labels = cfg.labels ?? undefined;
419
423
  description = cfg.description ?? '';
420
424
  script_path = cfg.script_path ?? '';
421
425
  await loadScript(script_path);
@@ -555,6 +559,7 @@ function getScheduleCfg() {
555
559
  ws_error_handler_muted: wsErrorHandlerMuted,
556
560
  retry: retry,
557
561
  summary: summary != '' ? summary : undefined,
562
+ labels: labels,
558
563
  description: description,
559
564
  no_flow_overlap: no_flow_overlap,
560
565
  tag: tag,
@@ -674,6 +679,7 @@ $effect(() => {
674
679
  bind:value={summary}
675
680
  />
676
681
  </label>
682
+ <LabelsInput bind:labels />
677
683
 
678
684
  <div class="flex flex-col gap-1">
679
685
  <label for="path" class="text-xs font-semibold text-emphasis">Path</label>
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">import { Alert, Button } from '../../common';
2
+ import TextInput from '../../text_input/TextInput.svelte';
2
3
  import Drawer from '../../common/drawer/Drawer.svelte';
3
4
  import DrawerContent from '../../common/drawer/DrawerContent.svelte';
4
5
  import Path from '../../Path.svelte';
@@ -42,10 +43,15 @@ let pathError = $state('');
42
43
  let url = $state('');
43
44
  let dirtyUrl = $state(false);
44
45
  let filters = $state([]);
46
+ let filterLogic = $state('and');
45
47
  let initial_messages = $state([]);
46
48
  let url_runnable_args = $state({});
47
49
  let can_return_message = $state(false);
48
50
  let can_return_error_result = $state(false);
51
+ let heartbeat_enabled = $state(false);
52
+ let heartbeat_interval_secs = $state(41);
53
+ let heartbeat_message = $state('');
54
+ let heartbeat_state_field = $state('');
49
55
  let dirtyPath = $state(false);
50
56
  let can_write = $state(true);
51
57
  let drawerLoading = $state(true);
@@ -135,6 +141,7 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
135
141
  path = defaultValues?.path ?? '';
136
142
  initialPath = '';
137
143
  filters = [];
144
+ filterLogic = 'and';
138
145
  initial_messages = [];
139
146
  url_runnable_args = defaultValues?.url_runnable_args ?? {};
140
147
  dirtyPath = false;
@@ -160,10 +167,16 @@ function loadTriggerConfig(cfg) {
160
167
  path = cfg?.path;
161
168
  url = cfg?.url;
162
169
  filters = cfg?.filters;
170
+ filterLogic = cfg?.filter_logic ?? 'and';
163
171
  initial_messages = cfg?.initial_messages ?? [];
164
172
  url_runnable_args = cfg?.url_runnable_args;
165
173
  can_return_message = cfg?.can_return_message;
166
174
  can_return_error_result = cfg?.can_return_error_result;
175
+ const hb = cfg?.heartbeat;
176
+ heartbeat_enabled = !!hb;
177
+ heartbeat_interval_secs = hb?.interval_secs ?? 41;
178
+ heartbeat_message = hb?.message ?? '';
179
+ heartbeat_state_field = hb?.state_field ?? '';
167
180
  can_write = canWrite(path, cfg?.extra_perms, $userStore);
168
181
  error_handler_path = cfg?.error_handler_path;
169
182
  error_handler_args = cfg?.error_handler_args ?? {};
@@ -181,10 +194,18 @@ function getSaveCfg() {
181
194
  path,
182
195
  url,
183
196
  filters,
197
+ filter_logic: filterLogic,
184
198
  initial_messages,
185
199
  url_runnable_args,
186
200
  can_return_message,
187
201
  can_return_error_result,
202
+ heartbeat: heartbeat_enabled
203
+ ? {
204
+ interval_secs: heartbeat_interval_secs,
205
+ message: heartbeat_message,
206
+ ...(heartbeat_state_field ? { state_field: heartbeat_state_field } : {})
207
+ }
208
+ : undefined,
188
209
  error_handler_path,
189
210
  error_handler_args,
190
211
  retry,
@@ -614,6 +635,71 @@ $effect(() => {
614
635
  </div>
615
636
  </Section>
616
637
 
638
+ <Section label="Heartbeat" collapsable collapsed={!heartbeat_enabled}>
639
+ {#snippet header()}
640
+ {#if heartbeat_enabled}
641
+ <span class="text-2xs text-tertiary ml-2">every {heartbeat_interval_secs}s</span>
642
+ {/if}
643
+ {/snippet}
644
+
645
+ <div class="flex flex-col gap-4">
646
+ <p class="text-xs text-tertiary">
647
+ Send periodic application-level heartbeat messages to keep the connection alive.
648
+ Required for protocols like Discord Gateway, STOMP, etc.
649
+ </p>
650
+
651
+ <Toggle
652
+ checked={heartbeat_enabled}
653
+ on:change={() => {
654
+ heartbeat_enabled = !heartbeat_enabled
655
+ }}
656
+ options={{
657
+ right: 'Enable heartbeat'
658
+ }}
659
+ disabled={!can_write}
660
+ />
661
+
662
+ {#if heartbeat_enabled}
663
+ <Label label="Interval (seconds)">
664
+ <TextInput
665
+ bind:value={heartbeat_interval_secs}
666
+ inputProps={{ type: 'number', placeholder: '41', disabled: !can_write, min: 1 }}
667
+ />
668
+ </Label>
669
+
670
+ <Label label="Message">
671
+ <svelte:boundary>
672
+ <textarea
673
+ class="textarea textarea-sm w-full font-mono text-xs"
674
+ rows={3}
675
+ bind:value={heartbeat_message}
676
+ placeholder={'{"op": 1, "d": {{state}}}'}
677
+ disabled={!can_write}
678
+ ></textarea>
679
+ </svelte:boundary>
680
+ <p class="text-2xs text-tertiary mt-1">
681
+ Use <code>{'{{state}}'}</code> as a placeholder for a value extracted from incoming messages.
682
+ </p>
683
+ </Label>
684
+
685
+ <Label label="State field (optional)">
686
+ <TextInput
687
+ bind:value={heartbeat_state_field}
688
+ inputProps={{
689
+ placeholder: 'e.g. s (for Discord sequence number)',
690
+ disabled: !can_write
691
+ }}
692
+ />
693
+ <p class="text-2xs text-tertiary mt-1">
694
+ Top-level JSON field to extract from incoming messages. Replaces <code
695
+ >{'{{state}}'}</code
696
+ > in the heartbeat message.
697
+ </p>
698
+ </Label>
699
+ {/if}
700
+ </div>
701
+ </Section>
702
+
617
703
  <Section label="Advanced" collapsable>
618
704
  {#snippet header()}
619
705
  <TriggerAdvancedBadges
@@ -623,7 +709,7 @@ $effect(() => {
623
709
  />
624
710
  {/snippet}
625
711
  <div class="flex flex-col gap-6">
626
- <TriggerFilters bind:filters disabled={!can_write} />
712
+ <TriggerFilters bind:filters bind:filterLogic disabled={!can_write} />
627
713
  <div class="min-h-96">
628
714
  <Tabs bind:selected={optionTabSelected}>
629
715
  <Tab value="error_handler" label="Error Handler" />
@@ -17,10 +17,12 @@ export async function saveWebsocketTriggerFromCfg(initialPath, triggerCfg, edit,
17
17
  is_flow: triggerCfg.is_flow,
18
18
  url: triggerCfg.url,
19
19
  filters: triggerCfg.filters,
20
+ filter_logic: triggerCfg.filter_logic ?? 'and',
20
21
  initial_messages: triggerCfg.initial_messages,
21
22
  url_runnable_args: triggerCfg.url_runnable_args,
22
23
  can_return_message: triggerCfg.can_return_message,
23
24
  can_return_error_result: triggerCfg.can_return_error_result,
25
+ heartbeat: triggerCfg.heartbeat,
24
26
  ...errorHandlerAndRetries,
25
27
  permissioned_as: triggerCfg.permissioned_as,
26
28
  preserve_permissioned_as: triggerCfg.preserve_permissioned_as
@@ -1,7 +1,8 @@
1
- import { FileCode, FileText, FolderIcon, Key, Users } from 'lucide-svelte';
2
- export declare function buildVariablesFilterSchema({ paths, owners, showUserFoldersFilter, userFoldersLabel }: {
1
+ import { FileCode, FileText, FolderIcon, Key, Tag, Users } from 'lucide-svelte';
2
+ export declare function buildVariablesFilterSchema({ paths, owners, labels, showUserFoldersFilter, userFoldersLabel }: {
3
3
  paths: string[];
4
4
  owners: string[];
5
+ labels?: string[];
5
6
  showUserFoldersFilter?: boolean;
6
7
  userFoldersLabel?: string;
7
8
  }): {
@@ -57,4 +58,16 @@ export declare function buildVariablesFilterSchema({ paths, owners, showUserFold
57
58
  icon: typeof Key;
58
59
  description: string;
59
60
  };
61
+ label: {
62
+ type: "oneof";
63
+ options: {
64
+ label: string;
65
+ value: string;
66
+ }[];
67
+ allowNegative: false;
68
+ allowMultiple: true;
69
+ label: string;
70
+ icon: typeof Tag;
71
+ description: string;
72
+ };
60
73
  };
@@ -1,5 +1,5 @@
1
- import { FileCode, FileText, FolderIcon, Key, Users } from 'lucide-svelte';
2
- export function buildVariablesFilterSchema({ paths, owners, showUserFoldersFilter, userFoldersLabel }) {
1
+ import { FileCode, FileText, FolderIcon, Key, Tag, Users } from 'lucide-svelte';
2
+ export function buildVariablesFilterSchema({ paths, owners, labels, showUserFoldersFilter, userFoldersLabel }) {
3
3
  return {
4
4
  _default_: {
5
5
  type: 'string',
@@ -41,6 +41,15 @@ export function buildVariablesFilterSchema({ paths, owners, showUserFoldersFilte
41
41
  icon: Key,
42
42
  description: 'Search in non-secret variable values'
43
43
  },
44
+ label: {
45
+ type: 'oneof',
46
+ options: (labels ?? []).map((s) => ({ label: s, value: s })),
47
+ allowNegative: false,
48
+ allowMultiple: true,
49
+ label: 'Label',
50
+ icon: Tag,
51
+ description: 'Filter by label (comma-separated for multiple)'
52
+ },
44
53
  ...(showUserFoldersFilter
45
54
  ? {
46
55
  user_folders_only: {
@@ -26,6 +26,7 @@ export const defaultTags = [
26
26
  'nu',
27
27
  'java',
28
28
  'ruby',
29
+ 'rlang',
29
30
  'duckdb'
30
31
  // for related places search: ADD_NEW_LANG
31
32
  ];
@@ -172,7 +172,7 @@ let confirmationModal = createAsyncConfirmationModal();
172
172
  {/if}
173
173
  {#each ducklakeSettings.ducklakes as ducklake, ducklakeIndex}
174
174
  <Row>
175
- <Cell first class="w-48 relative">
175
+ <Cell first class="w-44 relative">
176
176
  {#if ducklake.name === 'main'}
177
177
  <Tooltip wrapperClass="absolute mt-[0.6rem] right-4" placement="bottom-start">
178
178
  The <i>main</i> ducklake can be accessed with the
@@ -187,7 +187,7 @@ let confirmationModal = createAsyncConfirmationModal();
187
187
  />
188
188
  </Cell>
189
189
  <Cell>
190
- <div class="flex gap-2">
190
+ <div class="flex gap-1">
191
191
  <div class="relative">
192
192
  {#if ducklake.catalog.resource_type === 'instance'}
193
193
  <Tooltip wrapperClass="absolute mt-[0.6rem] right-2 z-20" placement="bottom-start">
@@ -214,19 +214,19 @@ let confirmationModal = createAsyncConfirmationModal();
214
214
  }
215
215
  }
216
216
  }
217
- class="w-28"
217
+ class="w-24"
218
218
  />
219
219
  </div>
220
220
  <div class="flex flex-1">
221
221
  {#if ducklake.catalog.resource_type !== 'instance'}
222
222
  <ResourcePicker
223
- class="flex-1"
223
+ class="flex-1 min-w-32"
224
224
  bind:value={ducklake.catalog.resource_path}
225
225
  resourceType={ducklake.catalog.resource_type}
226
226
  />
227
227
  {:else}
228
228
  <CustomInstanceDbSelect
229
- class="flex-1"
229
+ class="flex-1 min-w-32"
230
230
  bind:value={ducklake.catalog.resource_path}
231
231
  {customInstanceDbs}
232
232
  {confirmationModal}
@@ -243,7 +243,7 @@ let confirmationModal = createAsyncConfirmationModal();
243
243
  </div>
244
244
  </Cell>
245
245
  <Cell>
246
- <div class="flex gap-2">
246
+ <div class="flex gap-1">
247
247
  <Select
248
248
  placeholder="Default storage"
249
249
  items={[
@@ -268,35 +268,31 @@ let confirmationModal = createAsyncConfirmationModal();
268
268
  </div>
269
269
  </Cell>
270
270
  <Cell class="w-12">
271
- <div class="flex gap-2">
271
+ <div class="flex gap-1">
272
272
  <Popover contentClasses="p-4" enableFlyTransition closeOnOtherPopoverOpen>
273
273
  {#snippet trigger()}
274
-
275
- <div class="relative">
276
- <Button variant="default" iconOnly size="sm" endIcon={{ icon: SettingsIcon }} />
277
- {#if ducklake.extra_args}
278
- <div
279
- class="absolute -top-0.5 -right-0.5 w-2 h-2 bg-accent rounded-full border border-surface"
280
- ></div>
281
- {/if}
282
- </div>
283
-
284
- {/snippet}
274
+ <div class="relative">
275
+ <Button variant="default" iconOnly size="sm" endIcon={{ icon: SettingsIcon }} />
276
+ {#if ducklake.extra_args}
277
+ <div
278
+ class="absolute -top-0.5 -right-0.5 w-2 h-2 bg-accent rounded-full border border-surface"
279
+ ></div>
280
+ {/if}
281
+ </div>
282
+ {/snippet}
285
283
  {#snippet content()}
286
-
287
- <Label
288
- label="Extra args"
289
- tooltip="Additional arguments to pass in the ATTACH command. The argument list is substituted as-is. Separate them with commas."
290
- >
291
- <TextInput
292
- bind:value={ducklake.extra_args}
293
- class="min-w-96"
294
- underlyingInputEl="textarea"
295
- inputProps={{ placeholder: "METADATA_SCHEMA 'schema', ENCRYPTED true" }}
296
- />
297
- </Label>
298
-
299
- {/snippet}
284
+ <Label
285
+ label="Extra args"
286
+ tooltip="Additional arguments to pass in the ATTACH command. The argument list is substituted as-is. Separate them with commas."
287
+ >
288
+ <TextInput
289
+ bind:value={ducklake.extra_args}
290
+ class="min-w-96"
291
+ underlyingInputEl="textarea"
292
+ inputProps={{ placeholder: "METADATA_SCHEMA 'schema', ENCRYPTED true" }}
293
+ />
294
+ </Label>
295
+ {/snippet}
300
296
  </Popover>
301
297
  {#if ducklakeIsDirty[ducklake.name]}
302
298
  <Popover
@@ -305,18 +301,14 @@ let confirmationModal = createAsyncConfirmationModal();
305
301
  class="cursor-not-allowed"
306
302
  >
307
303
  {#snippet trigger()}
308
-
309
- <ExploreAssetButton asset={{ kind: 'ducklake', path: '' }} disabled />
310
-
311
- {/snippet}
304
+ <ExploreAssetButton asset={{ kind: 'ducklake', path: '' }} disabled />
305
+ {/snippet}
312
306
  {#snippet content()}
313
- Please save settings first
314
- {/snippet}
307
+ Please save settings first
308
+ {/snippet}
315
309
  </Popover>
316
310
  {:else}
317
- <ExploreAssetButton
318
- asset={{ kind: 'ducklake', path: ducklake.name }}
319
- />
311
+ <ExploreAssetButton asset={{ kind: 'ducklake', path: ducklake.name }} />
320
312
  {/if}
321
313
  </div>
322
314
  </Cell>
@@ -22,6 +22,7 @@ export declare const WORKER_S3_BUCKET_SYNC_SETTING = "worker_s3_bucket_sync";
22
22
  export declare const CUSTOM_TAGS_SETTING = "custom_tags";
23
23
  export declare const DEFAULT_TAGS_PER_WORKSPACE_SETTING = "default_tags_per_workspace";
24
24
  export declare const DEFAULT_TAGS_WORKSPACES_SETTING = "default_tags_workspaces";
25
+ export declare const PREVIEW_TAGS_OVERRIDE_SETTING = "preview_tags_override";
25
26
  export declare const WORKSPACE_SLACK_BOT_TOKEN_PATH = "f/slack_bot/bot_token";
26
27
  export declare const POSTGRES_TYPES: string[];
27
28
  export declare const MYSQL_TYPES: string[];
package/package/consts.js CHANGED
@@ -23,6 +23,7 @@ export const WORKER_S3_BUCKET_SYNC_SETTING = 'worker_s3_bucket_sync';
23
23
  export const CUSTOM_TAGS_SETTING = 'custom_tags';
24
24
  export const DEFAULT_TAGS_PER_WORKSPACE_SETTING = 'default_tags_per_workspace';
25
25
  export const DEFAULT_TAGS_WORKSPACES_SETTING = 'default_tags_workspaces';
26
+ export const PREVIEW_TAGS_OVERRIDE_SETTING = 'preview_tags_override';
26
27
  export const WORKSPACE_SLACK_BOT_TOKEN_PATH = 'f/slack_bot/bot_token';
27
28
  export const POSTGRES_TYPES = [
28
29
  'VARCHAR',
@@ -1,4 +1,4 @@
1
1
  export declare function langToExt(lang: string): string;
2
- export declare function extToLang(ext: string): "javascript" | "go" | "bash" | "powershell" | "graphql" | "php" | "rust" | "ansible" | "csharp" | "nu" | "java" | "ruby" | "unknown" | "sql" | "yaml" | "json" | "typescript" | "python" | "css" | "svelte" | "vue";
2
+ export declare function extToLang(ext: string): "javascript" | "go" | "bash" | "powershell" | "graphql" | "php" | "rust" | "ansible" | "csharp" | "nu" | "java" | "ruby" | "r" | "unknown" | "sql" | "yaml" | "json" | "typescript" | "python" | "css" | "svelte" | "vue";
3
3
  export declare function createHash(): string;
4
4
  export declare function createLongHash(): string;
@@ -98,6 +98,8 @@ export function extToLang(ext) {
98
98
  return 'java';
99
99
  case 'rb':
100
100
  return 'ruby';
101
+ case 'r':
102
+ return 'r';
101
103
  // for related places search: ADD_NEW_LANG
102
104
  default:
103
105
  return 'unknown';
@@ -21,7 +21,7 @@ export const OpenAPI = {
21
21
  PASSWORD: undefined,
22
22
  TOKEN: undefined,
23
23
  USERNAME: undefined,
24
- VERSION: '1.665.0',
24
+ VERSION: '1.677.0',
25
25
  WITH_CREDENTIALS: false,
26
26
  interceptors: {
27
27
  request: new Interceptors(),