Cube Core v0.28 release includes tons of goodies for developers in the form of Playground, not to mention incredible improvements to Cube Store and a raft of reliability improvements to our database drivers.

Breaking changes and deprecations

Only one deprecation this release:

  • Redis configuration variables are all now prefixed with CUBEJS_. This is part of an ongoing process to cleanly separate and mark environment variables used by Cube.

Be sure to check the Deprecation document for more details on the above.


  • The queryTransformer property in the cube.js configuration file is replaced by queryRewrite

  • A new environment variable CUBEJS_REFRESH_WORKER is introduced, which replaces CUBEJS_SCHEDULED_REFRESH_TIMER

  • A new environment variable CUBEJS_ROLLUP_ONLY is introduced, which ensures all requests only target pre-aggregations of type rollup and that your database is not invoked

  • Partition evaluation responsibilities have been moved from the schema compiler to the query orchestrator. This allows all time queries for partitioned rollups and fixes querying issues beyond a rollup's build range. This is also the first step towards rolling window rollups being supported 🎉

  • Run timer refresh keys in Cube Store instead of your source database. This means the source database is now free of those pesky refresh SQL queries spamming the query log 😎

  • The database connection wizard works in both Node and Docker-based installs


  • The default type for pre-aggregations is now rollup. This can still be overridden by explicitly specifying the type property, but we strongly recommend using rollups instead of originalSql for most workloads.

  • Pre-aggregation definitions now set the following as defaults: external: true and scheduledRefresh: true

  • refreshRangeStart/refreshRangeEnd to be replaced by buildRangeStart/buildRangeEnd

  • You can write measureReferences/dimensionReferences/timeDimensionReference as measures/dimensions/timeDimension.


We're working our way through the supported drivers so that Cube.js doesn't talk to your database any more than is necessary. To this end, the following drivers now default to readOnly: true automatically:

  • ElasticSearch
  • MySQL
  • Postgres


We've been cranking out improvements to pre-aggregations too, here are the highlights:

  • Cube Store is now the default storage for external pre-aggregations in new projects
  • Batching is now also supported for
    • BigQuery
    • Clickhouse
    • MongoDB
    • MySQL (now in readOnly: true as well)
  • Export bucket is now also supported for
    • Redshift (on S3)
    • Snowflake (now on GCS as well as S3)

Cube Store


We have so many improvements here that we're really excited to share with you all:

  • You can now search for dimensions and measures. The members are also grouped by cube, which makes it easy-as-pie to pick out the ones you want.

  • A long-requested item on our agenda has been Vue 3 support, which is now available.

  • You can now have multiple tabs with their own queries in the Developer Playground - super useful when you want to keep queries at-hand without needing a separate instance of the Playground open

  • The brand new Rollup Designer makes creating pre-aggregations an absolute treat.