windmill-client 1.777.1 → 1.779.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.
@@ -5027,6 +5027,15 @@ export type Workspace = {
5027
5027
  domain?: string;
5028
5028
  color?: string;
5029
5029
  parent_workspace_id?: string | null;
5030
+ /**
5031
+ * Archived (soft-deleted) workspace
5032
+ */
5033
+ deleted?: boolean;
5034
+ is_dev_workspace?: boolean;
5035
+ /**
5036
+ * Cosmetic display label of the dev workspace ('dev' | 'staging'); null defaults to 'dev'
5037
+ */
5038
+ dev_workspace_label?: string | null;
5030
5039
  };
5031
5040
  export type DependencyMap = {
5032
5041
  workspace_id?: string | null;
@@ -5201,6 +5210,11 @@ export type Policy = {
5201
5210
  *
5202
5211
  */
5203
5212
  sandbox?: boolean;
5213
+ /**
5214
+ * Raw apps: author-declared scopes for the frontend SDK token. Takes effect only when `sandbox` is also true — an unsandboxed bundle runs with the viewer's own session, so no token is advertised or minted for it and this list stays inert. On a sandboxed app a non-empty list lets viewers mint (after consenting) a short-lived token carrying their own identity restricted to these scopes, handed to the app bundle so `windmill-client` calls run as the viewer. Must be a subset of the server's curated allowlist (jobs:run, jobs:read, users:read, resources:read, variables:read).
5215
+ *
5216
+ */
5217
+ frontend_sdk_scopes?: Array<(string)>;
5204
5218
  };
5205
5219
  export type ListableApp = {
5206
5220
  id: number;
@@ -5302,7 +5316,8 @@ export type AppHistory = {
5302
5316
  };
5303
5317
  export type EmbedTokenResponse = {
5304
5318
  /**
5305
- * Narrowly-scoped embed token for the iframe. Absent for fully anonymous or raw apps, which load without a scoped token.
5319
+ * Scoped token for the app. For sandboxed low-code apps this is the embed token handed to the opaque iframe. For a raw app it is the viewer-scoped frontend SDK token, returned only when the app is sandboxed, its policy declares frontend_sdk_scopes, and the request carries sdk_consent=true. Absent for anonymous viewers and whenever no token is needed.
5320
+ *
5306
5321
  */
5307
5322
  token?: string | null;
5308
5323
  /**
@@ -5310,7 +5325,8 @@ export type EmbedTokenResponse = {
5310
5325
  */
5311
5326
  expiration?: string | null;
5312
5327
  /**
5313
- * Raw apps render single-iframe and skip the opaque-viewer indirection and the embed token entirely.
5328
+ * Raw apps render single-iframe and skip the opaque-viewer indirection and the embed token entirely. A sandboxed one may still carry a token here: the viewer-scoped frontend SDK token, which is a different credential from the low-code embed token.
5329
+ *
5314
5330
  */
5315
5331
  raw_app: boolean;
5316
5332
  /**
@@ -5325,6 +5341,16 @@ export type EmbedTokenResponse = {
5325
5341
  * The resolved workspace; pairs with app_path so apps at the same path in different workspaces don't share a localStorage store.
5326
5342
  */
5327
5343
  workspace_id?: string | null;
5344
+ /**
5345
+ * Sandboxed raw apps: scopes the app policy declares for the frontend SDK token. Null when the app is unsandboxed, however the policy reads. The viewer renders these in the permission prompt; token stays absent until the endpoint is re-called with sdk_consent=true.
5346
+ *
5347
+ */
5348
+ sdk_scopes?: Array<(string)> | null;
5349
+ /**
5350
+ * The caller's own email, returned alongside sdk_scopes so the viewer can key its stored "do not ask again" per person.
5351
+ *
5352
+ */
5353
+ viewer_email?: string | null;
5328
5354
  };
5329
5355
  export type FlowVersion = {
5330
5356
  id: number;
@@ -5527,6 +5553,22 @@ export type DynamicInputData = {
5527
5553
  export type WindmillLargeFile = {
5528
5554
  s3: string;
5529
5555
  };
5556
+ export type StorageFolder = {
5557
+ /**
5558
+ * Full key prefix of the folder, ending with '/'
5559
+ */
5560
+ prefix: string;
5561
+ /**
5562
+ * Last path segment, without the trailing '/'
5563
+ */
5564
+ name: string;
5565
+ };
5566
+ export type StorageFile = {
5567
+ key: string;
5568
+ name: string;
5569
+ size?: number;
5570
+ last_modified?: string;
5571
+ };
5530
5572
  export type WindmillFileMetadata = {
5531
5573
  mime_type?: string;
5532
5574
  size_in_bytes?: number;
@@ -5875,7 +5917,27 @@ export type WorkspaceItemDiff = {
5875
5917
  * If the item exists in the fork workspace
5876
5918
  */
5877
5919
  exists_in_fork: boolean;
5920
+ fork_last_event_kind?: DeployEventKind;
5921
+ fork_last_event_origin?: DeployEventOrigin;
5922
+ source_last_event_kind?: DeployEventKind;
5923
+ source_last_event_origin?: DeployEventOrigin;
5878
5924
  };
5925
+ /**
5926
+ * What a deploy event did to the path it is recorded against: `write` (the path holds an item
5927
+ * after the event), `delete` (it does not), or `rename_from` (the path was vacated by a rename
5928
+ * to another path). Create and update are not distinguished. Omitted when no such event has
5929
+ * been recorded for that side, which counts as no evidence.
5930
+ *
5931
+ */
5932
+ export type DeployEventKind = 'write' | 'delete' | 'rename_from';
5933
+ /**
5934
+ * Who caused a deploy event: `authored` (written in that workspace by the requester) or `sync`
5935
+ * (applied there by a git-sync pull or a workspace-to-workspace deploy). Only an authored
5936
+ * removal is evidence that the workspace dropped the item on purpose. Omitted when no such
5937
+ * event has been recorded for that side.
5938
+ *
5939
+ */
5940
+ export type DeployEventOrigin = 'authored' | 'sync';
5879
5941
  export type CompareSummary = {
5880
5942
  /**
5881
5943
  * Total number of items with differences
@@ -6256,11 +6318,15 @@ export type NativeTriggerWithExternal = {
6256
6318
  */
6257
6319
  summary?: string | null;
6258
6320
  /**
6259
- * Configuration data from the external service
6321
+ * Configuration data from the external service. Null when the service has no such API, or when it could not be read — see external_error.
6260
6322
  */
6261
6323
  external_data: {
6262
6324
  [key: string]: unknown;
6263
- };
6325
+ } | null;
6326
+ /**
6327
+ * Why the external service configuration could not be read. When set, external_data is null and the configuration Windmill stored is returned instead.
6328
+ */
6329
+ external_error?: string | null;
6264
6330
  };
6265
6331
  export type WorkspaceIntegrations = {
6266
6332
  service_name: NativeServiceName;
@@ -6546,6 +6612,11 @@ export type ParameterS3Sig = string;
6546
6612
  */
6547
6613
  export type ParameterS3Exp = string;
6548
6614
  export type ParameterCustomPath = string;
6615
+ /**
6616
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
6617
+ *
6618
+ */
6619
+ export type ParameterSdkConsent = boolean;
6549
6620
  export type ParameterPathId = number;
6550
6621
  export type ParameterPathVersion = number;
6551
6622
  export type ParameterName = string;
@@ -7120,6 +7191,21 @@ export type ListUsersData = {
7120
7191
  workspace: string;
7121
7192
  };
7122
7193
  export type ListUsersResponse = Array<User>;
7194
+ export type ListAddableInstanceUsersData = {
7195
+ /**
7196
+ * number of users to return (default 10, max 100)
7197
+ */
7198
+ perPage?: number;
7199
+ /**
7200
+ * filter users whose email or username contains this string
7201
+ */
7202
+ search?: string;
7203
+ workspace: string;
7204
+ };
7205
+ export type ListAddableInstanceUsersResponse = Array<{
7206
+ email: string;
7207
+ username?: string;
7208
+ }>;
7123
7209
  export type ListUsersUsageData = {
7124
7210
  workspace: string;
7125
7211
  };
@@ -8322,6 +8408,10 @@ export type UpdateProtectionRuleData = {
8322
8408
  * Updated protection rule configuration
8323
8409
  */
8324
8410
  requestBody: {
8411
+ /**
8412
+ * New name for the rule. Omit, or pass the current name, to leave it unchanged. The reserved `dev_workspace_lock` rule cannot be renamed, nor can another rule be renamed onto it.
8413
+ */
8414
+ name?: string;
8325
8415
  rules: ProtectionRules;
8326
8416
  bypass_groups: RuleBypasserGroups;
8327
8417
  bypass_users: RuleBypasserUsers;
@@ -9855,6 +9945,11 @@ export type GetPublicAppByCustomPathResponse = AppWithLastVersion & {
9855
9945
  };
9856
9946
  export type GetAppEmbedTokenByCustomPathData = {
9857
9947
  customPath: string;
9948
+ /**
9949
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
9950
+ *
9951
+ */
9952
+ sdkConsent?: boolean;
9858
9953
  };
9859
9954
  export type GetAppEmbedTokenByCustomPathResponse = EmbedTokenResponse;
9860
9955
  export type GetRawAppDataData = {
@@ -9996,8 +10091,28 @@ export type GetAppByPathData = {
9996
10091
  workspace: string;
9997
10092
  };
9998
10093
  export type GetAppByPathResponse = AppWithLastVersion & UserDraftOverlay;
10094
+ export type MintPreviewSdkTokenData = {
10095
+ requestBody: {
10096
+ /**
10097
+ * App being edited; may not be deployed yet.
10098
+ */
10099
+ path: string;
10100
+ /**
10101
+ * Scopes from the policy being edited. Capped by the curated allowlist and by the caller's own scopes, and minted as the caller, so it grants nothing they could not mint themselves.
10102
+ *
10103
+ */
10104
+ scopes: Array<(string)>;
10105
+ };
10106
+ workspace: string;
10107
+ };
10108
+ export type MintPreviewSdkTokenResponse = string;
9999
10109
  export type GetAppEmbedTokenByPathData = {
10000
10110
  path: string;
10111
+ /**
10112
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
10113
+ *
10114
+ */
10115
+ sdkConsent?: boolean;
10001
10116
  workspace: string;
10002
10117
  };
10003
10118
  export type GetAppEmbedTokenByPathResponse = EmbedTokenResponse;
@@ -10040,6 +10155,11 @@ export type GetPublicAppBySecretData = {
10040
10155
  };
10041
10156
  export type GetPublicAppBySecretResponse = AppWithLastVersion;
10042
10157
  export type GetAppEmbedTokenBySecretData = {
10158
+ /**
10159
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
10160
+ *
10161
+ */
10162
+ sdkConsent?: boolean;
10043
10163
  secret: string;
10044
10164
  workspace: string;
10045
10165
  };
@@ -10090,10 +10210,93 @@ export type UpdateAppData = {
10090
10210
  * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
10091
10211
  */
10092
10212
  skip_draft_deletion?: boolean;
10213
+ /**
10214
+ * When true, this deploy may switch the app between low-code and raw. Without it, deploying a value to an app of the other kind is refused so an app is never converted by accident.
10215
+ */
10216
+ allow_kind_change?: boolean;
10093
10217
  };
10094
10218
  workspace: string;
10095
10219
  };
10096
10220
  export type UpdateAppResponse = string;
10221
+ export type CreateAppRawSourceData = {
10222
+ /**
10223
+ * raw app sources to bundle and deploy
10224
+ */
10225
+ requestBody: {
10226
+ path: string;
10227
+ summary: string;
10228
+ /**
10229
+ * The raw app's value. `files` maps each source path to its content and must contain an entry point; `runnables` and `data` are carried through unchanged.
10230
+ */
10231
+ value: {
10232
+ files: {
10233
+ [key: string]: (string);
10234
+ };
10235
+ runnables?: {
10236
+ [key: string]: unknown;
10237
+ };
10238
+ data?: {
10239
+ [key: string]: unknown;
10240
+ };
10241
+ };
10242
+ policy: Policy;
10243
+ deployment_message?: string;
10244
+ custom_path?: string;
10245
+ /**
10246
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it.
10247
+ */
10248
+ preserve_on_behalf_of?: boolean;
10249
+ labels?: Array<(string)>;
10250
+ /**
10251
+ * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
10252
+ */
10253
+ skip_draft_deletion?: boolean;
10254
+ };
10255
+ workspace: string;
10256
+ };
10257
+ export type CreateAppRawSourceResponse = string;
10258
+ export type UpdateAppRawSourceData = {
10259
+ path: string;
10260
+ /**
10261
+ * raw app sources to bundle and deploy
10262
+ */
10263
+ requestBody: {
10264
+ path?: string;
10265
+ summary?: string;
10266
+ /**
10267
+ * The raw app's value. `files` maps each source path (e.g. `/index.tsx`, `/App.tsx`, `/package.json`) to its content and must contain an entry point (`/index.tsx`, `/index.ts` or `/index.js`); `runnables` and `data` are carried through unchanged.
10268
+ */
10269
+ value: {
10270
+ files: {
10271
+ [key: string]: (string);
10272
+ };
10273
+ runnables?: {
10274
+ [key: string]: unknown;
10275
+ };
10276
+ data?: {
10277
+ [key: string]: unknown;
10278
+ };
10279
+ };
10280
+ policy?: Policy;
10281
+ deployment_message?: string;
10282
+ custom_path?: string;
10283
+ /**
10284
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it.
10285
+ */
10286
+ preserve_on_behalf_of?: boolean;
10287
+ labels?: Array<(string)>;
10288
+ /**
10289
+ * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
10290
+ */
10291
+ skip_draft_deletion?: boolean;
10292
+ /**
10293
+ * When true, this deploy may switch the app between low-code and raw. Without it, deploying a value to an app of the other kind is refused so an app is never converted by accident.
10294
+ */
10295
+ allow_kind_change?: boolean;
10296
+ };
10297
+ workspace: string;
10298
+ };
10299
+ export type UpdateAppRawSourceResponse = string;
10097
10300
  export type UpdateAppRawData = {
10098
10301
  /**
10099
10302
  * update app
@@ -10115,6 +10318,10 @@ export type UpdateAppRawData = {
10115
10318
  * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
10116
10319
  */
10117
10320
  skip_draft_deletion?: boolean;
10321
+ /**
10322
+ * When true, this deploy may switch the app between low-code and raw. Without it, deploying a value to an app of the other kind is refused so an app is never converted by accident.
10323
+ */
10324
+ allow_kind_change?: boolean;
10118
10325
  };
10119
10326
  js?: string;
10120
10327
  css?: string;
@@ -15823,6 +16030,10 @@ export type ListStoredFilesData = {
15823
16030
  * When set, list the files of this object storage resource instead of the workspace storage
15824
16031
  */
15825
16032
  s3ResourcePath?: string;
16033
+ /**
16034
+ * Match keys by path prefix, case-sensitively, on the raw key rather than per path segment (so "a/file1" matches "a/file1000"). Pushed down to the storage provider as a seek; resume with the returned next_marker.
16035
+ */
16036
+ search?: string;
15826
16037
  storage?: string;
15827
16038
  workspace: string;
15828
16039
  };
@@ -15831,6 +16042,35 @@ export type ListStoredFilesResponse = {
15831
16042
  windmill_large_files: Array<WindmillLargeFile>;
15832
16043
  restricted_access?: boolean;
15833
16044
  };
16045
+ export type ListStoredFilesPagedData = {
16046
+ /**
16047
+ * Maximum number of folders and files combined
16048
+ */
16049
+ maxKeys?: number;
16050
+ /**
16051
+ * Opaque token from a previous response, to continue listing the same folder
16052
+ */
16053
+ pageToken?: string;
16054
+ /**
16055
+ * Folder to list; empty for the bucket root, otherwise must end with '/'
16056
+ */
16057
+ prefix?: string;
16058
+ /**
16059
+ * When set, list the files of this object storage resource instead of the workspace storage
16060
+ */
16061
+ s3ResourcePath?: string;
16062
+ storage?: string;
16063
+ workspace: string;
16064
+ };
16065
+ export type ListStoredFilesPagedResponse = {
16066
+ folders: Array<StorageFolder>;
16067
+ files: Array<StorageFile>;
16068
+ /**
16069
+ * When set, more entries remain at this level
16070
+ */
16071
+ next_page_token?: string;
16072
+ restricted_access: boolean;
16073
+ };
15834
16074
  export type LoadFileMetadataData = {
15835
16075
  fileKey: string;
15836
16076
  /**
@@ -17585,6 +17825,30 @@ export type $OpenApiTs = {
17585
17825
  };
17586
17826
  };
17587
17827
  };
17828
+ '/w/{workspace}/users/list_addable': {
17829
+ get: {
17830
+ req: {
17831
+ /**
17832
+ * number of users to return (default 10, max 100)
17833
+ */
17834
+ perPage?: number;
17835
+ /**
17836
+ * filter users whose email or username contains this string
17837
+ */
17838
+ search?: string;
17839
+ workspace: string;
17840
+ };
17841
+ res: {
17842
+ /**
17843
+ * addable instance users
17844
+ */
17845
+ 200: Array<{
17846
+ email: string;
17847
+ username?: string;
17848
+ }>;
17849
+ };
17850
+ };
17851
+ };
17588
17852
  '/w/{workspace}/users/list_usage': {
17589
17853
  get: {
17590
17854
  req: {
@@ -19916,6 +20180,10 @@ export type $OpenApiTs = {
19916
20180
  * Updated protection rule configuration
19917
20181
  */
19918
20182
  requestBody: {
20183
+ /**
20184
+ * New name for the rule. Omit, or pass the current name, to leave it unchanged. The reserved `dev_workspace_lock` rule cannot be renamed, nor can another rule be renamed onto it.
20185
+ */
20186
+ name?: string;
19919
20187
  rules: ProtectionRules;
19920
20188
  bypass_groups: RuleBypasserGroups;
19921
20189
  bypass_users: RuleBypasserUsers;
@@ -22865,6 +23133,11 @@ export type $OpenApiTs = {
22865
23133
  get: {
22866
23134
  req: {
22867
23135
  customPath: string;
23136
+ /**
23137
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
23138
+ *
23139
+ */
23140
+ sdkConsent?: boolean;
22868
23141
  };
22869
23142
  res: {
22870
23143
  /**
@@ -23076,10 +23349,39 @@ export type $OpenApiTs = {
23076
23349
  };
23077
23350
  };
23078
23351
  };
23352
+ '/w/{workspace}/apps/preview_sdk_token': {
23353
+ post: {
23354
+ req: {
23355
+ requestBody: {
23356
+ /**
23357
+ * App being edited; may not be deployed yet.
23358
+ */
23359
+ path: string;
23360
+ /**
23361
+ * Scopes from the policy being edited. Capped by the curated allowlist and by the caller's own scopes, and minted as the caller, so it grants nothing they could not mint themselves.
23362
+ *
23363
+ */
23364
+ scopes: Array<(string)>;
23365
+ };
23366
+ workspace: string;
23367
+ };
23368
+ res: {
23369
+ /**
23370
+ * the token
23371
+ */
23372
+ 200: string;
23373
+ };
23374
+ };
23375
+ };
23079
23376
  '/w/{workspace}/apps/embed_token/p/{path}': {
23080
23377
  get: {
23081
23378
  req: {
23082
23379
  path: string;
23380
+ /**
23381
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
23382
+ *
23383
+ */
23384
+ sdkConsent?: boolean;
23083
23385
  workspace: string;
23084
23386
  };
23085
23387
  res: {
@@ -23185,6 +23487,11 @@ export type $OpenApiTs = {
23185
23487
  '/w/{workspace}/apps_u/embed_token/{secret}': {
23186
23488
  get: {
23187
23489
  req: {
23490
+ /**
23491
+ * Raw apps: the viewer confirmed the frontend-SDK permissions consent banner, so the viewer-scoped SDK token may actually be minted. Without it the response only advertises the declared sdk_scopes.
23492
+ *
23493
+ */
23494
+ sdkConsent?: boolean;
23188
23495
  secret: string;
23189
23496
  workspace: string;
23190
23497
  };
@@ -23289,6 +23596,107 @@ export type $OpenApiTs = {
23289
23596
  * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
23290
23597
  */
23291
23598
  skip_draft_deletion?: boolean;
23599
+ /**
23600
+ * When true, this deploy may switch the app between low-code and raw. Without it, deploying a value to an app of the other kind is refused so an app is never converted by accident.
23601
+ */
23602
+ allow_kind_change?: boolean;
23603
+ };
23604
+ workspace: string;
23605
+ };
23606
+ res: {
23607
+ /**
23608
+ * app updated
23609
+ */
23610
+ 200: string;
23611
+ };
23612
+ };
23613
+ };
23614
+ '/w/{workspace}/apps/create_raw_source': {
23615
+ post: {
23616
+ req: {
23617
+ /**
23618
+ * raw app sources to bundle and deploy
23619
+ */
23620
+ requestBody: {
23621
+ path: string;
23622
+ summary: string;
23623
+ /**
23624
+ * The raw app's value. `files` maps each source path to its content and must contain an entry point; `runnables` and `data` are carried through unchanged.
23625
+ */
23626
+ value: {
23627
+ files: {
23628
+ [key: string]: (string);
23629
+ };
23630
+ runnables?: {
23631
+ [key: string]: unknown;
23632
+ };
23633
+ data?: {
23634
+ [key: string]: unknown;
23635
+ };
23636
+ };
23637
+ policy: Policy;
23638
+ deployment_message?: string;
23639
+ custom_path?: string;
23640
+ /**
23641
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it.
23642
+ */
23643
+ preserve_on_behalf_of?: boolean;
23644
+ labels?: Array<(string)>;
23645
+ /**
23646
+ * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
23647
+ */
23648
+ skip_draft_deletion?: boolean;
23649
+ };
23650
+ workspace: string;
23651
+ };
23652
+ res: {
23653
+ /**
23654
+ * app created
23655
+ */
23656
+ 201: string;
23657
+ };
23658
+ };
23659
+ };
23660
+ '/w/{workspace}/apps/update_raw_source/{path}': {
23661
+ post: {
23662
+ req: {
23663
+ path: string;
23664
+ /**
23665
+ * raw app sources to bundle and deploy
23666
+ */
23667
+ requestBody: {
23668
+ path?: string;
23669
+ summary?: string;
23670
+ /**
23671
+ * The raw app's value. `files` maps each source path (e.g. `/index.tsx`, `/App.tsx`, `/package.json`) to its content and must contain an entry point (`/index.tsx`, `/index.ts` or `/index.js`); `runnables` and `data` are carried through unchanged.
23672
+ */
23673
+ value: {
23674
+ files: {
23675
+ [key: string]: (string);
23676
+ };
23677
+ runnables?: {
23678
+ [key: string]: unknown;
23679
+ };
23680
+ data?: {
23681
+ [key: string]: unknown;
23682
+ };
23683
+ };
23684
+ policy?: Policy;
23685
+ deployment_message?: string;
23686
+ custom_path?: string;
23687
+ /**
23688
+ * When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it.
23689
+ */
23690
+ preserve_on_behalf_of?: boolean;
23691
+ labels?: Array<(string)>;
23692
+ /**
23693
+ * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
23694
+ */
23695
+ skip_draft_deletion?: boolean;
23696
+ /**
23697
+ * When true, this deploy may switch the app between low-code and raw. Without it, deploying a value to an app of the other kind is refused so an app is never converted by accident.
23698
+ */
23699
+ allow_kind_change?: boolean;
23292
23700
  };
23293
23701
  workspace: string;
23294
23702
  };
@@ -23323,6 +23731,10 @@ export type $OpenApiTs = {
23323
23731
  * When true (set by the CLI / git sync), deploying this app does not delete an existing user draft at the same path.
23324
23732
  */
23325
23733
  skip_draft_deletion?: boolean;
23734
+ /**
23735
+ * When true, this deploy may switch the app between low-code and raw. Without it, deploying a value to an app of the other kind is refused so an app is never converted by accident.
23736
+ */
23737
+ allow_kind_change?: boolean;
23326
23738
  };
23327
23739
  js?: string;
23328
23740
  css?: string;
@@ -32500,6 +32912,10 @@ export type $OpenApiTs = {
32500
32912
  * When set, list the files of this object storage resource instead of the workspace storage
32501
32913
  */
32502
32914
  s3ResourcePath?: string;
32915
+ /**
32916
+ * Match keys by path prefix, case-sensitively, on the raw key rather than per path segment (so "a/file1" matches "a/file1000"). Pushed down to the storage provider as a seek; resume with the returned next_marker.
32917
+ */
32918
+ search?: string;
32503
32919
  storage?: string;
32504
32920
  workspace: string;
32505
32921
  };
@@ -32515,6 +32931,44 @@ export type $OpenApiTs = {
32515
32931
  };
32516
32932
  };
32517
32933
  };
32934
+ '/w/{workspace}/job_helpers/list_stored_files_paged': {
32935
+ get: {
32936
+ req: {
32937
+ /**
32938
+ * Maximum number of folders and files combined
32939
+ */
32940
+ maxKeys?: number;
32941
+ /**
32942
+ * Opaque token from a previous response, to continue listing the same folder
32943
+ */
32944
+ pageToken?: string;
32945
+ /**
32946
+ * Folder to list; empty for the bucket root, otherwise must end with '/'
32947
+ */
32948
+ prefix?: string;
32949
+ /**
32950
+ * When set, list the files of this object storage resource instead of the workspace storage
32951
+ */
32952
+ s3ResourcePath?: string;
32953
+ storage?: string;
32954
+ workspace: string;
32955
+ };
32956
+ res: {
32957
+ /**
32958
+ * One page of folders and files at this level
32959
+ */
32960
+ 200: {
32961
+ folders: Array<StorageFolder>;
32962
+ files: Array<StorageFile>;
32963
+ /**
32964
+ * When set, more entries remain at this level
32965
+ */
32966
+ next_page_token?: string;
32967
+ restricted_access: boolean;
32968
+ };
32969
+ };
32970
+ };
32971
+ };
32518
32972
  '/w/{workspace}/job_helpers/load_file_metadata': {
32519
32973
  get: {
32520
32974
  req: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "windmill-client",
3
3
  "description": "Windmill SDK client for browsers and Node.js",
4
- "version": "1.777.1",
4
+ "version": "1.779.0",
5
5
  "author": "Ruben Fiszel",
6
6
  "license": "Apache 2.0",
7
7
  "homepage": "https://github.com/windmill-labs/windmill/tree/main/typescript-client#readme",