Cube Core releases v0.34.35 thru v0.35 bring a few of enhancements to data modeling, improve the support for data sources, update a couple of default settings, and remove support for niche legacy features.

Title and format for view members

As of 0.34.48, view members inherit title and format parameters from respective cube members so you can access them via the /meta REST API endpoint.

FILTER_GROUP context variable

As of 0.34.56, the new FILTER_GROUP context variable was introduced for cases when multiple FILTER_PARAMS are used in SQL definitions of cubes or when filters with complex boolean operators are used in Cube queries.

cubes:
- name: cube_name
sql: >
SELECT *
FROM table
WHERE {FILTER_GROUP(
FILTER_PARAMS.cube_name.member_name.filter(sql_expression),
FILTER_PARAMS.cube_name.another_member_name.filter(sql_expression)
)}
dimensions:
- name: member_name
# ...
- name: another_member_name
# ...

If you use FILTER_PARAMS in your data models, please familiarize yourself with new examples in the documentation.

Export bucket for ClickHouse

As of 0.34.61, you can configure an export bucket on AWS S3 and improve pre-aggregation build performance with large datasets in ClickHouse.

Local database path for DuckDB

As of 0.34.57, you can use the CUBEJS_DB_DUCKDB_DATABASE_PATH environment variable to specify a local database path for DuckDB.

AWS S3 configuration for DuckDB

As of 0.34.47, you can use the CUBEJS_DB_DUCKDB_S3_USE_SSL, CUBEJS_DB_DUCKDB_S3_URL_STYLE, and CUBEJS_DB_DUCKDB_S3_SESSION_TOKEN environment variables to configure the access to data on AWS S3 buckets for DuckDB.

Cluster option for Materialize

As of 0.34.58, you can use the CUBEJS_DB_MATERIALIZE_CLUSTER environment variable to configure the cluster name for Materialize.

Default data model path changed

As of 0.35, Cube assumes that the data model files are placed in the model folder (rather than the schema folder). It helps remove the confusion between the database schema and the semantic layer data model. So, the default value of the CUBEJS_SCHEMA_PATH environment variable is updated to model.

Default column fetch order changed

As of v0.33.57, a new community-contributed CUBEJS_DB_FETCH_COLUMNS_BY_ORDINAL_POSITION environment variable was introduced to fix the unreliable behavior of Redshift when exporting pre-aggregations. In 0.35, this variable is set to true by default.

cubejs renamed to cube in JavaScript SDK

In line with the transition that was announced more than a year ago, we've updated the public API of the JavaScript SDK to use cube instead of cubejs. Package names, e.g., @cubejs-client/core and @cubejs-client/react, stay intact. The reference documentation has been updated accordingly.

import cube from "@cubejs-client/core"
const apiUrl = "..."
const apiToken = "..."
const cubeApi = cube(apiToken, { apiUrl })
// ...

Alpine-based Docker images removed

We've decided to remove Alpine Docker images from Docker Hub to reduce the burder of maintaining Python support with these images.

Legacy MySQL-based SQL API removed

Before the introduction of Postgres-compatible Cube's SQL API a couple of years ago, we prototyped an early version of it that was based on MySQL protocol. Since it was only used by a few early adopters and is not maintained anymore, we've removed it alongside with the CUBEJS_SQL_PORT environment variable.

Legacy serverless packages removed

With the introduction of Docker-based architecture more than three years ago, serverless NPM packages (i.e., cubejs-serverless, cubejs-serverless-aws, and cubejs-serverless-google) started to become increasingly less and less relevant. Now, we're removing them completely.

Legacy initApp hook removed

In pre-Docker era, there was a way to run arbitrary code when Cube starts that is not relevant anymore. So, we've removed the initApp hook completely as well.

Node.js 14 removed, Node.js 16 deprecated

Internally, Cube uses Node.js as runtime for a part of its code base. Since Node.js 14 and 16 reached their end of life on April 30, 2023 and September 11, 2023, respectively, we've removed the support for the former and deprecated the support for the latter. Most likely, this change applies to you if you're developing a custom data source driver.

What's next?

In addition to updates mentioned above, we have substantially improved the SQL API and the support for various BI tools. We will be announcing specific improvements as we reach our internal milestones.

Please feel free to upgrade and try v0.35 today in Cube Core with our Docker distribution. It's also available on the latest release channel in Cube Cloud.

As always, please don't hesitate to get in touch with us and share your feedback in our Slack community of more than 10,000 data practitioners.