Cube Core v0.32 release brings the GraphQL API into general availability, adds a number of quality-of-life improvements to Cube SQL and adds significant performance boosts to Cube Store.

Breaking changes and deprecations

This release, we have 2 deprecations and 5 breaking changes:

Please check the deprecation document for more details.

Breaking changes

  • Cube Store is now the default cache and queue engine, replacing Redis. We've talked previously about how Cube Store will be replacing Redis, and this release makes it official.

  • Support for Node.js v12 and v15 has been dropped due to them reaching end-of-life. We strongly recommend upgrading to Node.js v16.

  • Absolute imports for the following packages have been removed. We now provide a public API from the package directly:

    • @cubejs-backend/query-orchestrator
    • @cubejs-backend/schema-compiler
    • @cubejs-backend/server-core


  • Support for Node.js v14 has been marked as deprecated due to it reaching end-of-life in April 2023. We strongly recommend upgrading to Node.js v16.

  • Using Cube with the Serverless Framework and the @cubejs-backend/serverless packages is now deprecated, we strongly recommend using Docker-based deployments or Cube Cloud instead.


Following on from the Lambda pre-aggregation support introduced in our last release, Cube now supports multiple rollups from the same cube in a rollupLambda definition.


The Cube CLI now lets you validate your models on your local machine - simply run npx cubejs-cli validate to check the models in your project for errors:

npx cubejs-cli validate
❌ Cube Schema validation failed
Cube Error ---------------------------------------
Orders cube: "" does not match any of the allowed types
Possible reasons (one of):
* ( is required
* ( is required
* ( is required
LineItems cube: Cube Orders doesn't exist
Need some help? -------------------------------------
Ask this question in Cube Slack:
Post an issue:


We've enabled readOnly: true as the default for the Clickhouse, MSSQL and Oracle drivers which lets Cube build pre-aggregations without creating temporary tables in those databases.


We're extremely excited to announce general availability of the GraphQL API in Cube. With this, the GraphQL API now fully supports variables, a much-requested (and much-needed) improvement:

import { gql } from '@apollo/client';
const getOrdersQuery = gql`
query CubeQuery($orderBy: OrdersOrderByInput) {
cube {
orders(orderBy: $orderBy) {
const variables = {
orderBy: {
count: 'desc',
query: getOrdersQuery,
.then((result) => console.log(result));


Cube SQL continues to see quality-of-life improvements as well as enhanced support for even more SQL functions as selections and projections. Some examples of what we've improved this release include:

  • Support for CASE statements in Cube projections
  • Support for expressions like NOT(LOWER() IN)
  • Allow using CAST in HAVING clauses
  • Support for LEFT and RIGHT functions in projections
  • Support for NULLIF in projections
  • Allow using TO_DATE() in DATE_DIFF() expressions
  • Allow using DATE_TRUNC() in WHERE clauses

We hope that you find these helpful in your work with Cube SQL; please let us know if you have any feedback or suggestions by opening issues on our GitHub repository.