This release contains major performance optimisations and minor features
Enhancements
- Native support for all types of SQL joins (LEFT, RIGHT, INNER, OUTER):
query {
users (join: $join, where: $where) @db {
name
posts {
title
views {
count
}
}
address {
pincode
street
}
}
}
variables:
{
"join": [
{
"type": "LEFT",
"table": "posts",
"on": {"users.id": "posts.user_id"},
"join": [
{
"type": "LEFT",
"table": "views",
"on": {"posts.id": "views.post_id"}
}
]
},
{
"type": "LEFT",
"table": "address",
"on": {"users.id": "address.user_id"}
}
]
}
- Optimised (single SQL query) the same database joins when using the new join syntax #1135
- New syntax for aggregations:
query {
users (join: $join, where: $where) @db {
name
totalViews: views__count @aggregate(op: sum)
maxViews: views__count @aggregate(op: max)
}
}
- Support for templating directive using JWT claims. #1370
Fixes
- Fixed security rule editor crashing in Mission Control when the schema isn't provided #1369
Upgrade guide
Upgrade is possible from
v0.17.0
and above.
Before upgrading your cluster, make sure you backup cluster config using space-cli --project <project_id> get all /path/to/backup/dir
. If things go right, you'll be able to reapply all saved project config using space-cli apply /path/to/backup/dir
.
For Docker-based deployments:
Simply run space-cli upgrade
.
For Kubernetes based deployment:
We recommend setting up a fresh Kubernetes cluster and installing Istio and SC on top of it. Don't forget to backup all project config first!