Changelog
Highlights
Native Queries and Logical Models for Postgres (Community edition)
Native Queries and Logical Models are now GA and available for Postgres in Hasura Community Edition.
Native Queries and Logical Models are now GA (Cloud / Enterprise edition only)
We are delighted to announce that Native Queries and Logical Models are now GA.
Stored Procedures support for MS SQL Server is now GA (Cloud / Enterprise edition only)
We are delighted to announce that support for MS SQL Server Stored Procedures is now GA.
Redis Clusters for Caching and Rate Limiting (Enterprise edition only)
Hasura GraphQL Engine now supports Redis clusters for caching and rate limiting along with the standalone instances. Users can now provide either a standalone Redis instance or Redis cluster URL in the --redis-url
& --rate-limit-redis-url
server flags and GraphQL Engine will identify the redis server type and perform the subsequent operations accordingly.
We also have TLS support for redis clusters as a part of this feature. Users can connect to clusters hosted on AWS ElastiCache or GCP Memorystore using TLS.
Behaviour changes
WebSocket connections are now closed on metadata change
All active WebSocket connections will be closed (with error code 1012) on any modifications to metadata. This is to ensure no active subscriptions still use older metadata.
To disable this, please use the close WebSockets on metadata change config.
Change in order of items in exported metadata
When exporting metadata, some items may change order, though this should not happen in any areas where the order is semantically important.
Stored source introspection (Cloud only)
During Metadata operations and restarts, Hasura introspects configured data sources to generate a GraphQL schema. But if those data sources are intermittently unavailable, this results in partial unavailability of the GraphQL schema in the form of Metadata inconsistencies.
We now avoid this downtime by storing those introspection results so the full GraphQL schema can now be published, even if data sources are temporarily unavailable. However, we consider these stored introspection results stale as they can be inconsistent. So if this mechanism is used, a new type of Metadata Inconsistency is raised. This Metadata Inconsistency can be resolved by a simple reload if the relevant data source has since become available.
Bug fixes and improvements
Server
- If a connection to a data connector-based data source times out while adding the database as a new data source, we now correctly fail to add the data source rather than add a broken data source.
- Forward
null
value passed to GraphQL query input fields to the upstream Remote Schema (fix #9476) - Make
args
input argument for computed fields optional if all arguments of the corresponding SQL functions have defaults. - Fix encoding of
null
values when sending query parameters to BigQuery. - Fix a regression where an old PG connection pool could get used, resulting in wrong PG metrics and some other bugs.
- Add support for ES-* (ES256, ES384, ES512) algorithms for signing the JWT.
- Enable function permissions API for Data Connector-based backends.
- The
message
property in errors returned by Hasura will now be the first property in the JSON object, rather than the last. This should help make errors more immediately readable by making the error message text the first thing that is seen. - Fix bug where having a semi-colon at the end of a Native Query SQL broke the query. (Cloud / Enterprise edition only)
- Improve performance when processing complex queries with BigQuery. (Cloud / Enterprise edition only)
- Increase the defaults of cache params in EE. (Enterprise edition only)
The new defaults are -
HASURA_GRAPHQL_CACHE_MAX_ENTRY_TTL
- 3600 seconds
HASURA_GRAPHQL_CACHE_MAX_ENTRY_SIZE
- 1000 MB
HASURA_GRAPHQL_CACHE_BUCKET_RATE
- 10 MB/s
HASURA_GRAPHQL_CACHE_BUCKET_SIZE
- 1 GB
Console
- Add an
Export OpenAPI Spec
button on the REST Endpoints page to download the Open API spec for the REST Endpoints - Improve loading UX on permissions editor.
- Adjust layout when enabling experimental permissions on the old UI.
- Fix conversion of legacy notification to the new toast system.
- On REST Endpoints page in Console, send the request variable value as a JSON object if the type of variable is
JSON
instead of a string. - Fix custom GraphQL root-field placeholders for
update_by_pk
anddelete_by_pk
. - Add OpenAPI
3.1
support and soft validation for importing Actions. - Improve Snowflake User Defined Functions tracking experience in the Console. (Cloud / Enterprise edition only)
- Fix a bug where the Native Query detail page does not show associated logical model when viewing and existing Native Query. (Cloud / Enterprise edition only)
- Customize logical model select permissions: Add roles, customize their permission checks, and enable or disable columns. (Cloud / Enterprise edition only)
- Add ability to view details of existing Native Queries. (Cloud / Enterprise edition only)
Data Connectors
- Views in Snowflake are no longer duplicated in the untracked tables list. (Cloud / Enterprise edition only)