windmill-components 1.389.3 → 1.394.3
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/assets/app.css +4 -3
- package/package/components/AppConnectInner.svelte +18 -10
- package/package/components/ArgInfo.svelte +1 -1
- package/package/components/ArgInput.svelte +22 -2
- package/package/components/AutheliaSetting.svelte +1 -0
- package/package/components/AuthentikSetting.svelte +1 -0
- package/package/components/BoundedInputNumber +0 -0
- package/package/components/CliHelpBox.svelte +2 -2
- package/package/components/DateInput.svelte +1 -0
- package/package/components/DisplayResult.svelte +39 -31
- package/package/components/Editor.svelte +0 -21
- package/package/components/ErrorOrRecoveryHandler.svelte +7 -1
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +1 -1
- package/package/components/FlowBuilder.svelte +2 -2
- package/package/components/FlowGraphViewerStep.svelte +22 -0
- package/package/components/FlowJobResult.svelte +1 -0
- package/package/components/FlowMetadata.svelte +3 -2
- package/package/components/FlowStatusViewer.svelte +2 -0
- package/package/components/FlowStatusViewer.svelte.d.ts +2 -0
- package/package/components/FlowStatusViewerInner.svelte +10 -5
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
- package/package/components/FolderEditor.svelte +1 -1
- package/package/components/IdEditorInput.svelte +82 -0
- package/package/components/IdEditorInput.svelte.d.ts +26 -0
- package/package/components/InputTransformForm.svelte +10 -10
- package/package/components/InputTransformForm.svelte.d.ts +4 -1
- package/package/components/InputTransformSchemaForm.svelte.d.ts +3 -1
- package/package/components/InstanceSettings.svelte +73 -12
- package/package/components/ItemPicker.svelte +1 -0
- package/package/components/KanidmSetting.svelte +1 -0
- package/package/components/KeycloakSetting.svelte +1 -0
- package/package/components/LightweightArgInput.svelte +2 -0
- package/package/components/LogViewer.svelte +206 -0
- package/package/components/ModulePreview.svelte.d.ts +3 -1
- package/package/components/ModulePreviewForm.svelte +2 -2
- package/package/components/ModulePreviewForm.svelte.d.ts +4 -1
- package/package/components/OAuthSetting.svelte +11 -10
- package/package/components/ObjectStoreConfigSettings.svelte +6 -6
- package/package/components/OktaSetting.svelte +1 -0
- package/package/components/Password.svelte +30 -35
- package/package/components/RunChart.svelte +16 -0
- package/package/components/RunChart.svelte.d.ts +2 -0
- package/package/components/SavedInputs.svelte +4 -4
- package/package/components/ScheduleEditorInner.svelte +145 -2
- package/package/components/SchemaForm.svelte +1 -2
- package/package/components/ScriptBuilder.svelte +1 -0
- package/package/components/TestConnection.svelte +24 -6
- package/package/components/TestJobLoader.svelte +2 -0
- package/package/components/ZitadelSetting.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +0 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -2
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +0 -2
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +1 -2
- package/package/components/apps/components/display/table/AppAggridTable.svelte +6 -2
- package/package/components/apps/components/inputs/AppSelect.svelte +18 -17
- package/package/components/apps/editor/AppEditor.svelte +1 -1
- package/package/components/apps/editor/AppPreview.svelte +3 -6
- package/package/components/apps/editor/AppReportsDrawer.svelte +17 -5
- package/package/components/apps/editor/DeploymentHistory.svelte +1 -0
- package/package/components/apps/editor/component/Component.svelte +0 -2
- package/package/components/apps/editor/componentsPanel/themeUtils.js +18 -7
- package/package/components/apps/editor/contextPanel/SubGridOutput.svelte +1 -0
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +13 -67
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +1 -2
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +0 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +0 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/decisionTree/InsertDecisionTreeNode.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +1 -0
- package/package/components/apps/svelte-select/lib/Select.svelte +1 -0
- package/package/components/build_workers.js +24 -18
- package/package/components/common/button/Button.svelte +3 -4
- package/package/components/common/button/model.d.ts +1 -1
- package/package/components/common/button/model.js +6 -0
- package/package/components/common/clearableInput/ClearableInput.svelte +1 -0
- package/package/components/common/menu/MenuItem.svelte +1 -0
- package/package/components/common/modal/AlwaysMountedModal.svelte +1 -0
- package/package/components/common/stepper/Stepper.svelte +1 -0
- package/package/components/copilot/StepInputsGen.svelte +2 -2
- package/package/components/copilot/StepInputsGen.svelte.d.ts +3 -1
- package/package/components/copilot/lib.js +2 -2
- package/package/components/details/ClipboardPanel.svelte +1 -0
- package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -1
- package/package/components/flows/content/FlowConstants.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -1
- package/package/components/flows/content/FlowModuleComponent.svelte +2 -2
- package/package/components/flows/content/FlowModuleHeader.svelte +5 -45
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +47 -0
- package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte.d.ts +16 -0
- package/package/components/flows/content/FlowSettings.svelte +1 -0
- package/package/components/flows/flowModuleNextId.js +1 -1
- package/package/components/flows/flowState.d.ts +1 -1
- package/package/components/flows/flowStateUtils.d.ts +1 -1
- package/package/components/flows/flowStateUtils.js +1 -1
- package/package/components/flows/flowStore.d.ts +1 -0
- package/package/components/flows/flowStore.js +5 -0
- package/package/components/flows/map/FlowJobsMenu.svelte +0 -1
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +0 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +103 -19
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +31 -1
- package/package/components/flows/map/InsertModuleButton.svelte +5 -5
- package/package/components/flows/map/InsertTriggerButton.svelte +2 -2
- package/package/components/flows/map/MapItem.svelte +4 -0
- package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
- package/package/components/flows/map/VirtualItem.svelte +15 -7
- package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -1
- package/package/components/flows/previousResults.js +1 -1
- package/package/components/flows/utils.d.ts +3 -3
- package/package/components/flows/utils.js +2 -2
- package/package/components/graph/FlowGraphV2.svelte +4 -0
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
- package/package/components/graph/graphBuilder.d.ts +1 -0
- package/package/components/graph/graphBuilder.js +2 -4
- package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -2
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -1
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +3 -3
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +6 -2
- package/package/components/graph/util.d.ts +1 -1
- package/package/components/graph/util.js +7 -2
- package/package/components/icons/AzureIcon.svelte +1 -1
- package/package/components/icons/FunkwhaleIcon.svelte +1 -19
- package/package/components/icons/JumpCloudIcon.svelte +12 -0
- package/package/components/icons/JumpCloudIcon.svelte.d.ts +17 -0
- package/package/components/icons/KeycloakIcon.svelte +20 -0
- package/package/components/icons/KeycloakIcon.svelte.d.ts +17 -0
- package/package/components/icons/MailchimpIcon.svelte +1 -1
- package/package/components/icons/ZitadelIcon.svelte +76 -0
- package/package/components/icons/ZitadelIcon.svelte.d.ts +17 -0
- package/package/components/icons/index.d.ts +7 -1
- package/package/components/icons/index.js +8 -2
- package/package/components/instanceSettings.d.ts +1 -1
- package/package/components/instanceSettings.js +24 -15
- package/package/components/runs/JobLoader.svelte +17 -6
- package/package/components/runs/JobLoader.svelte.d.ts +2 -0
- package/package/components/runs/RunRow.svelte +7 -7
- package/package/components/runs/RunsFilter.svelte +8 -1
- package/package/components/runs/RunsTable.svelte +30 -8
- package/package/components/runs/RunsTable.svelte.d.ts +2 -0
- package/package/components/schema/PropertyEditor.svelte +0 -5
- package/package/components/settings/WorkspaceUserSettings.svelte +1 -1
- package/package/components/sidebar/MenuLink.svelte +2 -1
- package/package/components/sidebar/WorkspaceMenu.svelte +4 -1
- package/package/components/sidebar/changelogs.js +30 -0
- package/package/components/tutorials/FlowBuilderTutorialsForLoop.svelte +2 -2
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +21 -0
- package/package/gen/schemas.gen.js +21 -0
- package/package/gen/services.gen.d.ts +11 -12
- package/package/gen/services.gen.js +19 -24
- package/package/gen/types.gen.d.ts +62 -37
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +11 -8
- package/package.json +4 -4
- package/package/windmill_fetch.d.ts.txt +0 -16966
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<script>import { ArrowRight } from 'lucide-svelte';
|
|
2
|
+
import { Button } from './common';
|
|
3
|
+
import { createEventDispatcher } from 'svelte';
|
|
4
|
+
import { forbiddenIds } from './flows/idUtils';
|
|
5
|
+
import { slide } from 'svelte/transition';
|
|
6
|
+
export let initialId;
|
|
7
|
+
export let reservedIds = [];
|
|
8
|
+
export let label = 'Component ID';
|
|
9
|
+
export let value = initialId;
|
|
10
|
+
export let buttonText = '';
|
|
11
|
+
export let btnClasses = '!p-1 !w-[34px] !ml-1';
|
|
12
|
+
export let acceptUnderScores = false;
|
|
13
|
+
let error = '';
|
|
14
|
+
const dispatch = createEventDispatcher();
|
|
15
|
+
const regex = acceptUnderScores ? /^[a-zA-Z][a-zA-Z0-9_]*$/ : /^[a-zA-Z][a-zA-Z0-9]*$/;
|
|
16
|
+
$: validateId(value, reservedIds);
|
|
17
|
+
function validateId(id, reservedIds) {
|
|
18
|
+
if (id == initialId) {
|
|
19
|
+
error = '';
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!regex.test(value)) {
|
|
23
|
+
error = 'The ID must include only letters and numbers and start with a letter';
|
|
24
|
+
}
|
|
25
|
+
else if (forbiddenIds.includes(value)) {
|
|
26
|
+
error = 'This ID is reserved';
|
|
27
|
+
}
|
|
28
|
+
else if (reservedIds.some((rid) => rid === value)) {
|
|
29
|
+
error = 'This ID is already in use';
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
error = '';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
let inputDiv = undefined;
|
|
36
|
+
$: inputDiv?.focus();
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<label class="block text-primary">
|
|
40
|
+
{#if label != ''}
|
|
41
|
+
<div class="pb-1 text-sm text-secondary">{label}</div>
|
|
42
|
+
{/if}
|
|
43
|
+
<div class="flex w-full">
|
|
44
|
+
<input
|
|
45
|
+
bind:this={inputDiv}
|
|
46
|
+
autofocus
|
|
47
|
+
type="text"
|
|
48
|
+
bind:value
|
|
49
|
+
class="!w-auto grow"
|
|
50
|
+
on:click|stopPropagation={() => {}}
|
|
51
|
+
on:keydown|stopPropagation={({ key }) => {
|
|
52
|
+
if (key === 'Enter' && error === '' && value !== initialId) {
|
|
53
|
+
dispatch('save', value)
|
|
54
|
+
} else if (key == 'Escape') {
|
|
55
|
+
dispatch('close')
|
|
56
|
+
}
|
|
57
|
+
}}
|
|
58
|
+
on:keypress|stopPropagation
|
|
59
|
+
/>
|
|
60
|
+
<Button
|
|
61
|
+
size="xs"
|
|
62
|
+
color="blue"
|
|
63
|
+
buttonType="button"
|
|
64
|
+
{btnClasses}
|
|
65
|
+
aria-label="Save ID"
|
|
66
|
+
disabled={error != '' || value === initialId}
|
|
67
|
+
on:click={() => {
|
|
68
|
+
dispatch('save', value)
|
|
69
|
+
}}
|
|
70
|
+
>
|
|
71
|
+
{buttonText}<ArrowRight size={18} />
|
|
72
|
+
</Button>
|
|
73
|
+
</div>
|
|
74
|
+
{#if error != ''}
|
|
75
|
+
<div
|
|
76
|
+
transition:slide|local={{ duration: 100 }}
|
|
77
|
+
class="w-full text-sm text-red-600 whitespace-pre-wrap pt-1"
|
|
78
|
+
>
|
|
79
|
+
{error}
|
|
80
|
+
</div>
|
|
81
|
+
{/if}
|
|
82
|
+
</label>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
initialId: string;
|
|
5
|
+
reservedIds?: string[] | undefined;
|
|
6
|
+
label?: string | undefined;
|
|
7
|
+
value?: string | undefined;
|
|
8
|
+
buttonText?: string | undefined;
|
|
9
|
+
btnClasses?: string | undefined;
|
|
10
|
+
acceptUnderScores?: boolean | undefined;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
keypress: KeyboardEvent;
|
|
14
|
+
save: CustomEvent<any>;
|
|
15
|
+
close: CustomEvent<any>;
|
|
16
|
+
} & {
|
|
17
|
+
[evt: string]: CustomEvent<any>;
|
|
18
|
+
};
|
|
19
|
+
slots: {};
|
|
20
|
+
};
|
|
21
|
+
export type IdEditorInputProps = typeof __propDef.props;
|
|
22
|
+
export type IdEditorInputEvents = typeof __propDef.events;
|
|
23
|
+
export type IdEditorInputSlots = typeof __propDef.slots;
|
|
24
|
+
export default class IdEditorInput extends SvelteComponent<IdEditorInputProps, IdEditorInputEvents, IdEditorInputSlots> {
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -29,7 +29,7 @@ let monaco = undefined;
|
|
|
29
29
|
let monacoTemplate = undefined;
|
|
30
30
|
let argInput = undefined;
|
|
31
31
|
const dispatch = createEventDispatcher();
|
|
32
|
-
$: inputCat = computeInputCat(schema
|
|
32
|
+
$: inputCat = computeInputCat(schema?.properties?.[argName].type, schema?.properties?.[argName].format, schema?.properties?.[argName].items?.type, schema?.properties?.[argName].enum, schema?.properties?.[argName].contentEncoding);
|
|
33
33
|
let propertyType = getPropertyType(arg);
|
|
34
34
|
const { shouldUpdatePropertyType, exprsToSet } = getContext('FlowCopilotContext') || {};
|
|
35
35
|
function setExpr() {
|
|
@@ -127,10 +127,10 @@ const { focusProp, propPickerConfig } = getContext('PropPickerWrapper');
|
|
|
127
127
|
$: isStaticTemplate(inputCat) && propertyType == 'static' && setPropertyType(arg?.value);
|
|
128
128
|
function setDefaultCode() {
|
|
129
129
|
if (!arg?.value) {
|
|
130
|
-
monacoTemplate?.setCode(schema.properties[argName].default);
|
|
130
|
+
monacoTemplate?.setCode(schema.properties?.[argName].default);
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
-
$: schema
|
|
133
|
+
$: schema?.properties?.[argName].default && setDefaultCode();
|
|
134
134
|
let resourceTypes = undefined;
|
|
135
135
|
async function loadResourceTypes() {
|
|
136
136
|
resourceTypes = await getResourceTypes();
|
|
@@ -146,10 +146,10 @@ loadResourceTypes();
|
|
|
146
146
|
<div class="flex flex-wrap grow">
|
|
147
147
|
<FieldHeader
|
|
148
148
|
label={argName}
|
|
149
|
-
format={schema
|
|
150
|
-
contentEncoding={schema
|
|
151
|
-
required={schema.required
|
|
152
|
-
type={schema.properties[argName].type}
|
|
149
|
+
format={schema?.properties?.[argName].format}
|
|
150
|
+
contentEncoding={schema?.properties?.[argName].contentEncoding}
|
|
151
|
+
required={schema.required?.includes(argName)}
|
|
152
|
+
type={schema.properties?.[argName].type}
|
|
153
153
|
/>
|
|
154
154
|
|
|
155
155
|
{#if isStaticTemplate(inputCat)}
|
|
@@ -172,7 +172,7 @@ loadResourceTypes();
|
|
|
172
172
|
bind:this={stepInputGen}
|
|
173
173
|
{focused}
|
|
174
174
|
{arg}
|
|
175
|
-
schemaProperty={schema
|
|
175
|
+
schemaProperty={schema?.properties?.[argName]}
|
|
176
176
|
showPopup={(isStaticTemplate(inputCat) && propertyType == 'static') ||
|
|
177
177
|
propertyType === undefined ||
|
|
178
178
|
propertyType === 'static' ||
|
|
@@ -334,7 +334,7 @@ loadResourceTypes();
|
|
|
334
334
|
/>
|
|
335
335
|
{/if}
|
|
336
336
|
</div>
|
|
337
|
-
{:else if propertyType === undefined || propertyType == 'static'}
|
|
337
|
+
{:else if (propertyType === undefined || propertyType == 'static') && schema?.properties?.[argName]}
|
|
338
338
|
<ArgInput
|
|
339
339
|
{resourceTypes}
|
|
340
340
|
noMargin
|
|
@@ -354,7 +354,7 @@ loadResourceTypes();
|
|
|
354
354
|
bind:value={arg.value}
|
|
355
355
|
type={schema.properties[argName].type}
|
|
356
356
|
oneOf={schema.properties[argName].oneOf}
|
|
357
|
-
required={schema.required
|
|
357
|
+
required={schema.required?.includes(argName)}
|
|
358
358
|
bind:pattern={schema.properties[argName].pattern}
|
|
359
359
|
bind:valid={inputCheck}
|
|
360
360
|
defaultValue={schema.properties[argName].default}
|
|
@@ -7,7 +7,10 @@ import type { PickableProperties } from './flows/previousResults';
|
|
|
7
7
|
declare const __propDef: {
|
|
8
8
|
props: {
|
|
9
9
|
[x: string]: any;
|
|
10
|
-
schema: Schema
|
|
10
|
+
schema: Schema | {
|
|
11
|
+
properties?: Record<string, any>;
|
|
12
|
+
required?: string[];
|
|
13
|
+
};
|
|
11
14
|
arg: InputTransform | any;
|
|
12
15
|
argName: string;
|
|
13
16
|
extraLib?: string | undefined;
|
|
@@ -4,7 +4,9 @@ import { type InputTransform } from '../gen';
|
|
|
4
4
|
import type { PickableProperties } from './flows/previousResults';
|
|
5
5
|
declare const __propDef: {
|
|
6
6
|
props: {
|
|
7
|
-
schema: Schema
|
|
7
|
+
schema: Schema | {
|
|
8
|
+
properties?: Record<string, any>;
|
|
9
|
+
};
|
|
8
10
|
args?: Record<string, any> | undefined;
|
|
9
11
|
isValid?: boolean | undefined;
|
|
10
12
|
extraLib?: string | undefined;
|
|
@@ -15,7 +15,7 @@ import { isCloudHosted } from '../cloud';
|
|
|
15
15
|
import { capitalize, classNames } from '../utils';
|
|
16
16
|
import { enterpriseLicense } from '../stores';
|
|
17
17
|
import CustomOauth from './CustomOauth.svelte';
|
|
18
|
-
import { AlertCircle, AlertTriangle, BadgeCheck, Info, Plus, X, BadgeX } from 'lucide-svelte';
|
|
18
|
+
import { AlertCircle, AlertTriangle, BadgeCheck, Info, Plus, X, BadgeX, Slack } from 'lucide-svelte';
|
|
19
19
|
import CustomSso from './CustomSso.svelte';
|
|
20
20
|
import AuthentikSetting from './AuthentikSetting.svelte';
|
|
21
21
|
import AutheliaSetting from './AutheliaSetting.svelte';
|
|
@@ -25,6 +25,7 @@ import Password from './Password.svelte';
|
|
|
25
25
|
import ObjectStoreConfigSettings from './ObjectStoreConfigSettings.svelte';
|
|
26
26
|
import { fade } from 'svelte/transition';
|
|
27
27
|
import Popover from './Popover.svelte';
|
|
28
|
+
import { base } from '../base';
|
|
28
29
|
export let tab = 'Core';
|
|
29
30
|
export let hideTabs = false;
|
|
30
31
|
export let hideSave = false;
|
|
@@ -213,6 +214,11 @@ export async function openCustomerPortal() {
|
|
|
213
214
|
>Setting SMTP unlocks sending emails upon adding new users to the workspace or the
|
|
214
215
|
instance.</div
|
|
215
216
|
>
|
|
217
|
+
{:else if category == 'Slack'}
|
|
218
|
+
<div class="text-secondary pb-4 text-xs">
|
|
219
|
+
Connecting your instance to a Slack workspace enables critical alerts to be sent to a
|
|
220
|
+
Slack channel.
|
|
221
|
+
</div>
|
|
216
222
|
{:else if category == 'Telemetry'}
|
|
217
223
|
<div class="text-secondary pb-4 text-xs">
|
|
218
224
|
Anonymous usage data is collected to help improve Windmill.
|
|
@@ -224,6 +230,7 @@ export async function openCustomerPortal() {
|
|
|
224
230
|
<li>login type usage</li>
|
|
225
231
|
<li>workers usage</li>
|
|
226
232
|
<li>vcpus usage</li>
|
|
233
|
+
<li>memory usage</li>
|
|
227
234
|
</ul>
|
|
228
235
|
</div>
|
|
229
236
|
{#if $enterpriseLicense}
|
|
@@ -333,7 +340,7 @@ export async function openCustomerPortal() {
|
|
|
333
340
|
<Toggle
|
|
334
341
|
options={{
|
|
335
342
|
right:
|
|
336
|
-
'Require users to have been added manually to
|
|
343
|
+
'Require users to have been added manually to Windmill to sign in through OAuth'
|
|
337
344
|
}}
|
|
338
345
|
bind:checked={requirePreexistingUserForOauth}
|
|
339
346
|
/>
|
|
@@ -622,21 +629,46 @@ export async function openCustomerPortal() {
|
|
|
622
629
|
{#if $enterpriseLicense && Array.isArray(values[setting.key])}
|
|
623
630
|
{#each values[setting.key] ?? [] as v, i}
|
|
624
631
|
<div class="flex max-w-md mt-1 gap-2 w-full items-center">
|
|
625
|
-
<select
|
|
626
|
-
|
|
627
|
-
</select>
|
|
628
|
-
<input
|
|
629
|
-
type="email"
|
|
630
|
-
placeholder="Email address"
|
|
631
|
-
on:input={(e) => {
|
|
632
|
+
<select
|
|
633
|
+
on:change={(e) => {
|
|
632
634
|
if (e.target?.['value']) {
|
|
633
635
|
values[setting.key][i] = {
|
|
634
|
-
|
|
636
|
+
[e.target['value']]: ''
|
|
635
637
|
}
|
|
636
638
|
}
|
|
637
639
|
}}
|
|
638
|
-
value={v
|
|
639
|
-
|
|
640
|
+
value={v && 'slack_channel' in v ? 'slack_channel' : 'email'}
|
|
641
|
+
>
|
|
642
|
+
<option value="email">Email</option>
|
|
643
|
+
<option value="slack_channel">Slack</option>
|
|
644
|
+
</select>
|
|
645
|
+
{#if v && 'slack_channel' in v}
|
|
646
|
+
<input
|
|
647
|
+
type="text"
|
|
648
|
+
placeholder="Slack channel"
|
|
649
|
+
on:input={(e) => {
|
|
650
|
+
if (e.target?.['value']) {
|
|
651
|
+
values[setting.key][i] = {
|
|
652
|
+
slack_channel: e.target['value']
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
}}
|
|
656
|
+
value={v?.slack_channel ?? ''}
|
|
657
|
+
/>
|
|
658
|
+
{:else}
|
|
659
|
+
<input
|
|
660
|
+
type="email"
|
|
661
|
+
placeholder="Email address"
|
|
662
|
+
on:input={(e) => {
|
|
663
|
+
if (e.target?.['value']) {
|
|
664
|
+
values[setting.key][i] = {
|
|
665
|
+
email: e.target['value']
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}}
|
|
669
|
+
value={v?.email ?? ''}
|
|
670
|
+
/>
|
|
671
|
+
{/if}
|
|
640
672
|
<button
|
|
641
673
|
transition:fade|local={{ duration: 100 }}
|
|
642
674
|
class="rounded-full p-1 bg-surface-secondary duration-200 hover:bg-surface-hover"
|
|
@@ -675,6 +707,35 @@ export async function openCustomerPortal() {
|
|
|
675
707
|
Add item
|
|
676
708
|
</Button>
|
|
677
709
|
</div>
|
|
710
|
+
{:else if setting.fieldType == 'slack_connect'}
|
|
711
|
+
<div class="flex flex-col items-start self-start">
|
|
712
|
+
{#if values[setting.key] && 'team_name' in values[setting.key]}
|
|
713
|
+
<div class="text-sm">
|
|
714
|
+
Connected to <code>{values[setting.key]['team_name']}</code>
|
|
715
|
+
</div>
|
|
716
|
+
<Button
|
|
717
|
+
size="sm"
|
|
718
|
+
endIcon={{ icon: Slack }}
|
|
719
|
+
btnClasses="mt-2"
|
|
720
|
+
variant="border"
|
|
721
|
+
on:click={async () => {
|
|
722
|
+
values[setting.key] = undefined
|
|
723
|
+
}}
|
|
724
|
+
>
|
|
725
|
+
Disconnect Slack
|
|
726
|
+
</Button>
|
|
727
|
+
{:else}
|
|
728
|
+
<Button
|
|
729
|
+
size="xs"
|
|
730
|
+
color="dark"
|
|
731
|
+
href="{base}/api/oauth/connect_slack?instance=true"
|
|
732
|
+
startIcon={{ icon: Slack }}
|
|
733
|
+
disabled={!$enterpriseLicense}
|
|
734
|
+
>
|
|
735
|
+
Connect to Slack
|
|
736
|
+
</Button>
|
|
737
|
+
{/if}
|
|
738
|
+
</div>
|
|
678
739
|
{:else if setting.fieldType == 'object_store_config'}
|
|
679
740
|
<ObjectStoreConfigSettings bind:bucket_config={values[setting.key]} />
|
|
680
741
|
<div class="mb-6" />
|
|
@@ -33,6 +33,7 @@ function changeValues({ baseUrl, id }) {
|
|
|
33
33
|
</script>
|
|
34
34
|
|
|
35
35
|
<div class="flex flex-col gap-1">
|
|
36
|
+
<!-- svelte-ignore a11y-label-has-associated-control -->
|
|
36
37
|
<label class="text-sm font-medium text-primary flex gap-4 items-center"
|
|
37
38
|
><div class="w-[120px]"><IconedResourceType name={'kanidm'} after={true} /></div><Toggle
|
|
38
39
|
checked={enabled}
|
|
@@ -25,6 +25,7 @@ function changeOrg(org) {
|
|
|
25
25
|
</script>
|
|
26
26
|
|
|
27
27
|
<div class="flex flex-col gap-1">
|
|
28
|
+
<!-- svelte-ignore a11y-label-has-associated-control -->
|
|
28
29
|
<label class="text-sm font-medium text-primary flex gap-4 items-center"
|
|
29
30
|
><div class="w-[120px]"><IconedResourceType name={'keycloak'} after={true} /></div><Toggle
|
|
30
31
|
checked={enabled}
|
|
@@ -28,6 +28,7 @@ export let noMaxH = false;
|
|
|
28
28
|
export let noAutoScroll = false;
|
|
29
29
|
// @ts-ignore
|
|
30
30
|
const ansi_up = new AnsiUp();
|
|
31
|
+
ansi_up.use_classes = true;
|
|
31
32
|
let scroll = true;
|
|
32
33
|
let div = null;
|
|
33
34
|
// let downloadStartUrl: string | undefined = undefined
|
|
@@ -228,3 +229,208 @@ function showMoreTruncate(len) {
|
|
|
228
229
|
>
|
|
229
230
|
</div>
|
|
230
231
|
</div>
|
|
232
|
+
|
|
233
|
+
<style global>
|
|
234
|
+
/* Foreground colors */
|
|
235
|
+
:global(.ansi-black-fg) {
|
|
236
|
+
color: rgb(0, 0, 0);
|
|
237
|
+
}
|
|
238
|
+
:global(.ansi-red-fg) {
|
|
239
|
+
color: rgb(187, 0, 0);
|
|
240
|
+
}
|
|
241
|
+
:global(.ansi-green-fg) {
|
|
242
|
+
color: rgb(0, 187, 0);
|
|
243
|
+
}
|
|
244
|
+
:global(.ansi-yellow-fg) {
|
|
245
|
+
color: rgb(187, 187, 0);
|
|
246
|
+
}
|
|
247
|
+
:global(.ansi-blue-fg) {
|
|
248
|
+
color: rgb(0, 0, 187);
|
|
249
|
+
}
|
|
250
|
+
:global(.ansi-magenta-fg) {
|
|
251
|
+
color: rgb(187, 0, 187);
|
|
252
|
+
}
|
|
253
|
+
:global(.ansi-cyan-fg) {
|
|
254
|
+
color: rgb(0, 187, 187);
|
|
255
|
+
}
|
|
256
|
+
:global(.ansi-white-fg) {
|
|
257
|
+
color: rgb(255, 255, 255);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
:global(.ansi-bright-black-fg) {
|
|
261
|
+
color: rgb(85, 85, 85);
|
|
262
|
+
}
|
|
263
|
+
:global(.ansi-bright-red-fg) {
|
|
264
|
+
color: rgb(255, 85, 85);
|
|
265
|
+
}
|
|
266
|
+
:global(.ansi-bright-green-fg) {
|
|
267
|
+
color: rgb(0, 255, 0);
|
|
268
|
+
}
|
|
269
|
+
:global(.ansi-bright-yellow-fg) {
|
|
270
|
+
color: rgb(255, 255, 85);
|
|
271
|
+
}
|
|
272
|
+
:global(.ansi-bright-blue-fg) {
|
|
273
|
+
color: rgb(85, 85, 255);
|
|
274
|
+
}
|
|
275
|
+
:global(.ansi-bright-magenta-fg) {
|
|
276
|
+
color: rgb(255, 85, 255);
|
|
277
|
+
}
|
|
278
|
+
:global(.ansi-bright-cyan-fg) {
|
|
279
|
+
color: rgb(85, 255, 255);
|
|
280
|
+
}
|
|
281
|
+
:global(.ansi-bright-white-fg) {
|
|
282
|
+
color: rgb(255, 255, 255);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/* Background colors */
|
|
286
|
+
:global(.ansi-black-bg) {
|
|
287
|
+
background-color: rgb(0, 0, 0);
|
|
288
|
+
}
|
|
289
|
+
:global(.ansi-red-bg) {
|
|
290
|
+
background-color: rgb(187, 0, 0);
|
|
291
|
+
}
|
|
292
|
+
:global(.ansi-green-bg) {
|
|
293
|
+
background-color: rgb(0, 187, 0);
|
|
294
|
+
}
|
|
295
|
+
:global(.ansi-yellow-bg) {
|
|
296
|
+
background-color: rgb(187, 187, 0);
|
|
297
|
+
}
|
|
298
|
+
:global(.ansi-blue-bg) {
|
|
299
|
+
background-color: rgb(0, 0, 187);
|
|
300
|
+
}
|
|
301
|
+
:global(.ansi-magenta-bg) {
|
|
302
|
+
background-color: rgb(187, 0, 187);
|
|
303
|
+
}
|
|
304
|
+
:global(.ansi-cyan-bg) {
|
|
305
|
+
background-color: rgb(0, 187, 187);
|
|
306
|
+
}
|
|
307
|
+
:global(.ansi-white-bg) {
|
|
308
|
+
background-color: rgb(255, 255, 255);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
:global(.ansi-bright-black-bg) {
|
|
312
|
+
background-color: rgb(85, 85, 85);
|
|
313
|
+
}
|
|
314
|
+
:global(.ansi-bright-red-bg) {
|
|
315
|
+
background-color: rgb(255, 85, 85);
|
|
316
|
+
}
|
|
317
|
+
:global(.ansi-bright-green-bg) {
|
|
318
|
+
background-color: rgb(0, 255, 0);
|
|
319
|
+
}
|
|
320
|
+
:global(.ansi-bright-yellow-bg) {
|
|
321
|
+
background-color: rgb(255, 255, 85);
|
|
322
|
+
}
|
|
323
|
+
:global(.ansi-bright-blue-bg) {
|
|
324
|
+
background-color: rgb(85, 85, 255);
|
|
325
|
+
}
|
|
326
|
+
:global(.ansi-bright-magenta-bg) {
|
|
327
|
+
background-color: rgb(255, 85, 255);
|
|
328
|
+
}
|
|
329
|
+
:global(.ansi-bright-cyan-bg) {
|
|
330
|
+
background-color: rgb(85, 255, 255);
|
|
331
|
+
}
|
|
332
|
+
:global(.ansi-bright-white-bg) {
|
|
333
|
+
background-color: rgb(255, 255, 255);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* Foreground colors for dark mode (Nord theme) */
|
|
337
|
+
:global(.dark) :global(.ansi-black-fg) {
|
|
338
|
+
color: rgb(46, 52, 64);
|
|
339
|
+
}
|
|
340
|
+
:global(.dark) :global(.ansi-red-fg) {
|
|
341
|
+
color: rgb(191, 97, 106);
|
|
342
|
+
}
|
|
343
|
+
:global(.dark) :global(.ansi-green-fg) {
|
|
344
|
+
color: rgb(163, 190, 140);
|
|
345
|
+
}
|
|
346
|
+
:global(.dark) :global(.ansi-yellow-fg) {
|
|
347
|
+
color: rgb(235, 203, 139);
|
|
348
|
+
}
|
|
349
|
+
:global(.dark) :global(.ansi-blue-fg) {
|
|
350
|
+
color: rgb(94, 129, 172);
|
|
351
|
+
}
|
|
352
|
+
:global(.dark) :global(.ansi-magenta-fg) {
|
|
353
|
+
color: rgb(180, 142, 173);
|
|
354
|
+
}
|
|
355
|
+
:global(.dark) :global(.ansi-cyan-fg) {
|
|
356
|
+
color: rgb(136, 192, 208);
|
|
357
|
+
}
|
|
358
|
+
:global(.dark) :global(.ansi-white-fg) {
|
|
359
|
+
color: rgb(216, 222, 233);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
:global(.dark) :global(.ansi-bright-black-fg) {
|
|
363
|
+
color: rgb(67, 76, 94);
|
|
364
|
+
}
|
|
365
|
+
:global(.dark) :global(.ansi-bright-red-fg) {
|
|
366
|
+
color: rgb(191, 97, 106);
|
|
367
|
+
}
|
|
368
|
+
:global(.dark) :global(.ansi-bright-green-fg) {
|
|
369
|
+
color: rgb(163, 190, 140);
|
|
370
|
+
}
|
|
371
|
+
:global(.dark) :global(.ansi-bright-yellow-fg) {
|
|
372
|
+
color: rgb(235, 203, 139);
|
|
373
|
+
}
|
|
374
|
+
:global(.dark) :global(.ansi-bright-blue-fg) {
|
|
375
|
+
color: rgb(94, 129, 172);
|
|
376
|
+
}
|
|
377
|
+
:global(.dark) :global(.ansi-bright-magenta-fg) {
|
|
378
|
+
color: rgb(180, 142, 173);
|
|
379
|
+
}
|
|
380
|
+
:global(.dark) :global(.ansi-bright-cyan-fg) {
|
|
381
|
+
color: rgb(136, 192, 208);
|
|
382
|
+
}
|
|
383
|
+
:global(.dark) :global(.ansi-bright-white-fg) {
|
|
384
|
+
color: rgb(229, 233, 240);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/* Background colors for dark mode (Nord theme) */
|
|
388
|
+
:global(.dark) :global(.ansi-black-bg) {
|
|
389
|
+
background-color: rgb(46, 52, 64);
|
|
390
|
+
}
|
|
391
|
+
:global(.dark) :global(.ansi-red-bg) {
|
|
392
|
+
background-color: rgb(191, 97, 106);
|
|
393
|
+
}
|
|
394
|
+
:global(.dark) :global(.ansi-green-bg) {
|
|
395
|
+
background-color: rgb(163, 190, 140);
|
|
396
|
+
}
|
|
397
|
+
:global(.dark) :global(.ansi-yellow-bg) {
|
|
398
|
+
background-color: rgb(235, 203, 139);
|
|
399
|
+
}
|
|
400
|
+
:global(.dark) :global(.ansi-blue-bg) {
|
|
401
|
+
background-color: rgb(94, 129, 172);
|
|
402
|
+
}
|
|
403
|
+
:global(.dark) :global(.ansi-magenta-bg) {
|
|
404
|
+
background-color: rgb(180, 142, 173);
|
|
405
|
+
}
|
|
406
|
+
:global(.dark) :global(.ansi-cyan-bg) {
|
|
407
|
+
background-color: rgb(136, 192, 208);
|
|
408
|
+
}
|
|
409
|
+
:global(.dark) :global(.ansi-white-bg) {
|
|
410
|
+
background-color: rgb(216, 222, 233);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
:global(.dark) :global(.ansi-bright-black-bg) {
|
|
414
|
+
background-color: rgb(67, 76, 94);
|
|
415
|
+
}
|
|
416
|
+
:global(.dark) :global(.ansi-bright-red-bg) {
|
|
417
|
+
background-color: rgb(191, 97, 106);
|
|
418
|
+
}
|
|
419
|
+
:global(.dark) :global(.ansi-bright-green-bg) {
|
|
420
|
+
background-color: rgb(163, 190, 140);
|
|
421
|
+
}
|
|
422
|
+
:global(.dark) :global(.ansi-bright-yellow-bg) {
|
|
423
|
+
background-color: rgb(235, 203, 139);
|
|
424
|
+
}
|
|
425
|
+
:global(.dark) :global(.ansi-bright-blue-bg) {
|
|
426
|
+
background-color: rgb(94, 129, 172);
|
|
427
|
+
}
|
|
428
|
+
:global(.dark) :global(.ansi-bright-magenta-bg) {
|
|
429
|
+
background-color: rgb(180, 142, 173);
|
|
430
|
+
}
|
|
431
|
+
:global(.dark) :global(.ansi-bright-cyan-bg) {
|
|
432
|
+
background-color: rgb(136, 192, 208);
|
|
433
|
+
}
|
|
434
|
+
:global(.dark) :global(.ansi-bright-white-bg) {
|
|
435
|
+
background-color: rgb(229, 233, 240);
|
|
436
|
+
}</style>
|
|
@@ -7,7 +7,9 @@ import type Editor from './Editor.svelte';
|
|
|
7
7
|
declare const __propDef: {
|
|
8
8
|
props: {
|
|
9
9
|
mod: FlowModule;
|
|
10
|
-
schema: Schema
|
|
10
|
+
schema: Schema | {
|
|
11
|
+
properties?: Record<string, any>;
|
|
12
|
+
};
|
|
11
13
|
pickableProperties: PickableProperties | undefined;
|
|
12
14
|
lang: Script['language'];
|
|
13
15
|
editor: Editor | undefined;
|
|
@@ -56,7 +56,7 @@ loadResourceTypes();
|
|
|
56
56
|
{#each keys as argName, i (argName)}
|
|
57
57
|
{#if Object.keys(schema.properties ?? {}).includes(argName)}
|
|
58
58
|
<div class="flex gap-2">
|
|
59
|
-
{#if typeof args == 'object' && schema?.properties[argName]}
|
|
59
|
+
{#if typeof args == 'object' && schema?.properties?.[argName]}
|
|
60
60
|
<ArgInput
|
|
61
61
|
{resourceTypes}
|
|
62
62
|
minW={false}
|
|
@@ -66,7 +66,7 @@ loadResourceTypes();
|
|
|
66
66
|
bind:value={args[argName]}
|
|
67
67
|
type={schema.properties[argName].type}
|
|
68
68
|
oneOf={schema.properties[argName].oneOf}
|
|
69
|
-
required={schema
|
|
69
|
+
required={schema?.required?.includes(argName)}
|
|
70
70
|
pattern={schema.properties[argName].pattern}
|
|
71
71
|
bind:editor={editor[argName]}
|
|
72
72
|
bind:valid={inputCheck[argName]}
|
|
@@ -4,7 +4,10 @@ import type { FlowModule } from '../gen';
|
|
|
4
4
|
import type { PickableProperties } from './flows/previousResults';
|
|
5
5
|
declare const __propDef: {
|
|
6
6
|
props: {
|
|
7
|
-
schema: Schema
|
|
7
|
+
schema: Schema | {
|
|
8
|
+
properties?: Record<string, any>;
|
|
9
|
+
required?: string[];
|
|
10
|
+
};
|
|
8
11
|
args?: Record<string, any> | undefined;
|
|
9
12
|
mod: FlowModule;
|
|
10
13
|
pickableProperties: PickableProperties | undefined;
|
|
@@ -31,6 +31,7 @@ function changeTenantId(tenant) {
|
|
|
31
31
|
</script>
|
|
32
32
|
|
|
33
33
|
<div class="flex flex-col gap-1">
|
|
34
|
+
<!-- svelte-ignore a11y-label-has-associated-control -->
|
|
34
35
|
<label class="text-sm flex gap-4 items-center font-medium text-primary"
|
|
35
36
|
><div class="w-[120px]"><IconedResourceType {name} after={true} /></div><Toggle
|
|
36
37
|
checked={enabled}
|
|
@@ -87,16 +88,16 @@ function changeTenantId(tenant) {
|
|
|
87
88
|
</div>
|
|
88
89
|
</CollapseLink>
|
|
89
90
|
{:else if name == 'slack'}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
<CollapseLink text="Instructions">
|
|
92
|
+
<div class="text-sm text-secondary border p-2">
|
|
93
|
+
Create a new App <a href="https://api.slack.com/apps?new_app=1" target="_blank"
|
|
94
|
+
>in Slack API Console</a
|
|
95
|
+
>. Pick "From an app manifest", then YAML and paste manifest template found on
|
|
96
|
+
<a href="https://www.windmill.dev/docs/misc/setup_oauth#slack" target="_blank"
|
|
97
|
+
>Windmill Docs</a
|
|
98
|
+
> and then paste Client ID and Client Secret here.
|
|
99
|
+
</div>
|
|
100
|
+
</CollapseLink>
|
|
100
101
|
{:else if name == 'microsoft'}
|
|
101
102
|
<CollapseLink text="Instructions">
|
|
102
103
|
<div class="text-sm text-secondary border p-2">
|