diff --git a/.github/workflows/drivers-tests.yml b/.github/workflows/drivers-tests.yml index f9703134b349f..ad5c5e6f42702 100644 --- a/.github/workflows/drivers-tests.yml +++ b/.github/workflows/drivers-tests.yml @@ -241,6 +241,13 @@ jobs: # secrets as job-level environment variables, then referencing the environment variables # to conditionally run steps in the job. DRIVERS_TESTS_ATHENA_CUBEJS_AWS_KEY: ${{ secrets.DRIVERS_TESTS_ATHENA_CUBEJS_AWS_KEY }} + + # redshift Test Serverless Instance is so tiny that it can't serve a few test suites at once, + # so we constrain it to 1 test suite at time. + concurrency: + group: ${{ contains(matrix.database, 'redshift') && 'redshift-global' || format('drivers-tests-{0}-{1}', matrix.database, github.run_id) }} + cancel-in-progress: false + strategy: matrix: database: diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0cd822e65f8dc..c64a6de399c92 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -86,11 +86,8 @@ jobs: node-version: [22.x] # Don't forget to update build-native-release python-version: [3.11] - transpile-worker-threads: [false, true] fail-fast: false - env: - CUBEJS_TRANSPILATION_WORKER_THREADS: ${{ matrix.transpile-worker-threads }} steps: - id: get-tag-out run: echo "$OUT" @@ -144,16 +141,16 @@ jobs: - name: Lerna test run: yarn lerna run --concurrency 1 --stream --no-prefix unit - name: Fix lcov paths - if: (matrix.node-version == '22.x' && matrix.transpile-worker-threads == true) + if: (matrix.node-version == '22.x') run: | ./.github/actions/codecov-fix.sh - name: Combine all fixed LCOV files - if: (matrix.node-version == '22.x' && matrix.transpile-worker-threads == true) + if: (matrix.node-version == '22.x') run: | echo "" > ./combined-unit.lcov find ./packages -type f -name lcov.fixed.info -exec cat {} + >> ./combined-unit.lcov || true - name: Upload coverage artifact - if: (matrix.node-version == '22.x' && matrix.transpile-worker-threads == true) + if: (matrix.node-version == '22.x') uses: actions/upload-artifact@v4 with: name: coverage-unit diff --git a/CHANGELOG.md b/CHANGELOG.md index 30e010f0f9361..23af935d198f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +### Bug Fixes + +- **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)) + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) ### Features diff --git a/README.md b/README.md index 5c28ba01cdbbc..978f4e3d4bffb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ ![]() -

- Agentic Analytics Summit -

Cube — Semantic Layer for Data Applications

diff --git a/docs/pages/product/apis-integrations/rest-api/query-format.mdx b/docs/pages/product/apis-integrations/rest-api/query-format.mdx index 17683e70f1d0e..32405961d0d7c 100644 --- a/docs/pages/product/apis-integrations/rest-api/query-format.mdx +++ b/docs/pages/product/apis-integrations/rest-api/query-format.mdx @@ -34,13 +34,31 @@ The default value is `false`. - `offset`: The number of initial rows to be skipped for your query. The default value is `0`. - `order`: An object, where the keys are measures or dimensions to order by and - their corresponding values are either `asc` or `desc`. The order of the fields - to order on is based on the order of the keys in the object. If not provided, - [default ordering][ref-default-order] is applied. If an empty object (`[]`) is - provided, no ordering is applied. + their corresponding values are either `asc` or `desc`. For [time dimensions][ref-default-granularities], + a granularity can be optionally provided, e.g., `orders.created_at.month`. + The order of the fields to order on is based on the order of the keys in the object. + If not provided, the [default ordering][ref-default-order] is applied. + If an empty object (`[]`) is provided, no ordering is applied. - `timezone`: A [time zone][ref-time-zone] for your query. You can set the desired time zone in the [TZ Database Name](https://en.wikipedia.org/wiki/Tz_database) format, e.g., `America/Los_Angeles`. +- `renewQuery`: If `renewQuery` is set to `true`, Cube will renew all + [`refreshKey`][ref-schema-ref-preaggs-refreshkey] for queries and query + results in the foreground. However, if the + [`refreshKey`][ref-schema-ref-preaggs-refreshkey] (or + [`refreshKey.every`][ref-schema-ref-preaggs-refreshkey-every]) doesn't + indicate that there's a need for an update this setting has no effect. The + default value is `false`. + + + +Cube provides only eventual consistency guarantee. Using a small +[`refreshKey.every`][ref-schema-ref-preaggs-refreshkey-every] value together +with `renewQuery` to achieve immediate consistency can lead to endless +refresh loops and overall system instability. + + + - `ungrouped`: If set to `true`, Cube will run an [ungrouped query][ref-ungrouped-query]. - `joinHints`: Query-time [join hints][ref-join-hints], provided as an array of @@ -673,4 +691,4 @@ refer to its documentation for more examples. [ref-default-granularities]: /product/data-modeling/concepts#time-dimensions [ref-custom-granularities]: /product/data-modeling/reference/dimensions#granularities [wiki-iso-8601]: https://en.wikipedia.org/wiki/ISO_8601 -[ref-join-hints]: /product/data-modeling/concepts/working-with-joins#join-hints \ No newline at end of file +[ref-join-hints]: /product/data-modeling/concepts/working-with-joins#join-hints diff --git a/docs/pages/product/caching/recipes/non-additivity.mdx b/docs/pages/product/caching/recipes/non-additivity.mdx index bd959dc3aea77..e7cf33d942c05 100644 --- a/docs/pages/product/caching/recipes/non-additivity.mdx +++ b/docs/pages/product/caching/recipes/non-additivity.mdx @@ -165,8 +165,7 @@ cube(`users`, { ### Decomposing into a formula with additive measures -Non-additive `avg` measures can be rewritten as -[calculated measures](/product/data-modeling/reference/measures#calculated-measures) +Non-additive `avg` measures can be rewritten as [calculated measures][ref-calculated-measures] that reference additive measures only. Then, this additive measures can be used in pre-aggregations. Please note, however, that you shouldn't include `avg_age` measure in your pre-aggregation as it renders it non-additive. @@ -245,4 +244,5 @@ or run it with the `docker-compose up` command. You'll see the result, including queried data, in the console. -[ref-percentile-recipe]: /product/data-modeling/recipes/percentiles \ No newline at end of file +[ref-percentile-recipe]: /product/data-modeling/recipes/percentiles +[ref-calculated-measures]: /product/data-modeling/concepts/calculated-members#calculated-measures \ No newline at end of file diff --git a/docs/pages/product/configuration/data-sources/databricks-jdbc.mdx b/docs/pages/product/configuration/data-sources/databricks-jdbc.mdx index 9155604ee1dca..0b3468e015301 100644 --- a/docs/pages/product/configuration/data-sources/databricks-jdbc.mdx +++ b/docs/pages/product/configuration/data-sources/databricks-jdbc.mdx @@ -52,7 +52,9 @@ docker run -it -p 4000:4000 --env-file=.env cube-jdk | `CUBEJS_DB_NAME` | The name of the database to connect to | A valid database name | ✅ | | `CUBEJS_DB_DATABRICKS_URL` | The URL for a JDBC connection | A valid JDBC URL | ✅ | | `CUBEJS_DB_DATABRICKS_ACCEPT_POLICY` | Whether or not to accept the license terms for the Databricks JDBC driver | `true`, `false` | ✅ | -| `CUBEJS_DB_DATABRICKS_TOKEN` | The [personal access token][databricks-docs-pat] used to authenticate the Databricks connection | A valid token | ✅ | +| `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_ID` | The OAuth client ID for [service principal][ref-databricks-m2m-oauth] authentication | A valid client ID | ❌ | +| `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_SECRET` | The OAuth client secret for [service principal][ref-databricks-m2m-oauth] authentication | A valid client secret | ❌ | +| `CUBEJS_DB_DATABRICKS_TOKEN` | The [personal access token][databricks-docs-pat] used to authenticate the Databricks connection | A valid token | ❌ | | `CUBEJS_DB_DATABRICKS_CATALOG` | The name of the [Databricks catalog][databricks-catalog] to connect to | A valid catalog name | ❌ | | `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 | ❌ | | `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. [databricks-docs-approx-agg-fns]: https://docs.databricks.com/en/sql/language-manual/functions/approx_count_distinct.html [self-preaggs-simple]: #simple [self-preaggs-export-bucket]: #export-bucket +[ref-databricks-m2m-oauth]: https://docs.databricks.com/aws/en/dev-tools/auth/oauth-m2m \ No newline at end of file diff --git a/docs/pages/product/configuration/data-sources/duckdb.mdx b/docs/pages/product/configuration/data-sources/duckdb.mdx index 1f9fe9d73645b..ca24e226c560b 100644 --- a/docs/pages/product/configuration/data-sources/duckdb.mdx +++ b/docs/pages/product/configuration/data-sources/duckdb.mdx @@ -72,8 +72,8 @@ deployment][ref-demo-deployment] in Cube Cloud. | `CUBEJS_DB_DUCKDB_S3_USE_SSL` | Use SSL for connection | A boolean | ❌ | | `CUBEJS_DB_DUCKDB_S3_URL_STYLE` | To choose the S3 URL style(vhost or path) | `vhost` or `path` | ❌ | | `CUBEJS_DB_DUCKDB_S3_SESSION_TOKEN` | The token for the S3 session | A valid Session Token | ❌ | -| `CUBEJS_DB_DUCKDB_EXTENSIONS` | A comma-separated list of DuckDB extensions to install and load | A comma-separated list of DuckDB extensions | ❌ | -| `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 | ❌ | +| `CUBEJS_DB_DUCKDB_EXTENSIONS` | A comma-separated list of DuckDB extensions to install and load | A comma-separated list of DuckDB extensions | ❌ | +| `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 | ❌ | | `CUBEJS_DB_DUCKDB_S3_USE_CREDENTIAL_CHAIN` | A flag to use credentials chain for secrets for S3 connections | `true`, `false`. Defaults to `false` | ❌ | | `CUBEJS_CONCURRENCY` | The number of [concurrent queries][ref-data-source-concurrency] to the data source | A valid number | ❌ | diff --git a/docs/pages/product/configuration/data-sources/presto.mdx b/docs/pages/product/configuration/data-sources/presto.mdx index 722be8aa68607..fae2ccffe37fd 100644 --- a/docs/pages/product/configuration/data-sources/presto.mdx +++ b/docs/pages/product/configuration/data-sources/presto.mdx @@ -30,6 +30,7 @@ CUBEJS_DB_SCHEMA=my_presto_schema | `CUBEJS_DB_USER` | The username used to connect to the database | A valid database username | ✅ | | `CUBEJS_DB_PASS` | The password used to connect to the database | A valid database password | ✅ | | `CUBEJS_DB_PRESTO_CATALOG` | The catalog within Presto to connect to | A valid catalog name within a Presto database | ✅ | +| `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 | ❌ | | `CUBEJS_DB_SCHEMA` | The schema within the database to connect to | A valid schema name within a Presto database | ✅ | | `CUBEJS_DB_SSL` | If `true`, enables SSL encryption for database connections from Cube | `true`, `false` | ❌ | | `CUBEJS_DB_MAX_POOL` | The maximum number of concurrent database connections to pool. Default is `8` | A valid number | ❌ | diff --git a/docs/pages/product/configuration/data-sources/trino.mdx b/docs/pages/product/configuration/data-sources/trino.mdx index d035c396f1fdf..04d43a6c6575d 100644 --- a/docs/pages/product/configuration/data-sources/trino.mdx +++ b/docs/pages/product/configuration/data-sources/trino.mdx @@ -30,6 +30,7 @@ CUBEJS_DB_SCHEMA=my_trino_schema | `CUBEJS_DB_USER` | The username used to connect to the database | A valid database username | ✅ | | `CUBEJS_DB_PASS` | The password used to connect to the database | A valid database password | ✅ | | `CUBEJS_DB_PRESTO_CATALOG` | The catalog within Presto to connect to | A valid catalog name within a Presto database | ✅ | +| `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 | ❌ | | `CUBEJS_DB_SCHEMA` | The schema within the database to connect to | A valid schema name within a Presto database | ✅ | | `CUBEJS_DB_SSL` | If `true`, enables SSL encryption for database connections from Cube | `true`, `false` | ❌ | | `CUBEJS_DB_MAX_POOL` | The maximum number of concurrent database connections to pool. Default is `8` | A valid number | ❌ | diff --git a/docs/pages/product/configuration/reference/environment-variables.mdx b/docs/pages/product/configuration/reference/environment-variables.mdx index be8295c305d9d..4aba9df27a209 100644 --- a/docs/pages/product/configuration/reference/environment-variables.mdx +++ b/docs/pages/product/configuration/reference/environment-variables.mdx @@ -239,6 +239,22 @@ The name of the [Databricks catalog][databricks-catalog] to connect to. [databricks-catalog]: (https://docs.databricks.com/en/data-governance/unity-catalog/create-catalogs.html) +## `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_ID` + +The OAuth client ID for [service principal][ref-databricks-m2m-oauth] authentication in Databricks. + +| Possible Values | Default in Development | Default in Production | +| ---------------------- | ---------------------- | --------------------- | +| A valid client ID | N/A | N/A | + +## `CUBEJS_DB_DATABRICKS_OAUTH_CLIENT_SECRET` + +The OAuth client secret for [service principal][ref-databricks-m2m-oauth] authentication in Databricks. + +| Possible Values | Default in Development | Default in Production | +| ---------------------- | ---------------------- | --------------------- | +| A valid client secret | N/A | N/A | + ## `CUBEJS_DB_DATABRICKS_TOKEN` The [personal access token][databricks-docs-pat] used to authenticate the @@ -680,6 +696,14 @@ The catalog within Presto/Trino to connect to. | --------------------------------------------------- | ---------------------- | --------------------- | | A valid catalog name within a Presto/Trino database | N/A | N/A | +## `CUBEJS_DB_PRESTO_AUTH_TOKEN` + +The authentication token to use when connecting to Presto/Trino. It will be sent in the `Authorization` header. + +| Possible Values | Default in Development | Default in Production | +| --------------- | ---------------------- | --------------------- | +| A valid authentication token | N/A | N/A | + ## `CUBEJS_DB_QUERY_TIMEOUT` The timeout value for any queries made to the database by Cube. @@ -742,6 +766,22 @@ username/password, or `SNOWFLAKE_JWT` with key pairs. | ---------------------------- | ---------------------- | --------------------- | | `SNOWFLAKE`, `SNOWFLAKE_JWT` | `SNOWFLAKE` | `SNOWFLAKE` | +## `CUBEJS_DB_SNOWFLAKE_OAUTH_TOKEN` + +The OAuth token to use with Snowflake. + +| Possible Values | Default in Development | Default in Production | +| ------------------------------ | ---------------------- | --------------------- | +| A valid OAuth token | N/A | N/A | + +## `CUBEJS_DB_SNOWFLAKE_OAUTH_TOKEN_PATH` + +The path to the file containing the OAuth token for Snowflake. + +| Possible Values | Default in Development | Default in Production | +| ------------------------------ | ---------------------- | --------------------- | +| A valid OAuth token | N/A | N/A | + ## `CUBEJS_DB_SNOWFLAKE_CLIENT_SESSION_KEEP_ALIVE` If `true`, [keep the Snowflake connection alive @@ -1405,7 +1445,7 @@ code in worker threads. | Possible Values | Default in Development | Default in Production | | --------------- | ---------------------- | --------------------- | -| `true`, `false` | `false` | `false` | +| `true`, `false` | `true` | `true` | @@ -1837,6 +1877,7 @@ The port for a Cube deployment to listen to API connections on. [ref-dataviz-tools]: /product/configuration/visualization-tools [ref-context-to-app-id]: /product/configuration/reference/config#context_to_app_id [ref-environments]: /product/workspace/environments +[ref-databricks-m2m-oauth]: https://docs.databricks.com/aws/en/dev-tools/auth/oauth-m2m [ref-mdx-api]: /product/apis-integrations/mdx-api [ref-mdx-api-locale]: /product/apis-integrations/mdx-api#measure-format [ref-time-dimensions]: /product/data-modeling/reference/dimensions#time diff --git a/docs/pages/product/data-modeling/concepts.mdx b/docs/pages/product/data-modeling/concepts.mdx index d175a3d0562a4..588406a7ce6e6 100644 --- a/docs/pages/product/data-modeling/concepts.mdx +++ b/docs/pages/product/data-modeling/concepts.mdx @@ -42,7 +42,7 @@ metrics-first approaches. _Cubes_ represent datasets in Cube and are conceptually similar to [views in SQL][wiki-view-sql]. Cubes are usually declared in separate files with one cube per file. Typically, a cube points to a single table in -your database using the [`sql_table` property][ref-schema-ref-sql-table]: +your [data source][ref-data-sources] using the [`sql_table` property][ref-schema-ref-sql-table]: @@ -104,6 +104,9 @@ Cubes and their members can be further referenced by [views](#views). Note that cubes support [extension][ref-extending-cubes], [polymorphism][ref-polymorphic-cubes], and [data blending][ref-data-blending]. +Custom calendars, such as retail calendars, can be implemented using [calendar +cubes][ref-calendar-cubes]. + Cubes can be defined statically and you can also build [dynamic data models][ref-dynamic-data-models]. @@ -850,4 +853,6 @@ See the reference documentaton for the full list of pre-aggregation [ref-custom-calendar-recipe]: /product/data-modeling/recipes/custom-calendar [ref-cube-with-dbt]: /product/data-modeling/recipes/dbt [ref-apis-support]: /product/apis-integrations#data-modeling -[ref-viz-tools]: /product/configuration/visualization-tools \ No newline at end of file +[ref-viz-tools]: /product/configuration/visualization-tools +[ref-data-sources]: /product/configuration/data-sources +[ref-calendar-cubes]: /product/data-modeling/concepts/calendar-cubes \ No newline at end of file diff --git a/docs/pages/product/data-modeling/concepts/_meta.js b/docs/pages/product/data-modeling/concepts/_meta.js index 5c26138e38f43..0c799f03ac780 100644 --- a/docs/pages/product/data-modeling/concepts/_meta.js +++ b/docs/pages/product/data-modeling/concepts/_meta.js @@ -2,7 +2,8 @@ module.exports = { "calculated-members": "Calculated members", "multi-stage-calculations": "Multi-stage calculations", "working-with-joins": "Joins between cubes", + "calendar-cubes": "Calendar cubes", "code-reusability-extending-cubes": "Extension", "polymorphic-cubes": "Polymorphic cubes", "data-blending": "Data blending" -} \ No newline at end of file +} diff --git a/docs/pages/product/data-modeling/concepts/calculated-members.mdx b/docs/pages/product/data-modeling/concepts/calculated-members.mdx index e5faefb5b8c4e..053efa0a957c6 100644 --- a/docs/pages/product/data-modeling/concepts/calculated-members.mdx +++ b/docs/pages/product/data-modeling/concepts/calculated-members.mdx @@ -17,6 +17,8 @@ into formulas that involve simpler measures. Also, calculated measures [can help][ref-decomposition-recipe] to use [non-additive][ref-non-additive] measures with pre-aggregations. +### Members of the same cube + In the following example, the `completed_ratio` measure is calculated as a division of `completed_count` by total `count`. Note that the result is also multiplied by `1.0` since [integer division in SQL][link-postgres-division] would otherwise produce an @@ -90,6 +92,149 @@ FROM ( ) AS "orders" ``` +### Members of other cubes + +If you have `first_cube` that is [joined][ref-joins] to `second_cube`, you can define a +calculated measure that references measures from both `first_cube` and `second_cube`. +When you query for this calculated measure, Cube will transparently generate SQL with +necessary joins. + +In the following example, the `orders.purchases_to_users_ratio` measure references the +`purchases` measure from the `orders` cube and the `count` measure from the `users` cube: + + + +```javascript +cube(`orders`, { + sql: ` + SELECT 1 AS id, 11 AS user_id, 'processing' AS status UNION ALL + SELECT 2 AS id, 11 AS user_id, 'completed' AS status UNION ALL + SELECT 3 AS id, 11 AS user_id, 'completed' AS status + `, + + dimensions: { + id: { + sql: `id`, + type: `number`, + primary_key: true + } + }, + + measures: { + purchases: { + type: `count`, + filters: [{ + sql: `${CUBE}.status = 'completed'` + }] + } + } +}) + +cube(`users`, { + sql: ` + SELECT 11 AS id, 'Alice' AS name UNION ALL + SELECT 12 AS id, 'Bob' AS name UNION ALL + SELECT 13 AS id, 'Eve' AS name + `, + + joins: { + orders: { + sql: `${CUBE}.id = ${orders}.user_id`, + relationship: `one_to_many` + } + }, + + dimensions: { + id: { + sql: `id`, + type: `number`, + primary_key: true + } + }, + + measures: { + count: { + type: `count` + }, + + purchases_to_users_ratio: { + sql: `100.0 * ${orders.purchases} / ${CUBE.count}`, + type: `number`, + format: `percent` + } + } +}) +``` + +```yaml +cubes: + - name: orders + sql: > + SELECT 1 AS id, 11 AS user_id, 'processing' AS status UNION ALL + SELECT 2 AS id, 11 AS user_id, 'completed' AS status UNION ALL + SELECT 3 AS id, 11 AS user_id, 'completed' AS status + + dimensions: + - name: id + sql: id + type: number + primary_key: true + + measures: + - name: purchases + type: count + filters: + - sql: "{CUBE}.status = 'completed'" + + - name: users + sql: > + SELECT 11 AS id, 'Alice' AS name UNION ALL + SELECT 12 AS id, 'Bob' AS name UNION ALL + SELECT 13 AS id, 'Eve' AS name + + joins: + - name: orders + sql: "{CUBE}.id = {orders}.user_id" + relationship: one_to_many + + dimensions: + - name: id + sql: id + type: number + primary_key: true + + measures: + - name: count + type: count + + - name: purchases_to_users_ratio + sql: "1.0 * {orders.purchases} / {CUBE.count}" + type: number +``` + + + +If you query for `users.purchases_to_users_ratio`, Cube will generate the following SQL: + +```sql +SELECT + 1.0 * COUNT( + CASE + WHEN ("orders".status = 'completed') THEN "orders".id + END + ) / COUNT(DISTINCT "users".id) "users__purchases_to_users_ratio" +FROM ( + SELECT 11 AS id, 'Alice' AS name UNION ALL + SELECT 12 AS id, 'Bob' AS name UNION ALL + SELECT 13 AS id, 'Eve' AS name +) AS "users" +LEFT JOIN ( + SELECT 1 AS id, 11 AS user_id, 'processing' AS status UNION ALL + SELECT 2 AS id, 11 AS user_id, 'completed' AS status UNION ALL + SELECT 3 AS id, 11 AS user_id, 'completed' AS status +) AS "orders" ON "users".id = "orders".user_id +``` + ## Proxy dimensions **Proxy dimensions reference dimensions from the same cube or other cubes.** diff --git a/docs/pages/product/data-modeling/concepts/calendar-cubes.mdx b/docs/pages/product/data-modeling/concepts/calendar-cubes.mdx new file mode 100644 index 0000000000000..55fcf42a3b2b3 --- /dev/null +++ b/docs/pages/product/data-modeling/concepts/calendar-cubes.mdx @@ -0,0 +1,467 @@ +# Calendar cubes + +_Calendar cubes_ are used to implement custom calendars, such as retail calendars. +If your data model contains a calendar table, it can be modeled as a calendar cube. + +Calendar cubes can be used to [override](#overriding-time-shifts) the default time +shift behavior of time-shift measures as well as [override](#overriding-granularities) +the default granularities of time dimensions. + + + +Calendar cubes are powered by Tesseract, the [next-generation data modeling +engine][link-tesseract]. Tesseract is currently in preview. Use the +`CUBEJS_TESSERACT_SQL_PLANNER` environment variable to enable it. + + + +## Configuration + +Calendar cubes are [cubes][ref-cubes] where the [`calendar` parameter][ref-cubes-calendar] +is set to `true`. This indicates that the cube is a calendar cube and allow the use of +custom time shifts and granularities. + + + +```yaml +cubes: + - name: fiscal_calendar + calendar: true + sql: > + SELECT + date_key, + calendar_date, + start_of_week, start_of_month, start_of_year, + week_ago, month_ago, year_ago + FROM calendar_table + + dimensions: + - name: date_key + sql: date + type: time + primary_key: true + + - name: date + sql: date + type: time + + time_shift: + - type: prior + interval: 1 week + sql: "{CUBE}.week_ago" + + - type: prior + interval: 1 month + sql: "{CUBE}.month_ago" + + - type: prior + interval: 1 year + sql: "{CUBE}.year_ago" + + granularities: + - name: week + sql: "{CUBE}.start_of_week" + + - name: month + sql: "{CUBE}.start_of_month" + + - name: year + sql: "{CUBE}.start_of_year" +``` + +```javascript +cube('fiscal_calendar', { + calendar: true, + sql: ` + SELECT + date_key, + calendar_date, + start_of_week, start_of_month, start_of_year, + week_ago, month_ago, year_ago + FROM calendar_table + `, + + dimensions: { + date_key: { + sql: 'date_key', + type: 'time', + primary_key: true + }, + + date: { + sql: 'calendar_date', + type: 'time', + + time_shift: [ + { type: 'prior', interval: '1 week', sql: '{CUBE}.week_ago' }, + { type: 'prior', interval: '1 month', sql: '{CUBE}.month_ago' }, + { type: 'prior', interval: '1 year', sql: '{CUBE}.year_ago' } + ], + + granularities: [ + { name: 'week', sql: '{CUBE}.start_of_week' }, + { name: 'month', sql: '{CUBE}.start_of_month' }, + { name: 'year', sql: '{CUBE}.start_of_year' } + ] + } + } +}) +``` + + + +Calendar cubes are only useful when they are joined with other cubes in the data model. + + + +```yaml +cubes: + - name: sales + sql_table: sales_facts + + joins: + - name: fiscal_calendar + sql: "{CUBE}.date = {fiscal_calendar.date_key}" + relationship: many_to_one + + # ... +``` + +```javascript +cube(`sales`, { + sql_table: `sales_facts`, + + joins: { + fiscal_calendar: { + sql: `${CUBE}.date = ${fiscal_calendar.date_key}`, + relationship: `many_to_one` + } + }, + + // ... +}) +``` + + + +## Overriding time shifts + +Calendar cubes can be used to override the default time shift behavior of [time-shift +measures][ref-time-shift]. It can help implement custom time shifts or reuse common time +shifts across multiple cubes. + +By default, a time shift like `prior` + `1 month` will add `INTERVAL '1 month'` to the +time dimension value in the generated SQL. However, with custom calendars, a more nuanced +approach is often needed, such as mapping each date to another pre-calculated date from +the calendar table. + +In the following example, the `custom_calendar` cube defines a custom time shift for +`prior` + `1 month` that uses the `month_ago` column from the calendar table. It also +defines a custom time shift `my_favorite_time_shift` of type `prior` + the `42 days` +interval. + + + +```yaml +cubes: + - name: custom_calendar + calendar: true + sql: > + SELECT '2025-01-01' AS date, '2024-12-15' AS month_ago UNION ALL + SELECT '2025-02-01' AS date, '2025-01-15' AS month_ago UNION ALL + SELECT '2025-03-01' AS date, '2025-02-15' AS month_ago UNION ALL + SELECT '2025-04-01' AS date, '2025-03-15' AS month_ago UNION ALL + SELECT '2025-05-01' AS date, '2025-04-15' AS month_ago UNION ALL + SELECT '2025-06-01' AS date, '2025-05-15' AS month_ago + + dimensions: + - name: date_key + sql: "{CUBE}.date::TIMESTAMP" + type: time + primary_key: true + + - name: date + sql: "{CUBE}.date::TIMESTAMP" + type: time + + time_shift: + - type: prior + interval: 1 month + sql: "{CUBE}.month_ago::TIMESTAMP" + + - type: prior + interval: 42 days + name: my_favorite_time_shift + + - name: sales + sql: > + SELECT 1 AS id, 101 AS amount, '2025-01-01'::TIMESTAMP AS date UNION ALL + SELECT 2 AS id, 202 AS amount, '2025-02-01'::TIMESTAMP AS date UNION ALL + SELECT 3 AS id, 303 AS amount, '2025-03-01'::TIMESTAMP AS date UNION ALL + SELECT 4 AS id, 404 AS amount, '2025-04-01'::TIMESTAMP AS date UNION ALL + SELECT 5 AS id, 505 AS amount, '2025-05-01'::TIMESTAMP AS date UNION ALL + SELECT 6 AS id, 606 AS amount, '2025-06-01'::TIMESTAMP AS date + + joins: + - name: custom_calendar + sql: "{CUBE}.date = {custom_calendar.date_key}" + relationship: many_to_one + + dimensions: + - name: id + sql: id + type: number + primary_key: true + + measures: + - name: total_sales + sql: amount + type: sum + + - name: total_sales_prior_month + sql: "{total_sales}" + type: number + time_shift: + - type: prior + interval: 1 month + + - name: total_sales_few_days_ago + sql: "{total_sales}" + type: number + time_shift: + - name: my_favorite_time_shift +``` + +```javascript +cube(`custom_calendar`, { + calendar: true, + sql: ` + SELECT '2025-01-01' AS date, '2024-12-15' AS month_ago UNION ALL + SELECT '2025-02-01' AS date, '2025-01-15' AS month_ago UNION ALL + SELECT '2025-03-01' AS date, '2025-02-15' AS month_ago UNION ALL + SELECT '2025-04-01' AS date, '2025-03-15' AS month_ago UNION ALL + SELECT '2025-05-01' AS date, '2025-04-15' AS month_ago UNION ALL + SELECT '2025-06-01' AS date, '2025-05-15' AS month_ago + `, + + dimensions: { + date_key: { + sql: `${CUBE}.date::TIMESTAMP`, + type: `time`, + primary_key: true + }, + + date: { + sql: `${CUBE}.date::TIMESTAMP`, + type: `time`, + + time_shift: [ + { type: `prior`, interval: `1 month`, sql: `${CUBE}.month_ago::TIMESTAMP` }, + { type: `prior`, interval: `42 days`, name: `my_favorite_time_shift` } + ] + } + } +}) + +cube(`sales`, { + sql: ` + SELECT 1 AS id, 101 AS amount, '2025-01-01'::TIMESTAMP AS date UNION ALL + SELECT 2 AS id, 202 AS amount, '2025-02-01'::TIMESTAMP AS date UNION ALL + SELECT 3 AS id, 303 AS amount, '2025-03-01'::TIMESTAMP AS date UNION ALL + SELECT 4 AS id, 404 AS amount, '2025-04-01'::TIMESTAMP AS date UNION ALL + SELECT 5 AS id, 505 AS amount, '2025-05-01'::TIMESTAMP AS date UNION ALL + SELECT 6 AS id, 606 AS amount, '2025-06-01'::TIMESTAMP AS date + `, + + joins: { + custom_calendar: { + sql: `${CUBE}.date = ${custom_calendar.date_key}`, + relationship: `many_to_one` + } + }, + + dimensions: { + id: { + sql: `id`, + type: `number`, + primary_key: true + } + }, + + measures: { + total_sales: { + sql: `amount`, + type: `sum` + }, + + total_sales_prior_month: { + sql: `{total_sales}`, + type: `number`, + time_shift: [ + { type: `prior`, interval: `1 month` } + ] + }, + + total_sales_few_days_ago: { + sql: `{total_sales}`, + type: `number`, + time_shift: [ + { name: `my_favorite_time_shift` } + ] + } + } +}) +``` + + + +Whe `sales.total_sales_prior_month` and `sales.total_sales_few_days_ago` measures are +queried together with the `calendar.date` time dimension, the generate SQL will use the +custom time shifts defined in the `custom_calendar` cube: one with the `month_ago` +column and another with `INTERVAL '42 days'`. + +## Overriding granularities + +Calendar cubes can be used to override the default [granularities][ref-granularities] of +[time dimensions][ref-time-dimension]. + +By default, SQL functions like `DATE_TRUNC` are used to calculate default granularities, +such as `day`, `month`, or `year`. However, custom calendars often have different +definitions for these periods, e.g., a retail calendar might use 4-5-4 week patterns. + +Calendar cubes allow you to define custom SQL expressions for each granularity. +In the following example, the `fiscal_calendar` cube overrides the default `month` +granularity to the to a pre-calculated `mid_month` column: + + + +```yaml +cubes: + - name: custom_calendar + calendar: true + sql: > + SELECT '2025-01-02' AS date, '2025-01-15' AS mid_month UNION ALL + SELECT '2025-02-04' AS date, '2025-02-15' AS mid_month UNION ALL + SELECT '2025-03-09' AS date, '2025-03-15' AS mid_month UNION ALL + SELECT '2025-04-17' AS date, '2025-04-15' AS mid_month UNION ALL + SELECT '2025-05-21' AS date, '2025-05-15' AS mid_month UNION ALL + SELECT '2025-06-30' AS date, '2025-06-15' AS mid_month + + dimensions: + - name: date_key + sql: date + type: time + primary_key: true + + - name: date + sql: date + type: time + primary_key: true + + granularities: + - name: month + sql: "{CUBE}.mid_month::TIMESTAMP" + + - name: sales + sql: > + SELECT 1 AS id, 101 AS amount, '2025-01-02'::TIMESTAMP AS date UNION ALL + SELECT 2 AS id, 202 AS amount, '2025-02-04'::TIMESTAMP AS date UNION ALL + SELECT 3 AS id, 303 AS amount, '2025-03-09'::TIMESTAMP AS date UNION ALL + SELECT 4 AS id, 404 AS amount, '2025-04-17'::TIMESTAMP AS date UNION ALL + SELECT 5 AS id, 505 AS amount, '2025-05-21'::TIMESTAMP AS date UNION ALL + SELECT 6 AS id, 606 AS amount, '2025-06-30'::TIMESTAMP AS date + + joins: + - name: custom_calendar + sql: "{CUBE}.date = {custom_calendar.date}" + relationship: many_to_one + + dimensions: + - name: id + sql: id + type: number + primary_key: true + + measures: + - name: revenue + sql: amount + type: sum +``` + +```javascript +cube(`custom_calendar`, { + calendar: true, + sql: ` + SELECT '2025-01-02' AS date, '2025-01-15' AS mid_month UNION ALL + SELECT '2025-02-04' AS date, '2025-02-15' AS mid_month UNION ALL + SELECT '2025-03-09' AS date, '2025-03-15' AS mid_month UNION ALL + SELECT '2025-04-17' AS date, '2025-04-15' AS mid_month UNION ALL + SELECT '2025-05-21' AS date, '2025-05-15' AS mid_month UNION ALL + SELECT '2025-06-30' AS date, '2025-06-15' AS mid_month + `, + + dimensions: { + date_key: { + sql: `date`, + type: `time`, + primary_key: true + }, + + date: { + sql: `date`, + type: `time`, + primary_key: true, + + granularities: [ + { name: `month`, sql: `${CUBE}.mid_month::TIMESTAMP` } + ] + } + } +}) + +cube(`sales`, { + sql: ` + SELECT 1 AS id, 101 AS amount, '2025-01-02'::TIMESTAMP AS date UNION ALL + SELECT 2 AS id, 202 AS amount, '2025-02-04'::TIMESTAMP AS date UNION ALL + SELECT 3 AS id, 303 AS amount, '2025-03-09'::TIMESTAMP AS date UNION ALL + SELECT 4 AS id, 404 AS amount, '2025-04-17'::TIMESTAMP AS date UNION ALL + SELECT 5 AS id, 505 AS amount, '2025-05-21'::TIMESTAMP AS date UNION ALL + SELECT 6 AS id, 606 AS amount, '2025-06-30'::TIMESTAMP AS date + `, + + joins: { + custom_calendar: { + sql: `${CUBE}.date = ${custom_calendar.date}`, + relationship: `many_to_one` + } + }, + + dimensions: { + id: { + sql: `id`, + type: `number`, + primary_key: true + } + }, + + measures: { + revenue: { + sql: `amount`, + type: `sum` + } + } +}) +``` + + + +When querying `sales.revenue` by `custom_calendar.date` with monthly granularity, the +`mid_month` column will be used instead of the standard `DATE_TRUNC('month', date)` +expression in the generated SQL. + + +[ref-time-shift]: /product/data-modeling/concepts/multi-stage-calculations#time-shift +[ref-time-dimension]: /product/data-modeling/concepts#time-dimensions +[ref-granularities]: /product/data-modeling/reference/dimensions#granularities +[ref-cubes]: /product/data-modeling/reference/cube +[ref-cubes-calendar]: /product/data-modeling/reference/cube#calendar \ No newline at end of file diff --git a/docs/pages/product/data-modeling/concepts/multi-stage-calculations.mdx b/docs/pages/product/data-modeling/concepts/multi-stage-calculations.mdx index e0e179e046ebc..d2b227764d9ab 100644 --- a/docs/pages/product/data-modeling/concepts/multi-stage-calculations.mdx +++ b/docs/pages/product/data-modeling/concepts/multi-stage-calculations.mdx @@ -26,8 +26,8 @@ Please track [this issue](https://github.com/cube-js/cube/issues/8487). Common uses of multi-stage calculations: - [Rolling window](#rolling-window) calculations. +- [Time-shift](#time-shift) calculations, e.g., year-over-year sales growth. - [Period-to-date](#period-to-date) calculations, e.g., year-to-date (YTD) analysis. -- [Prior date](#prior-date) calculations, e.g., year-over-year sales growth. - [Fixed dimension](#fixed-dimension) calculations, e.g., comparing individual items to a broader dataset or calculating percent of total. - [Ranking](#ranking) calculations. @@ -98,45 +98,48 @@ Query and result: -## Period-to-date +## Time shift -Period-to-date calculations can be used to analyze data over different time periods: +A _time-shift measure_ calculates the value of another measure at a different point in +time. This is achieved by _shifting_ the time dimension from the query in the necessary +direction during the calculation. Time-shifts are configured using the [`time_shift` +parameter][ref-ref-time-shift] of a measure. -- Year-to-date (YTD) analysis. -- Quarter-to-date (QTD) analysis. -- Month-to-date (MTD) analysis. +Typically, this is used to compare the current value of a measure with its prior value, +such as the same time last year. For example, if you have the `revenue` measure, you can +calculate its value for the same time last year: ```yaml -- name: revenue_ytd - sql: revenue - type: sum - rolling_window: - type: to_date - granularity: year - -- name: revenue_qtd - sql: revenue - type: sum - rolling_window: - type: to_date - granularity: quarter - -- name: revenue_mtd - sql: revenue - type: sum - rolling_window: - type: to_date - granularity: month +- name: revenue_prior_year + multi_stage: true + sql: "{revenue}" + type: number + time_shift: + - interval: 1 year + type: prior ``` +You can use time-shift measures with [calendar cubes][ref-calendar-cubes] to customize +how time-shifting works, e.g., to shift the time dimension to the prior date in a retail +calendar. + ### Example Data model: ```yaml cubes: - - name: period_to_date + - name: prior_date sql: | + SELECT '2023-04-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-05-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-06-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-07-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-08-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-09-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-10-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-11-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL + SELECT '2023-12-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL SELECT '2024-01-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL SELECT '2024-02-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL SELECT '2024-03-01'::TIMESTAMP AS time, 1000 AS revenue UNION ALL @@ -162,55 +165,71 @@ cubes: type: time measures: - - name: revenue_ytd - sql: revenue - type: sum - rolling_window: - type: to_date - granularity: year - - - name: revenue_qtd + - name: revenue sql: revenue type: sum - rolling_window: - type: to_date - granularity: quarter - - - name: revenue_mtd + + - name: revenue_ytd sql: revenue type: sum rolling_window: type: to_date - granularity: month + granularity: year + + - name: revenue_prior_year + multi_stage: true + sql: "{revenue}" + type: number + time_shift: + - time_dimension: time + interval: 1 year + type: prior + + - name: revenue_prior_year_ytd + multi_stage: true + sql: "{revenue_ytd}" + type: number + time_shift: + - time_dimension: time + interval: 1 year + type: prior ``` -Query and result: +Queries and results: - + -## Prior date + + +## Period-to-date -Prior date calculations can be used to find the difference between two aggregated -measures, like year-over-year sales growth. +Period-to-date calculations can be used to analyze data over different time periods: + +- Year-to-date (YTD) analysis. +- Quarter-to-date (QTD) analysis. +- Month-to-date (MTD) analysis. ```yaml -- name: revenue_prior_year - multi_stage: true - sql: "{revenue}" - type: number - time_shift: - - time_dimension: calendar.CalendarDate - interval: 1 year - type: prior - -- name: revenue_prior_year_ytd - multi_stage: true - sql: "{revenue_ytd}" - type: number - time_shift: - - time_dimension: calendar.CalendarDate - interval: 1 year - type: prior +- name: revenue_ytd + sql: revenue + type: sum + rolling_window: + type: to_date + granularity: year + +- name: revenue_qtd + sql: revenue + type: sum + rolling_window: + type: to_date + granularity: quarter + +- name: revenue_mtd + sql: revenue + type: sum + rolling_window: + type: to_date + granularity: month ``` ### Example @@ -255,41 +274,31 @@ cubes: type: time measures: - - name: revenue - sql: revenue - type: sum - - name: revenue_ytd sql: revenue type: sum rolling_window: type: to_date granularity: year - - - name: revenue_prior_year - multi_stage: true - sql: "{revenue}" - type: number - time_shift: - - time_dimension: time - interval: 1 year - type: prior - - - name: revenue_prior_year_ytd - multi_stage: true - sql: "{revenue_ytd}" - type: number - time_shift: - - time_dimension: time - interval: 1 year - type: prior + + - name: revenue_qtd + sql: revenue + type: sum + rolling_window: + type: to_date + granularity: quarter + + - name: revenue_mtd + sql: revenue + type: sum + rolling_window: + type: to_date + granularity: month ``` -Queries and results: - - +Query and result: - + ## Fixed dimension @@ -459,4 +468,6 @@ Query and result: [ref-measures]: /product/data-modeling/concepts#measures [ref-dimensions]: /product/data-modeling/concepts#dimensions [ref-rolling-window]: /product/data-modeling/reference/measures#rolling_window -[link-cte]: https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL#Common_table_expression \ No newline at end of file +[link-cte]: https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL#Common_table_expression +[ref-ref-time-shift]: /product/data-modeling/reference/measures#time_shift +[ref-calendar-cubes]: /product/data-modeling/concepts/calendar-cubes diff --git a/docs/pages/product/data-modeling/recipes/period-over-period.mdx b/docs/pages/product/data-modeling/recipes/period-over-period.mdx index fb807b71e0fa2..aceb93f6fcef6 100644 --- a/docs/pages/product/data-modeling/recipes/period-over-period.mdx +++ b/docs/pages/product/data-modeling/recipes/period-over-period.mdx @@ -10,26 +10,26 @@ revenue, etc. In Cube, calculating a period-over-period metric involves the following steps: -- Define a couple of [`rolling_window` measures][ref-rolling-window] with -different windows, i.e., one for _this period_ and the other for the -_previous period_. +- Define a [multi-stage measure][ref-multi-stage] for the _current period_. +- Define a [time-shift measure][link-time-shift] that references the current +period measure and shifts it to the _previous period_. - Define a [calculated measure][ref-calculated-measure] that references -these `rolling_window` measures and uses them in a calculation, e.g., -divides or subtracts them. +these measures and uses them in a calculation, e.g., divides or subtracts them. -Tesseract, the [next-generation data modeling engine][link-tesseract], -provides a more efficient way to calculate [period-over-period changes][link-period-over-period]. -Tesseract is currently in preview. Use the `CUBEJS_TESSERACT_SQL_PLANNER` -environment variable to enable it. +Multi-stage calculations are powered by Tesseract, the [next-generation data modeling +engine][link-tesseract]. Tesseract is currently in preview. Use the +`CUBEJS_TESSERACT_SQL_PLANNER` environment variable to enable it. The following data model allows to calculate a month-over-month change of -some value. `current_month_sum` and `previous_month_sum` measures define -two rolling windows and the `month_over_month_ratio` measure divides -their values: +some value. `current_month_sum` is the base measure, `previous_month_sum` +is a time-shift measure that shifts the current month data to the previous +month, and the `month_over_month_ratio` measure divides their values: + + ```yaml cubes: @@ -53,22 +53,68 @@ cubes: - name: current_month_sum sql: value type: sum - rolling_window: - trailing: 1 month - offset: end - name: previous_month_sum - sql: value - type: sum - rolling_window: - trailing: 1 month - offset: start + multi_stage: true + sql: "{current_month_sum}" + type: number + time_shift: + - interval: 1 month + type: prior - name: month_over_month_ratio - sql: "{current_month_sum} / {previous_month_sum}" + multi_stage: true + sql: "{current_month_sum} / NULLIF({previous_month_sum}, 0)" type: number ``` +```javascript +cube(`month_over_month`, { + sql: ` + SELECT 1 AS value, '2024-01-01'::TIMESTAMP AS date UNION ALL + SELECT 2 AS value, '2024-01-01'::TIMESTAMP AS date UNION ALL + SELECT 3 AS value, '2024-02-01'::TIMESTAMP AS date UNION ALL + SELECT 4 AS value, '2024-02-01'::TIMESTAMP AS date UNION ALL + SELECT 5 AS value, '2024-03-01'::TIMESTAMP AS date UNION ALL + SELECT 6 AS value, '2024-03-01'::TIMESTAMP AS date UNION ALL + SELECT 7 AS value, '2024-04-01'::TIMESTAMP AS date UNION ALL + SELECT 8 AS value, '2024-04-01'::TIMESTAMP AS date + `, + + dimensions: { + date: { + sql: `date`, + type: `time` + } + }, + + measures: { + current_month_sum: { + sql: `value`, + type: `sum` + }, + + previous_month_sum: { + multi_stage: true, + sql: `${current_month_sum}`, + type: `number`, + time_shift: [{ + interval: `1 month`, + type: `prior` + }] + }, + + month_over_month_ratio: { + multi_stage: true, + sql: `${current_month_sum} / NULLIF(${previous_month_sum}, 0)`, + type: `number` + } + } +}) +``` + + + ## Result Often, when calculating period-over-period changes, you would also use a @@ -81,23 +127,24 @@ that matches the period, i.e., `month` for month-over-month calculations: { "dimension": "month_over_month.date", "granularity": "month", - "dateRange": "this year" + "dateRange": ["2024-01-01", "2025-01-01"] } ], "measures": [ "month_over_month.current_month_sum", "month_over_month.previous_month_sum", - "month_over_month.change" + "month_over_month.month_over_month_ratio" ] } ``` Here's the result: - + + -[ref-rolling-window]: /product/data-modeling/reference/measures#rolling_window +[ref-multi-stage]: /product/data-modeling/concepts/multi-stage-calculations [ref-calculated-measure]: /product/data-modeling/overview#4-using-calculated-measures [ref-time-dimension-granularity]: /product/apis-integrations/rest-api/query-format#time-dimensions-format [link-tesseract]: https://cube.dev/blog/introducing-next-generation-data-modeling-engine -[link-period-over-period]: /product/data-modeling/concepts/multi-stage-calculations#prior-date \ No newline at end of file +[link-time-shift]: /product/data-modeling/concepts/multi-stage-calculations#time-shift diff --git a/docs/pages/product/data-modeling/reference/cube.mdx b/docs/pages/product/data-modeling/reference/cube.mdx index e85105401c4c2..c43ae050bf0ef 100644 --- a/docs/pages/product/data-modeling/reference/cube.mdx +++ b/docs/pages/product/data-modeling/reference/cube.mdx @@ -593,6 +593,16 @@ cubes: +### `calendar` + +The `calendar` parameter is used to mark [calendar cubes][ref-calendar-cubes]. +It's set to `false` by default. + +When set to `true`, Cube will treat this cube as a calendar cube and allow to +[override time-shifts][ref-calendar-cubes-time-shifts] and [granularities][ref-calendar-cubes-granularities] +on its [time dimensions][ref-time-dimensions]. This can be useful for [time-shift +calculations][ref-time-shift] with a custom calendar. + ### `pre_aggregations` The `pre_aggregations` parameter is used to configure [pre-aggregations][ref-ref-pre-aggs]. @@ -636,4 +646,9 @@ The `access_policy` parameter is used to configure [data access policies][ref-re [ref-ref-pre-aggs]: /product/data-modeling/reference/pre-aggregations [ref-ref-dap]: /product/data-modeling/reference/data-access-policies [ref-syntax-cube-sql]: /product/data-modeling/syntax#cubesql-function -[ref-extension]: /product/data-modeling/concepts/code-reusability-extending-cubes \ No newline at end of file +[ref-extension]: /product/data-modeling/concepts/code-reusability-extending-cubes +[ref-calendar-cubes]: /product/data-modeling/concepts/calendar-cubes +[ref-calendar-cubes-time-shifts]: /product/data-modeling/concepts/calendar-cubes#time-shifts +[ref-calendar-cubes-granularities]: /product/data-modeling/concepts/calendar-cubes#granularities +[ref-time-dimensions]: /product/data-modeling/concepts#time-dimensions +[ref-time-shift]: /product/data-modeling/concepts/multi-stage-calculations#time-shift \ No newline at end of file diff --git a/docs/pages/product/data-modeling/reference/dimensions.mdx b/docs/pages/product/data-modeling/reference/dimensions.mdx index d8bcc24d68f00..e4d088b76dfe3 100644 --- a/docs/pages/product/data-modeling/reference/dimensions.mdx +++ b/docs/pages/product/data-modeling/reference/dimensions.mdx @@ -148,6 +148,42 @@ cube(`products`, { }) ``` +### `title` + +You can use the `title` parameter to change a dimension's displayed name. By +default, Cube will humanize your dimension key to create a display name. In +order to override default behavior, please use the `title` property: + + + +```javascript +cube(`products`, { + // ... + + dimensions: { + meta_value: { + title: `Size`, + sql: `meta_value`, + type: `string` + } + } +}) +``` + +```yaml +cubes: + - name: products + # ... + + dimensions: + - name: meta_value + title: Size + sql: meta_value + type: string +``` + + + ### `description` This parameter provides a human-readable description of a dimension. @@ -184,6 +220,42 @@ cubes: +### `public` + +The `public` parameter is used to manage the visibility of a dimension. Valid +values for `public` are `true` and `false`. When set to `false`, this dimension +**cannot** be queried through the API. Defaults to `true`. + + + +```javascript +cube(`products`, { + // ... + + dimensions: { + comment: { + sql: `comment`, + type: `string`, + public: false + } + } +}) +``` + +```yaml +cubes: + - name: products + # ... + + dimensions: + - name: comment + sql: comment + type: string + public: false +``` + + + ### `format` `format` is an optional parameter. It is used to format the output of dimensions @@ -419,42 +491,6 @@ cubes: -### `public` - -The `public` parameter is used to manage the visibility of a dimension. Valid -values for `public` are `true` and `false`. When set to `false`, this dimension -**cannot** be queried through the API. Defaults to `true`. - - - -```javascript -cube(`products`, { - // ... - - dimensions: { - comment: { - sql: `comment`, - type: `string`, - public: false - } - } -}) -``` - -```yaml -cubes: - - name: products - # ... - - dimensions: - - name: comment - sql: comment - type: string - public: false -``` - - - ### `sql` `sql` is a required parameter. It can take any valid SQL expression depending on @@ -525,42 +561,6 @@ cubes: -### `title` - -You can use the `title` parameter to change a dimension's displayed name. By -default, Cube will humanize your dimension key to create a display name. In -order to override default behavior, please use the `title` property: - - - -```javascript -cube(`products`, { - // ... - - dimensions: { - meta_value: { - title: `Size`, - sql: `meta_value`, - type: `string` - } - } -}) -``` - -```yaml -cubes: - - name: products - # ... - - dimensions: - - name: meta_value - title: Size - sql: meta_value - type: string -``` - - - ### `type` `type` is a required parameter. There are various types that can be assigned to @@ -700,6 +700,193 @@ cube(`orders`, { +#### Calendar cubes + +When the `granularities` parameter is used in time dimensions within [calendar +cubes][ref-calendar-cubes], you can still use it to define custom granularities. + +Additionally, you can override the _default granularities_. This can be useful for +modeling custom calendars, such as fiscal calendars. + + + +```yaml +cubes: + - name: fiscal_calendar + calendar: true + sql: > + SELECT + date_key, + calendar_date, + start_of_month, + start_of_quarter, + start_of_year + FROM calendar_table + + dimensions: + - name: date_key + sql: date_key + type: time + primary_key: true + + - name: date + sql: calendar_date + type: time + granularities: + - name: month + sql: "{CUBE}.start_of_month" + + - name: quarter + sql: "{CUBE}.start_of_quarter" + + - name: year + sql: "{CUBE}.start_of_year" + +``` + +```javascript +cube(`fiscal_calendar`, { + calendar: true, + sql: ` + SELECT + date_key, + calendar_date, + start_of_month, + start_of_quarter, + start_of_year + FROM calendar_table + `, + + dimensions: { + date_key: { + sql: `date_key`, + type: `time`, + primary_key: true + }, + + date: { + sql: `calendar_date`, + type: `time`, + granularities: { + month: { + sql: `${CUBE}.start_of_month` + }, + quarter: { + sql: `${CUBE}.start_of_quarter` + }, + year: { + sql: `${CUBE}.start_of_year` + } + } + } + } +}) +``` + + + +### `time_shift` + +The `time_shift` parameter allows overriding the time shift behavior for time dimensions +within [calendar cubes][ref-calendar-cubes]. Such time shifts can be referenced in +[time-shift measures][ref-time-shift] of other cubes, enabling the use of custom calendars. + +The `time_shift` parameter can only be set on _time dimensions_ within _calendar cubes_, +i.e., cubes where the [`calendar` parameter][ref-cube-calendar] is set to `true`. + +The `time_shift` parameter accepts an array of time shift definitions. Each definition +can include `time_dimension`, `type`, `interval`, and `name` parameters, similarly to the +[`time_shift` parameter][ref-measure-time-shift] of time-shift measures. Additionally, +you can use the `sql` parameter to define a custom time mapping using a SQL expression. + + + +```yaml +cubes: + - name: fiscal_calendar + calendar: true + sql: > + SELECT + date_key, + calendar_date, + fiscal_date_prior_year, + fiscal_date_next_quarter + FROM calendar_table + + dimensions: + - name: date_key + sql: date_key + type: time + primary_key: true + + - name: date + sql: calendar_date + type: time + time_shift: + - name: prior_calendar_year + type: prior + interval: 1 year + + - name: next_calendar_quarter + type: next + interval: 1 quarter + + - name: prior_fiscal_year + sql: "{CUBE}.fiscal_date_prior_year" + + - name: next_fiscal_quarter + sql: "{CUBE}.fiscal_date_next_quarter" +``` + +```javascript +cube(`fiscal_calendar`, { + calendar: true, + sql: ` + SELECT + date_key, + calendar_date, + fiscal_date_prior_year, + fiscal_date_next_quarter + FROM calendar_table + `, + + dimensions: { + date_key: { + sql: `date_key`, + type: `time`, + primary_key: true + }, + + date: { + sql: `calendar_date`, + type: `time`, + time_shift: [ + { + name: `prior_calendar_year`, + type: `prior`, + interval: `1 year` + }, + { + name: `next_calendar_quarter`, + type: `next`, + interval: `1 quarter` + }, + { + name: `prior_fiscal_year`, + sql: `${CUBE}.fiscal_date_prior_year` + }, + { + name: `next_fiscal_quarter`, + sql: `${CUBE}.fiscal_date_next_quarter` + } + ] + } + } +}); +``` + + + [ref-ref-cubes]: /product/data-modeling/reference/cube [ref-schema-ref-joins]: /product/data-modeling/reference/joins @@ -716,4 +903,8 @@ cube(`orders`, { [link-date-time-string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format [ref-custom-granularity-recipe]: /product/data-modeling/recipes/custom-granularity [ref-ref-hierarchies]: /product/data-modeling/reference/hierarchies -[ref-data-sources]: /product/configuration/data-sources \ No newline at end of file +[ref-data-sources]: /product/configuration/data-sources +[ref-calendar-cubes]: /product/data-modeling/concepts/calendar-cubes +[ref-time-shift]: /product/data-modeling/concepts/multi-stage-calculations#time-shift +[ref-cube-calendar]: /product/data-modeling/reference/cube#calendar +[ref-measure-time-shift]: /product/data-modeling/reference/measures#time_shift diff --git a/docs/pages/product/data-modeling/reference/measures.mdx b/docs/pages/product/data-modeling/reference/measures.mdx index fea84705e73d9..7de4a76b86a21 100644 --- a/docs/pages/product/data-modeling/reference/measures.mdx +++ b/docs/pages/product/data-modeling/reference/measures.mdx @@ -50,6 +50,42 @@ cubes: +### `title` + +You can use the `title` parameter to change a measure’s displayed name. By +default, Cube will humanize your measure key to create a display name. In order +to override default behavior, please use the `title` parameter. + + + +```javascript +cube(`orders`, { + // ... + + measures: { + orders_count: { + title: `Number of Orders Placed`, + sql: `id`, + type: `count` + } + } +}) +``` + +```yaml +cubes: + - name: orders + # ... + + measures: + - name: orders_count + title: Number of Orders Placed + sql: id + type: count +``` + + + ### `description` This parameter provides a human-readable description of a measure. @@ -86,14 +122,45 @@ cubes: -### `drill_members` +### `public` -Using the `drill_members` parameter, you can define a set of [drill -down][ref-drilldowns] fields for the measure. `drill_members` is defined as an -array of dimensions. Cube automatically injects dimensions’ names and other -cubes’ names with dimensions in the context, so you can reference these -variables in the `drill_members` array. [Learn more about how to define and use -drill downs][ref-drilldowns]. +The `public` parameter is used to manage the visibility of a measure. Valid +values for `public` are `true` and `false`. When set to `false`, this measure +**cannot** be queried through the API. Defaults to `true`. + + + +```javascript +cube(`orders`, { + // ... + + measures: { + orders_count: { + sql: `id`, + type: `count`, + public: false + } + } +}) +``` + +```yaml +cubes: + - name: orders + # ... + + measures: + - name: orders_count + sql: id + type: count + public: false +``` + + + +### `meta` + +Custom metadata. Can be used to pass any information to the frontend. @@ -105,7 +172,9 @@ cube(`orders`, { revenue: { type: `sum`, sql: `price`, - drill_members: [id, price, status, products.name, products.id] + meta: { + any: "value" + } } } }) @@ -120,20 +189,18 @@ cubes: - name: revenue type: sum sql: price - drill_members: - - id - - price - - status - - products.name - - products.id + meta: + any: value ``` -### `filters` +### `sql` -If you want to add some conditions for a metric's calculation, you should use -the `filters` parameter. The syntax looks like the following: +`sql` is a required parameter. It can take any valid SQL expression depending on +the `type` of the measure. Please refer to the [Measure Types +Guide][ref-schema-ref-types-formats-measures-types] for detailed information on +the corresponding `sql` parameter. @@ -142,10 +209,9 @@ cube(`orders`, { // ... measures: { - orders_completed_count: { - sql: `id`, - type: `count`, - filters: [{ sql: `${CUBE}.status = 'completed'` }] + users_count: { + sql: `COUNT(*)`, + type: `number` } } }) @@ -157,21 +223,25 @@ cubes: # ... measures: - - name: orders_completed_count - sql: id - type: count - filters: - - sql: "{CUBE}.status = 'completed'" + - name: users_count + sql: "COUNT(*)" + type: number ``` -### `format` +Depending on the measure [type](#type), the `sql` parameter would either: +* Be skipped (in case of the `count` type). +* Contain an aggregate function, e.g., `STRING_AGG(string_dimension, ',')` +(in case of `string`, `time`, `boolean`, and `number` types). +* Contain a non-aggregated expression that Cube would wrap into an aggregate +function according to the measure type (in case of the `avg`, `count_distinct`, +`count_distinct_approx`, `min`, `max`, and `sum` types). -`format` is an optional parameter. It is used to format the output of measures -in different ways, for example, as currency for `revenue`. Please refer to the -[Measure Formats][ref-schema-ref-types-formats-measures-formats] for the full -list of supported formats. +### `filters` + +If you want to add some conditions for a metric's calculation, you should use +the `filters` parameter. The syntax looks like the following: @@ -180,10 +250,10 @@ cube(`orders`, { // ... measures: { - total: { - sql: `amount`, - type: `sum`, - format: `currency` + orders_completed_count: { + sql: `id`, + type: `count`, + filters: [{ sql: `${CUBE}.status = 'completed'` }] } } }) @@ -195,17 +265,21 @@ cubes: # ... measures: - - name: total - sql: amount - type: sum - format: currency + - name: orders_completed_count + sql: id + type: count + filters: + - sql: "{CUBE}.status = 'completed'" ``` -### `meta` +### `type` -Custom metadata. Can be used to pass any information to the frontend. +`type` is a required parameter. There are various types that can be assigned to +a measure. Please refer to the [Measure +Types][ref-schema-ref-types-formats-measures-types] for the full list of measure +types. @@ -214,12 +288,9 @@ cube(`orders`, { // ... measures: { - revenue: { - type: `sum`, - sql: `price`, - meta: { - any: "value" - } + orders_count: { + sql: `id`, + type: `count` } } }) @@ -231,11 +302,9 @@ cubes: # ... measures: - - name: revenue - type: sum - sql: price - meta: - any: value + - name: orders_count + sql: id + type: count ``` @@ -348,127 +417,442 @@ cubes: -### `public` +### `multi_stage` -The `public` parameter is used to manage the visibility of a measure. Valid -values for `public` are `true` and `false`. When set to `false`, this measure -**cannot** be queried through the API. Defaults to `true`. +The `multi_stage` parameter is used to define measures that are used with [multi-stage +calculations][ref-multi-stage], e.g., [time-shift measures][ref-time-shift]. +```yaml +cubes: + - name: time_shift + sql: > + SELECT '2024-01-01'::TIMESTAMP AS time, 100 AS revenue UNION ALL + SELECT '2024-02-01'::TIMESTAMP AS time, 200 AS revenue UNION ALL + SELECT '2024-03-01'::TIMESTAMP AS time, 300 AS revenue UNION ALL + + SELECT '2025-01-01'::TIMESTAMP AS time, 400 AS revenue UNION ALL + SELECT '2025-02-01'::TIMESTAMP AS time, 500 AS revenue UNION ALL + SELECT '2025-03-01'::TIMESTAMP AS time, 600 AS revenue + + dimensions: + - name: time + sql: time + type: time + + measures: + - name: revenue + sql: revenue + type: sum + + - name: revenue_prior_year + multi_stage: true + sql: "{revenue}" + type: number + time_shift: + - time_dimension: time + interval: 1 year + type: prior +``` + ```javascript -cube(`orders`, { - // ... +cube(`time_shift`, { + sql: ` + SELECT '2024-01-01'::TIMESTAMP AS time, 100 AS revenue UNION ALL + SELECT '2024-02-01'::TIMESTAMP AS time, 200 AS revenue UNION ALL + SELECT '2024-03-01'::TIMESTAMP AS time, 300 AS revenue UNION ALL + + SELECT '2025-01-01'::TIMESTAMP AS time, 400 AS revenue UNION ALL + SELECT '2025-02-01'::TIMESTAMP AS time, 500 AS revenue UNION ALL + SELECT '2025-03-01'::TIMESTAMP AS time, 600 AS revenue + `, + + dimensions: { + time: { + sql: `time`, + type: `time` + } + }, measures: { - orders_count: { - sql: `id`, - type: `count`, - public: false + revenue: { + sql: `revenue`, + type: `sum` + }, + + revenue_prior_year: { + multi_stage: true, + sql: `${revenue}`, + type: `number`, + time_shift: [ + { + time_dimension: `time`, + interval: `1 year`, + type: `prior` + } + ] } } }) ``` -```yaml -cubes: - - name: orders - # ... + - measures: - - name: orders_count - sql: id - type: count - public: false -``` +### `time_shift` - +The `time_shift` parameter is used to configure a [time shift][ref-time-shift] for a +measure. It accepts an array of time shift configurations that consist of `time_dimension`, +`type`, `interval`, and `name` parameters. -### `sql` +#### `type` and `interval` -`sql` is a required parameter. It can take any valid SQL expression depending on -the `type` of the measure. Please refer to the [Measure Types -Guide][ref-schema-ref-types-formats-measures-types] for detailed information on -the corresponding `sql` parameter. +These parameters define the time shift direction and size. The `type` can be either +`prior` (shifting time backwards) or `next` (shifting time forwards). +The `interval` parameter defines the size of the time shift and has the following format: +`quantity unit`, e.g., `1 year` or `7 days`. -```javascript -cube(`orders`, { - // ... +```yaml + measures: + - name: revenue + sql: revenue + type: sum + + - name: revenue_7d_ago + multi_stage: true + sql: "{revenue}" + type: number + time_shift: + - interval: 7 days + type: prior + + - name: revenue_1y_ago + multi_stage: true + sql: "{revenue}" + type: number + time_shift: + - interval: 1 year + type: prior +``` +```javascript measures: { - users_count: { - sql: `COUNT(*)`, - type: `number` + revenue: { + sql: `revenue`, + type: `sum` + }, + + revenue_7d_ago: { + multi_stage: true, + sql: `${revenue}`, + type: `number`, + time_shift: [ + { + interval: `7 days`, + type: `prior` + } + ] + }, + + revenue_1y_ago: { + multi_stage: true, + sql: `${revenue}`, + type: `number`, + time_shift: [ + { + interval: `1 year`, + type: `prior` + } + ] } } -}) ``` -```yaml -cubes: - - name: orders - # ... + + +#### `time_dimension` + +The `time_dimension` parameter is used to specify the time dimension for the time shift. +If it's omitted, Cube will apply the time shift to all time dimensions in the query. +In this case, only single time shift configuration is allowed in `time_shift`. + +If `time_dimension` is specified, the time shift will only happen if the query contains +this very time dimension. This is useful if you'd like to apply different time shifts to +different time dimensions or if you want to apply a time shift only when a specific time +dimension is present in the query. + + +```yaml measures: - - name: users_count - sql: "COUNT(*)" + - name: revenue + sql: revenue + type: sum + + - name: lagging_revenue + multi_stage: true + sql: "{revenue}" type: number + time_shift: + - time_dimension: purchase_date + interval: 3 months + type: prior + + - time_dimension: shipping_date + interval: 2 months + type: prior + + - time_dimension: delivery_date + interval: 1 month + type: prior ``` - +```javascript + measures: { + revenue: { + sql: `revenue`, + type: `sum` + }, -Depending on the measure [type](#type), the `sql` parameter would either: -* Be skipped (in case of the `count` type). -* Contain an aggregate function, e.g., `STRING_AGG(string_dimension, ',')` -(in case of `string`, `time`, `boolean`, and `number` types). -* Contain a non-aggregated expression that Cube would wrap into an aggregate -function according to the measure type (in case of the `avg`, `count_distinct`, -`count_distinct_approx`, `min`, `max`, and `sum` types). + lagging_revenue: { + multi_stage: true, + sql: `${revenue}`, + type: `number`, + time_shift: [ + { + time_dimension: `purchase_date`, + interval: `3 months`, + type: `prior` + }, + { + time_dimension: `shipping_date`, + interval: `2 months`, + type: `prior` + }, + { + time_dimension: `delivery_date`, + interval: `1 month`, + type: `prior` + } + ] + } + } +``` -### `title` + -You can use the `title` parameter to change a measure’s displayed name. By -default, Cube will humanize your measure key to create a display name. In order -to override default behavior, please use the `title` parameter. +#### `name` + +The `name` parameter is used to reference a _named time shift_ that is defined on a time +dimension from a [calendar cube][ref-calendar-cubes]. Named time shifts are used in cases +when different measures use the same time shift configuration (e.g., `prior` + `1 year`) +but have to be shifted differently depending on the custom calendar. +```yaml +cubes: + - name: sales_calendar + calendar: true + sql: > + SELECT '2025-06-02Z' AS date, '2024-06-01Z' AS mapped_date, '2024-06-03Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-03Z' AS date, '2024-06-02Z' AS mapped_date, '2024-06-04Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-04Z' AS date, '2024-06-03Z' AS mapped_date, '2024-06-05Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-05Z' AS date, '2024-06-04Z' AS mapped_date, '2024-06-06Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-06Z' AS date, '2024-06-05Z' AS mapped_date, '2024-06-07Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-07Z' AS date, '2024-06-06Z' AS mapped_date, '2024-06-08Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-08Z' AS date, '2024-06-07Z' AS mapped_date, '2024-06-09Z' AS mapped_date_alt + + dimensions: + - name: date_key + sql: "{CUBE}.date::TIMESTAMP" + type: time + primary_key: true + + - name: date + sql: "{CUBE}.date::TIMESTAMP" + type: time + time_shift: + - name: 1_year_prior + sql: "{CUBE}.mapped_date::TIMESTAMP" + + - name: 1_year_prior_alternative + sql: "{CUBE}.mapped_date_alt::TIMESTAMP" + + - name: sales + sql: > + SELECT 101 AS id, '2024-06-01Z' AS date, 101 AS amount UNION ALL + SELECT 102 AS id, '2024-06-02Z' AS date, 102 AS amount UNION ALL + SELECT 103 AS id, '2024-06-03Z' AS date, 103 AS amount UNION ALL + SELECT 104 AS id, '2024-06-04Z' AS date, 104 AS amount UNION ALL + SELECT 105 AS id, '2024-06-05Z' AS date, 105 AS amount UNION ALL + SELECT 106 AS id, '2024-06-06Z' AS date, 106 AS amount UNION ALL + SELECT 107 AS id, '2024-06-07Z' AS date, 107 AS amount UNION ALL + SELECT 108 AS id, '2024-06-08Z' AS date, 108 AS amount UNION ALL + SELECT 109 AS id, '2024-06-09Z' AS date, 109 AS amount UNION ALL + + SELECT 202 AS id, '2025-06-02Z' AS date, 202 AS amount UNION ALL + SELECT 203 AS id, '2025-06-03Z' AS date, 203 AS amount UNION ALL + SELECT 204 AS id, '2025-06-04Z' AS date, 204 AS amount UNION ALL + SELECT 205 AS id, '2025-06-05Z' AS date, 205 AS amount UNION ALL + SELECT 206 AS id, '2025-06-06Z' AS date, 206 AS amount UNION ALL + SELECT 207 AS id, '2025-06-07Z' AS date, 207 AS amount UNION ALL + SELECT 208 AS id, '2025-06-08Z' AS date, 208 AS amount + + joins: + - name: sales_calendar + sql: "{sales.date} = {sales_calendar.date_key}" + relationship: many_to_one + + dimensions: + - name: id + sql: id + type: number + primary_key: true + + - name: date + sql: "{CUBE}.date::TIMESTAMP" + type: time + public: false + + measures: + - name: total_amount + sql: amount + type: sum + + - name: total_amount_1y_prior + multi_stage: true + sql: "{total_amount}" + type: number + time_shift: + - name: 1_year_prior + + - name: total_amount_1y_prior_alternative + multi_stage: true + sql: "{total_amount}" + type: number + time_shift: + - name: 1_year_prior_alternative +``` + ```javascript -cube(`orders`, { - // ... +cube(`sales_calendar`, { + sql: ` + SELECT '2025-06-02Z' AS date, '2024-06-01Z' AS mapped_date, '2024-06-03Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-03Z' AS date, '2024-06-02Z' AS mapped_date, '2024-06-04Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-04Z' AS date, '2024-06-03Z' AS mapped_date, '2024-06-05Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-05Z' AS date, '2024-06-04Z' AS mapped_date, '2024-06-06Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-06Z' AS date, '2024-06-05Z' AS mapped_date, '2024-06-07Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-07Z' AS date, '2024-06-06Z' AS mapped_date, '2024-06-08Z' AS mapped_date_alt UNION ALL + SELECT '2025-06-08Z' AS date, '2024-06-07Z' AS mapped_date, '2024-06-09Z' AS mapped_date_alt + `, + + dimensions: { + date_key: { + sql: `${CUBE}.date::TIMESTAMP`, + type: `time`, + primary_key: true + }, - measures: { - orders_count: { - title: `Number of Orders Placed`, - sql: `id`, - type: `count` + date: { + sql: `${CUBE}.date::TIMESTAMP`, + type: `time`, + time_shift: [ + { + name: `1_year_prior`, + sql: `${CUBE}.mapped_date::TIMESTAMP` + }, + { + name: `1_year_prior_alternative`, + sql: `${CUBE}.mapped_date_alt::TIMESTAMP` + } + ] } } }) -``` -```yaml -cubes: - - name: orders - # ... +cube(`sales`, { + sql: ` + SELECT 101 AS id, '2024-06-01Z' AS date, 101 AS amount UNION ALL + SELECT 102 AS id, '2024-06-02Z' AS date, 102 AS amount UNION ALL + SELECT 103 AS id, '2024-06-03Z' AS date, 103 AS amount UNION ALL + SELECT 104 AS id, '2024-06-04Z' AS date, 104 AS amount UNION ALL + SELECT 105 AS id, '2024-06-05Z' AS date, 105 AS amount UNION ALL + SELECT 106 AS id, '2024-06-06Z' AS date, 106 AS amount UNION ALL + SELECT 107 AS id, '2024-06-07Z' AS date, 107 AS amount UNION ALL + SELECT 108 AS id, '2024-06-08Z' AS date, 108 AS amount UNION ALL + SELECT 109 AS id, '2024-06-09Z' AS date, 109 AS amount UNION ALL + + SELECT 202 AS id, '2025-06-02Z' AS date, 202 AS amount UNION ALL + SELECT 203 AS id, '2025-06-03Z' AS date, 203 AS amount UNION ALL + SELECT 204 As id, '2025-06-04Z' As date, 204 As amount UNION ALL + SELECT 205 As id, '2025-06-05Z' As date, 205 As amount UNION ALL + SELECT 206 As id, '2025-06-06Z' As date, 206 As amount UNION ALL + SELECT 207 As id, '2025-06-07Z' As date, 207 As amount UNION ALL + SELECT 208 As id, '2025-06-08Z' As date, 208 As amount + `, + + joins: { + sales_calendar: { + sql: `${sales}.date = ${sales_calendar}.date_key`, + relationship: `many_to_one` + } + }, - measures: - - name: orders_count - title: Number of Orders Placed - sql: id - type: count + dimensions: { + id: { + sql: `id`, + type: `number`, + primary_key: true + }, + + date: { + sql: `${CUBE}.date::TIMESTAMP`, + type: `time`, + public: false + } + }, + + measures: { + total_amount: { + sql: `amount`, + type: `sum` + }, + + total_amount_1y_prior: { + multi_stage: true, + sql: `${total_amount}`, + type: `number`, + time_shift: [{ + name: `1_year_prior` + }] + }, + + total_amount_1y_prior_alternative: { + multi_stage: true, + sql: `${total_amount}`, + type: `number`, + time_shift: [{ + name: `1_year_prior_alternative` + }] + } + } +) ``` -### `type` +Named time shifts also allow to reuse the same time shift configuration across multiple +measures and cubes where they are defined. -`type` is a required parameter. There are various types that can be assigned to -a measure. Please refer to the [Measure -Types][ref-schema-ref-types-formats-measures-types] for the full list of measure -types. +### `format` + +`format` is an optional parameter. It is used to format the output of measures +in different ways, for example, as currency for `revenue`. Please refer to the +[Measure Formats][ref-schema-ref-types-formats-measures-formats] for the full +list of supported formats. @@ -477,9 +861,10 @@ cube(`orders`, { // ... measures: { - orders_count: { - sql: `id`, - type: `count` + total: { + sql: `amount`, + type: `sum`, + format: `currency` } } }) @@ -491,18 +876,22 @@ cubes: # ... measures: - - name: orders_count - sql: id - type: count + - name: total + sql: amount + type: sum + format: currency ``` -## Calculated measures +### `drill_members` -In the case where you need to specify a formula for measure calculating with -other measures, you can compose a formula in `sql`. For example, to calculate -the conversion of buyers of all users. +Using the `drill_members` parameter, you can define a set of [drill +down][ref-drilldowns] fields for the measure. `drill_members` is defined as an +array of dimensions. Cube automatically injects dimensions’ names and other +cubes’ names with dimensions in the context, so you can reference these +variables in the `drill_members` array. [Learn more about how to define and use +drill downs][ref-drilldowns]. @@ -511,10 +900,10 @@ cube(`orders`, { // ... measures: { - purchases_to_created_account_ratio: { - sql: `${purchases} / ${users.count} * 100.0`, - type: `number`, - format: `percent` + revenue: { + type: `sum`, + sql: `price`, + drill_members: [id, price, status, products.name, products.id] } } }) @@ -526,17 +915,19 @@ cubes: # ... measures: - - name: purchases_to_created_account_ratio - sql: "{purchases} / {users.count} * 100.0" - type: number - format: percent + - name: revenue + type: sum + sql: price + drill_members: + - id + - price + - status + - products.name + - products.id ``` -You can create calculated measures from several joined cubes. In this case, a -join will be created automatically. - [ref-ref-cubes]: /product/data-modeling/reference/cube [ref-schema-ref-types-formats-measures-types]: @@ -548,4 +939,7 @@ join will be created automatically. [ref-playground]: /product/workspace/playground [ref-apis]: /product/apis-integrations [ref-rolling-window]: /product/data-modeling/concepts/multi-stage-calculations#rolling-window -[link-tesseract]: https://cube.dev/blog/introducing-next-generation-data-modeling-engine \ No newline at end of file +[link-tesseract]: https://cube.dev/blog/introducing-next-generation-data-modeling-engine +[ref-multi-stage]: /product/data-modeling/concepts/multi-stage-calculations +[ref-time-shift]: /product/data-modeling/concepts/multi-stage-calculations#time-shift +[ref-calendar-cubes]: /product/data-modeling/concepts/calendar-cubes diff --git a/docs/pages/product/data-modeling/reference/types-and-formats.mdx b/docs/pages/product/data-modeling/reference/types-and-formats.mdx index 89b67d765b582..095490a054e41 100644 --- a/docs/pages/product/data-modeling/reference/types-and-formats.mdx +++ b/docs/pages/product/data-modeling/reference/types-and-formats.mdx @@ -133,9 +133,8 @@ cubes: ### `number` -The `number` type is usually used, when performing arithmetic operations on -arithmetic operations on measures. [Learn more about Calculated -Measures][ref-schema-ref-calc-measures]. +The `number` type is usually used, when performing arithmetic operations on measures, +e.g., in [calculated measures][ref-calculated-measures]. The `sql` parameter is required and must include any valid SQL expression with an aggregate function that returns a value of the numeric type. @@ -1002,6 +1001,5 @@ cubes: [ref-string-time-dims]: /product/data-modeling/recipes/string-time-dimensions [ref-schema-ref-preaggs-rollup]: /product/data-modeling/reference/pre-aggregations#rollup -[ref-schema-ref-calc-measures]: - /product/data-modeling/reference/measures#calculated-measures +[ref-calculated-measures]: /product/data-modeling/concepts/calculated-members#calculated-measures [ref-drilldowns]: /product/apis-integrations/recipes/drilldowns diff --git a/docs/pages/product/distribution.mdx b/docs/pages/product/distribution.mdx index d6251b7b24fbb..ee068b25ae389 100644 --- a/docs/pages/product/distribution.mdx +++ b/docs/pages/product/distribution.mdx @@ -84,7 +84,8 @@ List of LTS releases: | Version | Status | End-of-life date | | --- | --- | --- | -| `v1.0.x` | Active | October 29, 2025 | +| `v1.4.x` | Active | October 29, 2026 | +| `v1.0.x` | End-of-life | October 29, 2025 | [link-repo]: https://github.com/cube-js/cube diff --git a/docs/yarn.lock b/docs/yarn.lock index dce8bef41188c..ffca3cf9c958d 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -143,6 +143,13 @@ algoliasearch "^4.17.0" classnames "^2.3.2" +"@cube-dev/purple-banner@https://github.com/cubedevinc/purple-banner/releases/download/v2.0.21/cube-dev-purple-banner-2.0.21.tgz": + version "2.0.21" + resolved "https://github.com/cubedevinc/purple-banner/releases/download/v2.0.21/cube-dev-purple-banner-2.0.21.tgz#57217ed1c3952b5ba8f235d9863f07dc9921d3c4" + dependencies: + classnames "^2.3.1" + dayjs "^1.11.7" + "@cubejs-client/core@^0.32.17": version "0.32.30" resolved "https://registry.yarnpkg.com/@cubejs-client/core/-/core-0.32.30.tgz#40bad1199635363a82a1a5e9f4718a67f2fe4f59" @@ -1016,6 +1023,11 @@ character-reference-invalid@^2.0.0: optionalDependencies: fsevents "~2.3.2" +classnames@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + classnames@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" diff --git a/lerna.json b/lerna.json index aded0f2709591..bba0afe6c206a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.86", + "version": "1.4.0", "npmClient": "yarn", "command": { "bootstrap": { diff --git a/packages/cubejs-api-gateway/CHANGELOG.md b/packages/cubejs-api-gateway/CHANGELOG.md index 6599d39e1eb2f..1db482fcf0f82 100644 --- a/packages/cubejs-api-gateway/CHANGELOG.md +++ b/packages/cubejs-api-gateway/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/api-gateway + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/api-gateway diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json index 8b8d74f178197..dc780f76b30db 100644 --- a/packages/cubejs-api-gateway/package.json +++ b/packages/cubejs-api-gateway/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/api-gateway", "description": "Cube.js API Gateway", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,9 +27,9 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/native": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/native": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@ungap/structured-clone": "^0.3.4", "assert-never": "^1.4.0", "body-parser": "^1.19.0", @@ -52,7 +52,7 @@ "uuid": "^8.3.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/express": "^4.17.21", "@types/jest": "^29", "@types/jsonwebtoken": "^9.0.2", diff --git a/packages/cubejs-athena-driver/CHANGELOG.md b/packages/cubejs-athena-driver/CHANGELOG.md index 17ea06bd64be6..c2c1db8437d94 100644 --- a/packages/cubejs-athena-driver/CHANGELOG.md +++ b/packages/cubejs-athena-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/athena-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/athena-driver diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json index 1a44620b5b03a..f5753efa938e1 100644 --- a/packages/cubejs-athena-driver/package.json +++ b/packages/cubejs-athena-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/athena-driver", "description": "Cube.js Athena database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -30,13 +30,13 @@ "dependencies": { "@aws-sdk/client-athena": "^3.22.0", "@aws-sdk/credential-providers": "^3.22.0", - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "sqlstring": "^2.3.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "@types/ramda": "^0.27.40", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-backend-cloud/CHANGELOG.md b/packages/cubejs-backend-cloud/CHANGELOG.md index 219b267e742ca..e6ccad29da262 100644 --- a/packages/cubejs-backend-cloud/CHANGELOG.md +++ b/packages/cubejs-backend-cloud/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/cloud + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/cloud diff --git a/packages/cubejs-backend-cloud/package.json b/packages/cubejs-backend-cloud/package.json index a72e4ead996f5..2c63763d66a5f 100644 --- a/packages/cubejs-backend-cloud/package.json +++ b/packages/cubejs-backend-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cloud", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube Cloud package", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -25,7 +25,7 @@ "devDependencies": { "@babel/core": "^7.24.5", "@babel/preset-env": "^7.24.5", - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/fs-extra": "^9.0.8", "@types/jest": "^29", "jest": "^29", @@ -33,7 +33,7 @@ }, "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "chokidar": "^3.5.1", "env-var": "^6.3.0", "form-data": "^4.0.0", diff --git a/packages/cubejs-backend-maven/CHANGELOG.md b/packages/cubejs-backend-maven/CHANGELOG.md index 3e0b91c2fae0f..8110c99be9e05 100644 --- a/packages/cubejs-backend-maven/CHANGELOG.md +++ b/packages/cubejs-backend-maven/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/maven + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/maven diff --git a/packages/cubejs-backend-maven/package.json b/packages/cubejs-backend-maven/package.json index 26cac4162d4d7..7f67551585d86 100644 --- a/packages/cubejs-backend-maven/package.json +++ b/packages/cubejs-backend-maven/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/maven", "description": "Cube.js Maven Wrapper for java dependencies downloading", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "license": "Apache-2.0", "repository": { "type": "git", @@ -31,12 +31,12 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "source-map-support": "^0.5.19", "xmlbuilder2": "^2.4.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-backend-native/CHANGELOG.md b/packages/cubejs-backend-native/CHANGELOG.md index e9e5132de5eb2..05e7f240a9ae6 100644 --- a/packages/cubejs-backend-native/CHANGELOG.md +++ b/packages/cubejs-backend-native/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +### Bug Fixes + +- **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)) + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/native diff --git a/packages/cubejs-backend-native/Cargo.lock b/packages/cubejs-backend-native/Cargo.lock index 2905b1a7ade4a..45941c342a94d 100644 --- a/packages/cubejs-backend-native/Cargo.lock +++ b/packages/cubejs-backend-native/Cargo.lock @@ -667,7 +667,7 @@ dependencies = [ [[package]] name = "cube-ext" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "arrow", "chrono", @@ -839,7 +839,7 @@ checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "datafusion" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "ahash 0.7.8", "arrow", @@ -872,7 +872,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "arrow", "ordered-float 2.10.1", @@ -883,7 +883,7 @@ dependencies = [ [[package]] name = "datafusion-data-access" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "async-trait", "chrono", @@ -896,7 +896,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "ahash 0.7.8", "arrow", @@ -907,7 +907,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "ahash 0.7.8", "arrow", diff --git a/packages/cubejs-backend-native/package.json b/packages/cubejs-backend-native/package.json index 7aef8d7fb32f2..518b5361f4959 100644 --- a/packages/cubejs-backend-native/package.json +++ b/packages/cubejs-backend-native/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/native", - "version": "1.3.86", + "version": "1.4.0", "author": "Cube Dev, Inc.", "description": "Native module for Cube.js (binding to Rust codebase)", "main": "dist/js/index.js", @@ -35,7 +35,7 @@ "dist/js" ], "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "cargo-cp-artifact": "^0.1.9", @@ -46,8 +46,8 @@ "uuid": "^8.3.2" }, "dependencies": { - "@cubejs-backend/cubesql": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/cubesql": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@cubejs-infra/post-installer": "^0.0.7" }, "resources": { diff --git a/packages/cubejs-backend-shared/CHANGELOG.md b/packages/cubejs-backend-shared/CHANGELOG.md index 2e18ca0d6a769..488ff0c06f711 100644 --- a/packages/cubejs-backend-shared/CHANGELOG.md +++ b/packages/cubejs-backend-shared/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/shared + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/shared diff --git a/packages/cubejs-backend-shared/package.json b/packages/cubejs-backend-shared/package.json index 274c4c313abeb..6340b338b0a8f 100644 --- a/packages/cubejs-backend-shared/package.json +++ b/packages/cubejs-backend-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/shared", - "version": "1.3.86", + "version": "1.4.0", "description": "Shared code for Cube.js backend packages", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -22,7 +22,7 @@ "author": "Cube Dev, Inc.", "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/bytes": "^3.1.5", "@types/cli-progress": "^3.9.1", "@types/decompress": "^4.2.7", @@ -43,7 +43,6 @@ "decompress": "^4.2.1", "env-var": "^6.3.0", "fs-extra": "^9.1.0", - "https-proxy-agent": "^7.0.6", "lru-cache": "^11.1.0", "moment-range": "^4.0.2", "moment-timezone": "^0.5.47", diff --git a/packages/cubejs-backend-shared/src/env.ts b/packages/cubejs-backend-shared/src/env.ts index 8491e3d7b5b81..ae5952f726af9 100644 --- a/packages/cubejs-backend-shared/src/env.ts +++ b/packages/cubejs-backend-shared/src/env.ts @@ -229,7 +229,7 @@ const variables: Record any> = { .default('true') .asBoolStrict(), transpilationWorkerThreads: () => get('CUBEJS_TRANSPILATION_WORKER_THREADS') - .default('false') + .default('true') .asBoolStrict(), allowNonStrictDateRangeMatching: () => get('CUBEJS_PRE_AGGREGATIONS_ALLOW_NON_STRICT_DATE_RANGE_MATCH') .default('true') diff --git a/packages/cubejs-backend-shared/src/proxy.ts b/packages/cubejs-backend-shared/src/proxy.ts index 55ecf84e8cb3d..dfbf4a8b2f3e8 100644 --- a/packages/cubejs-backend-shared/src/proxy.ts +++ b/packages/cubejs-backend-shared/src/proxy.ts @@ -1,48 +1,8 @@ -import { exec } from 'child_process'; import { ProxyAgent } from 'proxy-agent'; -import { HttpsProxyAgent } from 'https-proxy-agent'; - -let npmProxy: string; -let npmProxyInitialized = false; - -function getCommandOutput(command: string) { - return new Promise((resolve, reject) => { - exec(command, (error, stdout) => { - if (error) { - reject(error.message); - return; - } - - resolve(stdout); - }); - }); -} - -/** - * @deprecated - * use ProxyAgent instead - */ -export async function getProxySettings(): Promise { - const [proxy] = ( - await Promise.all([getCommandOutput('npm config -g get https-proxy'), getCommandOutput('npm config -g get proxy')]) - ) - .map((s) => s.trim()) - .filter((s) => !['null', 'undefined', ''].includes(s)); - - npmProxyInitialized = true; - - return proxy; -} export async function getHttpAgentForProxySettings() { - if (!npmProxyInitialized) { - npmProxy = await getProxySettings(); + if (!process.env.HTTP_PROXY && !process.env.HTTPS_PROXY) { + return undefined; } - - if (npmProxy) { - console.warn('Npm proxy settings are deprecated. Please use HTTP_PROXY, HTTPS_PROXY environment variables instead.'); - return new HttpsProxyAgent(npmProxy); - } - return new ProxyAgent(); } diff --git a/packages/cubejs-base-driver/CHANGELOG.md b/packages/cubejs-base-driver/CHANGELOG.md index 6bc5f91e70284..d3032f1a56a37 100644 --- a/packages/cubejs-base-driver/CHANGELOG.md +++ b/packages/cubejs-base-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/base-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/base-driver diff --git a/packages/cubejs-base-driver/package.json b/packages/cubejs-base-driver/package.json index 333f5ad828181..795f3719ae8f4 100644 --- a/packages/cubejs-base-driver/package.json +++ b/packages/cubejs-base-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/base-driver", "description": "Cube.js Base Driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -33,11 +33,11 @@ "@aws-sdk/s3-request-presigner": "^3.49.0", "@azure/identity": "^4.4.1", "@azure/storage-blob": "^12.9.0", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "@google-cloud/storage": "^7.13.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-bigquery-driver/CHANGELOG.md b/packages/cubejs-bigquery-driver/CHANGELOG.md index 6981c2a3f6fc9..c64e6cff08b01 100644 --- a/packages/cubejs-bigquery-driver/CHANGELOG.md +++ b/packages/cubejs-bigquery-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/bigquery-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/bigquery-driver diff --git a/packages/cubejs-bigquery-driver/package.json b/packages/cubejs-bigquery-driver/package.json index 767eb726d8f45..d79908c3501be 100644 --- a/packages/cubejs-bigquery-driver/package.json +++ b/packages/cubejs-bigquery-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/bigquery-driver", "description": "Cube.js BigQuery database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,15 +28,15 @@ "main": "index.js", "types": "dist/src/index.d.ts", "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "@google-cloud/bigquery": "^7.7.0", "@google-cloud/storage": "^7.13.0", "ramda": "^0.27.2" }, "devDependencies": { - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/testing-shared": "1.4.0", "@types/big.js": "^6.2.2", "@types/dedent": "^0.7.0", "@types/jest": "^29", diff --git a/packages/cubejs-cli/CHANGELOG.md b/packages/cubejs-cli/CHANGELOG.md index 6f31959644c12..9538ec7980da1 100644 --- a/packages/cubejs-cli/CHANGELOG.md +++ b/packages/cubejs-cli/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package cubejs-cli + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package cubejs-cli diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json index e17a2051e72b1..88ded7b5cca01 100644 --- a/packages/cubejs-cli/package.json +++ b/packages/cubejs-cli/package.json @@ -2,7 +2,7 @@ "name": "cubejs-cli", "description": "Cube.js Command Line Interface", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -30,10 +30,10 @@ "LICENSE" ], "dependencies": { - "@cubejs-backend/cloud": "1.3.86", + "@cubejs-backend/cloud": "1.4.0", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "chalk": "^2.4.2", "cli-progress": "^3.10", "commander": "^2.19.0", @@ -50,8 +50,8 @@ "colors": "1.4.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/server": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/server": "1.4.0", "@oclif/command": "^1.8.0", "@types/cli-progress": "^3.8.0", "@types/cross-spawn": "^6.0.2", diff --git a/packages/cubejs-clickhouse-driver/CHANGELOG.md b/packages/cubejs-clickhouse-driver/CHANGELOG.md index edcf7f98bdbbd..b766abff9a416 100644 --- a/packages/cubejs-clickhouse-driver/CHANGELOG.md +++ b/packages/cubejs-clickhouse-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/clickhouse-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/clickhouse-driver diff --git a/packages/cubejs-clickhouse-driver/package.json b/packages/cubejs-clickhouse-driver/package.json index d0d0a419973ea..5c44d80b8dfb8 100644 --- a/packages/cubejs-clickhouse-driver/package.json +++ b/packages/cubejs-clickhouse-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/clickhouse-driver", "description": "Cube.js ClickHouse database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,16 +28,16 @@ }, "dependencies": { "@clickhouse/client": "^1.12.0", - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "moment": "^2.24.0", "sqlstring": "^2.3.1", "uuid": "^8.3.2" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "@types/jest": "^29", "jest": "^29", "typescript": "~5.2.2" diff --git a/packages/cubejs-client-core/CHANGELOG.md b/packages/cubejs-client-core/CHANGELOG.md index 85cd4f5fc334d..db45edc08559f 100644 --- a/packages/cubejs-client-core/CHANGELOG.md +++ b/packages/cubejs-client-core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/core + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/core diff --git a/packages/cubejs-client-core/package.json b/packages/cubejs-client-core/package.json index 369fd3b7b3e91..edb7f36491f8d 100644 --- a/packages/cubejs-client-core/package.json +++ b/packages/cubejs-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/core", - "version": "1.3.86", + "version": "1.4.0", "engines": {}, "repository": { "type": "git", @@ -38,7 +38,7 @@ ], "license": "MIT", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/moment-range": "^4.0.0", "@types/ramda": "^0.27.34", diff --git a/packages/cubejs-client-dx/CHANGELOG.md b/packages/cubejs-client-dx/CHANGELOG.md index 4db960b6888d8..5c1a5f4691336 100644 --- a/packages/cubejs-client-dx/CHANGELOG.md +++ b/packages/cubejs-client-dx/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/dx + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/dx diff --git a/packages/cubejs-client-dx/package.json b/packages/cubejs-client-dx/package.json index ec0cef2f48148..3cd5c02ebd04c 100644 --- a/packages/cubejs-client-dx/package.json +++ b/packages/cubejs-client-dx/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/dx", - "version": "1.3.86", + "version": "1.4.0", "engines": {}, "repository": { "type": "git", diff --git a/packages/cubejs-client-ngx/CHANGELOG.md b/packages/cubejs-client-ngx/CHANGELOG.md index 6348a6bddf45a..49a7c84dd6cbd 100644 --- a/packages/cubejs-client-ngx/CHANGELOG.md +++ b/packages/cubejs-client-ngx/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/ngx + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/ngx diff --git a/packages/cubejs-client-ngx/package.json b/packages/cubejs-client-ngx/package.json index 97daa4353b097..d6fdecd83ae9d 100644 --- a/packages/cubejs-client-ngx/package.json +++ b/packages/cubejs-client-ngx/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/ngx", - "version": "1.3.86", + "version": "1.4.0", "author": "Cube Dev, Inc.", "engines": {}, "repository": { diff --git a/packages/cubejs-client-react/CHANGELOG.md b/packages/cubejs-client-react/CHANGELOG.md index 7eb515e0cc39f..c1658545f97c3 100644 --- a/packages/cubejs-client-react/CHANGELOG.md +++ b/packages/cubejs-client-react/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/react + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/react diff --git a/packages/cubejs-client-react/package.json b/packages/cubejs-client-react/package.json index 49319c1f285cf..a5954c3b470cb 100644 --- a/packages/cubejs-client-react/package.json +++ b/packages/cubejs-client-react/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/react", - "version": "1.3.86", + "version": "1.4.0", "author": "Cube Dev, Inc.", "license": "MIT", "engines": {}, @@ -24,7 +24,7 @@ ], "dependencies": { "@babel/runtime": "^7.1.2", - "@cubejs-client/core": "1.3.86", + "@cubejs-client/core": "1.4.0", "core-js": "^3.6.5", "ramda": "^0.27.2" }, diff --git a/packages/cubejs-client-vue/CHANGELOG.md b/packages/cubejs-client-vue/CHANGELOG.md index 9a0a68eac0663..25e2f4449fed8 100644 --- a/packages/cubejs-client-vue/CHANGELOG.md +++ b/packages/cubejs-client-vue/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube.js/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/vue + ## [1.3.86](https://github.com/cube-js/cube.js/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/vue diff --git a/packages/cubejs-client-vue/package.json b/packages/cubejs-client-vue/package.json index 5a580e4c69d15..83935bf7e742f 100644 --- a/packages/cubejs-client-vue/package.json +++ b/packages/cubejs-client-vue/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/vue", - "version": "1.3.86", + "version": "1.4.0", "engines": {}, "repository": { "type": "git", @@ -28,7 +28,7 @@ "src" ], "dependencies": { - "@cubejs-client/core": "1.3.86", + "@cubejs-client/core": "1.4.0", "core-js": "^3.6.5", "ramda": "^0.27.2" }, diff --git a/packages/cubejs-client-vue3/CHANGELOG.md b/packages/cubejs-client-vue3/CHANGELOG.md index 2350324848173..97a828ed80664 100644 --- a/packages/cubejs-client-vue3/CHANGELOG.md +++ b/packages/cubejs-client-vue3/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube.js/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/vue3 + ## [1.3.86](https://github.com/cube-js/cube.js/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/vue3 diff --git a/packages/cubejs-client-vue3/package.json b/packages/cubejs-client-vue3/package.json index 7afda03962eb1..1d60b216d7db8 100644 --- a/packages/cubejs-client-vue3/package.json +++ b/packages/cubejs-client-vue3/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/vue3", - "version": "1.3.86", + "version": "1.4.0", "engines": {}, "repository": { "type": "git", @@ -28,7 +28,7 @@ "src" ], "dependencies": { - "@cubejs-client/core": "1.3.86", + "@cubejs-client/core": "1.4.0", "ramda": "^0.27.0" }, "devDependencies": { diff --git a/packages/cubejs-client-ws-transport/CHANGELOG.md b/packages/cubejs-client-ws-transport/CHANGELOG.md index 9cb69bd2d602a..9d8a0a71d803a 100644 --- a/packages/cubejs-client-ws-transport/CHANGELOG.md +++ b/packages/cubejs-client-ws-transport/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/ws-transport + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/ws-transport diff --git a/packages/cubejs-client-ws-transport/package.json b/packages/cubejs-client-ws-transport/package.json index e921421a5cdb8..cbbf8118ef630 100644 --- a/packages/cubejs-client-ws-transport/package.json +++ b/packages/cubejs-client-ws-transport/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/ws-transport", - "version": "1.3.86", + "version": "1.4.0", "engines": {}, "repository": { "type": "git", @@ -20,7 +20,7 @@ }, "dependencies": { "@babel/runtime": "^7.1.2", - "@cubejs-client/core": "1.3.86", + "@cubejs-client/core": "1.4.0", "core-js": "^3.6.5", "isomorphic-ws": "^4.0.1", "ws": "^7.3.1" @@ -33,7 +33,7 @@ "@babel/core": "^7.3.3", "@babel/preset-env": "^7.3.1", "@babel/preset-typescript": "^7.12.1", - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/ws": "^7.2.9", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-crate-driver/CHANGELOG.md b/packages/cubejs-crate-driver/CHANGELOG.md index 2d5f1357cda59..155920d8d250a 100644 --- a/packages/cubejs-crate-driver/CHANGELOG.md +++ b/packages/cubejs-crate-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/crate-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/crate-driver diff --git a/packages/cubejs-crate-driver/package.json b/packages/cubejs-crate-driver/package.json index 25940a2ace764..e0d9b1c80c965 100644 --- a/packages/cubejs-crate-driver/package.json +++ b/packages/cubejs-crate-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/crate-driver", "description": "Cube.js Crate database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,14 +28,14 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/postgres-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/postgres-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "pg": "^8.7.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md index 8a076c6c8fc18..8aaa6de29b298 100644 --- a/packages/cubejs-cubestore-driver/CHANGELOG.md +++ b/packages/cubejs-cubestore-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/cubestore-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/cubestore-driver diff --git a/packages/cubejs-cubestore-driver/package.json b/packages/cubejs-cubestore-driver/package.json index 3272f73bb4542..4658d51510543 100644 --- a/packages/cubejs-cubestore-driver/package.json +++ b/packages/cubejs-cubestore-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/cubestore-driver", "description": "Cube Store driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -26,10 +26,10 @@ "lint:fix": "eslint --fix src/*.ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/cubestore": "1.3.86", - "@cubejs-backend/native": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/cubestore": "1.4.0", + "@cubejs-backend/native": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "csv-write-stream": "^2.0.0", "flatbuffers": "23.3.3", "fs-extra": "^9.1.0", @@ -41,7 +41,7 @@ "ws": "^7.4.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/csv-write-stream": "^2.0.0", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md index ac878ffd71692..b54b4537e1244 100644 --- a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md +++ b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver diff --git a/packages/cubejs-databricks-jdbc-driver/package.json b/packages/cubejs-databricks-jdbc-driver/package.json index fea259b1853d9..7fea422fe0136 100644 --- a/packages/cubejs-databricks-jdbc-driver/package.json +++ b/packages/cubejs-databricks-jdbc-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/databricks-jdbc-driver", "description": "Cube.js Databricks database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "license": "Apache-2.0", "repository": { "type": "git", @@ -30,17 +30,17 @@ "bin" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/jdbc-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/jdbc-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "node-fetch": "^2.6.1", "ramda": "^0.27.2", "source-map-support": "^0.5.19", "uuid": "^8.3.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "@types/ramda": "^0.27.34", diff --git a/packages/cubejs-dbt-schema-extension/CHANGELOG.md b/packages/cubejs-dbt-schema-extension/CHANGELOG.md index b19e7d25d1022..91e8c4fd3242d 100644 --- a/packages/cubejs-dbt-schema-extension/CHANGELOG.md +++ b/packages/cubejs-dbt-schema-extension/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/dbt-schema-extension diff --git a/packages/cubejs-dbt-schema-extension/package.json b/packages/cubejs-dbt-schema-extension/package.json index 1b6717252c43b..7ab89d4d46933 100644 --- a/packages/cubejs-dbt-schema-extension/package.json +++ b/packages/cubejs-dbt-schema-extension/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/dbt-schema-extension", "description": "Cube.js dbt Schema Extension", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,14 +25,14 @@ "lint:fix": "eslint --fix src/* --ext .ts,.js" }, "dependencies": { - "@cubejs-backend/schema-compiler": "1.3.86", + "@cubejs-backend/schema-compiler": "1.4.0", "fs-extra": "^9.1.0", "inflection": "^1.12.0", "node-fetch": "^2.6.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing": "1.4.0", "@types/jest": "^29", "jest": "^29", "stream-to-array": "^2.3.0", diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md index 914bbede9fd3c..92f9d0bb2998b 100644 --- a/packages/cubejs-docker/CHANGELOG.md +++ b/packages/cubejs-docker/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/docker + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/docker diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json index fa93910eac1ff..40dece24f8cbc 100644 --- a/packages/cubejs-docker/package.json +++ b/packages/cubejs-docker/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/docker", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube.js In Docker (virtual package)", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -9,35 +9,35 @@ "node": ">=18.0.0" }, "dependencies": { - "@cubejs-backend/athena-driver": "1.3.86", - "@cubejs-backend/bigquery-driver": "1.3.86", - "@cubejs-backend/clickhouse-driver": "1.3.86", - "@cubejs-backend/crate-driver": "1.3.86", - "@cubejs-backend/databricks-jdbc-driver": "1.3.86", - "@cubejs-backend/dbt-schema-extension": "1.3.86", - "@cubejs-backend/dremio-driver": "1.3.86", - "@cubejs-backend/druid-driver": "1.3.86", - "@cubejs-backend/duckdb-driver": "1.3.86", - "@cubejs-backend/elasticsearch-driver": "1.3.86", - "@cubejs-backend/firebolt-driver": "1.3.86", - "@cubejs-backend/hive-driver": "1.3.86", - "@cubejs-backend/ksql-driver": "1.3.86", - "@cubejs-backend/materialize-driver": "1.3.86", - "@cubejs-backend/mongobi-driver": "1.3.86", - "@cubejs-backend/mssql-driver": "1.3.86", - "@cubejs-backend/mysql-driver": "1.3.86", - "@cubejs-backend/oracle-driver": "1.3.86", - "@cubejs-backend/pinot-driver": "1.3.86", - "@cubejs-backend/postgres-driver": "1.3.86", - "@cubejs-backend/prestodb-driver": "1.3.86", - "@cubejs-backend/questdb-driver": "1.3.86", - "@cubejs-backend/redshift-driver": "1.3.86", - "@cubejs-backend/server": "1.3.86", - "@cubejs-backend/snowflake-driver": "1.3.86", - "@cubejs-backend/sqlite-driver": "1.3.86", - "@cubejs-backend/trino-driver": "1.3.86", - "@cubejs-backend/vertica-driver": "1.3.86", - "cubejs-cli": "1.3.86", + "@cubejs-backend/athena-driver": "1.4.0", + "@cubejs-backend/bigquery-driver": "1.4.0", + "@cubejs-backend/clickhouse-driver": "1.4.0", + "@cubejs-backend/crate-driver": "1.4.0", + "@cubejs-backend/databricks-jdbc-driver": "1.4.0", + "@cubejs-backend/dbt-schema-extension": "1.4.0", + "@cubejs-backend/dremio-driver": "1.4.0", + "@cubejs-backend/druid-driver": "1.4.0", + "@cubejs-backend/duckdb-driver": "1.4.0", + "@cubejs-backend/elasticsearch-driver": "1.4.0", + "@cubejs-backend/firebolt-driver": "1.4.0", + "@cubejs-backend/hive-driver": "1.4.0", + "@cubejs-backend/ksql-driver": "1.4.0", + "@cubejs-backend/materialize-driver": "1.4.0", + "@cubejs-backend/mongobi-driver": "1.4.0", + "@cubejs-backend/mssql-driver": "1.4.0", + "@cubejs-backend/mysql-driver": "1.4.0", + "@cubejs-backend/oracle-driver": "1.4.0", + "@cubejs-backend/pinot-driver": "1.4.0", + "@cubejs-backend/postgres-driver": "1.4.0", + "@cubejs-backend/prestodb-driver": "1.4.0", + "@cubejs-backend/questdb-driver": "1.4.0", + "@cubejs-backend/redshift-driver": "1.4.0", + "@cubejs-backend/server": "1.4.0", + "@cubejs-backend/snowflake-driver": "1.4.0", + "@cubejs-backend/sqlite-driver": "1.4.0", + "@cubejs-backend/trino-driver": "1.4.0", + "@cubejs-backend/vertica-driver": "1.4.0", + "cubejs-cli": "1.4.0", "typescript": "~5.2.2" }, "resolutions": { diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md index 44e67efd0545d..79e1ba2e20477 100644 --- a/packages/cubejs-dremio-driver/CHANGELOG.md +++ b/packages/cubejs-dremio-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/dremio-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/dremio-driver diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json index cf4c169bb2216..3ea5f6518227d 100644 --- a/packages/cubejs-dremio-driver/package.json +++ b/packages/cubejs-dremio-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/dremio-driver", "description": "Cube.js Dremio driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -22,15 +22,15 @@ "lint:fix": "eslint driver/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "axios": "^1.8.3", "sqlstring": "^2.3.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "jest": "^29" }, "license": "Apache-2.0", diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md index c4fa608b5aa1c..108bed960ebcc 100644 --- a/packages/cubejs-druid-driver/CHANGELOG.md +++ b/packages/cubejs-druid-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/druid-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/druid-driver diff --git a/packages/cubejs-druid-driver/package.json b/packages/cubejs-druid-driver/package.json index 28764dc3eaaa8..4098d061edf9f 100644 --- a/packages/cubejs-druid-driver/package.json +++ b/packages/cubejs-druid-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/druid-driver", "description": "Cube.js Druid database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "license": "Apache-2.0", "repository": { "type": "git", @@ -28,13 +28,13 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "axios": "^1.8.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-duckdb-driver/CHANGELOG.md b/packages/cubejs-duckdb-driver/CHANGELOG.md index 6e1f1d355c7d9..a56377f2193cf 100644 --- a/packages/cubejs-duckdb-driver/CHANGELOG.md +++ b/packages/cubejs-duckdb-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/duckdb-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/duckdb-driver diff --git a/packages/cubejs-duckdb-driver/package.json b/packages/cubejs-duckdb-driver/package.json index f335a7b110575..b867700fc9ce5 100644 --- a/packages/cubejs-duckdb-driver/package.json +++ b/packages/cubejs-duckdb-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/duckdb-driver", "description": "Cube DuckDB database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,15 +27,15 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", - "duckdb": "^1.3.1" + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", + "duckdb": "^1.4.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-elasticsearch-driver/CHANGELOG.md b/packages/cubejs-elasticsearch-driver/CHANGELOG.md index b14af4e75b17c..ede0070eb71a1 100644 --- a/packages/cubejs-elasticsearch-driver/CHANGELOG.md +++ b/packages/cubejs-elasticsearch-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/elasticsearch-driver diff --git a/packages/cubejs-elasticsearch-driver/package.json b/packages/cubejs-elasticsearch-driver/package.json index 6b4b2b2e60524..823fe4ff3c2c3 100644 --- a/packages/cubejs-elasticsearch-driver/package.json +++ b/packages/cubejs-elasticsearch-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/elasticsearch-driver", "description": "Cube.js elasticsearch database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -23,14 +23,14 @@ "driver" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@elastic/elasticsearch": "7.12.0", "sqlstring": "^2.3.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0" diff --git a/packages/cubejs-firebolt-driver/CHANGELOG.md b/packages/cubejs-firebolt-driver/CHANGELOG.md index 6722abec32a22..54ea2bf26e004 100644 --- a/packages/cubejs-firebolt-driver/CHANGELOG.md +++ b/packages/cubejs-firebolt-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/firebolt-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/firebolt-driver diff --git a/packages/cubejs-firebolt-driver/package.json b/packages/cubejs-firebolt-driver/package.json index c37475f413014..493306ee7856b 100644 --- a/packages/cubejs-firebolt-driver/package.json +++ b/packages/cubejs-firebolt-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/firebolt-driver", "description": "Cube.js Firebolt database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,15 +28,15 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "firebolt-sdk": "1.10.0" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md index ed7b25038f4f2..bc39221dd2198 100644 --- a/packages/cubejs-hive-driver/CHANGELOG.md +++ b/packages/cubejs-hive-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/hive-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/hive-driver diff --git a/packages/cubejs-hive-driver/package.json b/packages/cubejs-hive-driver/package.json index c5e3b18e74c0e..cf80cc77396f1 100644 --- a/packages/cubejs-hive-driver/package.json +++ b/packages/cubejs-hive-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/hive-driver", "description": "Cube.js Hive database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -17,8 +17,8 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "generic-pool": "^3.8.2", "jshs2": "^0.4.4", "sasl-plain": "^0.1.0", @@ -28,7 +28,7 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86" + "@cubejs-backend/linter": "1.4.0" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md index 37750541e5a2c..8bb781c10b2fb 100644 --- a/packages/cubejs-jdbc-driver/CHANGELOG.md +++ b/packages/cubejs-jdbc-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/jdbc-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/jdbc-driver diff --git a/packages/cubejs-jdbc-driver/package.json b/packages/cubejs-jdbc-driver/package.json index afa314d4c4751..7e834b7ffc543 100644 --- a/packages/cubejs-jdbc-driver/package.json +++ b/packages/cubejs-jdbc-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/jdbc-driver", "description": "Cube.js JDBC database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,9 +25,9 @@ "index.js" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", "@cubejs-backend/node-java-maven": "^0.1.3", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "generic-pool": "^3.9.0", "sqlstring": "^2.3.0" }, @@ -43,7 +43,7 @@ "testEnvironment": "node" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/node": "^20", "@types/sqlstring": "^2.3.0", "typescript": "~5.2.2" diff --git a/packages/cubejs-ksql-driver/CHANGELOG.md b/packages/cubejs-ksql-driver/CHANGELOG.md index e2f092345e71e..5d79a2608a670 100644 --- a/packages/cubejs-ksql-driver/CHANGELOG.md +++ b/packages/cubejs-ksql-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/ksql-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/ksql-driver diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json index 28538c40bf1d1..686816b5adf93 100644 --- a/packages/cubejs-ksql-driver/package.json +++ b/packages/cubejs-ksql-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/ksql-driver", "description": "Cube.js ksql database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,9 +25,9 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "async-mutex": "0.3.2", "axios": "^1.8.3", "kafkajs": "^2.2.3", @@ -41,7 +41,7 @@ "extends": "../cubejs-linter" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-linter/CHANGELOG.md b/packages/cubejs-linter/CHANGELOG.md index 43e3f71243d98..87cd2c8157bf6 100644 --- a/packages/cubejs-linter/CHANGELOG.md +++ b/packages/cubejs-linter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/linter + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/linter diff --git a/packages/cubejs-linter/package.json b/packages/cubejs-linter/package.json index 575e7e5e877b1..f561eba9390af 100644 --- a/packages/cubejs-linter/package.json +++ b/packages/cubejs-linter/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/linter", "description": "Cube.js ESLint (virtual package) for linting code", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", diff --git a/packages/cubejs-materialize-driver/CHANGELOG.md b/packages/cubejs-materialize-driver/CHANGELOG.md index 9f88d3a5ae134..55c44abd625b0 100644 --- a/packages/cubejs-materialize-driver/CHANGELOG.md +++ b/packages/cubejs-materialize-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/materialize-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/materialize-driver diff --git a/packages/cubejs-materialize-driver/package.json b/packages/cubejs-materialize-driver/package.json index 96fe6605a81ea..8e09fb69b08fd 100644 --- a/packages/cubejs-materialize-driver/package.json +++ b/packages/cubejs-materialize-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/materialize-driver", "description": "Cube.js Materialize database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,17 +27,17 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/postgres-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/postgres-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@types/pg": "^8.6.0", "pg": "^8.6.0", "semver": "^7.6.3" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing": "1.4.0", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md index 417466a54f659..0ffb845599b7a 100644 --- a/packages/cubejs-mongobi-driver/CHANGELOG.md +++ b/packages/cubejs-mongobi-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/mongobi-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/mongobi-driver diff --git a/packages/cubejs-mongobi-driver/package.json b/packages/cubejs-mongobi-driver/package.json index bdd2423a3f0a2..689fd55abc1e7 100644 --- a/packages/cubejs-mongobi-driver/package.json +++ b/packages/cubejs-mongobi-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/mongobi-driver", "description": "Cube.js MongoBI driver", "author": "krunalsabnis@gmail.com", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,8 +27,8 @@ "integration:mongobi": "jest dist/test" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@types/node": "^20", "generic-pool": "^3.9.0", "moment": "^2.29.1", @@ -39,7 +39,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md index 6bd85523627c6..252f4e8063877 100644 --- a/packages/cubejs-mssql-driver/CHANGELOG.md +++ b/packages/cubejs-mssql-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/mssql-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/mssql-driver diff --git a/packages/cubejs-mssql-driver/package.json b/packages/cubejs-mssql-driver/package.json index 6ba2b53d2fcf4..30d17689f63c7 100644 --- a/packages/cubejs-mssql-driver/package.json +++ b/packages/cubejs-mssql-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/mssql-driver", "description": "Cube.js MS SQL database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,8 +25,8 @@ "lint:fix": "eslint --fix src/* --ext .ts,.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "mssql": "^11.0.1" }, "devDependencies": { diff --git a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md index 66d9e70bc6a97..1802c27f1ed96 100644 --- a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md +++ b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver diff --git a/packages/cubejs-mysql-aurora-serverless-driver/package.json b/packages/cubejs-mysql-aurora-serverless-driver/package.json index e6eafefca8359..c5bef8b9dc89e 100644 --- a/packages/cubejs-mysql-aurora-serverless-driver/package.json +++ b/packages/cubejs-mysql-aurora-serverless-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/mysql-aurora-serverless-driver", "description": "Cube.js Aurora Serverless Mysql database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -21,14 +21,14 @@ "lint": "eslint driver/*.js test/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@types/mysql": "^2.15.15", "aws-sdk": "^2.787.0", "data-api-client": "^1.1.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/data-api-client": "^1.2.1", "@types/jest": "^29", "jest": "^29", diff --git a/packages/cubejs-mysql-driver/CHANGELOG.md b/packages/cubejs-mysql-driver/CHANGELOG.md index bb76eeafb0276..dab716047e4a4 100644 --- a/packages/cubejs-mysql-driver/CHANGELOG.md +++ b/packages/cubejs-mysql-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/mysql-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/mysql-driver diff --git a/packages/cubejs-mysql-driver/package.json b/packages/cubejs-mysql-driver/package.json index 264c94f8c1aa7..ec5091d0f4855 100644 --- a/packages/cubejs-mysql-driver/package.json +++ b/packages/cubejs-mysql-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/mysql-driver", "description": "Cube.js Mysql database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,14 +27,14 @@ "lint:fix": "eslint --fix src/* test/* --ext .ts,.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "generic-pool": "^3.9.0", "mysql": "^2.18.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "@types/jest": "^29", "@types/mysql": "^2.15.21", "jest": "^29", diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md index 44a2637d67b05..654ebf9dbad6c 100644 --- a/packages/cubejs-oracle-driver/CHANGELOG.md +++ b/packages/cubejs-oracle-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/oracle-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/oracle-driver diff --git a/packages/cubejs-oracle-driver/package.json b/packages/cubejs-oracle-driver/package.json index adab63b6fcc41..b318900d4722b 100644 --- a/packages/cubejs-oracle-driver/package.json +++ b/packages/cubejs-oracle-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/oracle-driver", "description": "Cube.js oracle database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -13,7 +13,7 @@ }, "main": "driver/OracleDriver.js", "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", "ramda": "^0.27.0" }, "optionalDependencies": { diff --git a/packages/cubejs-pinot-driver/CHANGELOG.md b/packages/cubejs-pinot-driver/CHANGELOG.md index a379ef8efea0d..6fc6f7fbcbb73 100644 --- a/packages/cubejs-pinot-driver/CHANGELOG.md +++ b/packages/cubejs-pinot-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/pinot-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/pinot-driver diff --git a/packages/cubejs-pinot-driver/package.json b/packages/cubejs-pinot-driver/package.json index 572bbc9774572..7183e332ad378 100644 --- a/packages/cubejs-pinot-driver/package.json +++ b/packages/cubejs-pinot-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/pinot-driver", "description": "Cube.js Pinot database driver", "author": "Julian Ronsse, InTheMemory, Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,9 +27,9 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "node-fetch": "^2.6.1", "ramda": "^0.27.2", "sqlstring": "^2.3.3" @@ -39,7 +39,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "jest": "^29", "should": "^13.2.3", diff --git a/packages/cubejs-playground/CHANGELOG.md b/packages/cubejs-playground/CHANGELOG.md index 90f288ea0a040..6c62059dbeb23 100644 --- a/packages/cubejs-playground/CHANGELOG.md +++ b/packages/cubejs-playground/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-client/playground + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-client/playground diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json index 68afa5aff9e8a..0bdf3c3a9dc0b 100644 --- a/packages/cubejs-playground/package.json +++ b/packages/cubejs-playground/package.json @@ -1,7 +1,7 @@ { "name": "@cubejs-client/playground", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "engines": {}, "repository": { "type": "git", @@ -69,8 +69,8 @@ "@ant-design/compatible": "^1.0.1", "@ant-design/icons": "^5.3.5", "@cube-dev/ui-kit": "0.52.3", - "@cubejs-client/core": "1.3.86", - "@cubejs-client/react": "1.3.86", + "@cubejs-client/core": "1.4.0", + "@cubejs-client/react": "1.4.0", "@types/flexsearch": "^0.7.3", "@types/node": "^20", "@types/react": "^18.3.4", diff --git a/packages/cubejs-postgres-driver/CHANGELOG.md b/packages/cubejs-postgres-driver/CHANGELOG.md index 2687aff8a6b45..71725783f8f44 100644 --- a/packages/cubejs-postgres-driver/CHANGELOG.md +++ b/packages/cubejs-postgres-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/postgres-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/postgres-driver diff --git a/packages/cubejs-postgres-driver/package.json b/packages/cubejs-postgres-driver/package.json index 8719f781469f4..4d4d8215595d9 100644 --- a/packages/cubejs-postgres-driver/package.json +++ b/packages/cubejs-postgres-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/postgres-driver", "description": "Cube.js Postgres database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,8 +27,8 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@types/pg": "^8.6.0", "@types/pg-query-stream": "^1.0.3", "moment": "^2.24.0", @@ -37,8 +37,8 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md index 3d9ecb4b7a113..6d612e4a7be8c 100644 --- a/packages/cubejs-prestodb-driver/CHANGELOG.md +++ b/packages/cubejs-prestodb-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/prestodb-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/prestodb-driver diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json index 10c6646cca4d0..a0e66f11bcad9 100644 --- a/packages/cubejs-prestodb-driver/package.json +++ b/packages/cubejs-prestodb-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/prestodb-driver", "description": "Cube.js Presto database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,8 +27,8 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "presto-client": "^1.1.0", "ramda": "^0.27.0", "sqlstring": "^2.3.1" @@ -38,7 +38,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "jest": "^29", "should": "^13.2.3", diff --git a/packages/cubejs-query-orchestrator/CHANGELOG.md b/packages/cubejs-query-orchestrator/CHANGELOG.md index 7422fd31d72d1..2f0512f84572c 100644 --- a/packages/cubejs-query-orchestrator/CHANGELOG.md +++ b/packages/cubejs-query-orchestrator/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/query-orchestrator + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/query-orchestrator diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json index a854d376f6e58..1d9d431fc31d6 100644 --- a/packages/cubejs-query-orchestrator/package.json +++ b/packages/cubejs-query-orchestrator/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/query-orchestrator", "description": "Cube.js Query Orchestrator and Cache", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,15 +29,15 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/cubestore-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/cubestore-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "csv-write-stream": "^2.0.0", "lru-cache": "^11.1.0", "ramda": "^0.27.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "@types/node": "^20", "@types/ramda": "^0.27.32", diff --git a/packages/cubejs-questdb-driver/CHANGELOG.md b/packages/cubejs-questdb-driver/CHANGELOG.md index 1ed6861a8e91c..1a98ff5f11cda 100644 --- a/packages/cubejs-questdb-driver/CHANGELOG.md +++ b/packages/cubejs-questdb-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/questdb-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/questdb-driver diff --git a/packages/cubejs-questdb-driver/package.json b/packages/cubejs-questdb-driver/package.json index bcabe92062257..d1ff62b6c7154 100644 --- a/packages/cubejs-questdb-driver/package.json +++ b/packages/cubejs-questdb-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/questdb-driver", "description": "Cube.js QuestDB database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,9 +27,9 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@types/pg": "^8.6.0", "moment": "^2.24.0", "pg": "^8.7.0", @@ -37,8 +37,8 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-redshift-driver/CHANGELOG.md b/packages/cubejs-redshift-driver/CHANGELOG.md index aceff3dc5a50c..7ff094aaa5dfa 100644 --- a/packages/cubejs-redshift-driver/CHANGELOG.md +++ b/packages/cubejs-redshift-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/redshift-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/redshift-driver diff --git a/packages/cubejs-redshift-driver/package.json b/packages/cubejs-redshift-driver/package.json index 6f81030952002..b866892593019 100644 --- a/packages/cubejs-redshift-driver/package.json +++ b/packages/cubejs-redshift-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/redshift-driver", "description": "Cube.js Redshift database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,13 +25,13 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/postgres-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86" + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/postgres-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md index f3cd364304565..b1795eec9ac47 100644 --- a/packages/cubejs-schema-compiler/CHANGELOG.md +++ b/packages/cubejs-schema-compiler/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/schema-compiler + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) ### Features diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json index ee0e232333305..904772b74b4d7 100644 --- a/packages/cubejs-schema-compiler/package.json +++ b/packages/cubejs-schema-compiler/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/schema-compiler", "description": "Cube schema compiler", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -40,8 +40,8 @@ "@babel/standalone": "^7.24", "@babel/traverse": "^7.24", "@babel/types": "^7.24", - "@cubejs-backend/native": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/native": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "antlr4": "^4.13.2", "camelcase": "^6.2.0", "cron-parser": "^4.9.0", @@ -60,8 +60,8 @@ }, "devDependencies": { "@clickhouse/client": "^1.12.0", - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", "@types/babel__code-frame": "^7.0.6", "@types/babel__generator": "^7.6.8", "@types/babel__traverse": "^7.20.5", diff --git a/packages/cubejs-server-core/CHANGELOG.md b/packages/cubejs-server-core/CHANGELOG.md index df96dfb477266..ac080575cd0b6 100644 --- a/packages/cubejs-server-core/CHANGELOG.md +++ b/packages/cubejs-server-core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/server-core + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/server-core diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json index cccc93c54e5b0..c65447c6c0360 100644 --- a/packages/cubejs-server-core/package.json +++ b/packages/cubejs-server-core/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/server-core", "description": "Cube.js base component to wire all backend components together", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,14 +29,14 @@ "unit": "jest --runInBand --forceExit --coverage dist/test" }, "dependencies": { - "@cubejs-backend/api-gateway": "1.3.86", - "@cubejs-backend/cloud": "1.3.86", + "@cubejs-backend/api-gateway": "1.4.0", + "@cubejs-backend/cloud": "1.4.0", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/native": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", - "@cubejs-backend/templates": "1.3.86", + "@cubejs-backend/native": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", + "@cubejs-backend/templates": "1.4.0", "codesandbox-import-utils": "^2.1.12", "cross-spawn": "^7.0.1", "fs-extra": "^8.1.0", @@ -59,9 +59,9 @@ "ws": "^7.5.3" }, "devDependencies": { - "@cubejs-backend/cubestore-driver": "1.3.86", - "@cubejs-backend/linter": "1.3.86", - "@cubejs-client/playground": "1.3.86", + "@cubejs-backend/cubestore-driver": "1.4.0", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-client/playground": "1.4.0", "@types/cross-spawn": "^6.0.2", "@types/express": "^4.17.21", "@types/fs-extra": "^9.0.8", diff --git a/packages/cubejs-server/CHANGELOG.md b/packages/cubejs-server/CHANGELOG.md index fca52b5031a5e..87c294853e329 100644 --- a/packages/cubejs-server/CHANGELOG.md +++ b/packages/cubejs-server/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/server + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/server diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json index a2216ed492224..61993ee09a787 100644 --- a/packages/cubejs-server/package.json +++ b/packages/cubejs-server/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/server", "description": "Cube.js all-in-one server", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "types": "index.d.ts", "repository": { "type": "git", @@ -40,11 +40,11 @@ "jest:shapshot": "jest --updateSnapshot test" }, "dependencies": { - "@cubejs-backend/cubestore-driver": "1.3.86", + "@cubejs-backend/cubestore-driver": "1.4.0", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/native": "1.3.86", - "@cubejs-backend/server-core": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/native": "1.4.0", + "@cubejs-backend/server-core": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@oclif/color": "^1.0.0", "@oclif/command": "^1.8.13", "@oclif/config": "^1.18.2", @@ -61,8 +61,8 @@ "ws": "^7.1.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", "@oclif/dev-cli": "^1.23.1", "@types/body-parser": "^1.19.0", "@types/cors": "^2.8.8", diff --git a/packages/cubejs-snowflake-driver/CHANGELOG.md b/packages/cubejs-snowflake-driver/CHANGELOG.md index ba5e0548cab9f..22f1b7a59fdee 100644 --- a/packages/cubejs-snowflake-driver/CHANGELOG.md +++ b/packages/cubejs-snowflake-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/snowflake-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/snowflake-driver diff --git a/packages/cubejs-snowflake-driver/package.json b/packages/cubejs-snowflake-driver/package.json index e4862d82f44da..a134cd276ad3b 100644 --- a/packages/cubejs-snowflake-driver/package.json +++ b/packages/cubejs-snowflake-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/snowflake-driver", "description": "Cube.js Snowflake database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -26,8 +26,8 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.726.0", - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "date-fns-timezone": "^0.1.4", "snowflake-sdk": "^2.2.0" }, @@ -39,7 +39,7 @@ "extends": "../cubejs-linter" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md index 2b5c544b9f3ba..dfcfd6d7ac10b 100644 --- a/packages/cubejs-sqlite-driver/CHANGELOG.md +++ b/packages/cubejs-sqlite-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/sqlite-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/sqlite-driver diff --git a/packages/cubejs-sqlite-driver/package.json b/packages/cubejs-sqlite-driver/package.json index 503347c8c6c12..aca48731f42f3 100644 --- a/packages/cubejs-sqlite-driver/package.json +++ b/packages/cubejs-sqlite-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/sqlite-driver", "description": "Cube.js Sqlite database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -18,13 +18,13 @@ "unit": "jest" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "sqlite3": "^5.1.7" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "jest": "^29" }, "publishConfig": { diff --git a/packages/cubejs-templates/CHANGELOG.md b/packages/cubejs-templates/CHANGELOG.md index e6b6199ff959f..b4e36607378ba 100644 --- a/packages/cubejs-templates/CHANGELOG.md +++ b/packages/cubejs-templates/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/templates + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/templates diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json index 28888467e3bbd..1a2b9274a5dd2 100644 --- a/packages/cubejs-templates/package.json +++ b/packages/cubejs-templates/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/templates", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube.js Templates helpers", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -26,7 +26,7 @@ "extends": "../cubejs-linter" }, "dependencies": { - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "cross-spawn": "^7.0.3", "decompress": "^4.2.1", "decompress-targz": "^4.1.1", @@ -36,7 +36,7 @@ "source-map-support": "^0.5.19" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-testing-drivers/CHANGELOG.md b/packages/cubejs-testing-drivers/CHANGELOG.md index 6b8122124bef3..0cfa21aecc3da 100644 --- a/packages/cubejs-testing-drivers/CHANGELOG.md +++ b/packages/cubejs-testing-drivers/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/testing-drivers + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/testing-drivers diff --git a/packages/cubejs-testing-drivers/package.json b/packages/cubejs-testing-drivers/package.json index 4351f0bcc8bc7..ec154ca8e842e 100644 --- a/packages/cubejs-testing-drivers/package.json +++ b/packages/cubejs-testing-drivers/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/testing-drivers", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube.js drivers test suite", "author": "Cube Dev, Inc.", "license": "MIT", @@ -67,24 +67,24 @@ "dist/src" ], "dependencies": { - "@cubejs-backend/athena-driver": "1.3.86", - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/bigquery-driver": "1.3.86", - "@cubejs-backend/clickhouse-driver": "1.3.86", - "@cubejs-backend/cubestore-driver": "1.3.86", - "@cubejs-backend/databricks-jdbc-driver": "1.3.86", + "@cubejs-backend/athena-driver": "1.4.0", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/bigquery-driver": "1.4.0", + "@cubejs-backend/clickhouse-driver": "1.4.0", + "@cubejs-backend/cubestore-driver": "1.4.0", + "@cubejs-backend/databricks-jdbc-driver": "1.4.0", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/mssql-driver": "1.3.86", - "@cubejs-backend/mysql-driver": "1.3.86", - "@cubejs-backend/postgres-driver": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", - "@cubejs-backend/server-core": "1.3.86", - "@cubejs-backend/shared": "1.3.86", - "@cubejs-backend/snowflake-driver": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", - "@cubejs-client/core": "1.3.86", - "@cubejs-client/ws-transport": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/mssql-driver": "1.4.0", + "@cubejs-backend/mysql-driver": "1.4.0", + "@cubejs-backend/postgres-driver": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", + "@cubejs-backend/server-core": "1.4.0", + "@cubejs-backend/shared": "1.4.0", + "@cubejs-backend/snowflake-driver": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", + "@cubejs-client/core": "1.4.0", + "@cubejs-client/ws-transport": "1.4.0", "@jest/globals": "^29", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-testing-shared/CHANGELOG.md b/packages/cubejs-testing-shared/CHANGELOG.md index 246b33fada5f8..b6a096d097fda 100644 --- a/packages/cubejs-testing-shared/CHANGELOG.md +++ b/packages/cubejs-testing-shared/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/testing-shared + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/testing-shared diff --git a/packages/cubejs-testing-shared/package.json b/packages/cubejs-testing-shared/package.json index 4d2d2c5d0eedf..ef7f263c801d6 100644 --- a/packages/cubejs-testing-shared/package.json +++ b/packages/cubejs-testing-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/testing-shared", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube.js Testing Helpers", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -21,16 +21,16 @@ ], "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/query-orchestrator": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/query-orchestrator": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "@testcontainers/kafka": "~10.28.0", "dedent": "^0.7.0", "node-fetch": "^2.6.7", "testcontainers": "^10.28.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@jest/globals": "^29", "@types/dedent": "^0.7.0", "@types/jest": "^29", diff --git a/packages/cubejs-testing/CHANGELOG.md b/packages/cubejs-testing/CHANGELOG.md index 2408aa6203302..07d67efddc241 100644 --- a/packages/cubejs-testing/CHANGELOG.md +++ b/packages/cubejs-testing/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/testing + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/testing diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index 6aa1791d38764..6438816b6389c 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/testing", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube.js e2e tests", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -94,15 +94,15 @@ "birdbox-fixtures" ], "dependencies": { - "@cubejs-backend/cubestore-driver": "1.3.86", + "@cubejs-backend/cubestore-driver": "1.4.0", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/ksql-driver": "1.3.86", - "@cubejs-backend/postgres-driver": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", - "@cubejs-client/ws-transport": "1.3.86", + "@cubejs-backend/ksql-driver": "1.4.0", + "@cubejs-backend/postgres-driver": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", + "@cubejs-client/ws-transport": "1.4.0", "dedent": "^0.7.0", "fs-extra": "^8.1.0", "http-proxy": "^1.18.1", @@ -113,8 +113,8 @@ }, "devDependencies": { "@4tw/cypress-drag-drop": "^1.6.0", - "@cubejs-backend/linter": "1.3.86", - "@cubejs-client/core": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-client/core": "1.4.0", "@jest/globals": "^29", "@types/dedent": "^0.7.0", "@types/http-proxy": "^1.17.5", diff --git a/packages/cubejs-trino-driver/CHANGELOG.md b/packages/cubejs-trino-driver/CHANGELOG.md index 5b54cad34e8c9..0312e2db6ebdc 100644 --- a/packages/cubejs-trino-driver/CHANGELOG.md +++ b/packages/cubejs-trino-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/trino-driver + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/trino-driver diff --git a/packages/cubejs-trino-driver/package.json b/packages/cubejs-trino-driver/package.json index 728c6a69153cb..c344955f49d61 100644 --- a/packages/cubejs-trino-driver/package.json +++ b/packages/cubejs-trino-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/trino-driver", "description": "Cube.js Trino database driver", "author": "Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,10 +27,10 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/prestodb-driver": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/prestodb-driver": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", + "@cubejs-backend/shared": "1.4.0", "node-fetch": "^2.6.1", "presto-client": "^1.1.0", "sqlstring": "^2.3.1" @@ -40,7 +40,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0", diff --git a/packages/cubejs-vertica-driver/CHANGELOG.md b/packages/cubejs-vertica-driver/CHANGELOG.md index ae8126b448bff..e816ca6c59c12 100644 --- a/packages/cubejs-vertica-driver/CHANGELOG.md +++ b/packages/cubejs-vertica-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube.js/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/vertica-driver + ## [1.3.86](https://github.com/cube-js/cube.js/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/vertica-driver diff --git a/packages/cubejs-vertica-driver/package.json b/packages/cubejs-vertica-driver/package.json index b2d80daa7a120..0c3f0ae81ad4b 100644 --- a/packages/cubejs-vertica-driver/package.json +++ b/packages/cubejs-vertica-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/vertica-driver", "description": "Cube.js Vertica database driver", "author": "Eduard Karacharov, Tim Brown, Cube Dev, Inc.", - "version": "1.3.86", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -19,15 +19,15 @@ "lint:fix": "eslint --fix **/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.86", - "@cubejs-backend/query-orchestrator": "1.3.86", - "@cubejs-backend/schema-compiler": "1.3.86", + "@cubejs-backend/base-driver": "1.4.0", + "@cubejs-backend/query-orchestrator": "1.4.0", + "@cubejs-backend/schema-compiler": "1.4.0", "vertica-nodejs": "^1.0.3" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", - "@cubejs-backend/testing-shared": "1.3.86", + "@cubejs-backend/linter": "1.4.0", + "@cubejs-backend/testing-shared": "1.4.0", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0" diff --git a/rust/cubesql/CHANGELOG.md b/rust/cubesql/CHANGELOG.md index 3faf5692adeab..f9c06ca499da7 100644 --- a/rust/cubesql/CHANGELOG.md +++ b/rust/cubesql/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +### Bug Fixes + +- **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)) + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/cubesql diff --git a/rust/cubesql/Cargo.lock b/rust/cubesql/Cargo.lock index 2f1f943713ffa..31690f3dfed5c 100644 --- a/rust/cubesql/Cargo.lock +++ b/rust/cubesql/Cargo.lock @@ -697,7 +697,7 @@ dependencies = [ [[package]] name = "cube-ext" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "arrow", "chrono", @@ -821,7 +821,7 @@ dependencies = [ [[package]] name = "datafusion" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "ahash 0.7.8", "arrow", @@ -854,7 +854,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "arrow", "ordered-float 2.10.0", @@ -865,7 +865,7 @@ dependencies = [ [[package]] name = "datafusion-data-access" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "async-trait", "chrono", @@ -878,7 +878,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "ahash 0.7.8", "arrow", @@ -889,7 +889,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=e3eb4cf60bab0136b3925fe4795f82f67dad7e49#e3eb4cf60bab0136b3925fe4795f82f67dad7e49" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=8e60e17fb5872d50e00ee65bf2200e1ebe5122ea#8e60e17fb5872d50e00ee65bf2200e1ebe5122ea" dependencies = [ "ahash 0.7.8", "arrow", diff --git a/rust/cubesql/cubesql/Cargo.toml b/rust/cubesql/cubesql/Cargo.toml index 1a66c2c7599d5..bb9c23a1aca89 100644 --- a/rust/cubesql/cubesql/Cargo.toml +++ b/rust/cubesql/cubesql/Cargo.toml @@ -10,7 +10,7 @@ homepage = "https://cube.dev" [dependencies] arc-swap = "1" -datafusion = { git = 'https://github.com/cube-js/arrow-datafusion.git', rev = "e3eb4cf60bab0136b3925fe4795f82f67dad7e49", default-features = false, features = [ +datafusion = { git = 'https://github.com/cube-js/arrow-datafusion.git', rev = "8e60e17fb5872d50e00ee65bf2200e1ebe5122ea", default-features = false, features = [ "regex_expressions", "unicode_expressions", ] } diff --git a/rust/cubesql/package.json b/rust/cubesql/package.json index 31ebf7761724f..7e0a4a914417f 100644 --- a/rust/cubesql/package.json +++ b/rust/cubesql/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubesql", - "version": "1.3.86", + "version": "1.4.0", "description": "SQL API for Cube as proxy over MySQL protocol.", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" diff --git a/rust/cubestore/CHANGELOG.md b/rust/cubestore/CHANGELOG.md index 7be867ec2f58e..3051063e9b5e6 100644 --- a/rust/cubestore/CHANGELOG.md +++ b/rust/cubestore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.4.0](https://github.com/cube-js/cube/compare/v1.3.86...v1.4.0) (2025-10-29) + +**Note:** Version bump only for package @cubejs-backend/cubestore + ## [1.3.86](https://github.com/cube-js/cube/compare/v1.3.85...v1.3.86) (2025-10-29) **Note:** Version bump only for package @cubejs-backend/cubestore diff --git a/rust/cubestore/package.json b/rust/cubestore/package.json index 2a72f655829c0..4b7e2c5345083 100644 --- a/rust/cubestore/package.json +++ b/rust/cubestore/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubestore", - "version": "1.3.86", + "version": "1.4.0", "description": "Cube.js pre-aggregation storage layer.", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -27,7 +27,7 @@ "author": "Cube Dev, Inc.", "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.86", + "@cubejs-backend/linter": "1.4.0", "@types/jest": "^27", "@types/node": "^18", "jest": "^27", @@ -37,7 +37,7 @@ "access": "public" }, "dependencies": { - "@cubejs-backend/shared": "1.3.86", + "@cubejs-backend/shared": "1.4.0", "@octokit/core": "^3.2.5", "source-map-support": "^0.5.19" }, diff --git a/yarn.lock b/yarn.lock index d144395fab3b9..1612175f1072b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13353,10 +13353,10 @@ draft-js@^0.10.0, draft-js@~0.10.0: immutable "~3.7.4" object-assign "^4.1.0" -duckdb@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/duckdb/-/duckdb-1.3.1.tgz#984427fba39e0d321a4dc592bbf9b06cdd39992f" - integrity sha512-wSCxu6zSkHkGHtLrI5MmHYUOpbi08s2eIY/QCg2f1YsSyohjA3MRnUMdDb88oqgLa7/h+/wHuIe1RXRu4k04Sw== +duckdb@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/duckdb/-/duckdb-1.4.1.tgz#c34cf2c0c1e8625624c928890a7fe67b38dc40ff" + integrity sha512-ynTVIsJjuUfF4GuTNpJn9xpVw8+gHz1wyHzQhfPJsVCemu3bf620HmJo5nRDTB0LMwfLW/3pTMmh+uze9kHAcw== dependencies: "@mapbox/node-pre-gyp" "^2.0.0" node-addon-api "^7.0.0" @@ -24192,7 +24192,16 @@ string-length@^5.0.1: char-regex "^2.0.0" strip-ansi "^7.0.1" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -24283,7 +24292,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -24311,6 +24320,13 @@ strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -26390,7 +26406,7 @@ workerpool@^9.2.0: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.2.0.tgz#f74427cbb61234708332ed8ab9cbf56dcb1c4371" integrity sha512-PKZqBOCo6CYkVOwAxWxQaSF2Fvb5Iv2fCeTP7buyWI2GiynWr46NcXSgK/idoV6e60dgCBfgYc+Un3HMvmqP8w== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -26416,6 +26432,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"