windmill-client 1.814.0 → 1.816.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.
@@ -189,6 +189,14 @@ export type DbtAssetProvenance = {
189
189
  export type UserDraftOverlay = {
190
190
  is_draft: boolean;
191
191
  draft_saved_at?: string;
192
+ /**
193
+ * The deployed version the draft forked from, as text whatever the
194
+ * kind (script hash, flow version id, app version id). Compare to the
195
+ * deployed head to tell a draft that is behind. Absent when there is
196
+ * no draft or it was never forked from a deploy.
197
+ *
198
+ */
199
+ draft_base?: string;
192
200
  no_deployed?: boolean;
193
201
  draft?: {
194
202
  [key: string]: unknown;
@@ -1964,6 +1972,12 @@ export type AIConfig = {
1964
1972
  model_pricing?: {
1965
1973
  [key: string]: ModelPriceOverride;
1966
1974
  };
1975
+ /**
1976
+ * Context window in tokens per `provider:model`, overriding the built-in table the AI chat uses to decide when to compact its history.
1977
+ */
1978
+ context_window_per_model?: {
1979
+ [key: string]: (number);
1980
+ };
1967
1981
  /**
1968
1982
  * Hides the Windmill AI assistant (chat, sessions, code generation, completion, fixes) from the workspace UI. Read from the workspace's own settings even when the providers served fall back to the instance config. AI agent steps and the AI sandbox in flows are unaffected.
1969
1983
  */
@@ -2350,6 +2364,8 @@ export type NewScript = {
2350
2364
  export type ScriptHistory = {
2351
2365
  script_hash: string;
2352
2366
  deployment_msg?: string;
2367
+ created_at?: string;
2368
+ created_by?: string;
2353
2369
  };
2354
2370
  /**
2355
2371
  * The arguments to pass to the script or flow
@@ -4846,8 +4862,170 @@ export type CustomInstanceDbLogs = {
4846
4862
  grant_permissions?: LoggedWizardStatus;
4847
4863
  replication_user?: LoggedWizardStatus;
4848
4864
  replication_user_error?: string;
4865
+ user_connect?: LoggedWizardStatus;
4849
4866
  };
4850
4867
  export type CustomInstanceDbTag = 'ducklake' | 'datatable';
4868
+ export type InstanceDatatableRole = {
4869
+ id: string;
4870
+ name: string;
4871
+ enabled: boolean;
4872
+ };
4873
+ export type DatatableRoleTenants = {
4874
+ id: string;
4875
+ name?: string;
4876
+ tenants: Array<(string)>;
4877
+ };
4878
+ export type DatatablePermissions = {
4879
+ /**
4880
+ * Whether this data table can be put under roles at all. Only one backed by the instance database can: a role is a login on that cluster.
4881
+ */
4882
+ supported: boolean;
4883
+ permissioned: boolean;
4884
+ default_role: string;
4885
+ roles: Array<DatatableRoleTenants>;
4886
+ governing_workspace_id?: string;
4887
+ /**
4888
+ * for a clone, the data table whose roles it takes
4889
+ */
4890
+ clone_of?: {
4891
+ workspace_id: string;
4892
+ datatable: string;
4893
+ };
4894
+ editable: boolean;
4895
+ available_roles: Array<InstanceDatatableRole>;
4896
+ ungoverned_reachers?: Array<{
4897
+ workspace_id: string;
4898
+ datatable: string;
4899
+ }>;
4900
+ };
4901
+ /**
4902
+ * what access is read or changed on
4903
+ */
4904
+ export type AclTarget = AclTargetDatabase | AclTargetSchema | AclTargetTable;
4905
+ export type AclTargetDatabase = {
4906
+ kind: 'database';
4907
+ };
4908
+ export type AclTargetSchema = {
4909
+ kind: 'schema';
4910
+ schema: string;
4911
+ };
4912
+ export type AclTargetTable = {
4913
+ kind: 'table';
4914
+ schema: string;
4915
+ table: string;
4916
+ };
4917
+ /**
4918
+ * one change to plan or apply
4919
+ */
4920
+ export type AclChange = AclChangeSetOwner | AclChangeGrant | AclChangeRevoke;
4921
+ /**
4922
+ * hands the target to role — for a schema, with everything already in it but an extension's members, which stay with the extension
4923
+ */
4924
+ export type AclChangeSetOwner = {
4925
+ type: 'set_owner';
4926
+ /**
4927
+ * a data table role of the instance, or admin
4928
+ */
4929
+ role: string;
4930
+ };
4931
+ export type AclChangeGrant = {
4932
+ type: 'grant';
4933
+ /**
4934
+ * a data table role of the instance, or admin
4935
+ */
4936
+ role: string;
4937
+ privileges: Array<(string)>;
4938
+ scope: AclGrantScope;
4939
+ };
4940
+ export type AclChangeRevoke = {
4941
+ type: 'revoke';
4942
+ /**
4943
+ * a data table role of the instance, other than admin
4944
+ */
4945
+ role: string;
4946
+ privileges: Array<(string)>;
4947
+ scope: AclGrantScope;
4948
+ /**
4949
+ * objects inside the target the revoke covers, empty for the target itself. Only with the target scope; a revoke on all objects of a kind is refused, since it cannot say which grants it takes back.
4950
+ */
4951
+ objects?: Array<AclObject>;
4952
+ };
4953
+ export type AclGrantScope = 'target' | 'all_tables' | 'all_sequences' | 'all_functions' | 'future_tables' | 'future_sequences' | 'future_functions';
4954
+ export type AclChangeRequest = {
4955
+ target: AclTarget;
4956
+ change: AclChange;
4957
+ /**
4958
+ * The statements the plan showed. Required to apply, which plans again and refuses if the result differs.
4959
+ */
4960
+ statements?: Array<(string)>;
4961
+ };
4962
+ export type AclPlan = {
4963
+ statements: Array<(string)>;
4964
+ warnings: Array<(string)>;
4965
+ };
4966
+ export type AclObject = {
4967
+ name: string;
4968
+ /**
4969
+ * TABLE, SEQUENCE, FUNCTION, PROCEDURE or TYPE — what the object is. A revoke turns it into the keyword it takes, ROUTINE for both routine kinds; a type's grants are read only.
4970
+ */
4971
+ kind: string;
4972
+ /**
4973
+ * identity arguments of a routine, which is what tells two of the same name apart
4974
+ */
4975
+ args?: string;
4976
+ };
4977
+ export type AclGrant = {
4978
+ grantee: string;
4979
+ privileges: Array<(string)>;
4980
+ object?: AclObject;
4981
+ /**
4982
+ * set for a default privilege, naming the kind of object it covers (TABLES, SEQUENCES, FUNCTIONS, TYPES, or SCHEMAS). On a schema, the defaults set in that schema; on the database, the ones set database-wide, which apply in every schema and which no schema's own defaults take back.
4983
+ */
4984
+ future?: string;
4985
+ /**
4986
+ * the roles the grant comes from, each once — who granted it, or for a default privilege the role whose future objects it covers. A revoke of some of the grant's privileges takes them back from every source that gave them.
4987
+ */
4988
+ sources: Array<AclSource>;
4989
+ };
4990
+ export type AclSource = {
4991
+ role: string;
4992
+ /**
4993
+ * what role gave of the grant's privileges. A revoke is held back only by a source out of reach that gave some of what it takes back.
4994
+ */
4995
+ privileges: Array<(string)>;
4996
+ /**
4997
+ * whether the data table's connection can take back what role gave. On an object that is the owner, when the connection acts for the owner, and otherwise the connection itself; for a default privilege, a creating role the connection acts for. What a source out of reach gave is not revocable from here; privileges only other sources gave still are.
4998
+ */
4999
+ reachable: boolean;
5000
+ };
5001
+ export type DatatableAclInfo = {
5002
+ owner: string;
5003
+ /**
5004
+ * the roles a change may name; empty unless the caller may change anything
5005
+ */
5006
+ roles: Array<(string)>;
5007
+ /**
5008
+ * whether the caller may plan and apply changes
5009
+ */
5010
+ editable: boolean;
5011
+ /**
5012
+ * whether this is a clone, whose grants stay as they were copied
5013
+ */
5014
+ clone: boolean;
5015
+ /**
5016
+ * whether the server is Postgres 17+, which added the MAINTAIN table privilege
5017
+ */
5018
+ supports_maintain: boolean;
5019
+ /**
5020
+ * the database the target lives in
5021
+ */
5022
+ dbname: string;
5023
+ grants: Array<AclGrant>;
5024
+ /**
5025
+ * a database's schemas, or a schema's tables
5026
+ */
5027
+ children: Array<(string)>;
5028
+ };
4851
5029
  export type CustomInstanceDb = {
4852
5030
  logs: CustomInstanceDbLogs;
4853
5031
  /**
@@ -5617,6 +5795,10 @@ export type UserWorkspaceList = {
5617
5795
  dev_workspace_label?: string | null;
5618
5796
  created_by?: string | null;
5619
5797
  disabled: boolean;
5798
+ /**
5799
+ * Whether this membership is a service account.
5800
+ */
5801
+ is_service_account?: boolean;
5620
5802
  }>;
5621
5803
  };
5622
5804
  export type CreateWorkspace = {
@@ -5642,6 +5824,10 @@ export type CreateWorkspaceFork = {
5642
5824
  * New database name for the fork
5643
5825
  */
5644
5826
  new_dbname: string;
5827
+ /**
5828
+ * What the fork request copies into `new_dbname`, which it creates — with the owners and grants of a data table under roles. This server refuses an entry without it; servers predating it expect `new_dbname` created and filled beforehand.
5829
+ */
5830
+ fork_behavior?: 'schema_only' | 'schema_and_data';
5645
5831
  }>;
5646
5832
  /**
5647
5833
  * Lake names the fork SHARES with the parent (reads and writes the parent's lake directly). Every lake not listed gets the default isolated fork namespace with read-defer to the parent.
@@ -5967,9 +6153,21 @@ export type AppWithLastVersion = {
5967
6153
  bundle_secret?: string;
5968
6154
  labels?: Array<(string)>;
5969
6155
  };
6156
+ /**
6157
+ * What a deploy of an existing app answers with. `version` is the one this call wrote, which is what an editor pins as the fork base of the draft it starts next: reading the head back afterwards cannot tell it from a deploy that landed beside it. A metadata-only update writes none and reports the head it kept.
6158
+ */
6159
+ export type AppDeployed = {
6160
+ /**
6161
+ * Where the app now lives, which differs from the request path on a rename.
6162
+ */
6163
+ path: string;
6164
+ version: number;
6165
+ };
5970
6166
  export type AppHistory = {
5971
6167
  version: number;
5972
6168
  deployment_msg?: string;
6169
+ created_at?: string;
6170
+ created_by?: string;
5973
6171
  };
5974
6172
  export type EmbedTokenResponse = {
5975
6173
  /**
@@ -6013,6 +6211,7 @@ export type FlowVersion = {
6013
6211
  id: number;
6014
6212
  created_at: string;
6015
6213
  deployment_msg?: string;
6214
+ created_by?: string;
6016
6215
  };
6017
6216
  export type SlackToken = {
6018
6217
  access_token: string;
@@ -6113,10 +6312,27 @@ export type DucklakeSettings = {
6113
6312
  export type DataTableSettings = {
6114
6313
  datatables: {
6115
6314
  [key: string]: {
6116
- database: {
6315
+ /**
6316
+ * Set on an entry that owns its database. Absent on a fork's entry, which points at another workspace's data table instead.
6317
+ */
6318
+ database?: {
6117
6319
  resource_type: 'postgresql' | 'instance';
6118
6320
  resource_path?: string;
6119
6321
  };
6322
+ /**
6323
+ * The workspace and data table that govern this one. Server-owned: written by fork creation, and carried across a settings save whatever the request says.
6324
+ */
6325
+ reference?: {
6326
+ workspace_id: string;
6327
+ datatable: string;
6328
+ };
6329
+ /**
6330
+ * On a clone, the data table it was copied from, whose roles it takes. Server-owned like `reference`.
6331
+ */
6332
+ governed_by?: {
6333
+ workspace_id: string;
6334
+ datatable: string;
6335
+ };
6120
6336
  /**
6121
6337
  * Whether the SQL migrations feature is opted in for this data table
6122
6338
  */
@@ -6172,6 +6388,24 @@ export type DataTableTables = {
6172
6388
  [key: string]: Array<(string)>;
6173
6389
  };
6174
6390
  error?: string;
6391
+ /**
6392
+ * on the instance database, the only kind that can be under roles or have its access edited
6393
+ */
6394
+ instance: boolean;
6395
+ permissioned: boolean;
6396
+ /**
6397
+ * the roles the caller may connect as, by name; empty when not under roles
6398
+ */
6399
+ usable_roles: Array<(string)>;
6400
+ default_role: string;
6401
+ /**
6402
+ * whether the role the listing connected as may create schemas
6403
+ */
6404
+ can_create_schema: boolean;
6405
+ /**
6406
+ * the schemas the role the listing connected as may create in
6407
+ */
6408
+ creatable_schemas: Array<(string)>;
6175
6409
  };
6176
6410
  export type DataTableTableSchema = {
6177
6411
  datatable_name: string;
@@ -8538,6 +8772,10 @@ export type GetPublicSettingsResponse = {
8538
8772
  * Whether this workspace admits guest sessions. An app's own `guest` execution mode is inert while this is false.
8539
8773
  */
8540
8774
  guest_access_enabled: boolean;
8775
+ /**
8776
+ * Whether every new fork of this workspace starts with its admins and developers as members, keeping their role.
8777
+ */
8778
+ add_admins_and_developers_to_forks: boolean;
8541
8779
  };
8542
8780
  export type GetSettingsData = {
8543
8781
  workspace: string;
@@ -8591,6 +8829,10 @@ export type GetSettingsResponse = {
8591
8829
  * JWKS URL a guest JWT (`jwt_guest_`) is verified against for this workspace. Mutually exclusive with `guest_jwt_public_key`.
8592
8830
  */
8593
8831
  guest_jwt_jwks_url?: string;
8832
+ /**
8833
+ * Whether every new fork of this workspace starts with its admins and developers as members, keeping their role.
8834
+ */
8835
+ add_admins_and_developers_to_forks?: boolean;
8594
8836
  };
8595
8837
  export type GetDeployToData = {
8596
8838
  workspace: string;
@@ -8929,7 +9171,53 @@ export type ListDataTablesResponse = Array<{
8929
9171
  name: string;
8930
9172
  resource_type: 'postgres' | 'instance';
8931
9173
  resource_path: string;
9174
+ governing_workspace_id?: string;
9175
+ permissioned: boolean;
8932
9176
  }>;
9177
+ export type GetDatatablePermissionsData = {
9178
+ datatableName: string;
9179
+ workspace: string;
9180
+ };
9181
+ export type GetDatatablePermissionsResponse = DatatablePermissions;
9182
+ export type SetDatatablePermissionsData = {
9183
+ datatableName: string;
9184
+ requestBody: {
9185
+ permissioned: boolean;
9186
+ default_role?: string;
9187
+ roles?: Array<DatatableRoleTenants>;
9188
+ };
9189
+ workspace: string;
9190
+ };
9191
+ export type SetDatatablePermissionsResponse = string;
9192
+ export type GetDatatableAclData = {
9193
+ datatableName: string;
9194
+ kind: 'database' | 'schema' | 'table';
9195
+ schema?: string;
9196
+ table?: string;
9197
+ workspace: string;
9198
+ };
9199
+ export type GetDatatableAclResponse = DatatableAclInfo;
9200
+ export type PlanDatatableAclData = {
9201
+ datatableName: string;
9202
+ requestBody: AclChangeRequest;
9203
+ workspace: string;
9204
+ };
9205
+ export type PlanDatatableAclResponse = AclPlan;
9206
+ export type ApplyDatatableAclData = {
9207
+ datatableName: string;
9208
+ requestBody: AclChangeRequest;
9209
+ workspace: string;
9210
+ };
9211
+ export type ApplyDatatableAclResponse = string;
9212
+ export type ListUsableDatatableRolesData = {
9213
+ datatableName: string;
9214
+ workspace: string;
9215
+ };
9216
+ export type ListUsableDatatableRolesResponse = {
9217
+ permissioned: boolean;
9218
+ roles: Array<(string)>;
9219
+ default_role: string;
9220
+ };
8933
9221
  export type ListDataTableSchemasData = {
8934
9222
  workspace: string;
8935
9223
  };
@@ -8948,11 +9236,27 @@ export type TestDataTableConnectionResponse = {
8948
9236
  suggested_search_path?: string;
8949
9237
  };
8950
9238
  export type ListDataTableTablesData = {
9239
+ /**
9240
+ * list only this data table; each listed data table opens a connection to its database
9241
+ */
9242
+ datatableName?: string;
9243
+ /**
9244
+ * the role to list `role_for` as; refused, in that entry's `error`, if the caller may not use it
9245
+ */
9246
+ role?: string;
9247
+ /**
9248
+ * the data table `role` applies to; every other one is listed as its default role
9249
+ */
9250
+ roleFor?: string;
8951
9251
  workspace: string;
8952
9252
  };
8953
9253
  export type ListDataTableTablesResponse = Array<DataTableTables>;
8954
9254
  export type GetDataTableTableSchemaData = {
8955
9255
  datatableName: string;
9256
+ /**
9257
+ * the data table role to read the table as; defaults to the data table's default role
9258
+ */
9259
+ role?: string;
8956
9260
  schemaName: string;
8957
9261
  tableName: string;
8958
9262
  workspace: string;
@@ -8988,7 +9292,15 @@ export type EditDataTableConfigData = {
8988
9292
  };
8989
9293
  workspace: string;
8990
9294
  };
8991
- export type EditDataTableConfigResponse = unknown;
9295
+ export type EditDataTableConfigResponse = {
9296
+ /**
9297
+ * Data tables in other workspaces that were governed by one this save deleted and no longer resolve.
9298
+ */
9299
+ stranded_references?: Array<{
9300
+ workspace_id: string;
9301
+ datatable: string;
9302
+ }>;
9303
+ };
8992
9304
  export type RunDatatableMigrationsData = {
8993
9305
  datatableName: string;
8994
9306
  /**
@@ -9267,6 +9579,16 @@ export type EditGuestAccessData = {
9267
9579
  workspace: string;
9268
9580
  };
9269
9581
  export type EditGuestAccessResponse = string;
9582
+ export type EditAddAdminsAndDevelopersToForksData = {
9583
+ /**
9584
+ * Whether new forks start with this workspace's admins and developers
9585
+ */
9586
+ requestBody: {
9587
+ add_admins_and_developers_to_forks: boolean;
9588
+ };
9589
+ workspace: string;
9590
+ };
9591
+ export type EditAddAdminsAndDevelopersToForksResponse = string;
9270
9592
  export type EditGuestJwtKeyData = {
9271
9593
  /**
9272
9594
  * The guest JWT verification key
@@ -9547,6 +9869,25 @@ export type RefreshCustomInstanceUserPwdResponse = {
9547
9869
  export type ListCustomInstanceDbsResponse = {
9548
9870
  [key: string]: CustomInstanceDb;
9549
9871
  };
9872
+ export type ListInstanceDatatableRolesResponse = Array<InstanceDatatableRole>;
9873
+ export type CreateInstanceDatatableRoleData = {
9874
+ requestBody: {
9875
+ name: string;
9876
+ };
9877
+ };
9878
+ export type CreateInstanceDatatableRoleResponse = InstanceDatatableRole;
9879
+ export type UpdateInstanceDatatableRoleData = {
9880
+ id: string;
9881
+ requestBody: {
9882
+ name?: string;
9883
+ enabled?: boolean;
9884
+ };
9885
+ };
9886
+ export type UpdateInstanceDatatableRoleResponse = InstanceDatatableRole;
9887
+ export type DeleteInstanceDatatableRoleData = {
9888
+ id: string;
9889
+ };
9890
+ export type DeleteInstanceDatatableRoleResponse = unknown;
9550
9891
  export type SetupCustomInstanceDbData = {
9551
9892
  /**
9552
9893
  * The name of the database to create
@@ -10864,7 +11205,15 @@ export type ListFlowsResponse = Array<(Flow & {
10864
11205
  }>;
10865
11206
  })>;
10866
11207
  export type GetFlowHistoryData = {
11208
+ /**
11209
+ * which page to return (start at 1, default 1)
11210
+ */
11211
+ page?: number;
10867
11212
  path: string;
11213
+ /**
11214
+ * number of items to return for a given page (default 30, max 100)
11215
+ */
11216
+ perPage?: number;
10868
11217
  workspace: string;
10869
11218
  };
10870
11219
  export type GetFlowHistoryResponse = Array<FlowVersion>;
@@ -11211,7 +11560,15 @@ export type GetAppLiteByPathData = {
11211
11560
  };
11212
11561
  export type GetAppLiteByPathResponse = AppWithLastVersion;
11213
11562
  export type GetAppHistoryByPathData = {
11563
+ /**
11564
+ * which page to return (start at 1, default 1)
11565
+ */
11566
+ page?: number;
11214
11567
  path: string;
11568
+ /**
11569
+ * number of items to return for a given page (default 30, max 100)
11570
+ */
11571
+ perPage?: number;
11215
11572
  workspace: string;
11216
11573
  };
11217
11574
  export type GetAppHistoryByPathResponse = Array<AppHistory>;
@@ -11311,7 +11668,7 @@ export type UpdateAppData = {
11311
11668
  };
11312
11669
  workspace: string;
11313
11670
  };
11314
- export type UpdateAppResponse = string;
11671
+ export type UpdateAppResponse = AppDeployed;
11315
11672
  export type CreateAppRawSourceData = {
11316
11673
  /**
11317
11674
  * raw app sources to bundle and deploy
@@ -11390,7 +11747,7 @@ export type UpdateAppRawSourceData = {
11390
11747
  };
11391
11748
  workspace: string;
11392
11749
  };
11393
- export type UpdateAppRawSourceResponse = string;
11750
+ export type UpdateAppRawSourceResponse = AppDeployed;
11394
11751
  export type UpdateAppRawData = {
11395
11752
  /**
11396
11753
  * update app
@@ -11423,7 +11780,7 @@ export type UpdateAppRawData = {
11423
11780
  path: string;
11424
11781
  workspace: string;
11425
11782
  };
11426
- export type UpdateAppRawResponse = string;
11783
+ export type UpdateAppRawResponse = AppDeployed;
11427
11784
  export type CustomPathExistsData = {
11428
11785
  customPath: string;
11429
11786
  workspace: string;
@@ -11939,7 +12296,15 @@ export type ListTokensOfScriptData = {
11939
12296
  };
11940
12297
  export type ListTokensOfScriptResponse = Array<TruncatedToken>;
11941
12298
  export type GetScriptHistoryByPathData = {
12299
+ /**
12300
+ * which page to return (start at 1, default 1)
12301
+ */
12302
+ page?: number;
11942
12303
  path: string;
12304
+ /**
12305
+ * number of items to return for a given page (default 30, max 100)
12306
+ */
12307
+ perPage?: number;
11943
12308
  workspace: string;
11944
12309
  };
11945
12310
  export type GetScriptHistoryByPathResponse = Array<ScriptHistory>;
@@ -12252,7 +12617,27 @@ export type UpdateDraftData = {
12252
12617
  export type UpdateDraftResponse = {
12253
12618
  status: 'saved' | 'conflict';
12254
12619
  current_timestamp: string;
12620
+ /**
12621
+ * `saved` only, upsert or delete: where the write landed. Differs from the URL path when the item had moved away from it; the editor follows it there. Absent when a delete found nothing to remove and the caller cannot read the path it moved to.
12622
+ */
12623
+ path?: string;
12255
12624
  };
12625
+ export type MoveDraftData = {
12626
+ /**
12627
+ * script, flow, app or raw_app only.
12628
+ */
12629
+ kind: 'script' | 'flow' | 'app' | 'raw_app';
12630
+ path: string;
12631
+ requestBody: {
12632
+ new_path: string;
12633
+ /**
12634
+ * Also restate the draft's summary.
12635
+ */
12636
+ summary?: string;
12637
+ };
12638
+ workspace: string;
12639
+ };
12640
+ export type MoveDraftResponse = string;
12256
12641
  export type MigrateLegacyDraftData = {
12257
12642
  kind: UserDraftItemKind;
12258
12643
  path: string;
@@ -20731,6 +21116,10 @@ export type $OpenApiTs = {
20731
21116
  * Whether this workspace admits guest sessions. An app's own `guest` execution mode is inert while this is false.
20732
21117
  */
20733
21118
  guest_access_enabled: boolean;
21119
+ /**
21120
+ * Whether every new fork of this workspace starts with its admins and developers as members, keeping their role.
21121
+ */
21122
+ add_admins_and_developers_to_forks: boolean;
20734
21123
  };
20735
21124
  };
20736
21125
  };
@@ -20793,6 +21182,10 @@ export type $OpenApiTs = {
20793
21182
  * JWKS URL a guest JWT (`jwt_guest_`) is verified against for this workspace. Mutually exclusive with `guest_jwt_public_key`.
20794
21183
  */
20795
21184
  guest_jwt_jwks_url?: string;
21185
+ /**
21186
+ * Whether every new fork of this workspace starts with its admins and developers as members, keeping their role.
21187
+ */
21188
+ add_admins_and_developers_to_forks?: boolean;
20796
21189
  };
20797
21190
  };
20798
21191
  };
@@ -21431,10 +21824,108 @@ export type $OpenApiTs = {
21431
21824
  name: string;
21432
21825
  resource_type: 'postgres' | 'instance';
21433
21826
  resource_path: string;
21827
+ governing_workspace_id?: string;
21828
+ permissioned: boolean;
21434
21829
  }>;
21435
21830
  };
21436
21831
  };
21437
21832
  };
21833
+ '/w/{workspace}/workspaces/datatable_permissions/{datatable_name}': {
21834
+ get: {
21835
+ req: {
21836
+ datatableName: string;
21837
+ workspace: string;
21838
+ };
21839
+ res: {
21840
+ /**
21841
+ * the data table's roles and their tenants
21842
+ */
21843
+ 200: DatatablePermissions;
21844
+ };
21845
+ };
21846
+ post: {
21847
+ req: {
21848
+ datatableName: string;
21849
+ requestBody: {
21850
+ permissioned: boolean;
21851
+ default_role?: string;
21852
+ roles?: Array<DatatableRoleTenants>;
21853
+ };
21854
+ workspace: string;
21855
+ };
21856
+ res: {
21857
+ /**
21858
+ * status
21859
+ */
21860
+ 200: string;
21861
+ };
21862
+ };
21863
+ };
21864
+ '/w/{workspace}/workspaces/datatable_acl/{datatable_name}': {
21865
+ get: {
21866
+ req: {
21867
+ datatableName: string;
21868
+ kind: 'database' | 'schema' | 'table';
21869
+ schema?: string;
21870
+ table?: string;
21871
+ workspace: string;
21872
+ };
21873
+ res: {
21874
+ /**
21875
+ * owner and grants
21876
+ */
21877
+ 200: DatatableAclInfo;
21878
+ };
21879
+ };
21880
+ };
21881
+ '/w/{workspace}/workspaces/datatable_acl/{datatable_name}/plan': {
21882
+ post: {
21883
+ req: {
21884
+ datatableName: string;
21885
+ requestBody: AclChangeRequest;
21886
+ workspace: string;
21887
+ };
21888
+ res: {
21889
+ /**
21890
+ * statements that would run, in a single transaction
21891
+ */
21892
+ 200: AclPlan;
21893
+ };
21894
+ };
21895
+ };
21896
+ '/w/{workspace}/workspaces/datatable_acl/{datatable_name}/apply': {
21897
+ post: {
21898
+ req: {
21899
+ datatableName: string;
21900
+ requestBody: AclChangeRequest;
21901
+ workspace: string;
21902
+ };
21903
+ res: {
21904
+ /**
21905
+ * change applied
21906
+ */
21907
+ 200: string;
21908
+ };
21909
+ };
21910
+ };
21911
+ '/w/{workspace}/workspaces/datatable_usable_roles/{datatable_name}': {
21912
+ get: {
21913
+ req: {
21914
+ datatableName: string;
21915
+ workspace: string;
21916
+ };
21917
+ res: {
21918
+ /**
21919
+ * usable roles
21920
+ */
21921
+ 200: {
21922
+ permissioned: boolean;
21923
+ roles: Array<(string)>;
21924
+ default_role: string;
21925
+ };
21926
+ };
21927
+ };
21928
+ };
21438
21929
  '/w/{workspace}/workspaces/list_datatable_schemas': {
21439
21930
  get: {
21440
21931
  req: {
@@ -21473,6 +21964,18 @@ export type $OpenApiTs = {
21473
21964
  '/w/{workspace}/workspaces/list_datatable_tables': {
21474
21965
  get: {
21475
21966
  req: {
21967
+ /**
21968
+ * list only this data table; each listed data table opens a connection to its database
21969
+ */
21970
+ datatableName?: string;
21971
+ /**
21972
+ * the role to list `role_for` as; refused, in that entry's `error`, if the caller may not use it
21973
+ */
21974
+ role?: string;
21975
+ /**
21976
+ * the data table `role` applies to; every other one is listed as its default role
21977
+ */
21978
+ roleFor?: string;
21476
21979
  workspace: string;
21477
21980
  };
21478
21981
  res: {
@@ -21487,6 +21990,10 @@ export type $OpenApiTs = {
21487
21990
  get: {
21488
21991
  req: {
21489
21992
  datatableName: string;
21993
+ /**
21994
+ * the data table role to read the table as; defaults to the data table's default role
21995
+ */
21996
+ role?: string;
21490
21997
  schemaName: string;
21491
21998
  tableName: string;
21492
21999
  workspace: string;
@@ -21544,7 +22051,15 @@ export type $OpenApiTs = {
21544
22051
  /**
21545
22052
  * status
21546
22053
  */
21547
- 200: unknown;
22054
+ 200: {
22055
+ /**
22056
+ * Data tables in other workspaces that were governed by one this save deleted and no longer resolve.
22057
+ */
22058
+ stranded_references?: Array<{
22059
+ workspace_id: string;
22060
+ datatable: string;
22061
+ }>;
22062
+ };
21548
22063
  };
21549
22064
  };
21550
22065
  };
@@ -22042,6 +22557,25 @@ export type $OpenApiTs = {
22042
22557
  };
22043
22558
  };
22044
22559
  };
22560
+ '/w/{workspace}/workspaces/edit_add_admins_and_developers_to_forks': {
22561
+ post: {
22562
+ req: {
22563
+ /**
22564
+ * Whether new forks start with this workspace's admins and developers
22565
+ */
22566
+ requestBody: {
22567
+ add_admins_and_developers_to_forks: boolean;
22568
+ };
22569
+ workspace: string;
22570
+ };
22571
+ res: {
22572
+ /**
22573
+ * status
22574
+ */
22575
+ 200: string;
22576
+ };
22577
+ };
22578
+ };
22045
22579
  '/w/{workspace}/workspaces/edit_guest_jwt_key': {
22046
22580
  post: {
22047
22581
  req: {
@@ -22626,6 +23160,57 @@ export type $OpenApiTs = {
22626
23160
  };
22627
23161
  };
22628
23162
  };
23163
+ '/settings/datatable_roles': {
23164
+ get: {
23165
+ res: {
23166
+ /**
23167
+ * the instance role catalog
23168
+ */
23169
+ 200: Array<InstanceDatatableRole>;
23170
+ };
23171
+ };
23172
+ post: {
23173
+ req: {
23174
+ requestBody: {
23175
+ name: string;
23176
+ };
23177
+ };
23178
+ res: {
23179
+ /**
23180
+ * the created role
23181
+ */
23182
+ 200: InstanceDatatableRole;
23183
+ };
23184
+ };
23185
+ };
23186
+ '/settings/datatable_roles/{id}': {
23187
+ post: {
23188
+ req: {
23189
+ id: string;
23190
+ requestBody: {
23191
+ name?: string;
23192
+ enabled?: boolean;
23193
+ };
23194
+ };
23195
+ res: {
23196
+ /**
23197
+ * the updated role
23198
+ */
23199
+ 200: InstanceDatatableRole;
23200
+ };
23201
+ };
23202
+ delete: {
23203
+ req: {
23204
+ id: string;
23205
+ };
23206
+ res: {
23207
+ /**
23208
+ * deleted
23209
+ */
23210
+ 200: unknown;
23211
+ };
23212
+ };
23213
+ };
22629
23214
  '/settings/setup_custom_instance_pg_database/{name}': {
22630
23215
  post: {
22631
23216
  req: {
@@ -25046,7 +25631,15 @@ export type $OpenApiTs = {
25046
25631
  '/w/{workspace}/flows/history/p/{path}': {
25047
25632
  get: {
25048
25633
  req: {
25634
+ /**
25635
+ * which page to return (start at 1, default 1)
25636
+ */
25637
+ page?: number;
25049
25638
  path: string;
25639
+ /**
25640
+ * number of items to return for a given page (default 30, max 100)
25641
+ */
25642
+ perPage?: number;
25050
25643
  workspace: string;
25051
25644
  };
25052
25645
  res: {
@@ -25681,7 +26274,15 @@ export type $OpenApiTs = {
25681
26274
  '/w/{workspace}/apps/history/p/{path}': {
25682
26275
  get: {
25683
26276
  req: {
26277
+ /**
26278
+ * which page to return (start at 1, default 1)
26279
+ */
26280
+ page?: number;
25684
26281
  path: string;
26282
+ /**
26283
+ * number of items to return for a given page (default 30, max 100)
26284
+ */
26285
+ perPage?: number;
25685
26286
  workspace: string;
25686
26287
  };
25687
26288
  res: {
@@ -25893,7 +26494,7 @@ export type $OpenApiTs = {
25893
26494
  /**
25894
26495
  * app updated
25895
26496
  */
25896
- 200: string;
26497
+ 200: AppDeployed;
25897
26498
  };
25898
26499
  };
25899
26500
  };
@@ -25990,7 +26591,7 @@ export type $OpenApiTs = {
25990
26591
  /**
25991
26592
  * app updated
25992
26593
  */
25993
- 200: string;
26594
+ 200: AppDeployed;
25994
26595
  };
25995
26596
  };
25996
26597
  };
@@ -26032,7 +26633,7 @@ export type $OpenApiTs = {
26032
26633
  /**
26033
26634
  * app updated
26034
26635
  */
26035
- 200: string;
26636
+ 200: AppDeployed;
26036
26637
  };
26037
26638
  };
26038
26639
  };
@@ -26823,7 +27424,15 @@ export type $OpenApiTs = {
26823
27424
  '/w/{workspace}/scripts/history/p/{path}': {
26824
27425
  get: {
26825
27426
  req: {
27427
+ /**
27428
+ * which page to return (start at 1, default 1)
27429
+ */
27430
+ page?: number;
26826
27431
  path: string;
27432
+ /**
27433
+ * number of items to return for a given page (default 30, max 100)
27434
+ */
27435
+ perPage?: number;
26827
27436
  workspace: string;
26828
27437
  };
26829
27438
  res: {
@@ -27333,10 +27942,39 @@ export type $OpenApiTs = {
27333
27942
  200: {
27334
27943
  status: 'saved' | 'conflict';
27335
27944
  current_timestamp: string;
27945
+ /**
27946
+ * `saved` only, upsert or delete: where the write landed. Differs from the URL path when the item had moved away from it; the editor follows it there. Absent when a delete found nothing to remove and the caller cannot read the path it moved to.
27947
+ */
27948
+ path?: string;
27336
27949
  };
27337
27950
  };
27338
27951
  };
27339
27952
  };
27953
+ '/w/{workspace}/drafts/move/{kind}/{path}': {
27954
+ post: {
27955
+ req: {
27956
+ /**
27957
+ * script, flow, app or raw_app only.
27958
+ */
27959
+ kind: 'script' | 'flow' | 'app' | 'raw_app';
27960
+ path: string;
27961
+ requestBody: {
27962
+ new_path: string;
27963
+ /**
27964
+ * Also restate the draft's summary.
27965
+ */
27966
+ summary?: string;
27967
+ };
27968
+ workspace: string;
27969
+ };
27970
+ res: {
27971
+ /**
27972
+ * move result
27973
+ */
27974
+ 200: string;
27975
+ };
27976
+ };
27977
+ };
27340
27978
  '/w/{workspace}/drafts/migrate_legacy/{kind}/{path}': {
27341
27979
  post: {
27342
27980
  req: {