Hasura - v2.28.0


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 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.
  • Allow defining Logical Models with Postgres field types that have a precision component or are upper-cased.
  • Fix bug where having a semi-colon at the end of a Native Query SQL broke the query.
  • Improves parsing of scalar type names for BigQuery to match everything shown in docs. (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 and delete_by_pk.
  • Add OpenAPI 3.1 support and soft validation for importing Actions.
  • Fix a bug where the Native Query detail page does not show associated logical model when viewing and existing Native Query.
  • Customize logical model select permissions: Add roles, customize their permission checks, and enable or disable columns.
  • Add ability to view details of existing Native Queries.
  • Improve Snowflake User Defined Functions tracking experience in the Console. (Cloud / Enterprise edition only)
  • Improve error handling for the database latency check when Hasura cannot connect to the project's connected data source. (Cloud only)

Data Connectors

  • Views in Snowflake are no longer duplicated in the untracked tables list. (Cloud / Enterprise edition only)

Build

  • Update ubuntu focal base image to get the latest security updates.

Details

date
June 21, 2023, 8:34 a.m.
name
v2.28.0
type
Minor
👇
Register or login to:
  • 🔍View and search all Hasura releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or