windmill-components 1.504.6 → 1.511.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.
- package/package/ata/index.js +1 -1
- package/package/components/AppConnectInner.svelte +184 -29
- package/package/components/ArgInput.svelte +33 -103
- package/package/components/AuthSettings.svelte +45 -1
- package/package/components/Dev.svelte +31 -24
- package/package/components/DisplayResult.svelte +53 -26
- package/package/components/DisplayResult.svelte.d.ts +1 -1
- package/package/components/DynSelect.svelte +3 -3
- package/package/components/Editor.svelte +115 -88
- package/package/components/Editor.svelte.d.ts +30 -55
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/ErrorOrRecoveryHandler.svelte +73 -67
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +8 -24
- package/package/components/FlowBuilder.svelte +11 -2
- package/package/components/FlowJobResult.svelte +12 -17
- package/package/components/FlowJobResult.svelte.d.ts +5 -18
- package/package/components/FlowPreviewContent.svelte +13 -10
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowPreviewResult.svelte +14 -6
- package/package/components/FlowStatusViewer.svelte +11 -24
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -18
- package/package/components/FlowStatusViewerInner.svelte +110 -131
- package/package/components/FlowStatusViewerInner.svelte.d.ts +20 -18
- package/package/components/GitDiffPreview.svelte +55 -0
- package/package/components/GitDiffPreview.svelte.d.ts +13 -0
- package/package/components/HistoricInputs.svelte +2 -2
- package/package/components/HttpAgentWorkerDrawer.svelte +1 -1
- package/package/components/InitGitRepoPopover.svelte +410 -0
- package/package/components/InitGitRepoPopover.svelte.d.ts +13 -0
- package/package/components/InstanceSetting.svelte +21 -9
- package/package/components/InstanceSettings.svelte +16 -3
- package/package/components/JobLoader.svelte +567 -0
- package/package/components/JobLoader.svelte.d.ts +53 -0
- package/package/components/JobLogs.svelte +6 -4
- package/package/components/JobLogs.svelte.d.ts +5 -18
- package/package/components/JsonEditor.svelte +11 -11
- package/package/components/JsonEditor.svelte.d.ts +14 -56
- package/package/components/Label.svelte +6 -11
- package/package/components/Label.svelte.d.ts +14 -39
- package/package/components/LightweightResourcePicker.svelte +18 -39
- package/package/components/LightweightResourcePicker.svelte.d.ts +6 -22
- package/package/components/LogViewer.svelte +35 -41
- package/package/components/LogViewer.svelte.d.ts +6 -20
- package/package/components/ModulePreviewResultViewer.svelte +3 -1
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -0
- package/package/components/ModuleTest.svelte +16 -11
- package/package/components/NumberTypeNarrowing.svelte +13 -16
- package/package/components/NumberTypeNarrowing.svelte.d.ts +4 -18
- package/package/components/PullGitRepoPopover.svelte +355 -0
- package/package/components/PullGitRepoPopover.svelte.d.ts +18 -0
- package/package/components/ResourceTypePicker.svelte +20 -17
- package/package/components/ResourceTypePicker.svelte.d.ts +7 -6
- package/package/components/S3FilePicker.svelte +5 -3
- package/package/components/SavedInputs.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +4 -3
- package/package/components/ScriptEditor.svelte +34 -31
- package/package/components/ScriptEditor.svelte.d.ts +3 -3
- package/package/components/Section.svelte +7 -20
- package/package/components/Section.svelte.d.ts +20 -47
- package/package/components/ServiceLogsInner.svelte +2 -1
- package/package/components/ServiceLogsInner.svelte.d.ts +1 -0
- package/package/components/SimpleEditor.svelte +4 -4
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/SqlRepl.svelte +0 -1
- package/package/components/Subsection.svelte +10 -12
- package/package/components/Subsection.svelte.d.ts +15 -39
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerGroup.svelte +260 -165
- package/package/components/WorkerGroup.svelte.d.ts +2 -0
- package/package/components/WorkerTagPicker.svelte +3 -3
- package/package/components/WorkerTagSelect.svelte +33 -4
- package/package/components/apps/components/buttons/AppButton.svelte +7 -1
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
- package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +16 -11
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +13 -10
- package/package/components/apps/components/display/AppMenu.svelte +5 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +3 -3
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +3 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +3 -3
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +3 -3
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +3 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +65 -54
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -5
- package/package/components/apps/components/inputs/AppUserResource.svelte +26 -8
- package/package/components/apps/editor/AppEditorHeader.svelte +11 -5
- package/package/components/apps/editor/AppJobsDrawer.svelte +5 -5
- package/package/components/apps/editor/RunnableJobPanel.svelte +4 -4
- package/package/components/apps/editor/component/components.d.ts +12 -0
- package/package/components/apps/editor/component/components.js +19 -7
- package/package/components/assets/AssetButtons.svelte +38 -0
- package/package/components/assets/AssetButtons.svelte.d.ts +15 -0
- package/package/components/assets/AssetsDropdownButton.svelte +60 -72
- package/package/components/assets/AssetsDropdownButton.svelte.d.ts +3 -4
- package/package/components/assets/AssetsUsageDrawer.svelte +10 -10
- package/package/components/assets/JobAssetsViewer.svelte +79 -0
- package/package/components/assets/JobAssetsViewer.svelte.d.ts +7 -0
- package/package/components/assets/README_DEV.md +0 -0
- package/package/components/assets/lib.d.ts +9 -1
- package/package/components/assets/lib.js +48 -7
- package/package/components/common/fileUpload/FileUpload.svelte +126 -84
- package/package/components/common/fileUpload/FileUpload.svelte.d.ts +13 -3
- package/package/components/common/fileUpload/S3ArgInput.svelte +111 -0
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +21 -0
- package/package/components/common/table/ScriptRow.svelte +3 -1
- package/package/components/copilot/AIFormSettings.svelte +3 -4
- package/package/components/copilot/AIFormSettings.svelte.d.ts +5 -19
- package/package/components/copilot/autocomplete/Autocompletor.d.ts +3 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +269 -35
- package/package/components/copilot/autocomplete/request.d.ts +3 -0
- package/package/components/copilot/autocomplete/request.js +15 -7
- package/package/components/copilot/chat/AIChatDisplay.svelte +8 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +13 -8
- package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte +5 -5
- package/package/components/copilot/chat/flow/core.d.ts +1 -1
- package/package/components/copilot/chat/flow/core.js +2 -38
- package/package/components/copilot/chat/navigator/apiTools.d.ts +8 -0
- package/package/components/copilot/chat/navigator/apiTools.js +95 -15
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +2 -1
- package/package/components/copilot/chat/script/core.d.ts +11 -2
- package/package/components/copilot/chat/script/core.js +165 -23
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +56 -0
- package/package/components/copilot/lib.d.ts +1 -0
- package/package/components/copilot/lib.js +30 -9
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +133 -0
- package/package/components/flows/FlowAssetsHandler.svelte.d.ts +14 -0
- package/package/components/flows/content/FlowModuleCache.svelte +4 -4
- package/package/components/flows/content/FlowModuleCache.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleComponent.svelte +16 -19
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +3 -4
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleSleep.svelte +6 -7
- package/package/components/flows/content/FlowModuleSleep.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleSuspend.svelte +19 -17
- package/package/components/flows/content/FlowModuleSuspend.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleTimeout.svelte +4 -4
- package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +4 -18
- package/package/components/flows/flowStore.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +9 -4
- package/package/components/flows/scheduleUtils.js +1 -1
- package/package/components/flows/types.d.ts +2 -1
- package/package/components/graph/FlowGraphV2.svelte +8 -104
- package/package/components/graph/FlowGraphV2.svelte.d.ts +0 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +6 -3
- package/package/components/graph/graphBuilder.svelte.js +35 -9
- package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -5
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +23 -20
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +5 -10
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
- package/package/components/graph/util.js +1 -1
- package/package/components/home/ItemsList.svelte +2 -0
- package/package/components/icons/AssetGenericIcon.svelte +0 -3
- package/package/components/jobs/JobPreview.svelte +10 -6
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +13 -12
- package/package/components/runs/BatchReRunOptionsPane.svelte +5 -1
- package/package/components/runs/JobPreview.svelte +26 -16
- package/package/components/runs/{JobLoader.svelte.d.ts → JobsLoader.svelte.d.ts} +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/scriptEditor/LogPanel.svelte +3 -2
- package/package/components/script_builder.d.ts +2 -2
- package/package/components/settings/CreateToken.svelte +76 -41
- package/package/components/settings/CreateToken.svelte.d.ts +1 -1
- package/package/components/settings/ScopeSelector.svelte +613 -0
- package/package/components/settings/ScopeSelector.svelte.d.ts +8 -0
- package/package/components/settings/TokenDisplay.svelte +103 -0
- package/package/components/settings/TokenDisplay.svelte.d.ts +10 -0
- package/package/components/settings/TokensTable.svelte +70 -349
- package/package/components/sidebar/CriticalAlertModal.svelte +3 -0
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -1
- package/package/components/triggers/TriggerEditorToolbar.svelte +3 -3
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte +55 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +13 -0
- package/package/components/triggers/TriggersEditor.svelte +45 -3
- package/package/components/triggers/TriggersWrapper.svelte +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/gcp/utils.js +9 -1
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +3 -2
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +26 -23
- package/package/components/triggers/http/RouteEditorConfigSection.svelte.d.ts +5 -19
- package/package/components/triggers/http/RouteEditorInner.svelte +219 -175
- package/package/components/triggers/http/RouteEditorInner.svelte.d.ts +6 -2
- package/package/components/triggers/http/utils.js +9 -3
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/kafka/utils.js +9 -1
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte +4 -132
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +2 -5
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +182 -13
- package/package/components/triggers/mqtt/utils.js +9 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/nats/utils.js +9 -1
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +41 -2
- package/package/components/triggers/postgres/utils.js +9 -1
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +38 -92
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/sqs/utils.js +9 -1
- package/package/components/triggers/utils.js +12 -0
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/websocket/utils.js +11 -1
- package/package/components/workspaceSettings/AISettings.svelte +0 -2
- package/package/components/workspaceSettings/FilterList.svelte +56 -0
- package/package/components/workspaceSettings/FilterList.svelte.d.ts +8 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +785 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +18 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +305 -23
- package/package/gen/schemas.gen.js +305 -23
- package/package/gen/services.gen.d.ts +33 -1
- package/package/gen/services.gen.js +66 -2
- package/package/gen/types.gen.d.ts +216 -11
- package/package/history.svelte.js +0 -2
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +16 -10
- package/package/svelte5Utils.svelte.d.ts +1 -0
- package/package/svelte5Utils.svelte.js +25 -18
- package/package/toast.js +10 -0
- package/package/utils.d.ts +3 -2
- package/package/utils.js +20 -5
- package/package.json +11 -11
- package/package/components/ResultJobLoader.svelte +0 -219
- package/package/components/ResultJobLoader.svelte.d.ts +0 -52
- package/package/components/TestJobLoader.svelte +0 -274
- package/package/components/TestJobLoader.svelte.d.ts +0 -43
- package/package/components/icons/AssetVarIcon.svelte +0 -31
- package/package/components/icons/AssetVarIcon.svelte.d.ts +0 -9
- /package/package/components/runs/{JobLoader.svelte → JobsLoader.svelte} +0 -0
|
@@ -13,6 +13,8 @@ import Button from '../common/button/Button.svelte';
|
|
|
13
13
|
import TriggersWrapperV2 from './TriggersWrapper.svelte';
|
|
14
14
|
import { triggerTypeToCaptureKind, CLOUD_DISABLED_TRIGGER_TYPES } from './utils';
|
|
15
15
|
import { isCloudHosted } from '../../cloud';
|
|
16
|
+
import { ScheduleService, WebsocketTriggerService, PostgresTriggerService, KafkaTriggerService, NatsTriggerService, MqttTriggerService, HttpTriggerService, GcpTriggerService, SqsTriggerService } from '../../gen';
|
|
17
|
+
import { sendUserToast } from '../../toast';
|
|
16
18
|
let { noEditor, newItem = false, currentPath, fakeInitialPath = '', hash = undefined, args = {}, initialPath, isFlow, canHavePreprocessor = false, hasPreprocessor = false, isDeployed = false, schema = undefined, noCapture = false, isEditor = true, onDeployTrigger } = $props();
|
|
17
19
|
let config = $state({});
|
|
18
20
|
let width = $state(0);
|
|
@@ -30,10 +32,50 @@ onDestroy(() => {
|
|
|
30
32
|
function onSelect(triggerIndex) {
|
|
31
33
|
triggersState.selectedTriggerIndex = triggerIndex;
|
|
32
34
|
}
|
|
33
|
-
|
|
35
|
+
let deletingTrigger = $state(undefined);
|
|
36
|
+
async function deleteDeployedTrigger(triggerIndex) {
|
|
37
|
+
const { type: triggerType, path: triggerPath } = triggersState.triggers[triggerIndex];
|
|
38
|
+
if (!triggerPath) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const deleteHandlers = {
|
|
42
|
+
schedule: () => ScheduleService.deleteSchedule,
|
|
43
|
+
websocket: () => WebsocketTriggerService.deleteWebsocketTrigger,
|
|
44
|
+
postgres: () => PostgresTriggerService.deletePostgresTrigger,
|
|
45
|
+
kafka: () => KafkaTriggerService.deleteKafkaTrigger,
|
|
46
|
+
nats: () => NatsTriggerService.deleteNatsTrigger,
|
|
47
|
+
gcp: () => GcpTriggerService.deleteGcpTrigger,
|
|
48
|
+
sqs: () => SqsTriggerService.deleteSqsTrigger,
|
|
49
|
+
mqtt: () => MqttTriggerService.deleteMqttTrigger,
|
|
50
|
+
http: () => HttpTriggerService.deleteHttpTrigger
|
|
51
|
+
};
|
|
52
|
+
const deleteHandler = deleteHandlers[triggerType];
|
|
53
|
+
if (deleteHandler && deletingTrigger !== triggerIndex) {
|
|
54
|
+
deletingTrigger = triggerIndex;
|
|
55
|
+
try {
|
|
56
|
+
await deleteHandler()({
|
|
57
|
+
workspace: $workspaceStore ?? '',
|
|
58
|
+
path: triggerPath ?? ''
|
|
59
|
+
});
|
|
60
|
+
sendUserToast(`Successfully deleted ${triggerType} trigger: ${triggerPath}`);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
sendUserToast(error.body || error.message, true);
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
deletingTrigger = undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async function deleteTrigger(triggerIndex) {
|
|
34
71
|
if (triggerIndex === undefined) {
|
|
35
72
|
return;
|
|
36
73
|
}
|
|
74
|
+
// If the trigger is deployed, delete the trigger from the db
|
|
75
|
+
if (!triggersState.triggers[triggerIndex].isDraft &&
|
|
76
|
+
triggersState.triggers[triggerIndex].path) {
|
|
77
|
+
await deleteDeployedTrigger(triggerIndex);
|
|
78
|
+
}
|
|
37
79
|
triggersState.deleteTrigger(triggersCount, triggerIndex);
|
|
38
80
|
triggersState.selectedTriggerIndex = triggersState.triggers.length - 1;
|
|
39
81
|
}
|
|
@@ -110,7 +152,7 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
110
152
|
triggers={triggersState.triggers}
|
|
111
153
|
{isEditor}
|
|
112
154
|
onAddDraftTrigger={handleAddTrigger}
|
|
113
|
-
onDeleteDraft={
|
|
155
|
+
onDeleteDraft={deleteTrigger}
|
|
114
156
|
onReset={handleResetDraft}
|
|
115
157
|
webhookToken={$triggersCount?.webhook_count}
|
|
116
158
|
emailToken={$triggersCount?.email_count}
|
|
@@ -170,7 +212,7 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
170
212
|
{schema}
|
|
171
213
|
{isEditor}
|
|
172
214
|
onDelete={() => {
|
|
173
|
-
|
|
215
|
+
deleteTrigger(triggersState.selectedTriggerIndex)
|
|
174
216
|
}}
|
|
175
217
|
onUpdate={(path) => {
|
|
176
218
|
handleUpdate(triggersState.selectedTriggerIndex, path)
|
|
@@ -34,13 +34,13 @@ let { selectedTrigger, isFlow = false, initialPath, fakeInitialPath, currentPath
|
|
|
34
34
|
{hash}
|
|
35
35
|
token=""
|
|
36
36
|
{args}
|
|
37
|
-
scopes={isFlow ? [`run:
|
|
37
|
+
scopes={isFlow ? [`jobs:run:flows:${currentPath}`] : [`jobs:run:scripts:${currentPath}`]}
|
|
38
38
|
{newItem}
|
|
39
39
|
/>
|
|
40
40
|
{:else if selectedTrigger.type === 'email'}
|
|
41
41
|
<EmailTriggerPanel
|
|
42
42
|
token=""
|
|
43
|
-
scopes={isFlow ? [`run:
|
|
43
|
+
scopes={isFlow ? [`jobs:run:flows:${currentPath}`] : [`jobs:run:scripts:${currentPath}`]}
|
|
44
44
|
path={initialPath || fakeInitialPath}
|
|
45
45
|
{isFlow}
|
|
46
46
|
on:email-domain
|
|
@@ -14,8 +14,11 @@ import GcpTriggerEditorConfigSection from './GcpTriggerEditorConfigSection.svelt
|
|
|
14
14
|
import { untrack } from 'svelte';
|
|
15
15
|
import TriggerEditorToolbar from '../TriggerEditorToolbar.svelte';
|
|
16
16
|
import { saveGcpTriggerFromCfg } from './utils';
|
|
17
|
-
import { handleConfigChange } from '../utils';
|
|
17
|
+
import { getHandlerType, handleConfigChange } from '../utils';
|
|
18
18
|
import { base } from '../../../base';
|
|
19
|
+
import Tabs from '../../common/tabs/Tabs.svelte';
|
|
20
|
+
import Tab from '../../common/tabs/Tab.svelte';
|
|
21
|
+
import TriggerRetriesAndErrorHandler from '../TriggerRetriesAndErrorHandler.svelte';
|
|
19
22
|
let drawer = $state(undefined);
|
|
20
23
|
let is_flow = $state(false);
|
|
21
24
|
let initialPath = $state('');
|
|
@@ -40,6 +43,11 @@ let subscription_mode = $state('create_update');
|
|
|
40
43
|
let initialConfig = undefined;
|
|
41
44
|
let deploymentLoading = $state(false);
|
|
42
45
|
let base_endpoint = $derived(`${window.location.origin}${base}`);
|
|
46
|
+
let optionTabSelected = $state('error_handler');
|
|
47
|
+
let errorHandlerSelected = $state('slack');
|
|
48
|
+
let error_handler_path = $state();
|
|
49
|
+
let error_handler_args = $state({});
|
|
50
|
+
let retry = $state();
|
|
43
51
|
let { useDrawer = true, description = undefined, hideTarget = false, hideTooltips = false, isEditor = false, allowDraft = false, trigger = undefined, isDeployed = false, customLabel = undefined, onConfigChange = undefined, onCaptureConfigChange = undefined, onUpdate = undefined, onDelete = undefined, onReset = undefined, cloudDisabled = false } = $props();
|
|
44
52
|
const gcpConfig = $derived.by(getGcpConfig);
|
|
45
53
|
const saveDisabled = $derived(pathError != '' || emptyString(script_path) || !isValid || !can_write);
|
|
@@ -84,6 +92,10 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
|
|
|
84
92
|
edit = false;
|
|
85
93
|
dirtyPath = false;
|
|
86
94
|
enabled = defaultValues?.enabled ?? false;
|
|
95
|
+
error_handler_path = defaultValues?.error_handler_path ?? undefined;
|
|
96
|
+
error_handler_args = defaultValues?.error_handler_args ?? {};
|
|
97
|
+
retry = defaultValues?.retry ?? undefined;
|
|
98
|
+
errorHandlerSelected = getHandlerType(error_handler_path ?? '');
|
|
87
99
|
}
|
|
88
100
|
finally {
|
|
89
101
|
drawerLoading = false;
|
|
@@ -120,6 +132,10 @@ async function loadTriggerConfig(cfg) {
|
|
|
120
132
|
enabled = cfg?.enabled;
|
|
121
133
|
topic_id = cfg?.topic_id ?? '';
|
|
122
134
|
can_write = canWrite(cfg?.path, cfg?.extra_perms, $userStore);
|
|
135
|
+
error_handler_path = cfg?.error_handler_path;
|
|
136
|
+
error_handler_args = cfg?.error_handler_args ?? {};
|
|
137
|
+
retry = cfg?.retry;
|
|
138
|
+
errorHandlerSelected = getHandlerType(error_handler_path ?? '');
|
|
123
139
|
}
|
|
124
140
|
async function updateTrigger() {
|
|
125
141
|
deploymentLoading = true;
|
|
@@ -146,7 +162,10 @@ function getGcpConfig() {
|
|
|
146
162
|
path,
|
|
147
163
|
script_path,
|
|
148
164
|
enabled,
|
|
149
|
-
is_flow
|
|
165
|
+
is_flow,
|
|
166
|
+
error_handler_path,
|
|
167
|
+
error_handler_args,
|
|
168
|
+
retry
|
|
150
169
|
};
|
|
151
170
|
}
|
|
152
171
|
function getGcpCaptureConfig() {
|
|
@@ -201,14 +220,14 @@ $effect(() => {
|
|
|
201
220
|
</Drawer>
|
|
202
221
|
{:else}
|
|
203
222
|
<Section label={!customLabel ? 'GCP Pub/Sub trigger' : ''} headerClass="grow min-w-0 h-[30px]">
|
|
204
|
-
|
|
223
|
+
{#snippet header()}
|
|
205
224
|
{#if customLabel}
|
|
206
225
|
{@render customLabel()}
|
|
207
226
|
{/if}
|
|
208
|
-
|
|
209
|
-
|
|
227
|
+
{/snippet}
|
|
228
|
+
{#snippet action()}
|
|
210
229
|
{@render actionsButtons()}
|
|
211
|
-
|
|
230
|
+
{/snippet}
|
|
212
231
|
{@render config()}
|
|
213
232
|
</Section>
|
|
214
233
|
{/if}
|
|
@@ -317,6 +336,28 @@ $effect(() => {
|
|
|
317
336
|
headless={true}
|
|
318
337
|
showTestingBadge={isEditor}
|
|
319
338
|
/>
|
|
339
|
+
|
|
340
|
+
<Section label="Advanced" collapsable>
|
|
341
|
+
<div class="flex flex-col gap-4">
|
|
342
|
+
<div class="min-h-96">
|
|
343
|
+
<Tabs bind:selected={optionTabSelected}>
|
|
344
|
+
<Tab value="error_handler">Error Handler</Tab>
|
|
345
|
+
<Tab value="retries">Retries</Tab>
|
|
346
|
+
</Tabs>
|
|
347
|
+
<div class="mt-4">
|
|
348
|
+
<TriggerRetriesAndErrorHandler
|
|
349
|
+
{optionTabSelected}
|
|
350
|
+
{itemKind}
|
|
351
|
+
{can_write}
|
|
352
|
+
bind:errorHandlerSelected
|
|
353
|
+
bind:error_handler_path
|
|
354
|
+
bind:error_handler_args
|
|
355
|
+
bind:retry
|
|
356
|
+
/>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
</Section>
|
|
320
361
|
</div>
|
|
321
362
|
{/if}
|
|
322
363
|
{/snippet}
|
|
@@ -3,6 +3,13 @@ import { sendUserToast } from '../../../toast';
|
|
|
3
3
|
import { get } from 'svelte/store';
|
|
4
4
|
export async function saveGcpTriggerFromCfg(initialPath, cfg, edit, workspace, usedTriggerKinds) {
|
|
5
5
|
try {
|
|
6
|
+
const errorHandlerAndRetries = !cfg.is_flow
|
|
7
|
+
? {
|
|
8
|
+
error_handler_path: cfg.error_handler_path,
|
|
9
|
+
error_handler_args: cfg.error_handler_path ? cfg.error_handler_args : undefined,
|
|
10
|
+
retry: cfg.retry
|
|
11
|
+
}
|
|
12
|
+
: {};
|
|
6
13
|
const requestBody = {
|
|
7
14
|
gcp_resource_path: cfg.gcp_resource_path,
|
|
8
15
|
subscription_mode: cfg.subscription_mode,
|
|
@@ -14,7 +21,8 @@ export async function saveGcpTriggerFromCfg(initialPath, cfg, edit, workspace, u
|
|
|
14
21
|
path: cfg.path,
|
|
15
22
|
script_path: cfg.script_path,
|
|
16
23
|
enabled: cfg.enabled,
|
|
17
|
-
is_flow: cfg.is_flow
|
|
24
|
+
is_flow: cfg.is_flow,
|
|
25
|
+
...errorHandlerAndRetries
|
|
18
26
|
};
|
|
19
27
|
if (edit) {
|
|
20
28
|
await GcpTriggerService.updateGcpTrigger({
|
|
@@ -168,6 +168,7 @@ export function openDrawer() {
|
|
|
168
168
|
token = e.detail
|
|
169
169
|
}}
|
|
170
170
|
newTokenLabel={`openapi-${$userStore?.username ?? 'superadmin'}-${generateRandomString(4)}`}
|
|
171
|
+
scopes={['openapi:write']}
|
|
171
172
|
/>
|
|
172
173
|
</div>
|
|
173
174
|
|
|
@@ -180,7 +181,7 @@ export function openDrawer() {
|
|
|
180
181
|
</Label>
|
|
181
182
|
|
|
182
183
|
<Label label="Example cURL">
|
|
183
|
-
|
|
184
|
+
{#snippet header()}
|
|
184
185
|
<Tooltip>
|
|
185
186
|
Use this cURL command to call the OpenAPI generation endpoint.
|
|
186
187
|
|
|
@@ -196,7 +197,7 @@ export function openDrawer() {
|
|
|
196
197
|
|
|
197
198
|
<br />
|
|
198
199
|
</Tooltip>
|
|
199
|
-
|
|
200
|
+
{/snippet}
|
|
200
201
|
<CopyableCodeBlock
|
|
201
202
|
code={`token=${emptyString(token) ? '' : token}; \\
|
|
202
203
|
curl -X POST "${window.location.origin}${base}/api/w/${$workspaceStore!}/openapi/generate" \\
|
|
@@ -10,19 +10,10 @@ import { getHttpRoute } from './utils';
|
|
|
10
10
|
import { isCloudHosted } from '../../../cloud';
|
|
11
11
|
import Toggle from '../../Toggle.svelte';
|
|
12
12
|
import TestingBadge from '../testingBadge.svelte';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export let route_path;
|
|
16
|
-
export let http_method;
|
|
17
|
-
export let can_write = false;
|
|
18
|
-
export let static_asset_config = undefined;
|
|
19
|
-
export let headless = false;
|
|
20
|
-
export let workspaced_route = false;
|
|
21
|
-
export let isValid = false;
|
|
22
|
-
export let isDraftOnly = true;
|
|
23
|
-
export let showTestingBadge = false;
|
|
13
|
+
import { untrack } from 'svelte';
|
|
14
|
+
let { initialTriggerPath = undefined, dirtyRoutePath = $bindable(false), route_path = $bindable(), http_method = $bindable(), can_write = false, static_asset_config = $bindable(undefined), headless = false, workspaced_route = $bindable(false), isValid = $bindable(false), isDraftOnly = true, showTestingBadge = false } = $props();
|
|
24
15
|
let validateTimeout = undefined;
|
|
25
|
-
let routeError = '';
|
|
16
|
+
let routeError = $state('');
|
|
26
17
|
async function validateRoute(routePath, method, workspaced_route) {
|
|
27
18
|
if (validateTimeout) {
|
|
28
19
|
clearTimeout(validateTimeout);
|
|
@@ -51,22 +42,34 @@ async function routeExists(route_path, method, workspaced_route) {
|
|
|
51
42
|
}
|
|
52
43
|
});
|
|
53
44
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
45
|
+
$effect.pre(() => {
|
|
46
|
+
;
|
|
47
|
+
[route_path, http_method, workspaced_route];
|
|
48
|
+
untrack(() => {
|
|
49
|
+
validateRoute(route_path, http_method, workspaced_route);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
$effect.pre(() => {
|
|
53
|
+
isValid = routeError === '';
|
|
54
|
+
});
|
|
55
|
+
let fullRoute = $derived(getHttpRoute('r', route_path, workspaced_route, $workspaceStore ?? ''));
|
|
56
|
+
$effect.pre(() => {
|
|
57
|
+
!http_method && (http_method = 'post');
|
|
58
|
+
});
|
|
59
|
+
$effect.pre(() => {
|
|
60
|
+
route_path === undefined && (route_path = '');
|
|
61
|
+
});
|
|
62
|
+
let userIsAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin);
|
|
63
|
+
let userCanEditConfig = $derived(userIsAdmin || isDraftOnly); // User can edit config if they are admin or if the trigger is a draft which will not be saved
|
|
61
64
|
</script>
|
|
62
65
|
|
|
63
66
|
<div>
|
|
64
67
|
<Section label="HTTP" {headless}>
|
|
65
|
-
|
|
68
|
+
{#snippet header()}
|
|
66
69
|
{#if showTestingBadge}
|
|
67
70
|
<TestingBadge />
|
|
68
71
|
{/if}
|
|
69
|
-
|
|
72
|
+
{/snippet}
|
|
70
73
|
{#if !userCanEditConfig && isDraftOnly}
|
|
71
74
|
<Alert type="info" title="Admin only" collapsible size="xs">
|
|
72
75
|
Route endpoints can only be edited by workspace admins
|
|
@@ -83,7 +86,7 @@ $: userCanEditConfig = userIsAdmin || isDraftOnly; // User can edit config if th
|
|
|
83
86
|
</div>
|
|
84
87
|
<div class="text-2xs text-tertiary"> ':myparam' for path params </div>
|
|
85
88
|
</div>
|
|
86
|
-
<!-- svelte-ignore
|
|
89
|
+
<!-- svelte-ignore a11y_autofocus -->
|
|
87
90
|
<input
|
|
88
91
|
type="text"
|
|
89
92
|
autocomplete="off"
|
|
@@ -92,7 +95,7 @@ $: userCanEditConfig = userIsAdmin || isDraftOnly; // User can edit config if th
|
|
|
92
95
|
class={routeError === ''
|
|
93
96
|
? ''
|
|
94
97
|
: 'border border-red-700 bg-red-100 border-opacity-30 focus:border-red-700 focus:border-opacity-30 focus-visible:ring-red-700 focus-visible:ring-opacity-25 focus-visible:border-red-700'}
|
|
95
|
-
|
|
98
|
+
oninput={() => {
|
|
96
99
|
dirtyRoutePath = true
|
|
97
100
|
}}
|
|
98
101
|
/>
|
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
interface
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: Props & {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const RouteEditorConfigSection: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
interface Props {
|
|
15
2
|
initialTriggerPath?: string | undefined;
|
|
16
3
|
dirtyRoutePath?: boolean;
|
|
17
4
|
route_path: string | undefined;
|
|
18
|
-
http_method:
|
|
5
|
+
http_method: 'get' | 'post' | 'put' | 'patch' | 'delete' | undefined;
|
|
19
6
|
can_write?: boolean;
|
|
20
7
|
static_asset_config?: {
|
|
21
8
|
s3: string;
|
|
@@ -27,8 +14,7 @@ declare const RouteEditorConfigSection: $$__sveltets_2_IsomorphicComponent<{
|
|
|
27
14
|
isValid?: boolean;
|
|
28
15
|
isDraftOnly?: boolean;
|
|
29
16
|
showTestingBadge?: boolean;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
type RouteEditorConfigSection = InstanceType<typeof RouteEditorConfigSection>;
|
|
17
|
+
}
|
|
18
|
+
declare const RouteEditorConfigSection: import("svelte").Component<Props, {}, "route_path" | "http_method" | "workspaced_route" | "static_asset_config" | "isValid" | "dirtyRoutePath">;
|
|
19
|
+
type RouteEditorConfigSection = ReturnType<typeof RouteEditorConfigSection>;
|
|
34
20
|
export default RouteEditorConfigSection;
|