@cube-dev/platform-client 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -9,6 +9,14 @@ 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.8.0] - 2026-09-11
13
+
14
+ ### Added
15
+
16
+ - New public REST API for previewing a Databricks Metric View publication (CUB-4442): `POST /api/v1/deployments/{deploymentId}/databricks-metric-view-previews` (`DatabricksMetricViewPublicationPublicController.startPreview`) queues an offline conversion of the deployment's latest successful build and returns `202` with polling URLs; `GET .../databricks-metric-view-previews/{previewId}` (`previewStatus`) polls progress; `GET .../databricks-metric-view-previews/{previewId}/result` (`previewResult`) returns the completed result (`409` while still running or if it ended without one); `DELETE .../databricks-metric-view-previews/{previewId}` (`cancelPreview`) requests cancellation. Requires `SchemaRead` or `SchemaUpdate` access and the `useDatabricksMetricViewsPush` flag; preview payloads and results are retained for at most seven days. New schemas: `DatabricksMetricViewPublicationPreviewInput`, `DatabricksMetricViewPublicationPreviewStartResponse`, `DatabricksMetricViewPublicationPreviewStatusResponse`, `DatabricksMetricViewPublicationPreviewResultResponse`, `DatabricksMetricViewPublicationViewResult`, `DatabricksMetricViewPublicationIssue`, `DatabricksMetricViewPublicationCounts`, `DatabricksMetricViewPublicationDatasetSource`, `DatabricksMetricViewPublicationRuntime`, `DatabricksMetricViewPublicationProgress`.
17
+ - `StartDbtSyncInput` gained `source` (`"git"` | `"manifest"`) and `manifest` — pass an uploaded `manifest.json` directly instead of having Cube clone the dbt repository and run dbt itself (CUB-4492). The corresponding `DbtSyncRun` response gained `source` (which pull path a run used), and `DbtSyncRunStats` gained `dbtVersion` and `manifestGeneratedAt`, populated for manifest-sourced runs.
18
+ - `EmbedSessionSettings` / `EmbedSettings` gained `allowAi`, `showAiWidgets`, and `showWorkbookChat` (CUB-2615) — per-session AI opt-outs for embeds. `allowAi` disables every AI surface, including the standalone embed chat, and is enforced server-side so a client holding the token can't work around it; the `show*` keys (alongside the existing `showDashboardChat`) only hide specific entry points — the dashboard agent, workspace chat, and AI-summary widget generation, respectively.
19
+
12
20
  ## [0.7.0] - 2026-09-09
13
21
 
14
22
  ### Added
@@ -19,6 +27,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
27
  - `PivotItems` / `PivotItemsInput` gained `displayScale` (`"model"` | `"absolute"` | `"thousands"` | `"millions"` | `"billions"`) and `showColumnTotals`.
20
28
  - `WorkbookDashboardInput.dashboardDraft` now accepts a widget without an `id` — the server assigns one. New schema `DashboardConfigDraftInput` (with `DashboardWidgetDraftInput`); publishing or creating a dashboard still requires an `id` on every widget via the existing `DashboardConfigInput`.
21
29
 
30
+ ### Changed
31
+
32
+ - `CreateReportInput.name` / `.title`, `UpdateReportInput.name` / `.title`, and the `Report.name` response field now enforce `maxLength: 255` (CUB-4440) — matching the column's real storage limit, so a name or title over that limit now returns `400` instead of failing less predictably downstream.
33
+
22
34
  ## [0.6.0] - 2026-09-02
23
35
 
24
36
  ### Added
package/dist/schema.d.ts CHANGED
@@ -381,6 +381,64 @@ export interface paths {
381
381
  patch?: never;
382
382
  trace?: never;
383
383
  };
384
+ "/api/v1/deployments/{deploymentId}/databricks-metric-view-previews": {
385
+ parameters: {
386
+ query?: never;
387
+ header?: never;
388
+ path?: never;
389
+ cookie?: never;
390
+ };
391
+ get?: never;
392
+ put?: never;
393
+ /**
394
+ * Start a Databricks Metric View publication preview
395
+ * @description Queues an offline conversion of static YAML from the deployment's latest successful build and returns polling URLs immediately. Exact retries while the same content-addressed preview is running reuse that work; a later submission starts a fresh execution. Preview payloads and results are retained for at most seven days. The conversion supports scalar dimensions, common and calculated measures, and acyclic many-to-one equi-joins from one Databricks datasource. Access policies, templating, extends, unsafe fanout, unsupported expressions, multiple datasources, and converter loss are blocked per view. Two-part schema.table sources are qualified with CUBEJS_DB_DATABRICKS_CATALOG for the selected datasource; without that setting they fail closed with an actionable issue. Requires SchemaRead or SchemaUpdate access and useDatabricksMetricViewsPush.
396
+ */
397
+ post: operations["DatabricksMetricViewPublicationPublicController.startPreview"];
398
+ delete?: never;
399
+ options?: never;
400
+ head?: never;
401
+ patch?: never;
402
+ trace?: never;
403
+ };
404
+ "/api/v1/deployments/{deploymentId}/databricks-metric-view-previews/{previewId}": {
405
+ parameters: {
406
+ query?: never;
407
+ header?: never;
408
+ path?: never;
409
+ cookie?: never;
410
+ };
411
+ /** Get Databricks Metric View preview status */
412
+ get: operations["DatabricksMetricViewPublicationPublicController.previewStatus"];
413
+ put?: never;
414
+ post?: never;
415
+ /** Cancel a Databricks Metric View preview */
416
+ delete: operations["DatabricksMetricViewPublicationPublicController.cancelPreview"];
417
+ options?: never;
418
+ head?: never;
419
+ patch?: never;
420
+ trace?: never;
421
+ };
422
+ "/api/v1/deployments/{deploymentId}/databricks-metric-view-previews/{previewId}/result": {
423
+ parameters: {
424
+ query?: never;
425
+ header?: never;
426
+ path?: never;
427
+ cookie?: never;
428
+ };
429
+ /**
430
+ * Get a completed Databricks Metric View preview result
431
+ * @description Returns 409 while the preview is still running or if it ended without a conversion result.
432
+ */
433
+ get: operations["DatabricksMetricViewPublicationPublicController.previewResult"];
434
+ put?: never;
435
+ post?: never;
436
+ delete?: never;
437
+ options?: never;
438
+ head?: never;
439
+ patch?: never;
440
+ trace?: never;
441
+ };
384
442
  "/api/v1/deployments/{deploymentId}/dbt-sync": {
385
443
  parameters: {
386
444
  query?: never;
@@ -3486,6 +3544,120 @@ export interface components {
3486
3544
  DataModelWriteResponse: {
3487
3545
  success: boolean;
3488
3546
  };
3547
+ DatabricksMetricViewPublicationCounts: {
3548
+ dimensions: number;
3549
+ errors: number;
3550
+ joins: number;
3551
+ measures: number;
3552
+ warnings: number;
3553
+ };
3554
+ DatabricksMetricViewPublicationDatasetSource: {
3555
+ dataSource: string;
3556
+ dataset: string;
3557
+ originalSource: string;
3558
+ resolvedSource: string;
3559
+ };
3560
+ DatabricksMetricViewPublicationIssue: {
3561
+ code: string;
3562
+ element?: string | null;
3563
+ message: string;
3564
+ severity: components["schemas"]["DatabricksMetricViewPublicationIssueSeverity"];
3565
+ stage: components["schemas"]["DatabricksMetricViewPublicationIssueStage"];
3566
+ };
3567
+ /** @enum {string} */
3568
+ DatabricksMetricViewPublicationIssueSeverity: "ERROR" | "WARNING";
3569
+ /** @enum {string} */
3570
+ DatabricksMetricViewPublicationIssueStage: "INPUT" | "VIEW_PROJECTION" | "OSSIE_VALIDATION" | "OSSIE_TO_DATABRICKS" | "OUTPUT_VALIDATION" | "EXECUTION";
3571
+ DatabricksMetricViewPublicationPreviewInput: {
3572
+ dataSourceName: string;
3573
+ selectionMode: components["schemas"]["DatabricksMetricViewPublicationPreviewInputSelectionMode"];
3574
+ sourceOverrides?: {
3575
+ [key: string]: string;
3576
+ } | null;
3577
+ targetNames?: {
3578
+ [key: string]: string;
3579
+ } | null;
3580
+ viewNameRegex?: string | null;
3581
+ viewNames?: string[] | null;
3582
+ };
3583
+ /** @enum {string} */
3584
+ DatabricksMetricViewPublicationPreviewInputSelectionMode: "all" | "selected" | "pattern";
3585
+ DatabricksMetricViewPublicationPreviewResultResponse: {
3586
+ buildJobId: number;
3587
+ commit?: string | null;
3588
+ completedAt: string;
3589
+ dataSourceName: string;
3590
+ deploymentId: number;
3591
+ durationMs: number;
3592
+ outcome: components["schemas"]["DatabricksMetricViewPublicationPreviewResultResponseOutcome"];
3593
+ previewId: string;
3594
+ runtime: components["schemas"]["DatabricksMetricViewPublicationRuntime"];
3595
+ sourceSha256: string;
3596
+ version: components["schemas"]["DatabricksMetricViewPublicationPreviewResultResponseVersion"];
3597
+ views: components["schemas"]["DatabricksMetricViewPublicationViewResult"][];
3598
+ };
3599
+ /** @enum {string} */
3600
+ DatabricksMetricViewPublicationPreviewResultResponseOutcome: "success" | "partial" | "failed";
3601
+ /** @enum {integer} */
3602
+ DatabricksMetricViewPublicationPreviewResultResponseVersion: 2;
3603
+ DatabricksMetricViewPublicationPreviewStartResponse: {
3604
+ buildJobId: number;
3605
+ commit?: string | null;
3606
+ dataSourceName: string;
3607
+ deploymentId: number;
3608
+ previewId: string;
3609
+ resultUrl: string;
3610
+ reused: boolean;
3611
+ status: components["schemas"]["DatabricksMetricViewPublicationPreviewStartResponseStatus"];
3612
+ statusUrl: string;
3613
+ };
3614
+ /** @enum {string} */
3615
+ DatabricksMetricViewPublicationPreviewStartResponseStatus: "QUEUED";
3616
+ DatabricksMetricViewPublicationPreviewStatusResponse: {
3617
+ dataSourceName: string;
3618
+ deploymentId: number;
3619
+ error?: string | null;
3620
+ previewId: string;
3621
+ progress: components["schemas"]["DatabricksMetricViewPublicationProgress"];
3622
+ resultAvailable: boolean;
3623
+ startedAt: string;
3624
+ status: components["schemas"]["DatabricksMetricViewPublicationPreviewStatusResponseStatus"];
3625
+ updatedAt: string;
3626
+ };
3627
+ /** @enum {string} */
3628
+ DatabricksMetricViewPublicationPreviewStatusResponseStatus: "QUEUED" | "RUNNING" | "COMPLETED" | "FAILED" | "CANCELLED";
3629
+ DatabricksMetricViewPublicationProgress: {
3630
+ message: string;
3631
+ percentComplete: number;
3632
+ stage: components["schemas"]["DatabricksMetricViewPublicationProgressStage"];
3633
+ };
3634
+ /** @enum {string} */
3635
+ DatabricksMetricViewPublicationProgressStage: "QUEUED" | "RUNNING" | "COMPLETED" | "FAILED" | "CANCELLED";
3636
+ DatabricksMetricViewPublicationRuntime: {
3637
+ bridgeCommit: string;
3638
+ bridgeVersion: string;
3639
+ cubeConverterVersion: string;
3640
+ databricksConverterVersion: string;
3641
+ ossieCommit: string;
3642
+ ossieCoreVersion: string;
3643
+ policyVersion: number;
3644
+ runnerVersion: string;
3645
+ templateName: string;
3646
+ };
3647
+ DatabricksMetricViewPublicationViewResult: {
3648
+ counts: components["schemas"]["DatabricksMetricViewPublicationCounts"];
3649
+ cubeViewName: string;
3650
+ datasetSources: components["schemas"]["DatabricksMetricViewPublicationDatasetSource"][];
3651
+ eligibleForPublication: boolean;
3652
+ issues: components["schemas"]["DatabricksMetricViewPublicationIssue"][];
3653
+ metricViewName: string;
3654
+ metricViewSha256?: string | null;
3655
+ metricViewYaml?: string | null;
3656
+ outcome: components["schemas"]["DatabricksMetricViewPublicationViewResultOutcome"];
3657
+ source?: string | null;
3658
+ };
3659
+ /** @enum {string} */
3660
+ DatabricksMetricViewPublicationViewResultOutcome: "success" | "failed";
3489
3661
  DbtSyncCancelResponse: {
3490
3662
  message: string;
3491
3663
  };
@@ -3548,6 +3720,8 @@ export interface components {
3548
3720
  gitRef?: string | null;
3549
3721
  lastStage?: string | null;
3550
3722
  phases?: components["schemas"]["DbtSyncRunPhase"][] | null;
3723
+ /** @description Where this sync got its dbt metadata: `git` (Cube cloned the dbt repository and ran dbt) or `manifest` (the caller uploaded a `manifest.json` and no repository was accessed). Runs predating the manifest source report `git`. */
3724
+ source: string;
3551
3725
  /** @description When the sync started, as an ISO 8601 timestamp. See completedAt before comparing the two. */
3552
3726
  startedAt: string;
3553
3727
  stats?: components["schemas"]["DbtSyncRunStats"] | null;
@@ -3575,8 +3749,10 @@ export interface components {
3575
3749
  };
3576
3750
  DbtSyncRunStats: {
3577
3751
  cubeCount?: number | null;
3752
+ dbtVersion?: string | null;
3578
3753
  generatedFileCount?: number | null;
3579
3754
  macros?: number | null;
3755
+ manifestGeneratedAt?: string | null;
3580
3756
  models?: number | null;
3581
3757
  sources?: number | null;
3582
3758
  };
@@ -3818,13 +3994,19 @@ export interface components {
3818
3994
  sqlQuery: string;
3819
3995
  };
3820
3996
  EmbedSessionSettings: {
3997
+ allowAi?: boolean | null;
3821
3998
  allowChatWorkspaceAuthoring?: boolean | null;
3999
+ showAiWidgets?: boolean | null;
3822
4000
  showDashboardChat?: boolean | null;
4001
+ showWorkbookChat?: boolean | null;
3823
4002
  };
3824
4003
  EmbedSettings: {
4004
+ allowAi?: boolean | null;
3825
4005
  enableDashboardComments?: boolean | null;
3826
4006
  locale?: string | null;
4007
+ showAiWidgets?: boolean | null;
3827
4008
  showDashboardChat?: boolean | null;
4009
+ showWorkbookChat?: boolean | null;
3828
4010
  timezone?: string | null;
3829
4011
  };
3830
4012
  EmbedTenant: {
@@ -4650,8 +4832,14 @@ export interface components {
4650
4832
  StartDashboardExportInputFormat: "png" | "pdf";
4651
4833
  StartDbtSyncInput: {
4652
4834
  branchName?: string | null;
4835
+ manifest?: {
4836
+ [key: string]: any;
4837
+ } | null;
4653
4838
  ref?: string | null;
4839
+ source?: components["schemas"]["StartDbtSyncInputSource"] | null;
4654
4840
  };
4841
+ /** @enum {string} */
4842
+ StartDbtSyncInputSource: "git" | "manifest";
4655
4843
  StartDevModeRequest: {
4656
4844
  branchName?: string | null;
4657
4845
  };
@@ -5844,6 +6032,99 @@ export interface operations {
5844
6032
  };
5845
6033
  };
5846
6034
  };
6035
+ "DatabricksMetricViewPublicationPublicController.startPreview": {
6036
+ parameters: {
6037
+ query?: never;
6038
+ header?: never;
6039
+ path: {
6040
+ deploymentId: number;
6041
+ };
6042
+ cookie?: never;
6043
+ };
6044
+ /** @description DatabricksMetricViewPublicationPreviewInput */
6045
+ requestBody: {
6046
+ content: {
6047
+ "application/json": components["schemas"]["DatabricksMetricViewPublicationPreviewInput"];
6048
+ };
6049
+ };
6050
+ responses: {
6051
+ 202: {
6052
+ headers: {
6053
+ [name: string]: any;
6054
+ };
6055
+ content: {
6056
+ "application/json": components["schemas"]["DatabricksMetricViewPublicationPreviewStartResponse"];
6057
+ };
6058
+ };
6059
+ };
6060
+ };
6061
+ "DatabricksMetricViewPublicationPublicController.previewStatus": {
6062
+ parameters: {
6063
+ query?: never;
6064
+ header?: never;
6065
+ path: {
6066
+ deploymentId: number;
6067
+ previewId: string;
6068
+ };
6069
+ cookie?: never;
6070
+ };
6071
+ requestBody?: never;
6072
+ responses: {
6073
+ 200: {
6074
+ headers: {
6075
+ [name: string]: any;
6076
+ };
6077
+ content: {
6078
+ "application/json": components["schemas"]["DatabricksMetricViewPublicationPreviewStatusResponse"];
6079
+ };
6080
+ };
6081
+ };
6082
+ };
6083
+ "DatabricksMetricViewPublicationPublicController.cancelPreview": {
6084
+ parameters: {
6085
+ query?: never;
6086
+ header?: never;
6087
+ path: {
6088
+ deploymentId: number;
6089
+ previewId: string;
6090
+ };
6091
+ cookie?: never;
6092
+ };
6093
+ requestBody?: never;
6094
+ responses: {
6095
+ /** @description Successful response */
6096
+ 200: {
6097
+ headers: {
6098
+ [name: string]: any;
6099
+ };
6100
+ content: {
6101
+ "application/json": any;
6102
+ };
6103
+ };
6104
+ };
6105
+ };
6106
+ "DatabricksMetricViewPublicationPublicController.previewResult": {
6107
+ parameters: {
6108
+ query?: never;
6109
+ header?: never;
6110
+ path: {
6111
+ deploymentId: number;
6112
+ previewId: string;
6113
+ };
6114
+ cookie?: never;
6115
+ };
6116
+ requestBody?: never;
6117
+ responses: {
6118
+ 200: {
6119
+ headers: {
6120
+ [name: string]: any;
6121
+ };
6122
+ content: {
6123
+ "application/json": components["schemas"]["DatabricksMetricViewPublicationPreviewResultResponse"];
6124
+ };
6125
+ };
6126
+ };
6127
+ };
5847
6128
  "DbtSyncPublicController.listDbtSyncs": {
5848
6129
  parameters: {
5849
6130
  query?: {