windmill-client 1.673.0 → 1.674.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +1 -0
- package/dist/client.mjs +4 -1
- package/dist/core/OpenAPI.mjs +1 -1
- package/dist/index.js +229 -77
- package/dist/services.gen.d.ts +54 -1
- package/dist/services.gen.mjs +118 -17
- package/dist/sqlUtils.d.ts +11 -0
- package/dist/sqlUtils.mjs +108 -60
- package/dist/types.gen.d.ts +336 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type Email = string;
|
|
|
6
6
|
export type Base64 = string;
|
|
7
7
|
export type Resource<S extends string> = any;
|
|
8
8
|
export declare const SHARED_FOLDER = "/shared";
|
|
9
|
+
export declare function workerHasInternalServer(): boolean;
|
|
9
10
|
/**
|
|
10
11
|
* Initialize the Windmill client with authentication token and base URL
|
|
11
12
|
* @param token - Authentication token (defaults to WM_TOKEN env variable)
|
package/dist/client.mjs
CHANGED
|
@@ -5,6 +5,9 @@ import { datatable, ducklake } from "./sqlUtils.mjs";
|
|
|
5
5
|
//#region src/client.ts
|
|
6
6
|
const SHARED_FOLDER = "/shared";
|
|
7
7
|
let mockedApi = void 0;
|
|
8
|
+
function workerHasInternalServer() {
|
|
9
|
+
return /^https?:\/\/(localhost|127\.0\.0\.1)(:|\/|$)/.test(OpenAPI.BASE ?? "");
|
|
10
|
+
}
|
|
8
11
|
/**
|
|
9
12
|
* Initialize the Windmill client with authentication token and base URL
|
|
10
13
|
* @param token - Authentication token (defaults to WM_TOKEN env variable)
|
|
@@ -1271,4 +1274,4 @@ async function commitKafkaOffsets(triggerPath, topic, partition, offset) {
|
|
|
1271
1274
|
}
|
|
1272
1275
|
|
|
1273
1276
|
//#endregion
|
|
1274
|
-
export { SHARED_FOLDER, StepSuspend, WorkflowCtx, _workflowCtx, appendToResultStream, base64ToUint8Array, commitKafkaOffsets, databaseUrlFromResource, denoS3LightClientSettings, getFlowUserState, getIdToken, getInternalState, getPresignedS3PublicUrl, getPresignedS3PublicUrls, getProgress, getResource, getResult, getResultMaybe, getResumeEndpoints, getResumeUrls, getRootJobId, getState, getStatePath, getVariable, getWorkspace, loadS3File, loadS3FileStream, parallel, parseS3Object, requestInteractiveSlackApproval, requestInteractiveTeamsApproval, resolveDefaultResource, runFlow, runFlowAsync, runScript, runScriptAsync, runScriptByHash, runScriptByHashAsync, runScriptByPath, runScriptByPathAsync, setClient, setFlowUserState, setInternalState, setProgress, setResource, setState, setVariable, setWorkflowCtx, signS3Object, signS3Objects, sleep, step, streamResult, task, taskFlow, taskScript, uint8ArrayToBase64, usernameToEmail, waitForApproval, waitJob, workflow, writeS3File };
|
|
1277
|
+
export { SHARED_FOLDER, StepSuspend, WorkflowCtx, _workflowCtx, appendToResultStream, base64ToUint8Array, commitKafkaOffsets, databaseUrlFromResource, denoS3LightClientSettings, getFlowUserState, getIdToken, getInternalState, getPresignedS3PublicUrl, getPresignedS3PublicUrls, getProgress, getResource, getResult, getResultMaybe, getResumeEndpoints, getResumeUrls, getRootJobId, getState, getStatePath, getVariable, getWorkspace, loadS3File, loadS3FileStream, parallel, parseS3Object, requestInteractiveSlackApproval, requestInteractiveTeamsApproval, resolveDefaultResource, runFlow, runFlowAsync, runScript, runScriptAsync, runScriptByHash, runScriptByHashAsync, runScriptByPath, runScriptByPathAsync, setClient, setFlowUserState, setInternalState, setProgress, setResource, setState, setVariable, setWorkflowCtx, signS3Object, signS3Objects, sleep, step, streamResult, task, taskFlow, taskScript, uint8ArrayToBase64, usernameToEmail, waitForApproval, waitJob, workerHasInternalServer, workflow, writeS3File };
|
package/dist/core/OpenAPI.mjs
CHANGED
package/dist/index.js
CHANGED
|
@@ -126,7 +126,7 @@ const OpenAPI = {
|
|
|
126
126
|
PASSWORD: void 0,
|
|
127
127
|
TOKEN: getEnv$1("WM_TOKEN"),
|
|
128
128
|
USERNAME: void 0,
|
|
129
|
-
VERSION: "1.
|
|
129
|
+
VERSION: "1.674.1",
|
|
130
130
|
WITH_CREDENTIALS: true,
|
|
131
131
|
interceptors: {
|
|
132
132
|
request: new Interceptors(),
|
|
@@ -3160,6 +3160,51 @@ var SettingService = class {
|
|
|
3160
3160
|
});
|
|
3161
3161
|
}
|
|
3162
3162
|
/**
|
|
3163
|
+
* test Azure Key Vault connection
|
|
3164
|
+
* @param data The data for the request.
|
|
3165
|
+
* @param data.requestBody Azure Key Vault settings to test
|
|
3166
|
+
* @returns string connection successful
|
|
3167
|
+
* @throws ApiError
|
|
3168
|
+
*/
|
|
3169
|
+
static testAzureKvBackend(data) {
|
|
3170
|
+
return request(OpenAPI, {
|
|
3171
|
+
method: "POST",
|
|
3172
|
+
url: "/settings/test_azure_kv_backend",
|
|
3173
|
+
body: data.requestBody,
|
|
3174
|
+
mediaType: "application/json"
|
|
3175
|
+
});
|
|
3176
|
+
}
|
|
3177
|
+
/**
|
|
3178
|
+
* migrate secrets from database to Azure Key Vault
|
|
3179
|
+
* @param data The data for the request.
|
|
3180
|
+
* @param data.requestBody Azure Key Vault settings for migration target
|
|
3181
|
+
* @returns SecretMigrationReport migration report
|
|
3182
|
+
* @throws ApiError
|
|
3183
|
+
*/
|
|
3184
|
+
static migrateSecretsToAzureKv(data) {
|
|
3185
|
+
return request(OpenAPI, {
|
|
3186
|
+
method: "POST",
|
|
3187
|
+
url: "/settings/migrate_secrets_to_azure_kv",
|
|
3188
|
+
body: data.requestBody,
|
|
3189
|
+
mediaType: "application/json"
|
|
3190
|
+
});
|
|
3191
|
+
}
|
|
3192
|
+
/**
|
|
3193
|
+
* migrate secrets from Azure Key Vault to database
|
|
3194
|
+
* @param data The data for the request.
|
|
3195
|
+
* @param data.requestBody Azure Key Vault settings for migration source
|
|
3196
|
+
* @returns SecretMigrationReport migration report
|
|
3197
|
+
* @throws ApiError
|
|
3198
|
+
*/
|
|
3199
|
+
static migrateSecretsFromAzureKv(data) {
|
|
3200
|
+
return request(OpenAPI, {
|
|
3201
|
+
method: "POST",
|
|
3202
|
+
url: "/settings/migrate_secrets_from_azure_kv",
|
|
3203
|
+
body: data.requestBody,
|
|
3204
|
+
mediaType: "application/json"
|
|
3205
|
+
});
|
|
3206
|
+
}
|
|
3207
|
+
/**
|
|
3163
3208
|
* get secondary storage names
|
|
3164
3209
|
* @param data The data for the request.
|
|
3165
3210
|
* @param data.workspace
|
|
@@ -3471,6 +3516,7 @@ var VariableService = class {
|
|
|
3471
3516
|
* @param data.broadFilter broad search across multiple fields (case-insensitive substring match)
|
|
3472
3517
|
* @param data.page which page to return (start at 1, default 1)
|
|
3473
3518
|
* @param data.perPage number of items to return for a given page (default 30, max 100)
|
|
3519
|
+
* @param data.label Filter by label
|
|
3474
3520
|
* @returns ListableVariable variable list
|
|
3475
3521
|
* @throws ApiError
|
|
3476
3522
|
*/
|
|
@@ -3486,7 +3532,8 @@ var VariableService = class {
|
|
|
3486
3532
|
value: data.value,
|
|
3487
3533
|
broad_filter: data.broadFilter,
|
|
3488
3534
|
page: data.page,
|
|
3489
|
-
per_page: data.perPage
|
|
3535
|
+
per_page: data.perPage,
|
|
3536
|
+
label: data.label
|
|
3490
3537
|
}
|
|
3491
3538
|
});
|
|
3492
3539
|
}
|
|
@@ -3919,6 +3966,7 @@ var ResourceService = class {
|
|
|
3919
3966
|
* @param data.description pattern match filter for description field (case-insensitive)
|
|
3920
3967
|
* @param data.value JSONB subset match filter using base64 encoded JSON
|
|
3921
3968
|
* @param data.broadFilter broad search across multiple fields (case-insensitive substring match)
|
|
3969
|
+
* @param data.label Filter by label
|
|
3922
3970
|
* @returns ListableResource resource list
|
|
3923
3971
|
* @throws ApiError
|
|
3924
3972
|
*/
|
|
@@ -3936,7 +3984,8 @@ var ResourceService = class {
|
|
|
3936
3984
|
path: data.path,
|
|
3937
3985
|
description: data.description,
|
|
3938
3986
|
value: data.value,
|
|
3939
|
-
broad_filter: data.broadFilter
|
|
3987
|
+
broad_filter: data.broadFilter,
|
|
3988
|
+
label: data.label
|
|
3940
3989
|
}
|
|
3941
3990
|
});
|
|
3942
3991
|
}
|
|
@@ -4328,6 +4377,7 @@ var FlowService = class {
|
|
|
4328
4377
|
* If true, show only flows with dedicated_worker enabled.
|
|
4329
4378
|
* If false, show only flows with dedicated_worker disabled.
|
|
4330
4379
|
*
|
|
4380
|
+
* @param data.label Filter by label
|
|
4331
4381
|
* @returns unknown All flow
|
|
4332
4382
|
* @throws ApiError
|
|
4333
4383
|
*/
|
|
@@ -4348,7 +4398,8 @@ var FlowService = class {
|
|
|
4348
4398
|
include_draft_only: data.includeDraftOnly,
|
|
4349
4399
|
with_deployment_msg: data.withDeploymentMsg,
|
|
4350
4400
|
without_description: data.withoutDescription,
|
|
4351
|
-
dedicated_worker: data.dedicatedWorker
|
|
4401
|
+
dedicated_worker: data.dedicatedWorker,
|
|
4402
|
+
label: data.label
|
|
4352
4403
|
}
|
|
4353
4404
|
});
|
|
4354
4405
|
}
|
|
@@ -4765,6 +4816,7 @@ var AppService = class {
|
|
|
4765
4816
|
* @param data.withDeploymentMsg (default false)
|
|
4766
4817
|
* include deployment message
|
|
4767
4818
|
*
|
|
4819
|
+
* @param data.label Filter by label
|
|
4768
4820
|
* @returns ListableApp All apps
|
|
4769
4821
|
* @throws ApiError
|
|
4770
4822
|
*/
|
|
@@ -4782,7 +4834,8 @@ var AppService = class {
|
|
|
4782
4834
|
path_exact: data.pathExact,
|
|
4783
4835
|
starred_only: data.starredOnly,
|
|
4784
4836
|
include_draft_only: data.includeDraftOnly,
|
|
4785
|
-
with_deployment_msg: data.withDeploymentMsg
|
|
4837
|
+
with_deployment_msg: data.withDeploymentMsg,
|
|
4838
|
+
label: data.label
|
|
4786
4839
|
}
|
|
4787
4840
|
});
|
|
4788
4841
|
}
|
|
@@ -5389,6 +5442,7 @@ var ScriptService = class {
|
|
|
5389
5442
|
* If true, show only scripts with dedicated_worker enabled.
|
|
5390
5443
|
* If false, show only scripts with dedicated_worker disabled.
|
|
5391
5444
|
*
|
|
5445
|
+
* @param data.label Filter by label
|
|
5392
5446
|
* @returns Script All scripts
|
|
5393
5447
|
* @throws ApiError
|
|
5394
5448
|
*/
|
|
@@ -5416,7 +5470,8 @@ var ScriptService = class {
|
|
|
5416
5470
|
with_deployment_msg: data.withDeploymentMsg,
|
|
5417
5471
|
languages: data.languages,
|
|
5418
5472
|
without_description: data.withoutDescription,
|
|
5419
|
-
dedicated_worker: data.dedicatedWorker
|
|
5473
|
+
dedicated_worker: data.dedicatedWorker,
|
|
5474
|
+
label: data.label
|
|
5420
5475
|
}
|
|
5421
5476
|
});
|
|
5422
5477
|
}
|
|
@@ -8621,6 +8676,7 @@ var RawAppService = class {
|
|
|
8621
8676
|
* @param data.starredOnly (default false)
|
|
8622
8677
|
* show only the starred items
|
|
8623
8678
|
*
|
|
8679
|
+
* @param data.label Filter by label
|
|
8624
8680
|
* @returns ListableRawApp All raw apps
|
|
8625
8681
|
* @throws ApiError
|
|
8626
8682
|
*/
|
|
@@ -8636,7 +8692,8 @@ var RawAppService = class {
|
|
|
8636
8692
|
created_by: data.createdBy,
|
|
8637
8693
|
path_start: data.pathStart,
|
|
8638
8694
|
path_exact: data.pathExact,
|
|
8639
|
-
starred_only: data.starredOnly
|
|
8695
|
+
starred_only: data.starredOnly,
|
|
8696
|
+
label: data.label
|
|
8640
8697
|
}
|
|
8641
8698
|
});
|
|
8642
8699
|
}
|
|
@@ -8832,6 +8889,7 @@ var ScheduleService = class {
|
|
|
8832
8889
|
* @param data.description pattern match filter for description field (case-insensitive)
|
|
8833
8890
|
* @param data.summary pattern match filter for summary field (case-insensitive)
|
|
8834
8891
|
* @param data.broadFilter broad search across multiple fields (case-insensitive substring match)
|
|
8892
|
+
* @param data.label Filter by label
|
|
8835
8893
|
* @returns Schedule schedule list
|
|
8836
8894
|
* @throws ApiError
|
|
8837
8895
|
*/
|
|
@@ -8850,7 +8908,8 @@ var ScheduleService = class {
|
|
|
8850
8908
|
schedule_path: data.schedulePath,
|
|
8851
8909
|
description: data.description,
|
|
8852
8910
|
summary: data.summary,
|
|
8853
|
-
broad_filter: data.broadFilter
|
|
8911
|
+
broad_filter: data.broadFilter,
|
|
8912
|
+
label: data.label
|
|
8854
8913
|
}
|
|
8855
8914
|
});
|
|
8856
8915
|
}
|
|
@@ -9029,6 +9088,7 @@ var HttpTriggerService = class {
|
|
|
9029
9088
|
* @param data.path filter by path
|
|
9030
9089
|
* @param data.isFlow
|
|
9031
9090
|
* @param data.pathStart
|
|
9091
|
+
* @param data.label Filter by label
|
|
9032
9092
|
* @returns HttpTrigger http trigger list
|
|
9033
9093
|
* @throws ApiError
|
|
9034
9094
|
*/
|
|
@@ -9042,7 +9102,8 @@ var HttpTriggerService = class {
|
|
|
9042
9102
|
per_page: data.perPage,
|
|
9043
9103
|
path: data.path,
|
|
9044
9104
|
is_flow: data.isFlow,
|
|
9045
|
-
path_start: data.pathStart
|
|
9105
|
+
path_start: data.pathStart,
|
|
9106
|
+
label: data.label
|
|
9046
9107
|
}
|
|
9047
9108
|
});
|
|
9048
9109
|
}
|
|
@@ -9187,6 +9248,7 @@ var WebsocketTriggerService = class {
|
|
|
9187
9248
|
* @param data.path filter by path
|
|
9188
9249
|
* @param data.isFlow
|
|
9189
9250
|
* @param data.pathStart
|
|
9251
|
+
* @param data.label Filter by label
|
|
9190
9252
|
* @returns WebsocketTrigger websocket trigger list
|
|
9191
9253
|
* @throws ApiError
|
|
9192
9254
|
*/
|
|
@@ -9200,7 +9262,8 @@ var WebsocketTriggerService = class {
|
|
|
9200
9262
|
per_page: data.perPage,
|
|
9201
9263
|
path: data.path,
|
|
9202
9264
|
is_flow: data.isFlow,
|
|
9203
|
-
path_start: data.pathStart
|
|
9265
|
+
path_start: data.pathStart,
|
|
9266
|
+
label: data.label
|
|
9204
9267
|
}
|
|
9205
9268
|
});
|
|
9206
9269
|
}
|
|
@@ -9345,6 +9408,7 @@ var KafkaTriggerService = class {
|
|
|
9345
9408
|
* @param data.path filter by path
|
|
9346
9409
|
* @param data.isFlow
|
|
9347
9410
|
* @param data.pathStart
|
|
9411
|
+
* @param data.label Filter by label
|
|
9348
9412
|
* @returns KafkaTrigger kafka trigger list
|
|
9349
9413
|
* @throws ApiError
|
|
9350
9414
|
*/
|
|
@@ -9358,7 +9422,8 @@ var KafkaTriggerService = class {
|
|
|
9358
9422
|
per_page: data.perPage,
|
|
9359
9423
|
path: data.path,
|
|
9360
9424
|
is_flow: data.isFlow,
|
|
9361
|
-
path_start: data.pathStart
|
|
9425
|
+
path_start: data.pathStart,
|
|
9426
|
+
label: data.label
|
|
9362
9427
|
}
|
|
9363
9428
|
});
|
|
9364
9429
|
}
|
|
@@ -9542,6 +9607,7 @@ var NatsTriggerService = class {
|
|
|
9542
9607
|
* @param data.path filter by path
|
|
9543
9608
|
* @param data.isFlow
|
|
9544
9609
|
* @param data.pathStart
|
|
9610
|
+
* @param data.label Filter by label
|
|
9545
9611
|
* @returns NatsTrigger nats trigger list
|
|
9546
9612
|
* @throws ApiError
|
|
9547
9613
|
*/
|
|
@@ -9555,7 +9621,8 @@ var NatsTriggerService = class {
|
|
|
9555
9621
|
per_page: data.perPage,
|
|
9556
9622
|
path: data.path,
|
|
9557
9623
|
is_flow: data.isFlow,
|
|
9558
|
-
path_start: data.pathStart
|
|
9624
|
+
path_start: data.pathStart,
|
|
9625
|
+
label: data.label
|
|
9559
9626
|
}
|
|
9560
9627
|
});
|
|
9561
9628
|
}
|
|
@@ -9700,6 +9767,7 @@ var SqsTriggerService = class {
|
|
|
9700
9767
|
* @param data.path filter by path
|
|
9701
9768
|
* @param data.isFlow
|
|
9702
9769
|
* @param data.pathStart
|
|
9770
|
+
* @param data.label Filter by label
|
|
9703
9771
|
* @returns SqsTrigger sqs trigger list
|
|
9704
9772
|
* @throws ApiError
|
|
9705
9773
|
*/
|
|
@@ -9713,7 +9781,8 @@ var SqsTriggerService = class {
|
|
|
9713
9781
|
per_page: data.perPage,
|
|
9714
9782
|
path: data.path,
|
|
9715
9783
|
is_flow: data.isFlow,
|
|
9716
|
-
path_start: data.pathStart
|
|
9784
|
+
path_start: data.pathStart,
|
|
9785
|
+
label: data.label
|
|
9717
9786
|
}
|
|
9718
9787
|
});
|
|
9719
9788
|
}
|
|
@@ -10035,6 +10104,7 @@ var NativeTriggerService = class {
|
|
|
10035
10104
|
* @param data.perPage number of items to return for a given page (default 30, max 100)
|
|
10036
10105
|
* @param data.path filter by script path
|
|
10037
10106
|
* @param data.isFlow filter by is_flow
|
|
10107
|
+
* @param data.label Filter by label
|
|
10038
10108
|
* @returns NativeTrigger native triggers list
|
|
10039
10109
|
* @throws ApiError
|
|
10040
10110
|
*/
|
|
@@ -10050,7 +10120,8 @@ var NativeTriggerService = class {
|
|
|
10050
10120
|
page: data.page,
|
|
10051
10121
|
per_page: data.perPage,
|
|
10052
10122
|
path: data.path,
|
|
10053
|
-
is_flow: data.isFlow
|
|
10123
|
+
is_flow: data.isFlow,
|
|
10124
|
+
label: data.label
|
|
10054
10125
|
}
|
|
10055
10126
|
});
|
|
10056
10127
|
}
|
|
@@ -10267,6 +10338,7 @@ var MqttTriggerService = class {
|
|
|
10267
10338
|
* @param data.path filter by path
|
|
10268
10339
|
* @param data.isFlow
|
|
10269
10340
|
* @param data.pathStart
|
|
10341
|
+
* @param data.label Filter by label
|
|
10270
10342
|
* @returns MqttTrigger mqtt trigger list
|
|
10271
10343
|
* @throws ApiError
|
|
10272
10344
|
*/
|
|
@@ -10280,7 +10352,8 @@ var MqttTriggerService = class {
|
|
|
10280
10352
|
per_page: data.perPage,
|
|
10281
10353
|
path: data.path,
|
|
10282
10354
|
is_flow: data.isFlow,
|
|
10283
|
-
path_start: data.pathStart
|
|
10355
|
+
path_start: data.pathStart,
|
|
10356
|
+
label: data.label
|
|
10284
10357
|
}
|
|
10285
10358
|
});
|
|
10286
10359
|
}
|
|
@@ -10425,6 +10498,7 @@ var GcpTriggerService = class {
|
|
|
10425
10498
|
* @param data.path filter by path
|
|
10426
10499
|
* @param data.isFlow
|
|
10427
10500
|
* @param data.pathStart
|
|
10501
|
+
* @param data.label Filter by label
|
|
10428
10502
|
* @returns GcpTrigger gcp trigger list
|
|
10429
10503
|
* @throws ApiError
|
|
10430
10504
|
*/
|
|
@@ -10438,7 +10512,8 @@ var GcpTriggerService = class {
|
|
|
10438
10512
|
per_page: data.perPage,
|
|
10439
10513
|
path: data.path,
|
|
10440
10514
|
is_flow: data.isFlow,
|
|
10441
|
-
path_start: data.pathStart
|
|
10515
|
+
path_start: data.pathStart,
|
|
10516
|
+
label: data.label
|
|
10442
10517
|
}
|
|
10443
10518
|
});
|
|
10444
10519
|
}
|
|
@@ -10878,6 +10953,7 @@ var PostgresTriggerService = class {
|
|
|
10878
10953
|
* @param data.path filter by path
|
|
10879
10954
|
* @param data.isFlow
|
|
10880
10955
|
* @param data.pathStart
|
|
10956
|
+
* @param data.label Filter by label
|
|
10881
10957
|
* @returns PostgresTrigger postgres trigger list
|
|
10882
10958
|
* @throws ApiError
|
|
10883
10959
|
*/
|
|
@@ -10891,7 +10967,8 @@ var PostgresTriggerService = class {
|
|
|
10891
10967
|
per_page: data.perPage,
|
|
10892
10968
|
path: data.path,
|
|
10893
10969
|
is_flow: data.isFlow,
|
|
10894
|
-
path_start: data.pathStart
|
|
10970
|
+
path_start: data.pathStart,
|
|
10971
|
+
label: data.label
|
|
10895
10972
|
}
|
|
10896
10973
|
});
|
|
10897
10974
|
}
|
|
@@ -11036,6 +11113,7 @@ var EmailTriggerService = class {
|
|
|
11036
11113
|
* @param data.path filter by path
|
|
11037
11114
|
* @param data.isFlow
|
|
11038
11115
|
* @param data.pathStart
|
|
11116
|
+
* @param data.label Filter by label
|
|
11039
11117
|
* @returns EmailTrigger email trigger list
|
|
11040
11118
|
* @throws ApiError
|
|
11041
11119
|
*/
|
|
@@ -11049,7 +11127,8 @@ var EmailTriggerService = class {
|
|
|
11049
11127
|
per_page: data.perPage,
|
|
11050
11128
|
path: data.path,
|
|
11051
11129
|
is_flow: data.isFlow,
|
|
11052
|
-
path_start: data.pathStart
|
|
11130
|
+
path_start: data.pathStart,
|
|
11131
|
+
label: data.label
|
|
11053
11132
|
}
|
|
11054
11133
|
});
|
|
11055
11134
|
}
|
|
@@ -11755,6 +11834,28 @@ var ConfigService = class {
|
|
|
11755
11834
|
url: "/configs/list_available_python_versions"
|
|
11756
11835
|
});
|
|
11757
11836
|
}
|
|
11837
|
+
/**
|
|
11838
|
+
* list all workspace dependencies
|
|
11839
|
+
* @returns unknown a list of workspace dependency summaries
|
|
11840
|
+
* @throws ApiError
|
|
11841
|
+
*/
|
|
11842
|
+
static listAllWorkspaceDependencies() {
|
|
11843
|
+
return request(OpenAPI, {
|
|
11844
|
+
method: "GET",
|
|
11845
|
+
url: "/configs/list_all_workspace_dependencies"
|
|
11846
|
+
});
|
|
11847
|
+
}
|
|
11848
|
+
/**
|
|
11849
|
+
* list all dedicated scripts with their dependencies
|
|
11850
|
+
* @returns unknown a list of dedicated scripts with workspace dependencies
|
|
11851
|
+
* @throws ApiError
|
|
11852
|
+
*/
|
|
11853
|
+
static listAllDedicatedWithDeps() {
|
|
11854
|
+
return request(OpenAPI, {
|
|
11855
|
+
method: "GET",
|
|
11856
|
+
url: "/configs/list_all_dedicated_with_deps"
|
|
11857
|
+
});
|
|
11858
|
+
}
|
|
11758
11859
|
};
|
|
11759
11860
|
var AgentWorkersService = class {
|
|
11760
11861
|
/**
|
|
@@ -13276,81 +13377,94 @@ var McpOauthService = class {
|
|
|
13276
13377
|
//#endregion
|
|
13277
13378
|
//#region src/sqlUtils.ts
|
|
13278
13379
|
/**
|
|
13279
|
-
*
|
|
13280
|
-
*
|
|
13281
|
-
* @returns SQL template function for building parameterized queries
|
|
13282
|
-
* @example
|
|
13283
|
-
* let sql = wmill.datatable()
|
|
13284
|
-
* let name = 'Robin'
|
|
13285
|
-
* let age = 21
|
|
13286
|
-
* await sql`
|
|
13287
|
-
* SELECT * FROM friends
|
|
13288
|
-
* WHERE name = ${name} AND age = ${age}::int
|
|
13289
|
-
* `.fetch()
|
|
13380
|
+
* Wrapper for raw SQL fragments that should be inlined without parameterization.
|
|
13381
|
+
* Created via `sql.raw(value)`.
|
|
13290
13382
|
*/
|
|
13291
|
-
|
|
13292
|
-
|
|
13383
|
+
var RawSql = class {
|
|
13384
|
+
__brand = "RawSql";
|
|
13385
|
+
constructor(value) {
|
|
13386
|
+
this.value = value;
|
|
13387
|
+
}
|
|
13388
|
+
};
|
|
13389
|
+
function datatableProvider(name, schema) {
|
|
13390
|
+
return {
|
|
13391
|
+
providerName: "datatable",
|
|
13392
|
+
language: "postgresql",
|
|
13393
|
+
extraArgs: { database: `datatable://${name}` },
|
|
13394
|
+
formatArgDecl: (argNum) => `-- $${argNum} arg${argNum}`,
|
|
13395
|
+
formatArgUsage: (argNum, explicitType, inferredType) => explicitType !== void 0 ? `$${argNum}` : `$${argNum}::${inferredType}`,
|
|
13396
|
+
preamble: () => schema ? `SET search_path TO "${schema}";\n` : ""
|
|
13397
|
+
};
|
|
13293
13398
|
}
|
|
13294
|
-
|
|
13295
|
-
|
|
13296
|
-
|
|
13297
|
-
|
|
13298
|
-
|
|
13299
|
-
|
|
13300
|
-
|
|
13301
|
-
|
|
13302
|
-
|
|
13303
|
-
* SELECT * FROM friends
|
|
13304
|
-
* WHERE name = ${name} AND age = ${age}
|
|
13305
|
-
* `.fetch()
|
|
13306
|
-
*/
|
|
13307
|
-
function ducklake(name = "main") {
|
|
13308
|
-
return sqlProviderImpl("ducklake", { name });
|
|
13399
|
+
function ducklakeProvider(name) {
|
|
13400
|
+
return {
|
|
13401
|
+
providerName: "ducklake",
|
|
13402
|
+
language: "duckdb",
|
|
13403
|
+
extraArgs: {},
|
|
13404
|
+
formatArgDecl: (argNum, argType) => `-- $arg${argNum} (${argType})`,
|
|
13405
|
+
formatArgUsage: (argNum) => `$arg${argNum}`,
|
|
13406
|
+
preamble: () => `ATTACH 'ducklake://${name}' AS dl;USE dl;\n`
|
|
13407
|
+
};
|
|
13309
13408
|
}
|
|
13310
|
-
function
|
|
13409
|
+
function buildSqlTemplateFunction(provider) {
|
|
13311
13410
|
let sqlFn = (strings, ...values) => {
|
|
13312
|
-
let
|
|
13313
|
-
|
|
13314
|
-
|
|
13315
|
-
|
|
13316
|
-
|
|
13317
|
-
|
|
13318
|
-
|
|
13319
|
-
|
|
13320
|
-
|
|
13321
|
-
|
|
13322
|
-
|
|
13323
|
-
|
|
13324
|
-
|
|
13325
|
-
}
|
|
13326
|
-
|
|
13327
|
-
|
|
13328
|
-
|
|
13329
|
-
|
|
13330
|
-
|
|
13411
|
+
let argIndex = 0;
|
|
13412
|
+
const valueInfos = values.map((v, i) => {
|
|
13413
|
+
if (v instanceof RawSql) return {
|
|
13414
|
+
raw: true,
|
|
13415
|
+
value: v.value,
|
|
13416
|
+
originalIndex: i
|
|
13417
|
+
};
|
|
13418
|
+
argIndex++;
|
|
13419
|
+
return {
|
|
13420
|
+
raw: false,
|
|
13421
|
+
value: v,
|
|
13422
|
+
originalIndex: i,
|
|
13423
|
+
argNum: argIndex
|
|
13424
|
+
};
|
|
13425
|
+
});
|
|
13426
|
+
let argDecls = valueInfos.filter((info) => !info.raw).map((info) => {
|
|
13427
|
+
let argType = parseTypeAnnotation(strings[info.originalIndex], strings[info.originalIndex + 1]) || inferSqlType(info.value);
|
|
13428
|
+
return provider.formatArgDecl(info.argNum, argType);
|
|
13429
|
+
});
|
|
13430
|
+
let content = argDecls.length ? argDecls.join("\n") + "\n" : "";
|
|
13431
|
+
content += provider.preamble();
|
|
13331
13432
|
let contentBody = "";
|
|
13332
13433
|
for (let i = 0; i < strings.length; i++) {
|
|
13333
13434
|
contentBody += strings[i];
|
|
13334
|
-
if (i
|
|
13435
|
+
if (i < valueInfos.length) {
|
|
13436
|
+
let info = valueInfos[i];
|
|
13437
|
+
if (info.raw) contentBody += info.value;
|
|
13438
|
+
else {
|
|
13439
|
+
let explicitType = parseTypeAnnotation(strings[info.originalIndex], strings[info.originalIndex + 1]);
|
|
13440
|
+
let inferredType = inferSqlType(info.value);
|
|
13441
|
+
contentBody += provider.formatArgUsage(info.argNum, explicitType, inferredType);
|
|
13442
|
+
}
|
|
13443
|
+
}
|
|
13335
13444
|
}
|
|
13336
13445
|
content += contentBody;
|
|
13337
13446
|
const args = {
|
|
13338
|
-
...Object.fromEntries(
|
|
13339
|
-
...provider
|
|
13447
|
+
...Object.fromEntries(valueInfos.filter((info) => !info.raw).map((info) => [`arg${info.argNum}`, info.value])),
|
|
13448
|
+
...provider.extraArgs
|
|
13340
13449
|
};
|
|
13341
|
-
const language = {
|
|
13342
|
-
datatable: "postgresql",
|
|
13343
|
-
ducklake: "duckdb"
|
|
13344
|
-
}[provider];
|
|
13345
13450
|
async function fetch$1({ resultCollection } = {}) {
|
|
13346
13451
|
if (resultCollection) content = `-- result_collection=${resultCollection}\n${content}`;
|
|
13347
13452
|
try {
|
|
13348
|
-
let result
|
|
13453
|
+
let result;
|
|
13454
|
+
if (workerHasInternalServer()) result = await JobService.runScriptPreviewInline({
|
|
13349
13455
|
workspace: getWorkspace(),
|
|
13350
13456
|
requestBody: {
|
|
13351
13457
|
args,
|
|
13352
13458
|
content,
|
|
13353
|
-
language
|
|
13459
|
+
language: provider.language
|
|
13460
|
+
}
|
|
13461
|
+
});
|
|
13462
|
+
else result = await JobService.runScriptPreviewAndWaitResult({
|
|
13463
|
+
workspace: getWorkspace(),
|
|
13464
|
+
requestBody: {
|
|
13465
|
+
args,
|
|
13466
|
+
content,
|
|
13467
|
+
language: provider.language
|
|
13354
13468
|
}
|
|
13355
13469
|
});
|
|
13356
13470
|
return result;
|
|
@@ -13361,7 +13475,7 @@ function sqlProviderImpl(provider, { name, schema }) {
|
|
|
13361
13475
|
if (body.startsWith("Internal:")) body = body.slice(9).trim();
|
|
13362
13476
|
if (body.startsWith("Error:")) body = body.slice(6).trim();
|
|
13363
13477
|
if (body.startsWith("datatable")) body = body.slice(9).trim();
|
|
13364
|
-
err = Error(`${provider} ${body}`);
|
|
13478
|
+
err = Error(`${provider.providerName} ${body}`);
|
|
13365
13479
|
err.query = contentBody;
|
|
13366
13480
|
err.request = e.request;
|
|
13367
13481
|
}
|
|
@@ -13383,12 +13497,47 @@ function sqlProviderImpl(provider, { name, schema }) {
|
|
|
13383
13497
|
execute: (params) => fetch$1(params)
|
|
13384
13498
|
};
|
|
13385
13499
|
};
|
|
13386
|
-
|
|
13500
|
+
sqlFn.raw = (value) => new RawSql(value);
|
|
13501
|
+
return sqlFn;
|
|
13502
|
+
}
|
|
13503
|
+
/**
|
|
13504
|
+
* Create a SQL template function for PostgreSQL/datatable queries
|
|
13505
|
+
* @param name - Database/datatable name (default: "main")
|
|
13506
|
+
* @returns SQL template function for building parameterized queries
|
|
13507
|
+
* @example
|
|
13508
|
+
* let sql = wmill.datatable()
|
|
13509
|
+
* let name = 'Robin'
|
|
13510
|
+
* let age = 21
|
|
13511
|
+
* await sql`
|
|
13512
|
+
* SELECT * FROM friends
|
|
13513
|
+
* WHERE name = ${name} AND age = ${age}::int
|
|
13514
|
+
* `.fetch()
|
|
13515
|
+
*/
|
|
13516
|
+
function datatable(name = "main") {
|
|
13517
|
+
let { name: n, schema } = parseName(name);
|
|
13518
|
+
let sqlFn = buildSqlTemplateFunction(datatableProvider(n, schema));
|
|
13519
|
+
sqlFn.query = (sqlString, ...params) => {
|
|
13387
13520
|
let arr = Object.assign([sqlString], { raw: [sqlString] });
|
|
13388
13521
|
return sqlFn(arr, ...params);
|
|
13389
13522
|
};
|
|
13390
13523
|
return sqlFn;
|
|
13391
13524
|
}
|
|
13525
|
+
/**
|
|
13526
|
+
* Create a SQL template function for DuckDB/ducklake queries
|
|
13527
|
+
* @param name - DuckDB database name (default: "main")
|
|
13528
|
+
* @returns SQL template function for building parameterized queries
|
|
13529
|
+
* @example
|
|
13530
|
+
* let sql = wmill.ducklake()
|
|
13531
|
+
* let name = 'Robin'
|
|
13532
|
+
* let age = 21
|
|
13533
|
+
* await sql`
|
|
13534
|
+
* SELECT * FROM friends
|
|
13535
|
+
* WHERE name = ${name} AND age = ${age}
|
|
13536
|
+
* `.fetch()
|
|
13537
|
+
*/
|
|
13538
|
+
function ducklake(name = "main") {
|
|
13539
|
+
return buildSqlTemplateFunction(ducklakeProvider(name));
|
|
13540
|
+
}
|
|
13392
13541
|
function inferSqlType(value) {
|
|
13393
13542
|
if (typeof value === "number" || typeof value === "bigint") {
|
|
13394
13543
|
if (Number.isInteger(value)) return "BIGINT";
|
|
@@ -13420,6 +13569,9 @@ function parseName(name) {
|
|
|
13420
13569
|
//#region src/client.ts
|
|
13421
13570
|
const SHARED_FOLDER = "/shared";
|
|
13422
13571
|
let mockedApi = void 0;
|
|
13572
|
+
function workerHasInternalServer() {
|
|
13573
|
+
return /^https?:\/\/(localhost|127\.0\.0\.1)(:|\/|$)/.test(OpenAPI.BASE ?? "");
|
|
13574
|
+
}
|
|
13423
13575
|
/**
|
|
13424
13576
|
* Initialize the Windmill client with authentication token and base URL
|
|
13425
13577
|
* @param token - Authentication token (defaults to WM_TOKEN env variable)
|