v0.32
Hello Cube Community, we're really excited to announce Cube v0.32 🎉
This new 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.
This release, we have 2 deprecations and 5 breaking changes:
Be sure to check the Deprecation document for more details.
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
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 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: "dimensions.id" does not match any of the allowed types
Possible reasons (one of):
* (dimensions.id.case) is required
* (dimensions.id.latitude) is required
* (dimensions.id.sql) is required
LineItems cube: Cube Orders doesn't exist
Need some help? -------------------------------------
Ask this question in Cube Slack: https://slack.cube.dev
Post an issue: https://github.com/cube-js/cube.js/issues
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) {
count
status
}
}
}
`;
const variables = {
orderBy: {
count: 'desc',
},
};
client
.query({
query: getOrdersQuery,
variables,
})
.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
inHAVING
clauses - Support for
LEFT
andRIGHT
functions in projections - Support for
NULLIF
in projections - Allow using
TO_DATE()
inDATE_DIFF()
expressions - Allow using
DATE_TRUNC()
inWHERE
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.
A huge thank you to each and every person who took the time to help us improve Cube 😁
- @jay-choe
- @so2liu
- @Barsoomx
- @MattFanto
- @yuraborue
- @tkislan
- @euljr
- @philipprus
- @fbalicchia
- @alexanderlz
- @AlessandroLollo
Apologies to anyone who we forgot to mention; please get in touch and we'll make sure to add your name to the list 🙌
Did you find this page useful?