@cube-dev/platform-client 0.22.0 → 0.23.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/CHANGELOG.md CHANGED
@@ -9,6 +9,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  <!-- Curate public-facing entries here before the next release. -->
11
11
 
12
+ ## [0.23.1] - 2026-10-23
13
+
14
+ ### Changed
15
+
16
+ - `useCubePlatformApiLazyQuery` declares its parameters (`method`, `path`, `init`, `options`, `queryClient`) and is generic over the method and path. Calls stay the same. The hooks no longer infer their parameters over every path, which exceeded the compiler's type instantiation depth.
17
+ - The descriptions of `GET` and `PUT /api/v1/deployments/{deploymentId}/env-vars` now explain that a deployment connects to its databases through environment variables (`CUBEJS_DB_*` for the default data source, `CUBEJS_DS_<NAME>_DB_*` for additional ones) and that saving does not test the connection. Their summaries are now "List environment variables, including the database connection settings" and "Set environment variables, including connecting or changing a database".
18
+ - The descriptions of `POST /build/api/v1/deployments` and `POST /api/v1/deployments/{deploymentId}/creation-step/advance` now say that neither connects a data source; set the database variables with `PUT /api/v1/deployments/{deploymentId}/env-vars`.
19
+
20
+ ## [0.23.0] - 2026-10-22
21
+
22
+ ### Added
23
+
24
+ - `outputPath` and `namePrefix` on `StartDbtSyncInput` (`POST /api/v1/deployments/{deploymentId}/dbt-sync`) override the deployment's saved Output path and Name prefix for one sync, so several dbt projects can sync into one deployment, each into its own folder with its own prefix.
25
+
26
+ ### Changed
27
+
28
+ - A dbt sync that commits to a branch now deletes stale cube files only directly inside the folder it writes its cubes into, and leaves that folder's subfolders alone, so another project's folder nested under it survives the sync. An output path written with a trailing slash, such as `/model/cubes/dbt/`, no longer skips that cleanup: files there that no longer match a dbt model are now deleted.
29
+ - `POST /api/v1/deployments/{deploymentId}/dashboard-exports` now requires **read** access to the dashboard's workbook and the **download data** permission on the deployment, instead of **manage** access to the workbook. **Manage** access to the workbook still passes, so callers that were allowed before keep working.
30
+
12
31
  ## [0.22.0] - 2026-10-20
13
32
  ### Added
14
33
 
@@ -35,7 +35,7 @@ export declare const useCubePlatformApiQuery: UseQueryMethodWithAnyError;
35
35
  export declare const useCubePlatformApiSuspenseQuery: CubePlatformQueryClient['useSuspenseQuery'];
36
36
  export declare const useCubePlatformApiMutation: CubePlatformQueryClient['useMutation'];
37
37
  export declare const useCubePlatformApiQueryOptions: CubePlatformQueryClient['queryOptions'];
38
- type UseQueryParams = Parameters<CubePlatformQueryClient['useQuery']>;
39
- export declare function useCubePlatformApiLazyQuery(...args: UseQueryParams): UseCubePlatformApiLazyQueryResult<unknown, unknown>;
38
+ type LazyQueryOptions = Omit<UseQueryOptions, 'queryKey' | 'queryFn'>;
39
+ export declare function useCubePlatformApiLazyQuery<Method extends HttpMethod, Path extends PathsWithMethod<paths, Method>, Init extends MaybeOptionalInit<paths[Path], Method>>(method: Method, path: Path, ...[init, options, reactQueryClient]: RequiredKeysOf<Init> extends never ? [InitWithUnknowns<Init>?, LazyQueryOptions?, QueryClient?] : [InitWithUnknowns<Init>, LazyQueryOptions?, QueryClient?]): UseCubePlatformApiLazyQueryResult<unknown, unknown>;
40
40
  export {};
41
41
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react-query/hooks.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAGpE,KAAK,uBAAuB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAGzD,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAChE,KAAK,qBAAqB,CAAC,KAAK,EAAE,OAAO,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAIlG,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhD;;;GAGG;AAEH,KAAK,0BAA0B,GAAG,CAChC,MAAM,SAAS,UAAU,EACzB,IAAI,SAAS,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAC3C,IAAI,SAAS,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EACnD,QAAQ,SAAS,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAC7F,OAAO,SAAS,IAAI,CAClB,eAAe,CACb,QAAQ,CAAC,MAAM,CAAC,EAEhB,GAAG,EACH,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAE1D,GAAG,CACJ,EACD,UAAU,GAAG,SAAS,CACvB,EAED,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,EACT,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,KAAK,GAC/D,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,GACjD,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,KACjD,cAAc,CACjB,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAE1D,GAAG,CACJ,CAAC;AAqBF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,uBAAuB,CAE5D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAOnB,0BAA0B,CAAC;AAE5C,eAAO,MAAM,+BAA+B,EAAE,uBAAuB,CAAC,kBAAkB,CAQvC,CAAC;AAIlD,eAAO,MAAM,0BAA0B,EAAE,uBAAuB,CAAC,aAAa,CA8BvB,CAAC;AAExD,eAAO,MAAM,8BAA8B,EAAE,uBAAuB,CAAC,cAAc,CAO3B,CAAC;AAEzD,KAAK,cAAc,GAAG,UAAU,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;AAEtE,wBAAgB,2BAA2B,CACzC,GAAG,IAAI,EAAE,cAAc,GACtB,iCAAiC,CAAC,OAAO,EAAE,OAAO,CAAC,CAyBrD"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react-query/hooks.ts"],"names":[],"mappings":"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"}
@@ -34,13 +34,14 @@ export function useCubePlatformApi() {
34
34
  export const useCubePlatformApiQuery = ((...args) => {
35
35
  // eslint-disable-next-line react-hooks/rules-of-hooks
36
36
  const queryClient = useCubePlatformApiContext();
37
+ // Untyped inside: inferring the client's parameters over every path exceeds
38
+ // the compiler's instantiation depth. The cast below is the public type.
37
39
  return queryClient.useQuery(...args);
38
40
  });
39
41
  export const useCubePlatformApiSuspenseQuery = ((...args) => {
40
42
  // eslint-disable-next-line react-hooks/rules-of-hooks
41
43
  const queryClient = useCubePlatformApiContext();
42
- const result = queryClient.useSuspenseQuery(...args);
43
- return result;
44
+ return queryClient.useSuspenseQuery(...args);
44
45
  });
45
46
  export const useCubePlatformApiMutation = ((method, path, options, queryClient) => {
46
47
  const { client, ...restOptions } = options ?? {};
@@ -65,11 +66,9 @@ export const useCubePlatformApiQueryOptions = ((...args) => {
65
66
  const queryClient = useCubePlatformApiContext();
66
67
  return queryClient.queryOptions(...args);
67
68
  });
68
- export function useCubePlatformApiLazyQuery(...args) {
69
- const [method, path, init, options, reactQueryClient] = args;
70
- const result = useCubePlatformApiQuery(method, path, init,
71
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
- { ...options, enabled: false }, reactQueryClient);
69
+ export function useCubePlatformApiLazyQuery(method, path, ...[init, options, reactQueryClient]) {
70
+ const useQuery = useCubePlatformApiQuery;
71
+ const result = useQuery(method, path, init, { ...options, enabled: false }, reactQueryClient);
73
72
  const trigger = useCallback(async () => {
74
73
  const { data } = await result.refetch();
75
74
  return data;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/react-query/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/react-query/hooks.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -130,6 +130,92 @@ export interface paths {
130
130
  patch: operations["ScimUsersPublicController.patchUser"];
131
131
  trace?: never;
132
132
  };
133
+ "/api/v1/access-requests/": {
134
+ parameters: {
135
+ query?: never;
136
+ header?: never;
137
+ path?: never;
138
+ cookie?: never;
139
+ };
140
+ /**
141
+ * List pending access requests
142
+ * @description List the pending access requests for a workbook, dashboard, or folder, oldest first. Requires permission to share it. This is currently in preview — reach out to the Cube support team to activate it for your account.
143
+ */
144
+ get: operations["AccessRequestsPublicController.listAccessRequests"];
145
+ put?: never;
146
+ /**
147
+ * Request access
148
+ * @description Ask for access to a workbook, dashboard, or folder you cannot open. The owner and the users with Full access to it get an inbox notification.
149
+ *
150
+ * A dashboard request is a request for its workbook. While a request is pending, sending it again returns the same request and notifies nobody. Returns `409` if you already have the requested access. This is currently in preview — reach out to the Cube support team to activate it for your account.
151
+ */
152
+ post: operations["AccessRequestsPublicController.createAccessRequest"];
153
+ delete?: never;
154
+ options?: never;
155
+ head?: never;
156
+ patch?: never;
157
+ trace?: never;
158
+ };
159
+ "/api/v1/access-requests/mine": {
160
+ parameters: {
161
+ query?: never;
162
+ header?: never;
163
+ path?: never;
164
+ cookie?: never;
165
+ };
166
+ /**
167
+ * Get my pending access request
168
+ * @description Return your pending access request for a workbook, dashboard, or folder, or `null` when there is none. This is currently in preview — reach out to the Cube support team to activate it for your account.
169
+ */
170
+ get: operations["AccessRequestsPublicController.getMyAccessRequest"];
171
+ put?: never;
172
+ post?: never;
173
+ delete?: never;
174
+ options?: never;
175
+ head?: never;
176
+ patch?: never;
177
+ trace?: never;
178
+ };
179
+ "/api/v1/access-requests/{id}/approve": {
180
+ parameters: {
181
+ query?: never;
182
+ header?: never;
183
+ path?: never;
184
+ cookie?: never;
185
+ };
186
+ get?: never;
187
+ put?: never;
188
+ /**
189
+ * Approve an access request
190
+ * @description Grant the requester the chosen level and resolve the request. A higher level the requester already holds is kept. Requires permission to share the resource. This is currently in preview — reach out to the Cube support team to activate it for your account.
191
+ */
192
+ post: operations["AccessRequestsPublicController.approveAccessRequest"];
193
+ delete?: never;
194
+ options?: never;
195
+ head?: never;
196
+ patch?: never;
197
+ trace?: never;
198
+ };
199
+ "/api/v1/access-requests/{id}/decline": {
200
+ parameters: {
201
+ query?: never;
202
+ header?: never;
203
+ path?: never;
204
+ cookie?: never;
205
+ };
206
+ get?: never;
207
+ put?: never;
208
+ /**
209
+ * Decline an access request
210
+ * @description Decline the request and notify the requester, who can then request access again. Requires permission to share the resource. This is currently in preview — reach out to the Cube support team to activate it for your account.
211
+ */
212
+ post: operations["AccessRequestsPublicController.declineAccessRequest"];
213
+ delete?: never;
214
+ options?: never;
215
+ head?: never;
216
+ patch?: never;
217
+ trace?: never;
218
+ };
133
219
  "/api/v1/ai-engineer/settings": {
134
220
  parameters: {
135
221
  query?: never;
@@ -354,7 +440,7 @@ export interface paths {
354
440
  *
355
441
  * Every user's AI chat threads in the deployment, most recently updated first, for analyzing how people use the agent. Filters combine with AND; a filter given several values matches any of them.
356
442
  *
357
- * Set `includeTurns=true` to get each thread's turns in the same response. A turn is one prompt and everything the agent did to answer it: the final answer, the tools it called, and each query it ran with its SQL, status, row count and any thumbs-up/down feedback. Query result rows are never included. A prompt, answer or SQL longer than 20,000 characters, or an error longer than 2,000, is cut and ends in `…`. A page holds up to 200 threads, or 50 with turns; a larger `first` is lowered to that.
443
+ * Set `includeTurns=true` to get each thread's turns in the same response. A turn is one prompt and everything the agent did to answer it: the final answer, the tools it called, and each query it ran with its SQL, status, row count and any thumbs-up/down feedback. A prompt, answer or SQL longer than 20,000 characters, or an error longer than 2,000, is cut and ends in `…`. Each turn's steps and each query's result rows come only with a single thread. A page holds up to 200 threads, or 50 with turns; a larger `first` is lowered to that.
358
444
  *
359
445
  * For an incremental export, keep the newest `updatedAt` you have seen and pass it as `updatedAfter` next time.
360
446
  *
@@ -380,7 +466,7 @@ export interface paths {
380
466
  * Get a chat thread
381
467
  * @description **🔒 Admin only.** Requires administrator privileges — the authenticated principal (API key, embed JWT, or any bearer token) must belong to a user with the admin role.
382
468
  *
383
- * One chat thread with all of its turns, oldest first. A turn is one prompt and everything the agent did to answer it: the final answer, the tools it called, and each query it ran with its SQL, status, row count and any thumbs-up/down feedback. Query result rows are never included. A prompt, answer or SQL longer than 20,000 characters, or an error longer than 2,000, is cut and ends in `…`.
469
+ * One chat thread with all of its turns, oldest first. A turn is one prompt and everything the agent did to answer it: the final answer, the tools it called, and each query it ran with its SQL, status, row count and any thumbs-up/down feedback. A prompt, answer or SQL longer than 20,000 characters, or an error longer than 2,000, is cut and ends in `…`. Each turn also lists its `steps`: every reply the agent wrote, with its reasoning, and every tool it called, with its input, in the order they began; their texts are cut the same way. Each query carries up to 100 of its result `rows`.
384
470
  *
385
471
  * Chat history export is in preview: when it is not enabled for the account, `404` is returned.
386
472
  */
@@ -402,7 +488,10 @@ export interface paths {
402
488
  };
403
489
  get?: never;
404
490
  put?: never;
405
- /** Advance a deployment to a given onboarding step (e.g. after connecting a source) */
491
+ /**
492
+ * Advance a deployment to a given onboarding step (e.g. after connecting a source)
493
+ * @description It neither connects nor tests a source. Connecting one is done separately, by setting the database variables with PUT /:deploymentId/env-vars.
494
+ */
406
495
  post: operations["DeploymentsPublicController.advanceCreationStep"];
407
496
  delete?: never;
408
497
  options?: never;
@@ -446,7 +535,7 @@ export interface paths {
446
535
  *
447
536
  * Pass `layout: print` with `format: pdf` for the paginated A4 document the dashboard's "Download print version" menu item produces — one column, every table row, the filter state as a summary line — instead of the default `screenshot` of the board. `print` with `format: png` returns `400`.
448
537
  *
449
- * By default the dashboard renders under the calling user's own security context, so the file shows what that user would see. Requires **manage** access to the dashboard's workbook — the same permission the console's own "Download as PNG / PDF" actions require, because a whole-dashboard render is a bulk data export.
538
+ * By default the dashboard renders under the calling user's own security context, so the file shows what that user would see. Requires **read** access to the dashboard's workbook and the **download data** permission on the deployment — the same rule the console's own "Download as PNG / PDF" actions follow. **Manage** access to the workbook also passes, as it did before the download data permission was required.
450
539
  *
451
540
  * To export on someone else's behalf, pass `renderAs`: the queries behind the image then run under that user's security context instead of yours. **Requires the caller to be a tenant administrator.** Name a console user by `userId` or `email` (`type: USER`), or an embed user by `embedTenantName` + `externalId` (`type: EMBED_USER`). A deactivated console user is not a valid subject and returns `404`; an email is matched case-insensitively.
452
541
  *
@@ -780,13 +869,13 @@ export interface paths {
780
869
  cookie?: never;
781
870
  };
782
871
  /**
783
- * Get env variables
784
- * @description Lists the deployment environment variables, cursor-paginated via `first`/`after`. Values of secret-named variables (containing PASS, SECRET, TOKEN, KEY, or CREDENTIAL) are returned as `[ENCRYPTED]`.
872
+ * List environment variables, including the database connection settings
873
+ * @description Lists the deployment environment variables, cursor-paginated via `first`/`after`. Values of secret-named variables (containing PASS, SECRET, TOKEN, KEY, or CREDENTIAL) are returned as `[ENCRYPTED]`. A deployment connects to its databases through these variables — there is no separate connections endpoint. The default data source uses `CUBEJS_DB_*` (for example `CUBEJS_DB_TYPE`, `CUBEJS_DB_HOST`, `CUBEJS_DB_USER`, `CUBEJS_DB_PASS`), plus the `CUBEJS_JDBC_*`, `CUBEJS_AWS_*` or `CUBEJS_FIREBOLT_*` families some drivers use. Additional data sources are listed in `CUBEJS_DATASOURCES` and configured as `CUBEJS_DS_<NAME>_DB_*`.
785
874
  */
786
875
  get: operations["EnvVariablesPublicController.getEnvVariables"];
787
876
  /**
788
- * Set env variables
789
- * @description Upserts deployment environment variables by name; variables not included keep their existing values. Passing the `[ENCRYPTED]` placeholder (the masked read value) is rejected — omit variables you do not intend to change. New variable names must be POSIX identifiers (`^[A-Za-z_][A-Za-z0-9_]*$`); names already stored on the deployment may be resent unchanged so a legacy name can still be updated or removed.
877
+ * Set environment variables, including connecting or changing a database
878
+ * @description Upserts deployment environment variables by name; variables not included keep their existing values. Passing the `[ENCRYPTED]` placeholder (the masked read value) is rejected — omit variables you do not intend to change. New variable names must be POSIX identifiers (`^[A-Za-z_][A-Za-z0-9_]*$`); names already stored on the deployment may be resent unchanged so a legacy name can still be updated or removed. A deployment connects to its databases through these variables — there is no separate connections endpoint. The default data source uses `CUBEJS_DB_*` (for example `CUBEJS_DB_TYPE`, `CUBEJS_DB_HOST`, `CUBEJS_DB_USER`, `CUBEJS_DB_PASS`), plus the `CUBEJS_JDBC_*`, `CUBEJS_AWS_*` or `CUBEJS_FIREBOLT_*` families some drivers use. Additional data sources are listed in `CUBEJS_DATASOURCES` and configured as `CUBEJS_DS_<NAME>_DB_*`. Saving does not test the connection: a wrong value is accepted here and only fails when the deployment next connects to the database.
790
879
  */
791
880
  put: operations["EnvVariablesPublicController.setEnvVariables"];
792
881
  post?: never;
@@ -1044,7 +1133,7 @@ export interface paths {
1044
1133
  * Create a scheduled notification
1045
1134
  * @description **🔒 Admin only.** Requires administrator privileges — the authenticated principal (API key, embed JWT, or any bearer token) must belong to a user with the admin role.
1046
1135
  *
1047
- * Creates a scheduled notification — a recurring run of a dashboard whose rendered result is delivered to its recipients. The cadence is set by `scheduleType` plus the relevant time fields (`minute`, `hour`, `dayOfWeek`, `dayOfMonth`) or a raw `customCron` expression when `scheduleType` is `CUSTOM`; `timezone` defaults to UTC. Identify the target dashboard with either `dashboardId` (numeric) or `dashboardPublicId` (string) — supply exactly one; it must belong to this deployment, otherwise `404` is returned. The created notification has no recipients — add them via `POST /notifications/{id}/recipients`.
1136
+ * Creates a scheduled notification — a recurring run of a dashboard whose rendered result is delivered to its recipients. The cadence is set by `scheduleType` plus the relevant time fields (`minute`, `hour`, `dayOfWeek`, `dayOfMonth`) or a raw `customCron` expression when `scheduleType` is `CUSTOM`; `timezone` defaults to UTC. Identify the target dashboard with either `dashboardId` (numeric) or `dashboardPublicId` (string) — supply exactly one; it must belong to this deployment, otherwise `404` is returned. The created notification has no recipients — add them via `POST /notifications/{id}/recipients`. To make it a data alert, create it, add its recipients, then set `alert` with an update.
1048
1137
  */
1049
1138
  post: operations["NotificationsPublicController.createNotification"];
1050
1139
  delete?: never;
@@ -1071,7 +1160,7 @@ export interface paths {
1071
1160
  * Update a scheduled notification
1072
1161
  * @description **🔒 Admin only.** Requires administrator privileges — the authenticated principal (API key, embed JWT, or any bearer token) must belong to a user with the admin role.
1073
1162
  *
1074
- * Updates a notification’s schedule definition. Any subset of the schedule fields may be supplied (`scheduleType` + time fields or `customCron`, `timezone`), along with `isEnabled`, `notificationEnabled`, and `notificationFormat`. Omitted fields are left unchanged. This endpoint never modifies recipients — manage those through the `/recipients` sub-resource. Returns `404` if the notification is not part of this deployment.
1163
+ * Updates a notification’s schedule definition. Any subset of the schedule fields may be supplied (`scheduleType` + time fields or `customCron`, `timezone`), along with `isEnabled`, `notificationEnabled`, `notificationFormat` and `alert`. Omitted fields are left unchanged. This endpoint never modifies recipients — manage those through the `/recipients` sub-resource. An `alert` needs notifications switched on and at least one recipient, otherwise `400` is returned. Returns `404` if the notification is not part of this deployment.
1075
1164
  */
1076
1165
  put: operations["NotificationsPublicController.updateNotification"];
1077
1166
  post?: never;
@@ -3709,7 +3798,7 @@ export interface paths {
3709
3798
  put?: never;
3710
3799
  /**
3711
3800
  * Create a deployment with an empty starter project and trigger its first build
3712
- * @description Scaffolds an empty starter project and triggers the first build. When `creationMethod` is `github`, no starter project is scaffolded — connect a repository afterwards via POST /build/api/v1/deployments/:deploymentId/github/connect.
3801
+ * @description Scaffolds an empty starter project and triggers the first build. When `creationMethod` is `github`, no starter project is scaffolded — connect a repository afterwards via POST /build/api/v1/deployments/:deploymentId/github/connect. The deployment starts with no database connection: set one with PUT /api/v1/deployments/:deploymentId/env-vars.
3713
3802
  */
3714
3803
  post: operations["DeploymentsBuildPublicController.createDeployment"];
3715
3804
  delete?: never;
@@ -4018,6 +4107,32 @@ export interface components {
4018
4107
  token: string;
4019
4108
  url: string;
4020
4109
  };
4110
+ AccessRequestItem: {
4111
+ /** Format: date-time */
4112
+ createdAt: string;
4113
+ id: number;
4114
+ level: components["schemas"]["AccessRequestItemLevel"];
4115
+ message?: string | null;
4116
+ /** @description Set in the list of pending requests for a resource. */
4117
+ requester?: components["schemas"]["ResourceOwner"] | null;
4118
+ requesterUserId: number;
4119
+ resourceId: string;
4120
+ /** @description Where the request is stored: a dashboard request is its workbook. */
4121
+ resourceType: components["schemas"]["AccessRequestItemResourceType"];
4122
+ status: components["schemas"]["AccessRequestItemStatus"];
4123
+ };
4124
+ /** @enum {string} */
4125
+ AccessRequestItemLevel: "view" | "edit";
4126
+ /** @enum {string} */
4127
+ AccessRequestItemResourceType: "Workbook" | "Folder";
4128
+ /** @enum {string} */
4129
+ AccessRequestItemStatus: "pending" | "granted" | "declined";
4130
+ /** @enum {string} */
4131
+ AccessRequestResourceQueryResourceType: "Workbook" | "Folder" | "Dashboard";
4132
+ AccessRequestsListResponse: {
4133
+ items: components["schemas"]["AccessRequestItem"][];
4134
+ pageInfo?: components["schemas"]["PageInfo"] | null;
4135
+ };
4021
4136
  AddNotificationRecipientsInput: {
4022
4137
  /** @description Recipients to subscribe (1–1000 per request) */
4023
4138
  recipients: components["schemas"]["NotificationRecipientInput"][];
@@ -4220,6 +4335,12 @@ export interface components {
4220
4335
  targetDeploymentId: number;
4221
4336
  targetFolderId?: number | null;
4222
4337
  };
4338
+ ApproveAccessRequestBody: {
4339
+ /** @description The level to grant. It can differ from the requested one. */
4340
+ level: components["schemas"]["ApproveAccessRequestBodyLevel"];
4341
+ };
4342
+ /** @enum {string} */
4343
+ ApproveAccessRequestBodyLevel: "view" | "edit" | "full";
4223
4344
  BranchResponse: {
4224
4345
  id: number;
4225
4346
  isStagingEnvironmentEnabled?: boolean | null;
@@ -4285,6 +4406,8 @@ export interface components {
4285
4406
  /** @enum {string} */
4286
4407
  BulkUserActionResponseAction: "DEACTIVATE" | "ACTIVATE" | "DELETE";
4287
4408
  ChatHistoryQuery: {
4409
+ /** @description The column name of each `rows` cell. Returned only when reading a single thread. Null when `rows` is. */
4410
+ columns?: string[] | null;
4288
4411
  /** @description The data source a `runSql` query ran on. */
4289
4412
  dataSource?: string | null;
4290
4413
  error?: string | null;
@@ -4292,8 +4415,10 @@ export interface components {
4292
4415
  feedback?: components["schemas"]["ChatHistoryQueryFeedback"] | null;
4293
4416
  /** @description The tool-call message id. */
4294
4417
  messageId: string;
4295
- /** @description Rows the query returned. The rows themselves are never included. */
4418
+ /** @description How many rows the query returned. */
4296
4419
  rowCount?: number | null;
4420
+ /** @description The result rows the agent saw, at most 100; `rowCount` says how many the query returned. Returned only when reading a single thread. Null when the query returned no result, as when it failed or was stopped. */
4421
+ rows?: any[][] | null;
4297
4422
  /** @description The SQL the agent generated. */
4298
4423
  sql?: string | null;
4299
4424
  /** @description `incomplete` when the query never returned: the turn was stopped or failed. */
@@ -4310,6 +4435,28 @@ export interface components {
4310
4435
  };
4311
4436
  /** @enum {string} */
4312
4437
  ChatHistoryQueryStatus: "success" | "error" | "incomplete";
4438
+ ChatHistoryStep: {
4439
+ /** @description Tool steps: the arguments the agent passed, as JSON. */
4440
+ input?: string | null;
4441
+ /** @description The message id; a query's step shares its `messageId`. */
4442
+ messageId: string;
4443
+ /** @description Model steps: the model's reasoning, as the model reported it; some models report only a summary, and a stopped step may hold only its start. Null when it reported none. */
4444
+ reasoning?: string | null;
4445
+ /** @description When the step began. Null for steps recorded before Cube stored step times. */
4446
+ startedAt?: string | null;
4447
+ /** @description Tool steps: `incomplete` when the tool never returned. */
4448
+ status?: components["schemas"]["ChatHistoryStepStatus"] | null;
4449
+ /** @description Model steps: what the agent wrote, such as a note before calling tools or its answer. */
4450
+ text?: string | null;
4451
+ /** @description Tool steps: the tool the agent called. */
4452
+ tool?: string | null;
4453
+ /** @description `model` for a reply the agent wrote, `tool` for a tool it called. */
4454
+ type: components["schemas"]["ChatHistoryStepType"];
4455
+ };
4456
+ /** @enum {string} */
4457
+ ChatHistoryStepStatus: "success" | "error" | "incomplete";
4458
+ /** @enum {string} */
4459
+ ChatHistoryStepType: "model" | "tool";
4313
4460
  ChatHistoryThread: {
4314
4461
  /** @description Null for the Auto agent. */
4315
4462
  agentId?: number | null;
@@ -4355,6 +4502,8 @@ export interface components {
4355
4502
  queries: components["schemas"]["ChatHistoryQuery"][];
4356
4503
  /** @description When the user sent the prompt. Null for turns recorded before Cube stored turn times. */
4357
4504
  startedAt?: string | null;
4505
+ /** @description Everything the agent did in the turn, in the order it began: each reply with its reasoning, and each tool call. When any step has no `startedAt`, the steps are in the order they last changed instead. Returned only when reading a single thread. */
4506
+ steps?: components["schemas"]["ChatHistoryStep"][] | null;
4358
4507
  /** @description Every tool the agent called in the turn, in first-call order. */
4359
4508
  tools: string[];
4360
4509
  };
@@ -4433,6 +4582,18 @@ export interface components {
4433
4582
  fontSize?: string | null;
4434
4583
  fontWeight?: string | null;
4435
4584
  };
4585
+ CreateAccessRequestBody: {
4586
+ level: components["schemas"]["CreateAccessRequestBodyLevel"];
4587
+ /** @description An optional note to the people who can share it, 500 characters at most. */
4588
+ message?: string | null;
4589
+ /** @description The workbook or folder id, or the public id of a dashboard, which stands for its workbook. */
4590
+ resourceId: string;
4591
+ resourceType: components["schemas"]["CreateAccessRequestBodyResourceType"];
4592
+ };
4593
+ /** @enum {string} */
4594
+ CreateAccessRequestBodyLevel: "view" | "edit";
4595
+ /** @enum {string} */
4596
+ CreateAccessRequestBodyResourceType: "Workbook" | "Folder" | "Dashboard";
4436
4597
  CreateApiKeyInput: {
4437
4598
  allowedEndpoints?: string[] | null;
4438
4599
  deploymentIds?: number[] | null;
@@ -4956,6 +5117,43 @@ export interface components {
4956
5117
  x: number;
4957
5118
  y: number;
4958
5119
  };
5120
+ DataAlertRule: {
5121
+ direction?: string | null;
5122
+ grain?: string | null;
5123
+ id: string;
5124
+ measureColumn: string;
5125
+ measureTitle: string;
5126
+ operator?: string | null;
5127
+ percent?: number | null;
5128
+ reportId: number;
5129
+ timeColumn?: string | null;
5130
+ type: string;
5131
+ value?: number | null;
5132
+ widgetId: string;
5133
+ widgetTitle: string;
5134
+ };
5135
+ DataAlertRuleInput: {
5136
+ direction?: components["schemas"]["DataAlertRuleInputDirection"] | null;
5137
+ grain?: components["schemas"]["DataAlertRuleInputGrain"] | null;
5138
+ measureColumn: string;
5139
+ measureTitle: string;
5140
+ operator?: components["schemas"]["DataAlertRuleInputOperator"] | null;
5141
+ percent?: number | null;
5142
+ reportId: number;
5143
+ timeColumn?: string | null;
5144
+ type: components["schemas"]["DataAlertRuleInputType"];
5145
+ value?: number | null;
5146
+ widgetId: string;
5147
+ widgetTitle: string;
5148
+ };
5149
+ /** @enum {string} */
5150
+ DataAlertRuleInputDirection: "up" | "down" | "either";
5151
+ /** @enum {string} */
5152
+ DataAlertRuleInputGrain: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year";
5153
+ /** @enum {string} */
5154
+ DataAlertRuleInputOperator: "gt" | "lt" | "eq";
5155
+ /** @enum {string} */
5156
+ DataAlertRuleInputType: "threshold" | "change" | "anomaly";
4959
5157
  DataModelFileContent: {
4960
5158
  content: string;
4961
5159
  path: string;
@@ -6023,6 +6221,8 @@ export interface components {
6023
6221
  hash: string;
6024
6222
  };
6025
6223
  /** @enum {string} */
6224
+ ListAccessRequestsQueryResourceType: "Workbook" | "Folder" | "Dashboard";
6225
+ /** @enum {string} */
6026
6226
  ListDatabricksMetricViewSyncsQueryStatus: "QUEUED" | "RUNNING" | "CANCELLING" | "COMPLETED" | "PARTIAL" | "FAILED" | "CANCELLED";
6027
6227
  LocalEncryptedSecret: {
6028
6228
  authTagBase64: string;
@@ -6065,7 +6265,13 @@ export interface components {
6065
6265
  };
6066
6266
  /** @enum {string} */
6067
6267
  MoveWorkspaceObjectInputType: "FOLDER" | "WORKBOOK" | "REPORT";
6268
+ MyAccessRequestResponse: {
6269
+ /** @description The pending request of the caller for the resource, or null. */
6270
+ accessRequest?: components["schemas"]["AccessRequestItem"] | null;
6271
+ };
6068
6272
  NotificationDto: {
6273
+ /** @description The data alert, present only when the notification has one: it is then sent only when this condition starts to hold. */
6274
+ alert?: components["schemas"]["DataAlertRule"] | null;
6069
6275
  cronExpression: string;
6070
6276
  dashboardId: number;
6071
6277
  deploymentId: number;
@@ -7156,8 +7362,12 @@ export interface components {
7156
7362
  manifest?: {
7157
7363
  [key: string]: any;
7158
7364
  } | null;
7365
+ /** @description Prefix for this sync’s cube names and file names, e.g. `sales_`. Overrides the Name prefix saved in the deployment’s dbt settings for this sync only; an empty string means no prefix. Cube names must be unique across the data model, so give each dbt project its own prefix when two projects can share a model name. */
7366
+ namePrefix?: string | null;
7159
7367
  /** @description What to do with the generated cubes. `branch` (the default) commits them to a new Cube branch for review. `files` commits nothing and creates no branch — the files are returned from `GET /dbt-sync/{syncJobId}/generated-files` instead, so your own CI can commit them to your repository through its normal review. Independent of `source`. */
7160
7368
  output?: components["schemas"]["StartDbtSyncInputOutput"] | null;
7369
+ /** @description Repository folder for this sync’s generated cube files, e.g. `model/cubes/dbt/sales` (a leading `/` is optional). Overrides the Output path saved in the deployment’s dbt settings for this sync only. A sync replaces the files directly inside this folder and leaves its subfolders alone, so syncing several dbt projects into one deployment works when each gets its own folder and its own `namePrefix`. */
7370
+ outputPath?: string | null;
7161
7371
  /** @description Git ref in the dbt repository to sync from — a branch or a tag, NOT a commit SHA. Overrides the branch saved on the deployment’s dbt git integration for this sync only, so CI can sync the ref under review (e.g. a pull request’s head branch) instead of the tracked branch. The generated Cube branch is named after it. */
7162
7372
  ref?: string | null;
7163
7373
  /** @description Where the dbt metadata comes from. `git` (the default) clones the deployment’s dbt repository and runs dbt to produce a manifest. `manifest` converts a manifest you supply in `manifest` below, so Cube never needs access to the dbt repository — and the sync takes seconds rather than minutes, because no sandbox is provisioned and no dbt command runs. */
@@ -7325,6 +7535,8 @@ export interface components {
7325
7535
  position?: number | null;
7326
7536
  };
7327
7537
  UpdateNotificationInput: {
7538
+ /** @description A data alert: the notification is then sent only when this condition on one chart starts to hold. Omit to leave the stored rule as it is; `null` removes it. Needs `notificationEnabled` and at least one recipient, otherwise `400`. Data alerts are currently in preview — reach out to the Cube support team to activate them for your account. */
7539
+ alert?: components["schemas"]["DataAlertRuleInput"] | null;
7328
7540
  customCron?: string | null;
7329
7541
  dayOfMonth?: number | null;
7330
7542
  dayOfWeek?: number | null;
@@ -8189,6 +8401,123 @@ export interface operations {
8189
8401
  };
8190
8402
  };
8191
8403
  };
8404
+ "AccessRequestsPublicController.listAccessRequests": {
8405
+ parameters: {
8406
+ query: {
8407
+ resourceType: components["schemas"]["ListAccessRequestsQueryResourceType"];
8408
+ resourceId: string;
8409
+ after?: string;
8410
+ first?: number;
8411
+ };
8412
+ header?: never;
8413
+ path?: never;
8414
+ cookie?: never;
8415
+ };
8416
+ requestBody?: never;
8417
+ responses: {
8418
+ 200: {
8419
+ headers: {
8420
+ [name: string]: any;
8421
+ };
8422
+ content: {
8423
+ "application/json": components["schemas"]["AccessRequestsListResponse"];
8424
+ };
8425
+ };
8426
+ };
8427
+ };
8428
+ "AccessRequestsPublicController.createAccessRequest": {
8429
+ parameters: {
8430
+ query?: never;
8431
+ header?: never;
8432
+ path?: never;
8433
+ cookie?: never;
8434
+ };
8435
+ /** @description CreateAccessRequestBody */
8436
+ requestBody?: {
8437
+ content: {
8438
+ "application/json": components["schemas"]["CreateAccessRequestBody"];
8439
+ };
8440
+ };
8441
+ responses: {
8442
+ 200: {
8443
+ headers: {
8444
+ [name: string]: any;
8445
+ };
8446
+ content: {
8447
+ "application/json": components["schemas"]["AccessRequestItem"];
8448
+ };
8449
+ };
8450
+ };
8451
+ };
8452
+ "AccessRequestsPublicController.getMyAccessRequest": {
8453
+ parameters: {
8454
+ query: {
8455
+ resourceType: components["schemas"]["AccessRequestResourceQueryResourceType"];
8456
+ resourceId: string;
8457
+ };
8458
+ header?: never;
8459
+ path?: never;
8460
+ cookie?: never;
8461
+ };
8462
+ requestBody?: never;
8463
+ responses: {
8464
+ 200: {
8465
+ headers: {
8466
+ [name: string]: any;
8467
+ };
8468
+ content: {
8469
+ "application/json": components["schemas"]["MyAccessRequestResponse"];
8470
+ };
8471
+ };
8472
+ };
8473
+ };
8474
+ "AccessRequestsPublicController.approveAccessRequest": {
8475
+ parameters: {
8476
+ query?: never;
8477
+ header?: never;
8478
+ path: {
8479
+ id: number;
8480
+ };
8481
+ cookie?: never;
8482
+ };
8483
+ /** @description ApproveAccessRequestBody */
8484
+ requestBody?: {
8485
+ content: {
8486
+ "application/json": components["schemas"]["ApproveAccessRequestBody"];
8487
+ };
8488
+ };
8489
+ responses: {
8490
+ 200: {
8491
+ headers: {
8492
+ [name: string]: any;
8493
+ };
8494
+ content: {
8495
+ "application/json": components["schemas"]["AccessRequestItem"];
8496
+ };
8497
+ };
8498
+ };
8499
+ };
8500
+ "AccessRequestsPublicController.declineAccessRequest": {
8501
+ parameters: {
8502
+ query?: never;
8503
+ header?: never;
8504
+ path: {
8505
+ id: number;
8506
+ };
8507
+ cookie?: never;
8508
+ };
8509
+ requestBody?: never;
8510
+ responses: {
8511
+ 200: {
8512
+ headers: {
8513
+ [name: string]: any;
8514
+ };
8515
+ content: {
8516
+ "application/json": components["schemas"]["AccessRequestItem"];
8517
+ };
8518
+ };
8519
+ };
8520
+ };
8192
8521
  "AIEngineerPublicController.getAIEngineerSettings": {
8193
8522
  parameters: {
8194
8523
  query?: {