windmill-components 1.382.1 → 1.382.7
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.
- package/package/base.d.ts +1 -1
- package/package/base.js +1 -1
- package/package/components/EditorBar.svelte +48 -38
- package/package/components/EditorBar.svelte.d.ts +2 -0
- package/package/components/FlowBuilder.svelte +15 -12
- package/package/components/FlowBuilder.svelte.d.ts +2 -2
- package/package/components/FlowStatusViewer.svelte +7 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +12 -5
- package/package/components/FlowViewer.svelte +6 -46
- package/package/components/FlowViewer.svelte.d.ts +1 -0
- package/package/components/FlowViewerInner.svelte +109 -0
- package/package/components/FlowViewerInner.svelte.d.ts +22 -0
- package/package/components/ScriptBuilder.svelte +48 -40
- package/package/components/ScriptBuilder.svelte.d.ts +3 -0
- package/package/components/ScriptEditor.svelte +3 -1
- package/package/components/ScriptEditor.svelte.d.ts +2 -0
- package/package/components/apps/components/display/AppText.svelte +8 -3
- package/package/components/apps/components/inputs/AppSelect.svelte +45 -29
- package/package/components/apps/editor/component/components.d.ts +6 -0
- package/package/components/apps/editor/component/components.js +6 -0
- package/package/components/custom_ui.d.ts +35 -1
- package/package/components/details/DetailPageDetailPanel.svelte +4 -38
- package/package/components/details/WebhooksPanel.svelte +3 -3
- package/package/components/flows/content/FlowModuleComponent.svelte +8 -2
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +193 -66
- package/package/components/flows/content/FlowModuleHeader.svelte +1 -1
- package/package/components/flows/content/FlowSettings.svelte +26 -15
- package/package/components/flows/flowExplorer.js +3 -0
- package/package/components/flows/map/MapItem.svelte +1 -1
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +2 -0
- package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +1 -0
- package/package/components/flows/types.d.ts +2 -0
- package/package/components/graph/model.d.ts +3 -0
- package/package/components/propertyPicker/PropPickerResult.svelte +6 -1
- package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +1 -0
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +12 -0
- package/package/gen/schemas.gen.js +12 -0
- package/package/gen/services.gen.d.ts +4 -3
- package/package/gen/services.gen.js +7 -5
- package/package/gen/types.gen.d.ts +16 -8
- package/package.json +1 -1
|
@@ -51,7 +51,7 @@ $: moduleRetry = module.retry?.constant || module.retry?.exponential;
|
|
|
51
51
|
<svelte:fragment slot="text">Cache</svelte:fragment>
|
|
52
52
|
</Popover>
|
|
53
53
|
{/if}
|
|
54
|
-
{#if module.stop_after_if}
|
|
54
|
+
{#if module.stop_after_if || module.stop_after_all_iters_if}
|
|
55
55
|
<Popover
|
|
56
56
|
placement="bottom"
|
|
57
57
|
class="center-center rounded p-2 bg-blue-100 text-blue-800 border border-blue-300 hover:bg-blue-200 dark:bg-frost-700 dark:text-frost-100 dark:border-frost-600"
|
|
@@ -23,7 +23,7 @@ import ErrorHandlerToggleButton from '../../details/ErrorHandlerToggleButton.sve
|
|
|
23
23
|
import WorkerTagPicker from '../../WorkerTagPicker.svelte';
|
|
24
24
|
import MetadataGen from '../../copilot/MetadataGen.svelte';
|
|
25
25
|
export let noEditor;
|
|
26
|
-
const { selectedId, flowStore, initialPath, previewArgs, pathStore, schedule } = getContext('FlowEditorContext');
|
|
26
|
+
const { selectedId, flowStore, initialPath, previewArgs, pathStore, schedule, customUi } = getContext('FlowEditorContext');
|
|
27
27
|
let hostname = BROWSER ? window.location.protocol + '//' + window.location.host : 'SSR';
|
|
28
28
|
$: url = `${hostname}/api/w/${$workspaceStore}/jobs/run/f/${$pathStore}`;
|
|
29
29
|
$: syncedUrl = `${hostname}/api/w/${$workspaceStore}/jobs/run_wait_result/f/${$pathStore}`;
|
|
@@ -42,22 +42,33 @@ let dirtyPath = false;
|
|
|
42
42
|
<div class="h-full flex-1">
|
|
43
43
|
<Tabs bind:selected={$selectedId}>
|
|
44
44
|
<Tab value="settings-metadata">Metadata</Tab>
|
|
45
|
-
{#if !noEditor}
|
|
45
|
+
{#if !noEditor && customUi?.settingsTabs?.schedule != false}
|
|
46
46
|
<Tab value="settings-schedule" active={$schedule.enabled}>Schedule</Tab>
|
|
47
47
|
{/if}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
{#if customUi?.settingsTabs?.sharedDiretory != false}
|
|
49
|
+
<Tab value="settings-same-worker" active={$flowStore.value.same_worker}>
|
|
50
|
+
Shared Directory
|
|
51
|
+
</Tab>
|
|
52
|
+
{/if}
|
|
53
|
+
{#if customUi?.settingsTabs?.earlyStop != false}
|
|
54
|
+
<Tab value="settings-early-stop" active={Boolean($flowStore.value.skip_expr)}>
|
|
55
|
+
Early Stop
|
|
56
|
+
</Tab>
|
|
57
|
+
{/if}
|
|
58
|
+
{#if customUi?.settingsTabs?.earlyReturn != false}
|
|
59
|
+
<Tab value="settings-early-return" active={Boolean($flowStore.value.early_return)}>
|
|
60
|
+
Early Return
|
|
61
|
+
</Tab>
|
|
62
|
+
{/if}
|
|
63
|
+
{#if customUi?.settingsTabs?.workerGroup != false}
|
|
64
|
+
<Tab value="settings-worker-group">Worker Group</Tab>
|
|
65
|
+
{/if}
|
|
66
|
+
{#if customUi?.settingsTabs?.concurrency != false}
|
|
67
|
+
<Tab value="settings-concurrency">Concurrency</Tab>
|
|
68
|
+
{/if}
|
|
69
|
+
{#if customUi?.settingsTabs?.cache != false}
|
|
70
|
+
<Tab value="settings-cache" active={Boolean($flowStore.value.cache_ttl)}>Cache</Tab>
|
|
71
|
+
{/if}
|
|
61
72
|
<svelte:fragment slot="content">
|
|
62
73
|
<TabContent value="settings-metadata" class="p-4 h-full overflow-auto">
|
|
63
74
|
<Section label="Metadata">
|
|
@@ -23,7 +23,7 @@ const dispatch = createEventDispatcher();
|
|
|
23
23
|
$: itemProps = {
|
|
24
24
|
selected: $selectedId === mod.id,
|
|
25
25
|
retry: mod.retry?.constant != undefined || mod.retry?.exponential != undefined,
|
|
26
|
-
earlyStop: mod.stop_after_if != undefined,
|
|
26
|
+
earlyStop: mod.stop_after_if != undefined || mod.stop_after_all_iters_if != undefined,
|
|
27
27
|
suspend: Boolean(mod.suspend),
|
|
28
28
|
sleep: Boolean(mod.sleep),
|
|
29
29
|
cache: Boolean(mod.cache_ttl),
|
|
@@ -10,6 +10,7 @@ import { writable } from 'svelte/store';
|
|
|
10
10
|
import { twMerge } from 'tailwind-merge';
|
|
11
11
|
export let pickableProperties;
|
|
12
12
|
export let result = undefined;
|
|
13
|
+
export let extraResults = undefined;
|
|
13
14
|
export let flow_input = undefined;
|
|
14
15
|
export let error = false;
|
|
15
16
|
export let displayContext = true;
|
|
@@ -53,6 +54,7 @@ setContext('PropPickerWrapper', {
|
|
|
53
54
|
{#if result}
|
|
54
55
|
<PropPickerResult
|
|
55
56
|
{result}
|
|
57
|
+
{extraResults}
|
|
56
58
|
{flow_input}
|
|
57
59
|
on:select={({ detail }) => {
|
|
58
60
|
if (!notSelectable && !$propPickerConfig) {
|
|
@@ -5,6 +5,7 @@ import type { Writable } from 'svelte/store';
|
|
|
5
5
|
import type ScriptEditorDrawer from './content/ScriptEditorDrawer.svelte';
|
|
6
6
|
import type { FlowState } from './flowState';
|
|
7
7
|
import type { Schedule } from './scheduleUtils';
|
|
8
|
+
import type { FlowBuilderWhitelabelCustomUi } from '../custom_ui';
|
|
8
9
|
export type FlowInput = Record<string, {
|
|
9
10
|
flowStepWarnings?: Record<string, {
|
|
10
11
|
message: string;
|
|
@@ -33,4 +34,5 @@ export type FlowEditorContext = {
|
|
|
33
34
|
saveDraft: () => void;
|
|
34
35
|
initialPath: string;
|
|
35
36
|
flowInputsStore: Writable<FlowInput>;
|
|
37
|
+
customUi: FlowBuilderWhitelabelCustomUi;
|
|
36
38
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>import { createEventDispatcher } from 'svelte';
|
|
2
2
|
import ObjectViewer from './ObjectViewer.svelte';
|
|
3
3
|
export let result;
|
|
4
|
+
export let extraResults = undefined;
|
|
4
5
|
export let flow_input = undefined;
|
|
5
6
|
const dispatch = createEventDispatcher();
|
|
6
7
|
</script>
|
|
@@ -8,7 +9,11 @@ const dispatch = createEventDispatcher();
|
|
|
8
9
|
<div class="w-full px-2">
|
|
9
10
|
<span class="font-bold text-sm">Result</span>
|
|
10
11
|
<div class="overflow-y-auto mb-2 w-full">
|
|
11
|
-
<ObjectViewer
|
|
12
|
+
<ObjectViewer
|
|
13
|
+
allowCopy={false}
|
|
14
|
+
json={{ result, ...(extraResults ? extraResults : {}) }}
|
|
15
|
+
on:select
|
|
16
|
+
/>
|
|
12
17
|
</div>
|
|
13
18
|
{#if flow_input}
|
|
14
19
|
<span class="font-bold text-sm">Flow Input</span>
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
const changelogs = [
|
|
2
|
+
{
|
|
3
|
+
label: 'Continue on disapproval/timeout',
|
|
4
|
+
href: 'https://www.windmill.dev/changelog/continue-on-disapproval',
|
|
5
|
+
date: '2024-08-14'
|
|
6
|
+
},
|
|
2
7
|
{
|
|
3
8
|
label: 'Nativets runtime supports npm packages and relative imports',
|
|
4
9
|
href: 'https://www.windmill.dev/changelog/native-runtime-imports',
|
|
@@ -2550,6 +2550,18 @@ export declare const $FlowModule: {
|
|
|
2550
2550
|
};
|
|
2551
2551
|
readonly required: readonly ["expr"];
|
|
2552
2552
|
};
|
|
2553
|
+
readonly stop_after_all_iters_if: {
|
|
2554
|
+
readonly type: "object";
|
|
2555
|
+
readonly properties: {
|
|
2556
|
+
readonly skip_if_stopped: {
|
|
2557
|
+
readonly type: "boolean";
|
|
2558
|
+
};
|
|
2559
|
+
readonly expr: {
|
|
2560
|
+
readonly type: "string";
|
|
2561
|
+
};
|
|
2562
|
+
};
|
|
2563
|
+
readonly required: readonly ["expr"];
|
|
2564
|
+
};
|
|
2553
2565
|
readonly sleep: {
|
|
2554
2566
|
readonly $ref: "#/components/schemas/InputTransform";
|
|
2555
2567
|
};
|
|
@@ -2592,6 +2592,18 @@ export const $FlowModule = {
|
|
|
2592
2592
|
},
|
|
2593
2593
|
required: ['expr']
|
|
2594
2594
|
},
|
|
2595
|
+
stop_after_all_iters_if: {
|
|
2596
|
+
type: 'object',
|
|
2597
|
+
properties: {
|
|
2598
|
+
skip_if_stopped: {
|
|
2599
|
+
type: 'boolean'
|
|
2600
|
+
},
|
|
2601
|
+
expr: {
|
|
2602
|
+
type: 'string'
|
|
2603
|
+
}
|
|
2604
|
+
},
|
|
2605
|
+
required: ['expr']
|
|
2606
|
+
},
|
|
2595
2607
|
sleep: {
|
|
2596
2608
|
'$ref': '#/components/schemas/InputTransform'
|
|
2597
2609
|
},
|
|
@@ -3332,14 +3332,15 @@ export declare class ServiceLogsService {
|
|
|
3332
3332
|
/**
|
|
3333
3333
|
* list log files ordered by timestamp
|
|
3334
3334
|
* @param data The data for the request.
|
|
3335
|
-
* @param data.
|
|
3336
|
-
* @param data.
|
|
3335
|
+
* @param data.before filter on started before (inclusive) timestamp
|
|
3336
|
+
* @param data.after filter on created after (exclusive) timestamp
|
|
3337
|
+
* @param data.withError
|
|
3337
3338
|
* @returns unknown time
|
|
3338
3339
|
* @throws ApiError
|
|
3339
3340
|
*/
|
|
3340
3341
|
static listLogFiles(data?: ListLogFilesData): CancelablePromise<ListLogFilesResponse>;
|
|
3341
3342
|
/**
|
|
3342
|
-
* get log
|
|
3343
|
+
* get log file by path
|
|
3343
3344
|
* @param data The data for the request.
|
|
3344
3345
|
* @param data.path
|
|
3345
3346
|
* @returns string log stream
|
|
@@ -6704,8 +6704,9 @@ export class ServiceLogsService {
|
|
|
6704
6704
|
/**
|
|
6705
6705
|
* list log files ordered by timestamp
|
|
6706
6706
|
* @param data The data for the request.
|
|
6707
|
-
* @param data.
|
|
6708
|
-
* @param data.
|
|
6707
|
+
* @param data.before filter on started before (inclusive) timestamp
|
|
6708
|
+
* @param data.after filter on created after (exclusive) timestamp
|
|
6709
|
+
* @param data.withError
|
|
6709
6710
|
* @returns unknown time
|
|
6710
6711
|
* @throws ApiError
|
|
6711
6712
|
*/
|
|
@@ -6714,13 +6715,14 @@ export class ServiceLogsService {
|
|
|
6714
6715
|
method: 'GET',
|
|
6715
6716
|
url: '/service_logs/list_files',
|
|
6716
6717
|
query: {
|
|
6717
|
-
|
|
6718
|
-
|
|
6718
|
+
before: data.before,
|
|
6719
|
+
after: data.after,
|
|
6720
|
+
with_error: data.withError
|
|
6719
6721
|
}
|
|
6720
6722
|
});
|
|
6721
6723
|
}
|
|
6722
6724
|
/**
|
|
6723
|
-
* get log
|
|
6725
|
+
* get log file by path
|
|
6724
6726
|
* @param data The data for the request.
|
|
6725
6727
|
* @param data.path
|
|
6726
6728
|
* @returns string log stream
|
|
@@ -838,6 +838,10 @@ export type FlowModule = {
|
|
|
838
838
|
skip_if_stopped?: boolean;
|
|
839
839
|
expr: string;
|
|
840
840
|
};
|
|
841
|
+
stop_after_all_iters_if?: {
|
|
842
|
+
skip_if_stopped?: boolean;
|
|
843
|
+
expr: string;
|
|
844
|
+
};
|
|
841
845
|
sleep?: InputTransform;
|
|
842
846
|
cache_ttl?: number;
|
|
843
847
|
timeout?: number;
|
|
@@ -4692,13 +4696,14 @@ export type GetJobMetricsResponse = {
|
|
|
4692
4696
|
};
|
|
4693
4697
|
export type ListLogFilesData = {
|
|
4694
4698
|
/**
|
|
4695
|
-
* filter on
|
|
4699
|
+
* filter on created after (exclusive) timestamp
|
|
4696
4700
|
*/
|
|
4697
|
-
|
|
4701
|
+
after?: string;
|
|
4698
4702
|
/**
|
|
4699
4703
|
* filter on started before (inclusive) timestamp
|
|
4700
4704
|
*/
|
|
4701
|
-
|
|
4705
|
+
before?: string;
|
|
4706
|
+
withError?: boolean;
|
|
4702
4707
|
};
|
|
4703
4708
|
export type ListLogFilesResponse = Array<{
|
|
4704
4709
|
hostname: string;
|
|
@@ -4706,7 +4711,8 @@ export type ListLogFilesResponse = Array<{
|
|
|
4706
4711
|
worker_group?: string;
|
|
4707
4712
|
log_ts: string;
|
|
4708
4713
|
file_path: string;
|
|
4709
|
-
|
|
4714
|
+
ok_lines?: number;
|
|
4715
|
+
err_lines?: number;
|
|
4710
4716
|
}>;
|
|
4711
4717
|
export type GetLogFileData = {
|
|
4712
4718
|
path: string;
|
|
@@ -11228,13 +11234,14 @@ export type $OpenApiTs = {
|
|
|
11228
11234
|
get: {
|
|
11229
11235
|
req: {
|
|
11230
11236
|
/**
|
|
11231
|
-
* filter on
|
|
11237
|
+
* filter on created after (exclusive) timestamp
|
|
11232
11238
|
*/
|
|
11233
|
-
|
|
11239
|
+
after?: string;
|
|
11234
11240
|
/**
|
|
11235
11241
|
* filter on started before (inclusive) timestamp
|
|
11236
11242
|
*/
|
|
11237
|
-
|
|
11243
|
+
before?: string;
|
|
11244
|
+
withError?: boolean;
|
|
11238
11245
|
};
|
|
11239
11246
|
res: {
|
|
11240
11247
|
/**
|
|
@@ -11246,7 +11253,8 @@ export type $OpenApiTs = {
|
|
|
11246
11253
|
worker_group?: string;
|
|
11247
11254
|
log_ts: string;
|
|
11248
11255
|
file_path: string;
|
|
11249
|
-
|
|
11256
|
+
ok_lines?: number;
|
|
11257
|
+
err_lines?: number;
|
|
11250
11258
|
}>;
|
|
11251
11259
|
};
|
|
11252
11260
|
};
|