Cube Core v0.29 release includes tons of goodies for developers in the form of Playground, not to mention incredible improvements to Cube Store and reliability improvements to our database drivers.
What we're really excited to announce is two new capabilities:
Breaking changes and deprecations
- Remove Node.js 10.x support
- Remove Node.js 15.x support
- Deprecate Node.js 12.x
- The Docker images for Cube now use Node.js 14.x
- The Angular frontend integration now only supports Angular 12.x
Server
- Cube Store now correctly shuts down when the Cube server exits
- Fixes an issue where a pre-aggregation may not be found after it was created by a Refresh Worker
- Add ability to pass through
generic-pool
options for Redis
Cube SQL API
- Query your cubes with our new MySQL-compatible SQL API. This means you can now connect Cube to third-party BI tools. It launches with support for Superset; we're adding support for Metabase, Tableau, PowerBI and even Microsoft Excel.
Query format
- You can now specify date ranges such as
tomorrow
andnext 2 month
for adateRange
.
Schema
refreshKey
now supports anevery
property- A new
quarter
granularity is now available - Support multi-value filtering on same column through
FILTER_PARAMS
- Improve error messages on schema validation failure
Drivers
- AWS Athena: The driver now uses AWS SDK v3, this reduces bundle sizes significantly for deployments using the Serverless Framework.
- AWS Athena: Use
getWorkGroup()
instead ofSELECT 1
to test connection health. - AWS Athena: Allow configuring the workgroup via
CUBEJS_AWS_ATHENA_WORKGROUP
. - BigQuery: Datasets that cannot be accessed with the current permissions are ignored.
- BigQuery: Improved type detection in read-only mode
- Oracle: You can now specify the port number with
CUBEJS_DB_PORT
. - Oracle: Move
oracledb
tooptionalDependencies
to unblock developers using ARM64. - MySQL: Handle data of type
utf8mb4_bin
asstring
. - Postgres: Add support for pre-aggregating
countDistinctApprox
measures - Postgres: Improved type detection in read-only mode
- PrestoDB: Support connections over SSL
- Snowflake: Fix error
ReferenceError: host is not defined
- Snowflake: Do not trigger cluster start on test connection
Pre-aggregations
- All pre-aggregations now have a default
refreshKey
of 1 hour. - Measures with a rolling window, including
countDistinctApprox
can now be pre-aggregated
Frontend integrations
Core
- Data blending queries can now be made without a
dateRange
- Time dimensions are now included under
dimensions
for cube metadata - Prevent redundant authentication checks
- Preserve order of elements when calling
ResultSet.tableColumns()
- Measures that return nullish (
undefined
ornull
) values are now converted to0
Angular
- Angular 12 support
- Async client generation support in Angular (Find an example here)
FilterMember.replace()
no longer updates all filters with replacement
React
- Introduce new
useCubeMeta()
hook
Vue
- Correctly handle
dryRun
errors on component mount - New
wrapWithQueryRenderer
prop to allow using theQueryBuilder
component without theQueryRenderer
Cube Store
Cube Store has seen a huge number of stability fixes and quality improvements; far too many to mention here, but here's a summary:
- Improved Cube Store installation process
- Improved error handling for incorrect configuration
- Added support for
date_add
anddate_sub
SQL functions - Added equality comparison between
bool
andint
types - We now build non-avx versions of Cube Store so you can use them on ARM64 platforms
ILIKE
is now supported- Added
CUBESTORE_META_BIND_ADDR
andCUBESTORE_WORKER_BIND_ADDR
to allow for IPv6 binds - Fix issue when using decimal types
- MinIO is now supported as a storage backend
Playground
- Rollup designer
- Now supports the new
quarter
granularity - Support drilldowns in charts made with React ChartJS
- Boolean values are now correctly displayed as
true
orfalse
Documentation
- A deployment guide for Kubernetes
- A ton of new recipes to help you level up quickly