Skip to content

Commit ea4de59

Browse files
committed
Merge branch 'master' into feat/remove-summit-banner
2 parents 6db1a4a + e4d767e commit ea4de59

File tree

128 files changed

+864
-309
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+864
-309
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
# [1.5.0](https://github.com/cube-js/cube/compare/v1.4.0...v1.5.0) (2025-10-29)
7+
8+
**Note:** Version bump only for package cubejs
9+
10+
# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29)
11+
12+
### Bug Fixes
13+
14+
- **cubesql:** Always repartition joins when right side has multiple partitions ([#10105](https://github.com/cube-js/cube/issues/10105)) ([ae32748](https://github.com/cube-js/cube/commit/ae327483caabba974e271fb52f4ccc5fd5fa5789))
15+
616
## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29)
717

818
### Features

docs/pages/product/apis-integrations/rest-api/query-format.mdx

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,31 @@ The default value is `false`.
3434
- `offset`: The number of initial rows to be skipped for your query. The default
3535
value is `0`.
3636
- `order`: An object, where the keys are measures or dimensions to order by and
37-
their corresponding values are either `asc` or `desc`. The order of the fields
38-
to order on is based on the order of the keys in the object. If not provided,
39-
[default ordering][ref-default-order] is applied. If an empty object (`[]`) is
40-
provided, no ordering is applied.
37+
their corresponding values are either `asc` or `desc`. For [time dimensions][ref-default-granularities],
38+
a granularity can be optionally provided, e.g., `orders.created_at.month`.
39+
The order of the fields to order on is based on the order of the keys in the object.
40+
If not provided, the [default ordering][ref-default-order] is applied.
41+
If an empty object (`[]`) is provided, no ordering is applied.
4142
- `timezone`: A [time zone][ref-time-zone] for your query. You can set the
4243
desired time zone in the [TZ Database Name](https://en.wikipedia.org/wiki/Tz_database)
4344
format, e.g., `America/Los_Angeles`.
45+
- `renewQuery`: If `renewQuery` is set to `true`, Cube will renew all
46+
[`refreshKey`][ref-schema-ref-preaggs-refreshkey] for queries and query
47+
results in the foreground. However, if the
48+
[`refreshKey`][ref-schema-ref-preaggs-refreshkey] (or
49+
[`refreshKey.every`][ref-schema-ref-preaggs-refreshkey-every]) doesn't
50+
indicate that there's a need for an update this setting has no effect. The
51+
default value is `false`.
52+
53+
<InfoBox>
54+
55+
Cube provides only eventual consistency guarantee. Using a small
56+
[`refreshKey.every`][ref-schema-ref-preaggs-refreshkey-every] value together
57+
with `renewQuery` to achieve immediate consistency can lead to endless
58+
refresh loops and overall system instability.
59+
60+
</InfoBox>
61+
4462
- `ungrouped`: If set to `true`, Cube will run an [ungrouped
4563
query][ref-ungrouped-query].
4664
- `joinHints`: Query-time [join hints][ref-join-hints], provided as an array of
@@ -673,4 +691,4 @@ refer to its documentation for more examples.
673691
[ref-default-granularities]: /product/data-modeling/concepts#time-dimensions
674692
[ref-custom-granularities]: /product/data-modeling/reference/dimensions#granularities
675693
[wiki-iso-8601]: https://en.wikipedia.org/wiki/ISO_8601
676-
[ref-join-hints]: /product/data-modeling/concepts/working-with-joins#join-hints
694+
[ref-join-hints]: /product/data-modeling/concepts/working-with-joins#join-hints

docs/pages/product/configuration/data-sources/databricks-jdbc.mdx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ docker run -it -p 4000:4000 --env-file=.env cube-jdk
5252
| `CUBEJS_DB_NAME` | The name of the database to connect to | A valid database name ||
5353
| `CUBEJS_DB_DATABRICKS_URL` | The URL for a JDBC connection | A valid JDBC URL ||
5454
| `CUBEJS_DB_DATABRICKS_ACCEPT_POLICY` | Whether or not to accept the license terms for the Databricks JDBC driver | `true`, `false` ||
55-
| `CUBEJS_DB_DATABRICKS_TOKEN` | The [personal access token][databricks-docs-pat] used to authenticate the Databricks connection | A valid token ||
55+
| `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_ID` | The OAuth client ID for [service principal][ref-databricks-m2m-oauth] authentication | A valid client ID ||
56+
| `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_SECRET` | The OAuth client secret for [service principal][ref-databricks-m2m-oauth] authentication | A valid client secret ||
57+
| `CUBEJS_DB_DATABRICKS_TOKEN` | The [personal access token][databricks-docs-pat] used to authenticate the Databricks connection | A valid token ||
5658
| `CUBEJS_DB_DATABRICKS_CATALOG` | The name of the [Databricks catalog][databricks-catalog] to connect to | A valid catalog name ||
5759
| `CUBEJS_DB_EXPORT_BUCKET_MOUNT_DIR` | The path for the [Databricks DBFS mount][databricks-docs-dbfs] (Not needed if using Unity Catalog connection) | A valid mount path ||
5860
| `CUBEJS_DB_MAX_POOL` | The maximum number of concurrent database connections to pool. Default is `8` | A valid number ||
@@ -201,3 +203,4 @@ bucket][self-preaggs-export-bucket] **must be** configured.
201203
[databricks-docs-approx-agg-fns]: https://docs.databricks.com/en/sql/language-manual/functions/approx_count_distinct.html
202204
[self-preaggs-simple]: #simple
203205
[self-preaggs-export-bucket]: #export-bucket
206+
[ref-databricks-m2m-oauth]: https://docs.databricks.com/aws/en/dev-tools/auth/oauth-m2m

docs/pages/product/configuration/data-sources/duckdb.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ deployment][ref-demo-deployment] in Cube Cloud.
7272
| `CUBEJS_DB_DUCKDB_S3_USE_SSL` | Use SSL for connection | A boolean ||
7373
| `CUBEJS_DB_DUCKDB_S3_URL_STYLE` | To choose the S3 URL style(vhost or path) | `vhost` or `path` ||
7474
| `CUBEJS_DB_DUCKDB_S3_SESSION_TOKEN` | The token for the S3 session | A valid Session Token ||
75-
| `CUBEJS_DB_DUCKDB_EXTENSIONS` | A comma-separated list of DuckDB extensions to install and load | A comma-separated list of DuckDB extensions ||
76-
| `CUBEJS_DB_DUCKDB_COMMUNITY_EXTENSIONS` | A comma-separated list of DuckDB community extensions to install and load | A comma-separated list of DuckDB community extensions ||
75+
| `CUBEJS_DB_DUCKDB_EXTENSIONS` | A comma-separated list of DuckDB extensions to install and load | A comma-separated list of DuckDB extensions ||
76+
| `CUBEJS_DB_DUCKDB_COMMUNITY_EXTENSIONS` | A comma-separated list of DuckDB community extensions to install and load | A comma-separated list of DuckDB community extensions ||
7777
| `CUBEJS_DB_DUCKDB_S3_USE_CREDENTIAL_CHAIN` | A flag to use credentials chain for secrets for S3 connections | `true`, `false`. Defaults to `false` ||
7878
| `CUBEJS_CONCURRENCY` | The number of [concurrent queries][ref-data-source-concurrency] to the data source | A valid number ||
7979

docs/pages/product/configuration/data-sources/presto.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ CUBEJS_DB_SCHEMA=my_presto_schema
3030
| `CUBEJS_DB_USER` | The username used to connect to the database | A valid database username ||
3131
| `CUBEJS_DB_PASS` | The password used to connect to the database | A valid database password ||
3232
| `CUBEJS_DB_PRESTO_CATALOG` | The catalog within Presto to connect to | A valid catalog name within a Presto database ||
33+
| `CUBEJS_DB_PRESTO_AUTH_TOKEN` | The authentication token to use when connecting to Presto/Trino. It will be sent in the `Authorization` header. | A valid authentication token ||
3334
| `CUBEJS_DB_SCHEMA` | The schema within the database to connect to | A valid schema name within a Presto database ||
3435
| `CUBEJS_DB_SSL` | If `true`, enables SSL encryption for database connections from Cube | `true`, `false` ||
3536
| `CUBEJS_DB_MAX_POOL` | The maximum number of concurrent database connections to pool. Default is `8` | A valid number ||

docs/pages/product/configuration/data-sources/trino.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ CUBEJS_DB_SCHEMA=my_trino_schema
3030
| `CUBEJS_DB_USER` | The username used to connect to the database | A valid database username ||
3131
| `CUBEJS_DB_PASS` | The password used to connect to the database | A valid database password ||
3232
| `CUBEJS_DB_PRESTO_CATALOG` | The catalog within Presto to connect to | A valid catalog name within a Presto database ||
33+
| `CUBEJS_DB_PRESTO_AUTH_TOKEN` | The authentication token to use when connecting to Presto/Trino. It will be sent in the `Authorization` header. | A valid authentication token ||
3334
| `CUBEJS_DB_SCHEMA` | The schema within the database to connect to | A valid schema name within a Presto database ||
3435
| `CUBEJS_DB_SSL` | If `true`, enables SSL encryption for database connections from Cube | `true`, `false` ||
3536
| `CUBEJS_DB_MAX_POOL` | The maximum number of concurrent database connections to pool. Default is `8` | A valid number ||

docs/pages/product/configuration/reference/environment-variables.mdx

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,22 @@ The name of the [Databricks catalog][databricks-catalog] to connect to.
239239

240240
[databricks-catalog]: (https://docs.databricks.com/en/data-governance/unity-catalog/create-catalogs.html)
241241

242+
## `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_ID`
243+
244+
The OAuth client ID for [service principal][ref-databricks-m2m-oauth] authentication in Databricks.
245+
246+
| Possible Values | Default in Development | Default in Production |
247+
| ---------------------- | ---------------------- | --------------------- |
248+
| A valid client ID | N/A | N/A |
249+
250+
## `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_SECRET`
251+
252+
The OAuth client secret for [service principal][ref-databricks-m2m-oauth] authentication in Databricks.
253+
254+
| Possible Values | Default in Development | Default in Production |
255+
| ---------------------- | ---------------------- | --------------------- |
256+
| A valid client secret | N/A | N/A |
257+
242258
## `CUBEJS_DB_DATABRICKS_TOKEN`
243259

244260
The [personal access token][databricks-docs-pat] used to authenticate the
@@ -680,6 +696,14 @@ The catalog within Presto/Trino to connect to.
680696
| --------------------------------------------------- | ---------------------- | --------------------- |
681697
| A valid catalog name within a Presto/Trino database | N/A | N/A |
682698

699+
## `CUBEJS_DB_PRESTO_AUTH_TOKEN`
700+
701+
The authentication token to use when connecting to Presto/Trino. It will be sent in the `Authorization` header.
702+
703+
| Possible Values | Default in Development | Default in Production |
704+
| --------------- | ---------------------- | --------------------- |
705+
| A valid authentication token | N/A | N/A |
706+
683707
## `CUBEJS_DB_QUERY_TIMEOUT`
684708

685709
The timeout value for any queries made to the database by Cube.
@@ -742,6 +766,22 @@ username/password, or `SNOWFLAKE_JWT` with key pairs.
742766
| ---------------------------- | ---------------------- | --------------------- |
743767
| `SNOWFLAKE`, `SNOWFLAKE_JWT` | `SNOWFLAKE` | `SNOWFLAKE` |
744768

769+
## `CUBEJS_DB_SNOWFLAKE_OAUTH_TOKEN`
770+
771+
The OAuth token to use with Snowflake.
772+
773+
| Possible Values | Default in Development | Default in Production |
774+
| ------------------------------ | ---------------------- | --------------------- |
775+
| A valid OAuth token | N/A | N/A |
776+
777+
## `CUBEJS_DB_SNOWFLAKE_OAUTH_TOKEN_PATH`
778+
779+
The path to the file containing the OAuth token for Snowflake.
780+
781+
| Possible Values | Default in Development | Default in Production |
782+
| ------------------------------ | ---------------------- | --------------------- |
783+
| A valid OAuth token | N/A | N/A |
784+
745785
## `CUBEJS_DB_SNOWFLAKE_CLIENT_SESSION_KEEP_ALIVE`
746786

747787
If `true`, [keep the Snowflake connection alive
@@ -1837,6 +1877,7 @@ The port for a Cube deployment to listen to API connections on.
18371877
[ref-dataviz-tools]: /product/configuration/visualization-tools
18381878
[ref-context-to-app-id]: /product/configuration/reference/config#context_to_app_id
18391879
[ref-environments]: /product/workspace/environments
1880+
[ref-databricks-m2m-oauth]: https://docs.databricks.com/aws/en/dev-tools/auth/oauth-m2m
18401881
[ref-mdx-api]: /product/apis-integrations/mdx-api
18411882
[ref-mdx-api-locale]: /product/apis-integrations/mdx-api#measure-format
18421883
[ref-time-dimensions]: /product/data-modeling/reference/dimensions#time

docs/pages/product/data-modeling/concepts/calendar-cubes.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ Calendar cubes can be used to [override](#overriding-time-shifts) the default ti
77
shift behavior of time-shift measures as well as [override](#overriding-granularities)
88
the default granularities of time dimensions.
99

10+
<WarningBox>
11+
12+
Calendar cubes are powered by Tesseract, the [next-generation data modeling
13+
engine][link-tesseract]. Tesseract is currently in preview. Use the
14+
`CUBEJS_TESSERACT_SQL_PLANNER` environment variable to enable it.
15+
16+
</WarningBox>
17+
1018
## Configuration
1119

1220
Calendar cubes are [cubes][ref-cubes] where the [`calendar` parameter][ref-cubes-calendar]

docs/pages/product/distribution.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ List of LTS releases:
8484

8585
| Version | Status | End-of-life date |
8686
| --- | --- | --- |
87-
| `v1.0.x` | Active | October 29, 2025 |
87+
| `v1.4.x` | Active | October 29, 2026 |
88+
| `v1.0.x` | End-of-life | October 29, 2025 |
8889

8990

9091
[link-repo]: https://github.com/cube-js/cube

docs/yarn.lock

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,13 @@
143143
algoliasearch "^4.17.0"
144144
classnames "^2.3.2"
145145

146+
"@cube-dev/purple-banner@https://github.com/cubedevinc/purple-banner/releases/download/v2.0.21/cube-dev-purple-banner-2.0.21.tgz":
147+
version "2.0.21"
148+
resolved "https://github.com/cubedevinc/purple-banner/releases/download/v2.0.21/cube-dev-purple-banner-2.0.21.tgz#57217ed1c3952b5ba8f235d9863f07dc9921d3c4"
149+
dependencies:
150+
classnames "^2.3.1"
151+
dayjs "^1.11.7"
152+
146153
"@cubejs-client/core@^0.32.17":
147154
version "0.32.30"
148155
resolved "https://registry.yarnpkg.com/@cubejs-client/core/-/core-0.32.30.tgz#40bad1199635363a82a1a5e9f4718a67f2fe4f59"
@@ -1016,6 +1023,11 @@ character-reference-invalid@^2.0.0:
10161023
optionalDependencies:
10171024
fsevents "~2.3.2"
10181025

1026+
classnames@^2.3.1:
1027+
version "2.5.1"
1028+
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
1029+
integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
1030+
10191031
classnames@^2.3.2:
10201032
version "2.3.2"
10211033
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924"

0 commit comments

Comments
 (0)