这是indexloc提供的服务,不要输入任何密码
Skip to content

Releases: hasura/graphql-engine

v2.24.1

28 Apr 14:04

Choose a tag to compare

Changelog

This is a patch release for v2.24.0

Bug fixes and improvements

  • Fix a regression where connecting to Snowflake would fail if the database or schema name was not entirely uppercase. (Cloud / Enterprise edition only)
  • Allow turning on/off the metrics endpoint (using the HASURA_GRAPHQL_ENABLED_APIS env var) without any downtime of the Cloud project. (Cloud only)
  • Fix missing SSO login buttons in EE console. (Enterprise edition only)

v2.24.0

27 Apr 06:32

Choose a tag to compare

Changelog

Highlights

CockroachDB support is now GA 🎉

We are delighted to announce that CockroachDB support is now out of beta and generally available to all Hasura users. See docs.

MySQL, MariaDB and Oracle data connectors are now in Beta (Cloud / Enterprise edition only)

We are delighted to announce that our MySQL, MariaDB and Oracle data connectors are now in beta. These data connectors support queries, mutations (INSERT, UPDATE, DELETE), table relationships, remote relationships and permissions.

Query Cache configuration options (Enterprise edition only)

The following new engine flag / environment variable options are added for configuring query cache behaviour:

Env var Flag Description
HASURA_QUERY_CACHE_MAX_TTL --query-cache-max-ttl Maximum Query Cache TTL value in seconds. Default: 600 seconds
HASURA_GRAPHQL_CACHE_BUCKET_RATE --query-cache-bucket-rate Recharge rate for the Query Response Cache token bucket. Default: 100,000 bytes/second
HASURA_GRAPHQL_CACHE_MAX_ENTRY_SIZE --query-cache-max-entry-size Maximum cache entry size in MB, default: 1 MB

Single Sign-On support for the Console (Enterprise edition only)

Adds more secure auth options to the Console beside the Admin secret and Hasura collaborator tokens. You can connect any Identity provider which supports OAuth 2.0 / OpenID Connect with the auth code flow. For more information on how to set this up, please see our docs.

hasura-sso-720p

Behaviour changes

  • Hasura doesn't allow certain queries to be cached. Namely, Remote Schema or Action queries with forward_client_headers set to true.

    Currently, Hasura throws an error and fails the query. The behavior is now changed to not throw an error. Hasura now always fetches data from the upstream API, skips the cache, and returns the response with a Warning header.

    The warning headers are as follows:

    warning: 199 - Actions that forward client headers cannot currently be cached
    
    warning: 199 - Remote schemas or joins that forward client headers cannot currently be cached
    

    Note that Remote Schemas with forward_client_headers: true were erroneously allowed to cache before.

    (Cloud / Enterprise edition only)

Bug fixes and improvements

Server

  • A new metadata API bulk_keep_going is added. This has exactly the same interface as bulk when all commands succeed, but instead of returning the first error when any command fails, errors will be returned in the list of responses just as successes are. This command also always returns a 200 response code, regardless of how many commands succeed or fail.
  • Allow an unauthenticated user to query a remote schema to remote schema relationship when remote schema permissions are disabled (ie. HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS=false)
  • Add code field in metadata API warnings.
  • Disallow remote schema root fields (where forward_client_headers is true) from being cached. (Cloud / Enterprise edition only)
  • Expose the hasura_active_multiplexed_subscriptions metric for better observability in the subscriptions subsystem. (Cloud / Enterprise edition only)
  • For Athena, Snowflake, MariaDB, MySQL and Oracle data sources, tables added to the database after Hasura has started will now be visible in the console so that you can track them. Changes to tracked tables will be visible in the console and in the GraphQL API when you refresh the Hasura metadata or individual database source. (Cloud / Enterprise edition only)
  • Fix bug where cache key headers were sent in the response even when the response was not cached. Now, we only send back the warning header which specifies the cache specific warning with code. (Cloud / Enterprise edition only)

Console

  • Add connection template validation for dynamic database connection routing. (Cloud / Enterprise edition only)
  • Fix an issue with table names for Athena, Snowflake and MySQL being rendered as undefined in the metadata status page. (Cloud / Enterprise edition only)

Data Connectors

  • For MySQL, MariaDB and Oracle data sources, mutations are no longer incorrectly created for views. In addition, primary key columns are now updatable. (Cloud / Enterprise edition only)
  • Snowflake numeric columns with a zero scale will now be correctly typed as integers in GraphQL instead of floats. (Cloud / Enterprise edition only)

Build

  • Updates ubuntu focal base image to get the latest security updates

v2.24.0-beta.1

19 Apr 17:15

Choose a tag to compare

v2.24.0-beta.1 Pre-release
Pre-release

Changelog

Highlights

Query Cache configuration options (Enterprise edition only)

The following new engine flag / environment variable options are added for configuring query cache behaviour:

Env var Flag Description
HASURA_QUERY_CACHE_MAX_TTL --query-cache-max-ttl Maximum Query Cache TTL value in seconds. Default: 600 seconds
HASURA_GRAPHQL_CACHE_BUCKET_RATE --query-cache-bucket-rate Recharge rate for the Query Response Cache token bucket. Default: 100,000 bytes/second
HASURA_GRAPHQL_CACHE_MAX_ENTRY_SIZE --query-cache-max-entry-size Maximum cache entry size in MB, default: 1 MB

Single Sign-On support for the Console (Enterprise edition only)

Adds more secure auth options to the Console beside the Admin secret and Hasura collaborator tokens. You can connect any Identity provider which supports OAuth 2.0 / OpenID Connect with the auth code flow. For more information on how to set this up, please see our docs.

hasura-sso-720p

CockroachDB support is now GA 🎉

We are delighted to announce that CockroachDB support is now out of beta and generally available to all Hasura users.

Bug fixes and improvements

Server

  • A new metadata API bulk_keep_going is added. This has exactly the same interface as bulk when all commands succeed, but instead of returning the first error when any command fails, errors will be returned in the list of responses just as successes are. This command also always returns a 200 response code, regardless of how many commands succeed or fail.
  • Allow an unauthenticated user to query a remote schema to remote schema relationship when remote schema permissions are disabled (ie. HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS=false)
  • Add code field in metadata API warnings.
  • Disallow remote schema root fields (where forward_client_headers is true) from being cached. (Cloud / Enterprise edition only)
  • Expose the hasura_active_multiplexed_subscriptions metric for better observability in the subscriptions subsystem. (Cloud / Enterprise edition only)
  • For Athena, Snowflake, MariaDB, MySQL and Oracle data sources, tables added to the database after Hasura has started will now be visible in the console so that you can track them. Changes to tracked tables will be visible in the console and in the GraphQL API when you refresh the Hasura metadata or individual database source. (Cloud / Enterprise edition only)
  • Fix bug where cache key headers were sent in the response even when the response was not cached. Now, we only send back the warning header which specifies the cache specific warning with code. (Cloud / Enterprise edition only)

Console

Data Connectors

  • For MySQL, MariaDB and Oracle data sources, mutations are no longer incorrectly created for views. In addition, primary key columns are now updatable. (Cloud / Enterprise edition only)
  • Snowflake numeric columns with a zero scale will now be correctly typed as integers in GraphQL instead of floats. (Cloud / Enterprise edition only)

Build

  • Updates ubuntu focal base image to get the latest security updates

v2.23.0

17 Apr 07:55

Choose a tag to compare

Changelog

Highlights

Hasura Enterprise Edition Trial

Adds Hasura Enterprise Edition free trial to explore Hasura’s enterprise features for 30 days.

Hasura Enterprise Edition brings you a host of performance, security, observability features and support for databases like Snowflake, Amazon Athena, MySQL and Oracle. Read more to know about all the Hasura EE features that can help you scale your API for production.

Get Started with Hasura Enterprise Edition trial in under one minute.

MariaDB support (alpha) (Cloud / Enterprise edition only)

We’re delighted to release the alpha version of our MariaDB data connector, that supports queries, table relationships, remote relationships and permissions for MariaDB databases version 10.5 and higher. For more information on how to set this up, please see our docs. This data connector has been built using Hasura GraphQL Engine Data Connectors.

Database-to-database relationships for Data Connector-based data sources (Cloud / Enterprise edition only)

Add support for creating database-to-database relationships for Athena, Snowflake, Oracle, MySQL, and MariaDB.

Zero downtime environment variable updates on Hasura Cloud (Cloud only)

Updating environment variables in Hasura cloud will now not lead to a project restart that caused a momentary downtime of the API.

Behaviour changes

  • Introduce a timeout while processing scheduled events. The timeout will be determined by the lower value, 30 minutes or the response timeout associated with the scheduled event.
  • In instances with data connectors, exported metadata includes a mapping from assigned data connector names to configurations. Previously these entries were given in the order they were created. Now the entries are ordered by name instead.

Bug fixes and improvements

Server

  • Add metadata APIs <db_type>_get_source_tables to list all tables available from a given source.
  • BigQuery tables with JSON columns can now be tracked and rows can be returned from them.
  • Add connection_template as an optional argument in pg_test_connection_template API. The given template takes precedence over the source template. (Cloud / Enterprise edition only)
  • Support queries containing distinct_on arguments on CockroachDB.
  • Fix cache clearing endpoints (/pro/cache/*) which were returning a OAEServerStart error previously. (Cloud / Enterprise edition only)
  • Support _is_null operator in SQL Server permissions.
  • In dev mode, include resolved dynamic db connection template information in API error response's internal field (Cloud / Enterprise edition only)
  • Add new Prometheus metrics for monitoring the cron triggers and one-off triggers. (Enterprise edition only)
  • Add new Prometheus metrics hasura_event_processed_total and hasura_event_invocations_total (Enterprise edition only)
  • Improve error message for dynamic db connection template parsing error. (Cloud / Enterprise edition only)
  • Improve schema-sync logs; remove unnecessary logs and refine log messages
  • Fix regression introduced in v2.22.0 in event trigger log auto cleanup in Postgres sources (Cloud / Enterprise edition only)
  • Allow running read-only run_sql queries in read-only mode.

Console

  • Enable new data tab UI for BigQuery
  • Allow tracking relationships from the new manage database view for Data Connector-based data sources
  • Show Postgres trigger condition, if present, on table modify page to clarify when a PG trigger actually gets triggered
  • Fix a bug that causes the console to crash when parsing internal property of the metadata error response
  • Fixes bug where databases persist in the nav tree after removing the database from the Manage databases screen.
  • Fix issue with dynamic DB routing not showing up on EE console (Enterprise edition only)
  • Fixes a bug where columns with custom GraphQL names could not be used to sort/filter in Browse Rows.
  • Fix console crashing issue for Athena & Snowflake tables with JSON columns
  • Previously, certain features of the Console would not work when running against a PostgreSQL database that does not allow writes, e.g. a read replica. These are now fixed.
    • You can now apply filters when querying data.
    • The Modify sub-tab no longer crashes the Console.
  • Enables the new database relationship UI by default. Can opt back in to legacy UI using the feature flag.
  • UI improvements to Snowflake & Athena tracking section
  • Fixes a bug in the new relationships UI that prevented creating a relationship when starting from a view.

Data Connectors

  • Fixed issue where the source column was being used instead of the target column in joins in Athena and Snowflake. (Cloud / Enterprise edition only)
  • Fixes Date/DateTime fields being converted to null in comparisons and where clauses in GraphQL Data connectors. (Cloud / Enterprise edition only)
  • Fixes support for introspection field-only queries in Athena and Snowflake. (Cloud / Enterprise edition only)

Build

  • Updates ubuntu focal base image to get the latest security updates

v2.22.1

07 Apr 12:55

Choose a tag to compare

Changelog

Bug fixes and improvements

Server

  • Fix bug in the metadata API where intermittently metadata updates would not appear in the GraphQL schema (fix #9545)

v2.23.0-beta.1

05 Apr 15:59

Choose a tag to compare

v2.23.0-beta.1 Pre-release
Pre-release

Changelog

Highlights

Hasura Enterprise Edition Trial

Adds Hasura Enterprise Edition free trial to explore Hasura’s enterprise features for 30 days.

Hasura Enterprise Edition brings you a host of performance, security, observability features and support for databases like Snowflake, Amazon Athena, MySQL and Oracle. Read more to know about all the Hasura EE features that can help you scale your API for production.

Get Started with Hasura Enterprise Edition trial in under one minute.

Behaviour changes

  • Introduce a timeout while processing scheduled events. The timeout will be determined by the lower value, 30 minutes or the response timeout associated with the scheduled event.
  • In instances with data connectors, exported metadata includes a mapping from assigned data connector names to configurations. Previously these entries were given in the order they were created. Now the entries are ordered by name instead.

Bug fixes and improvements

Server

  • Add metadata APIs <db_type>_get_source_tables to list the currently tracked tables within a given source.
  • BigQuery tables with JSON columns can now be tracked and rows can be returned from them.
  • Support queries containing distinct_on arguments on CockroachDB.
  • Support _is_null operator in SQL Server permissions.
  • Improve schema-sync logs; remove unnecessary logs and refine log messages
  • Allow running read-only run_sql queries in read-only mode.
  • Fix cache clearing endpoints (/pro/cache/*) which were returning a OAEServerStart error previously. (Cloud / Enterprise edition only)
  • Add connection_template as an optional argument in pg_test_connection_template API. The given template takes precedence over the source template. (Cloud/Enterprise edition only)
  • In dev mode, include resolved dynamic db connection template information in API error response's internal field (Cloud / Enterprise edition only)
  • Add new Prometheus metrics for monitoring the cron triggers and one-off triggers. (Enterprise edition only)
  • Add new Prometheus metrics hasura_event_processed_total and hasura_event_invocations_total (Enterprise edition only)
  • Improve error message for dynamic db connection template parsing error. (Cloud / Enterprise edition only)
  • Fix regression introduced in v2.22.0 in event trigger log auto cleanup in Postgres sources (Cloud / Enterprise edition only)

Console

  • Enable new data tab UI for BigQuery
  • Allow tracking relationships from the new manage database view for Data Connector-based data sources
  • Show Postgres trigger condition, if present, on table modify page to clarify when a PG trigger actually gets triggered
  • Fixes a bug where columns with custom GraphQL names could not be used to sort/filter in Browse Rows.
  • Fix console crashing issue for Athena & Snowflake tables with JSON columns
  • Previously, certain features of the Console would not work when running against a PostgreSQL database that does not allow writes, e.g. a read replica. These are now fixed.
    • You can now apply filters when querying data.
    • The Modify sub-tab no longer crashes the Console.
  • Enables the new database relationship UI by default. Can opt back in to legacy UI using the feature flag.
  • UI improvements to Snowflake & Athena tracking section
  • Fixes a bug in the new relationships UI that prevented creating a relationship when starting from a view.

Data Connectors

  • Fixes support for introspection field-only queries in Athena and Snowflake. (Cloud / Enterprise edition only)

Build

  • Updates ubuntu focal base image to get the latest security updates

v2.22.0

29 Mar 14:16

Choose a tag to compare

Changelog

Highlights

Apollo Federation (GA)

Apollo federation support is now stable. You need to turn on the feature using either the flag --enable-apollo-federation or by
setting the environment variable HASURA_GRAPHQL_ENABLE_APOLLO_FEDERATION to true.

Please note that the existing way of turning on the feature (via HASURA_GRAPHQL_EXPERIMENTAL_FEATURES) is still supported but is deprecated.

Dynamic DB Connection Routing (GA) (Cloud / Enterprise edition only)

Dynamic DB connection routing has now been added to console and it is now GA. Hasura Cloud and Enterprise customers can now leverage dynamic routing to implement different kinds of database topology patterns with Hasura.

dynamic-db-routing

Read more in the docs

Cache webhook auth token (Cloud / Enterprise edition only)

Hasura can now cache the authentication webhook response in the webhook mode.

For caching you need to return either:

  • a Cache-Control variable, modeled on the Cache-Control HTTP Header, to specify a relative expiration time, in seconds.
  • an Expires variable, modeled on the Expires HTTP Header, to specify an absolute expiration time. The expected format is "%a, %d %b %Y %T GMT".

Behaviour changes

Updating from v2.22.0-beta.1

v2.22.0-beta.2 removed a Hasura metadata catalog migration that was added in v2.22.0-beta.1 on the hdb_catalog.event_log and hdb.event_invocation_logs tables.

With this change, on upgrading to v2.22.0 from v2.22.0-beta.1, the following startup error will be thrown:

{
  "detail": {
    "kind": "catalog_migrate",
    "info": {  "code": "not-supported", "error": "Expected source catalog version <= 3, but the current version is 4", "path": "$"}
  },
  "level": "error",
  "timestamp": "2023-03-28T10:17:24.289+0530",
  "type": "startup"
}

To fix these errors run the following SQL on the database where the event triggers are defined on and restart the Hasura instance.

UPDATE hdb_catalog.hdb_source_catalog_version SET version = 3, upgraded_on= NOW();
ALTER table hdb_catalog.event_log ALTER COLUMN created_at SET DEFAULT NOW();
ALTER table hdb_catalog.event_invocation_logs ALTER COLUMN created_at SET DEFAULT NOW();

Order change in exported per-role API limits metadata (Cloud / Enterprise edition only)

In instances with configured per-role API limits, exported metadata includes a mapping from role names to limit configuration. Previously these entries were given in the order they were created. Now the entries are ordered by role name instead.

Bug fixes and improvements

Server

  • Add environment variable HASURA_GRAPHQL_AUTH_HOOK_SEND_REQUEST_BODY to remove the request body from the request to the authentication webhook (docs)
  • Add additional error information to invocation logs when an HTTP Exception Error is thrown during event triggers and scheduled triggers (one-off, cron) execution
  • Fix bug which added the query to the operation key for the http-log for metadata queries irrespective of the value of the environment variable HASURA_GRAPHQL_ENABLE_METADATA_QUERY_LOGGING
  • Add field detail.operation.query.type to http-log log types always whenever available
  • Fix row limits applied to tables via permissions being incorrectly applied to aggregates of said tables in Data Connector-based data sources
  • Fix table queries which used only introspection fields not returning any data when made to Data Connector-based data sources
  • Fix scheduled events not showing up on console when the payload construction is failed (fix #9311)
  • Fixed bug in Query Response Cache bucket size and bucket rate defaulting. (Cloud / Enterprise edition only)
  • Throw a warning along with the result of the set_api_limits API request if a time limit greater than the cloud project limit is set in the API request. (Cloud only)

Console

  • Add date-time data entry pickers during row insert for Data Connector-based data sources
  • Fix error notifications for slow running queries
  • Disable non insertable columns in the insert row form for Data Connector-based data sources
  • Fix bug with untrack table for Data Connector-based data sources.

v2.22.0-beta.2

28 Mar 14:48

Choose a tag to compare

v2.22.0-beta.2 Pre-release
Pre-release

Changelog

Behaviour change

Removes a Hasura metadata catalog migration that was added in v2.22.0-beta.1 on the hdb_catalog.event_log and hdb.event_invocation_logs tables.

With this change, on upgrading to v2.22.0-beta.2 from v2.22.0-beta.1, the following startup error will be thrown:

{
  "detail": {
    "kind": "catalog_migrate",
    "info": {  "code": "not-supported", "error": "Expected source catalog version <= 3, but the current version is 4", "path": "$"}
  },
  "level": "error",
  "timestamp": "2023-03-28T10:17:24.289+0530",
  "type": "startup"
}

To fix these errors run the following SQL on the database where the event triggers are defined on and restart the Hasura instance.

UPDATE hdb_catalog.hdb_source_catalog_version SET version = 3, upgraded_on= NOW();
ALTER table hdb_catalog.event_log ALTER COLUMN created_at SET DEFAULT NOW();
ALTER table hdb_catalog.event_invocation_logs ALTER COLUMN created_at SET DEFAULT NOW();

v2.22.0-beta.1

23 Mar 09:24

Choose a tag to compare

v2.22.0-beta.1 Pre-release
Pre-release

Changelog

Highlights

Apollo Federation (GA)

Apollo federation support is now stable. You need to turn on the feature using either the flag --enable-apollo-federation or by
setting the environment variable HASURA_GRAPHQL_ENABLE_APOLLO_FEDERATION to true.

Please note that the existing way of turning on the feature (via HASURA_GRAPHQL_EXPERIMENTAL_FEATURES) is still supported but is deprecated.

Dynamic DB Connection Routing (GA) (Cloud / Enterprise edition only)

Dynamic DB connection routing has now been added to console and it is now GA. Hasura Cloud and Enterprise customers can now leverage dynamic routing to implement different kinds of database topology patterns with Hasura.

dynamic-db-routing

Read more in the docs

Cache webhook auth token (Cloud / Enterprise edition only)

Hasura can now cache the authentication webhook response in the webhook mode.

For caching you need to return either:

  • a Cache-Control variable, modeled on the Cache-Control HTTP Header, to specify a relative expiration time, in seconds.
  • an Expires variable, modeled on the Expires HTTP Header, to specify an absolute expiration time. The expected format is "%a, %d %b %Y %T GMT".
auth-hook.caching.demo.webm

Behaviour changes

  • In instances with configured per-role API limits, exported metadata includes a mapping from role names to limit configuration. Previously these entries were given in the order they were created. Now the entries are ordered by role name instead. (Cloud / Enterprise edition only)

Bug fixes and improvements

Server

  • Fix the created_at timestamp value in Postgres event triggers by setting UTC as the default timezone
  • Add environment variable HASURA_GRAPHQL_AUTH_HOOK_SEND_REQUEST_BODY to remove the request body from the request to the authentication webhook (docs)
  • Add additional error information to invocation logs when a HTTP Exception Error is thrown during event triggers and scheduled triggers (one-off, cron) execution
  • Fix bug which added the query to the operation key for the http-log for metadata queries irrespective of the value of the environment variable HASURA_GRAPHQL_ENABLE_METADATA_QUERY_LOGGING
  • Add field detail.operation.query.type to http-log log types always whenever available
  • Fix row limits applied to tables via permissions being incorrectly applied to aggregates of said tables in Data Connector-based data sources
  • Fix table queries which used only introspection fields not returning any data when made to Data Connector-based data sources
  • Fix scheduled events not showing up on console when the payload construction is failed (fix #9311)
  • Fixed bug in Query Response Cache bucket size and bucket rate defaulting. (Cloud / Enterprise edition only)

Console

  • Add date-time data entry pickers during row insert for Data Connector-based data sources
  • Fix error notifications for slow running queries
  • Disable non insertable columns in the insert row form for Data Connector-based data sources
  • Fix bug with untrack table for Data Connector-based data sources.

v2.21.0

17 Mar 09:18

Choose a tag to compare

Changelog

Highlights

Oracle Support (Alpha) (Cloud / Enterprise edition only)

We’re delighted to release the alpha version of our Oracle data connector, that supports queries, table relationships and permissions for Oracle databases version 18 and higher. For more information on how to set this up, please see our docs. This data connector has been built using Hasura GraphQL Engine Data Connectors.

Support for MySQL Mutations (Alpha) (Cloud / Enterprise edition only)

We’re delighted to provide support for mutations (INSERT, UPDATE, DELETE) in our MySQL alpha data connector for MySQL databases version 8.0 and higher. For more information on how to set this up, please see our docs.

Behaviour changes

  • Fix graphql-default naming convention bugs (#9426, #9430)

Bug fixes and improvements

Server

  • A new kind of log, execution-log, has been added. Within this log, the statistics log returns relevant information to the query. At the moment, the only information logged are the job details for BigQuery queries.
  • Remote relationships now cannot be configured when the target data source does not support them. Previously these were allowed to be added but would fail at query time.
  • Data Connector data sources can now be used as the source and/or target of remote relationships. Please note that only data connector agents that support foreach queries can be used as a target in a remote relationship.

Console

  • Fix headers getting removed from event triggers configuration while updating trigger options
  • Fix subscriptions in CLI console API explorer when connected to a Hasura instance that only supports https/wss (fix #9475)
  • Show year in the date column while displaying event triggers, cron triggers and scheduled events
  • Respect the GraphQL API naming convention while tracking a suggested relationship.
  • Fix a bug that would cause the DB tree view to not show up if a Data Connector backed database is the only connected database.
  • Allow removing event trigger auto clean-up configuration (Enterprise edition only)

Data Connectors

  • The SQLite data connector agent now supports being a target of a remote relationship

Build

  • Updates base image to get the latest security updates