It’s not every day that a release as big as this one arrives.
Before we get started, a note of caution:
This software is released as an alpha. Please keep it away from production. We release to ensure your feedback, bug reports, perspective, etc. are included (as possible) in the final release. Test frequently...but be cautious.
As we march towards GA, we will share more the thought-process behind this release, what went into the changes, why it has been a complex -- and lengthy process -- as well as what it sets up for the future. Both for you, the user, and for Hasura, the community (and company).
1.4 is not a ‘small release’. In fact, the list of features is substantive and incredibly exciting. If you’ve attended a recent Hasura Community Call you may well have seen recent demos of these capabilities. A, non-exhaustive, list includes:
Multiple Postgres Sources - One Hasura, many Postgres. Bringing multiple Postgres databases into one Hasura instance. One Postgres, many Hasura. Multiple versions of Hasura on a single Postgres database (think about advanced versioning, change-management, etc.) Frequently requested...frequently desired...now it’s here.
Metadata Separation - Of course the above requires rethinking metadata. Now you can not only achieve the above...but you can have Hasura connect to read-only Postgres. And, importantly, this sets the stage for multiple database support in a scalable way.
REST Endpoint Support - Idiomatic REST from GraphQL?? Your saved queries and mutations can be made available (along with a URL template) to expose all of the benefits of GraphQL rapid development to the tooling and ecosystem of REST.
Volatile functions as mutations - Writing custom business logic is great. But how about exposing SQL functions that can perform custom insert operations inside Postgres? Now Postgres volatile functions can be used in Hasura to write custom inserts, updates, deletes, etc.
Remote schema permissions - Bringing in data from external data sources opens up myriads of use-cases and we don't want to limit them. Expose only a subset of your remote schema using the Hasura authorisation layer...the power of permissions extended to remote schemas.
Heterogeneous execution - Multiple data sources, a single query. It used to be that you could query only from Postgres or remote schemas...but not both. Now you can have your proverbial cake and include a query from a remote server at the same time.
And many, many more features both large and small!