windmill-components 1.665.0 → 1.677.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 (254) 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/map/FlowModuleSchemaMap.svelte +49 -9
  161. package/package/components/flows/pickers/PickHubScriptQuick.svelte +5 -3
  162. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  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/recording/ScriptRecordingReplay.svelte +0 -1
  196. package/package/components/resources/resourcesFilter.d.ts +15 -2
  197. package/package/components/resources/resourcesFilter.js +11 -2
  198. package/package/components/runs/JobDetailFieldConfig.js +5 -3
  199. package/package/components/runs/JobDetailHeader.svelte +5 -2
  200. package/package/components/runs/JobRunsPreview.svelte +1 -0
  201. package/package/components/runs/RunBadges.svelte +7 -4
  202. package/package/components/runs/RunRow.svelte +7 -7
  203. package/package/components/schedules/schedulesFilter.d.ts +15 -2
  204. package/package/components/schedules/schedulesFilter.js +11 -2
  205. package/package/components/schema/EditableSchemaWrapper.svelte +6 -8
  206. package/package/components/schema/PropertyEditor.svelte +22 -1
  207. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -0
  208. package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
  209. package/package/components/secretArgUtils.d.ts +7 -0
  210. package/package/components/secretArgUtils.js +45 -0
  211. package/package/components/settings/WorkspaceUserSettings.svelte +359 -286
  212. package/package/components/sidebar/OperatorMenu.svelte +215 -197
  213. package/package/components/triggers/CaptureWrapper.svelte +1 -1
  214. package/package/components/triggers/TriggerFilters.svelte +17 -5
  215. package/package/components/triggers/TriggerFilters.svelte.d.ts +2 -1
  216. package/package/components/triggers/kafka/KafkaCapture.svelte +6 -2
  217. package/package/components/triggers/kafka/KafkaCapture.svelte.d.ts +1 -1
  218. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +5 -1
  219. package/package/components/triggers/kafka/utils.js +1 -0
  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/forLater.js +4 -0
  232. package/package/gen/core/OpenAPI.js +1 -1
  233. package/package/gen/schemas.gen.d.ts +94 -294
  234. package/package/gen/schemas.gen.js +94 -294
  235. package/package/gen/services.gen.d.ts +5 -121
  236. package/package/gen/services.gen.js +5 -237
  237. package/package/gen/types.gen.d.ts +91 -715
  238. package/package/hubPaths.json +6 -3
  239. package/package/infer.d.ts +55 -0
  240. package/package/infer.js +131 -0
  241. package/package/infer.svelte.js +2 -0
  242. package/package/mcpEndpointTools.js +213 -22
  243. package/package/script_helpers.d.ts +3 -0
  244. package/package/script_helpers.js +26 -0
  245. package/package/scripts.d.ts +2 -1
  246. package/package/scripts.js +15 -3
  247. package/package/stores.d.ts +2 -0
  248. package/package/system_prompts/prompts.d.ts +6 -5
  249. package/package/system_prompts/prompts.js +188 -29
  250. package/package/user.js +5 -1
  251. package/package/utils.js +21 -0
  252. package/package/utils_deployable.d.ts +7 -0
  253. package/package/utils_workspace_deploy.js +36 -8
  254. package/package.json +6 -5
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">import { run } from 'svelte/legacy';
2
2
  import { userStore, workspaceStore } from '../stores';
3
+ import LabelsInput from './LabelsInput.svelte';
3
4
  import IconedResourceType from './IconedResourceType.svelte';
4
5
  import { OauthService, ResourceService, VariableService } from '../gen';
5
6
  import { emptyString, truncateRev, urlize } from '../utils';
@@ -64,6 +65,7 @@ let extra_params = [];
64
65
  let responseExtra = $state({});
65
66
  let path = $state('');
66
67
  let description = $state('');
68
+ let labels = $state(undefined);
67
69
  /**
68
70
  * Client credentials OAuth flow support
69
71
  * @description Determines if the selected OAuth provider supports client_credentials grant type
@@ -93,6 +95,7 @@ export async function open(rt) {
93
95
  step = 1; //express && !manual ? 3 : 1
94
96
  value = '';
95
97
  description = '';
98
+ labels = undefined;
96
99
  resourceType = rt ?? '';
97
100
  valueToken = undefined;
98
101
  // Reset client credentials state
@@ -480,7 +483,8 @@ export async function next() {
480
483
  resource_type: resourceType,
481
484
  path,
482
485
  value: resourceValue,
483
- description
486
+ description,
487
+ labels
484
488
  }
485
489
  });
486
490
  dispatch('refresh', path);
@@ -641,6 +645,7 @@ let editScopes = $state(false);
641
645
  namePlaceholder={resourceType}
642
646
  kind="resource"
643
647
  />
648
+ <LabelsInput bind:labels class="-mt-5" />
644
649
 
645
650
  {#if apiTokenApps[resourceType]}
646
651
  <h2 class="mt-4 mb-2">Instructions</h2>
@@ -743,6 +748,8 @@ let editScopes = $state(false);
743
748
  </div>
744
749
  {/if}
745
750
 
751
+ <LabelsInput bind:labels class="-mt-5" />
752
+
746
753
  {#if supportsClientCredentials}
747
754
  <div>
748
755
  <h3 class="text-sm font-semibold text-emphasis mb-1">Authentication Method</h3>
@@ -839,6 +846,7 @@ let editScopes = $state(false);
839
846
  bind:path
840
847
  kind="resource"
841
848
  />
849
+ <LabelsInput bind:labels class="-mt-5" />
842
850
  {#if apiTokenApps[resourceType] || !manual}
843
851
  <ul class="mt-6">
844
852
  <li class="text-xs text-primary font-normal">
@@ -65,7 +65,15 @@ async function getVariable(path) {
65
65
  <button
66
66
  class="text-xs text-accent"
67
67
  onclick={async () => {
68
- await getVariable(value.substring('$res:'.length))
68
+ await getVariable(value.substring('$var:'.length))
69
+ jsonViewer?.toggleDrawer()
70
+ }}>{value}</button
71
+ >
72
+ {:else if isString(value) && value.startsWith('$jsonvar:')}
73
+ <button
74
+ class="text-xs text-accent"
75
+ onclick={async () => {
76
+ await getVariable(value.substring('$jsonvar:'.length))
69
77
  jsonViewer?.toggleDrawer()
70
78
  }}>{value}</button
71
79
  >
@@ -320,6 +320,7 @@ function compareValues(value) {
320
320
  }
321
321
  let { debounced, clearDebounce } = debounce(() => compareValues(value), 50);
322
322
  let inputCat = $derived(computeInputCat(type, format, itemsType?.type, enum_, contentEncoding));
323
+ let isNonStringSecret = $derived((password || extra?.['password'] == true) && type === 'object');
323
324
  let displayJsonToggleHeader = $derived(displayHeader &&
324
325
  inputCat === 'list' &&
325
326
  !(itemsType?.resourceType === 's3_object' || itemsType?.resourceType === 's3object'));
@@ -379,6 +380,12 @@ onDestroy(() => {
379
380
  class="text-accent underline font-normal"
380
381
  onclick={() => variableEditor?.editVariable?.(value.slice(5))}>{value.slice(5)}</button
381
382
  >
383
+ {:else if value && typeof value == 'string' && value?.startsWith('$jsonvar:')}
384
+ Linked to variable <button
385
+ class="text-accent underline font-normal"
386
+ onclick={() => variableEditor?.editVariable?.(value.slice('$jsonvar:'.length))}
387
+ >{value.slice('$jsonvar:'.length)}</button
388
+ >
382
389
  {/if}
383
390
  </div>
384
391
  {/if}
@@ -1257,12 +1264,13 @@ onDestroy(() => {
1257
1264
  {:else}
1258
1265
  <Password
1259
1266
  {disabled}
1267
+ minRows={extra?.['minRows']}
1260
1268
  bind:password={value}
1261
1269
  placeholder={placeholder ?? defaultValue ?? ''}
1262
1270
  />
1263
1271
  {/if}
1264
1272
  {:else}
1265
- <PasswordArgInput {disabled} bind:value />
1273
+ <PasswordArgInput {disabled} minRows={extra?.['minRows']} bind:value />
1266
1274
  {/if}
1267
1275
  {:else}
1268
1276
  {#key extra?.['minRows']}
@@ -1308,6 +1316,18 @@ onDestroy(() => {
1308
1316
  {@render actions?.()}
1309
1317
  </div>
1310
1318
 
1319
+ {#if isNonStringSecret}
1320
+ {#if typeof value === 'string' && value.startsWith('$jsonvar:')}
1321
+ <div class="text-2xs text-tertiary">
1322
+ Sensitive — stored as secret: <code class="text-2xs">{value.slice('$jsonvar:'.length)}</code
1323
+ >
1324
+ </div>
1325
+ {:else}
1326
+ <div class="text-2xs text-tertiary italic">Sensitive — will be stored as secret on submit</div
1327
+ >
1328
+ {/if}
1329
+ {/if}
1330
+
1311
1331
  {#if !compact || (error && error != '')}
1312
1332
  <div class="text-right text-xs leading-3 text-red-600 dark:text-red-400 mb-2">
1313
1333
  {#if disabled || error === ''}
@@ -74,7 +74,7 @@ async function fetchSummary(kind, path, workspace) {
74
74
  return app.summary;
75
75
  }
76
76
  else if (kind === 'folder') {
77
- const folder = await FolderService.getFolder({ workspace, name: path.slice(2) });
77
+ const folder = await FolderService.getFolder({ workspace, name: path.replace(/^f\//, '') });
78
78
  return folder.summary;
79
79
  }
80
80
  }
@@ -245,7 +245,16 @@ async function deployChanges() {
245
245
  }
246
246
  const parent = parentWorkspaceId;
247
247
  const current = currentWorkspaceId;
248
- for (const itemKey of selectedItems) {
248
+ const sortedItems = [...selectedItems].sort((a, b) => {
249
+ const aIsFolder = a.startsWith('folder:');
250
+ const bIsFolder = b.startsWith('folder:');
251
+ if (aIsFolder && !bIsFolder)
252
+ return -1;
253
+ if (!aIsFolder && bIsFolder)
254
+ return 1;
255
+ return 0;
256
+ });
257
+ for (const itemKey of sortedItems) {
249
258
  const diff = selectableDiffs.find((d) => itemKey == getItemKey(d));
250
259
  if (!diff) {
251
260
  sendUserToast(`Undeployable item: ${itemKey}`, true);