Releases: hasura/graphql-engine
v2.28.0-beta.1
Changelog
Highlights
Native Queries and Logical Models are now GA
We are delighted to announce that Native Queries and Logical Models are now GA.
Also Native Queries and Logical Models for Postgres only are now available in Hasura Community Edition.
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
nullvalue passed to GraphQL query input fields to the upstream Remote Schema (fix #9476) - Make
argsinput argument for computed fields optional if all arguments of the corresponding SQL functions have defaults. - Fix encoding of
nullvalues 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
messageproperty 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 Specbutton 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
JSONinstead of a string. - Fix custom GraphQL root-field placeholders for
update_by_pkanddelete_by_pk. - Add OpenAPI
3.1support 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)
v2.27.0
Changelog
Highlights
MongoDB Support (Beta) (Cloud / Enterprise edition only)
We're pleased to announce the beta release of our latest feature, MongoDB support.
With this update, you can now auto-generate a GraphQL API from collections by utilizing their MongoDB validation schema.
Currently, the platform supports read-operations from documents in collections with a validation schema, filtering / permissions on top-level objects in documents, and support for federated queries.
This capability has been developed using Hasura GraphQL Data Connectors.
To learn more about this new feature, including detailed instructions and future plans for enhancements to the connector, we invite you to check our documentation. Your feedback during this beta stage is greatly appreciated.
Support aggregations on computed fields
Postgres and Postgres-compatible backends now support comparison and numeric aggregation functions (such as min, max, sum, stddev and so on) on computed fields. (close #3238)
Bug fixes and improvements
Server
- Add
postgres_get_table_info,citus_get_table_info, andcockroach_get_table_infoMetadata APIs. - Array literals can now be used in permission checks for Data Connector-based data sources. Array literals are typically used when using the
_inand_ninoperators. - Prefixed
*_get_table_infometadata APIs will now return a pair for scalar types when handling Data Connector-backed sources: the first being the type according to the backend, and the second being the corresponding GraphQL type. - Add support for root-field user-defined functions to the Data Connector protocols.
- Generate the
<table>_streamfield only when there is at least one column accessible to the role. - Expose and visualize metrics using
hasura_cache_request_countto gain insights into your cache's performance. Learn more. (Enterprise edition only) - Add
trigger_nameandsource_namelabels to existing Event Trigger metrics. (Cloud / Enterprise edition only) - Add a new
hasura_source_healthPrometheus metric, corresponding to/healthz/sources. (Cloud / Enterprise edition only) - Enhance Logical Models to allow nested arrays and arrays of scalars to be expressed. Logical Model scalar types should still parse as before. (Cloud / Enterprise edition only)
- Validation of Postgres native queries will no longer reject column names containing uppercase letters. (Cloud / Enterprise edition only)
Console
- Fix cron trigger invocation logs status.
- Show the correct array relationship details in the new relationship UI.
- Increase the accuracy of the request time and size in the GraphiQL network information bar.
- Allow setting tolerance time for cron triggers from the Console.
- Prevent negative values in database connection fields on Console.
- Improve the performance of bulk table tracking for all databases.
- Fix a bug occurring when attempting to connect to a Postgres/Citus source using connection parameters.
- Fix an issue where the permissions tab crashes when metadata is loading.
- Add improvements and fixes to Native Queries UI. (Cloud / Enterprise edition only)
Data Connectors
- Fix issue where required JDBC parameters where not being added to mutation requests. In particular, this affected MySQL mutations where
allowMultiQuerieswas not present in the supplied JDBC string. (Cloud / Enterprise edition only) - Add a new query-generating strategy for Snowflake. The new strategy is optimized internally by the Snowflake engine. It also restores the full compliment of Hasura permissions, which were limited under the previous strategy. (Cloud / Enterprise edition only)
- Fix errors in Snowflake queries caused by tables with non-uppercase names. (Cloud / Enterprise edition only)
v2.11.7
Changelog
This is a patch release for v2.11
Bug fixes and improvements
Server
Query Tags will no longer include the request_id field by default. This can be changed by setting the value of the omit_request_id field in the set_query_tags command to false, but is not recommended when Prepared Statements are enabled. (Enterprise edition only)
v2.27.0-beta.1
Changelog
Highlights
Support aggregations on computed fields
Postgres and Postgres-compatible backends now support comparison and numeric aggregation functions (such as min, max, sum, stddev and so on) on computed fields. (close #3238)
Bug fixes and improvements
Server
- Add
postgres_get_table_info,citus_get_table_info, andcockroach_get_table_infoMetadata APIs. - Array literals can now be used in permission checks for Data Connector-based data sources. Array literals are typically used when using the
_inand_ninoperators. - Prefixed
*_get_table_infometadata APIs will now return a pair for scalar types when handling Data Connector-backed sources: the first being the type according to the backend, and the second being the corresponding GraphQL type. - Add support for root-field user-defined functions to the Data Connector protocols.
- Expose and visualize metrics using
hasura_cache_request_countto gain insights into your cache's performance. Learn more. (Enterprise edition only) - Add
trigger_nameandsource_namelabels to existing Event Trigger metrics. (Cloud / Enterprise edition only) - Add a new
hasura_source_healthPrometheus metric, corresponding to/healthz/sources. (Cloud / Enterprise edition only) - Enhance Logical Models to allow nested arrays and arrays of scalars to be expressed. Logical Model scalar types should still parse as before. (Cloud / Enterprise edition only)
- Validation of Postgres native queries will no longer reject column names containing uppercase letters. (Cloud / Enterprise edition only)
Console
- Fix cron trigger invocation logs status
- Show the correct array relationship details in the new relationship UI.
- Increase the accuracy of the request time and size in the GraphiQL network information bar.
- Allow setting tolerance time for cron triggers from the Console.
- Prevent negative values in database connection fields on Console.
- Improve the performance of bulk table tracking for all databases.
Data Connectors
- Fix issue where required JDBC parameters where not being added to mutation requests. In particular, this affected MySQL mutations where
allowMultiQuerieswas not present in the supplied JDBC string. (Cloud / Enterprise edition only) - Add a new query-generating strategy for Snowflake. The new strategy is optimized internally by the Snowflake engine. It also restores the full compliment of Hasura permissions, which were limited under the previous strategy. (Cloud / Enterprise edition only)
- Fix errors in Snowflake queries caused by tables with non-uppercase names. (Cloud / Enterprise edition only)
v2.26.0
Changelog
Highlights
Hasura Schema Registry (Cloud only)
The Hasura Schema Registry enables you to audit your GraphQL schema changes allowing you to collaborate easily and deploy with confidence. It is a changelog of your GraphQL schema that shows the difference between one schema to the next giving you visibility into how your API is evolving. It shows you all the ‘Breaking’, ‘Dangerous’ and ‘Safe’ changes since your last schema and hence allows you to catch changes without breaking your downstream consumers.
Take a look at your Hasura project’s schema registry in your Project Console -> Settings -> Schema Registry tab today. To know more, check out our documentation here.
MySQL, MariaDB, Oracle, and Snowflake data connectors are now generally available (GA) (Cloud / Enterprise edition only)
We are delighted to announce that our MySQL, MariaDB, Oracle, and Snowflake data connectors are now generally available (GA). The MySQL, MariaDB, Oracle, and Snowflake data connectors support queries, table relationships, remote relationships, and permissions. In addition to these features MySQL, MariaDB, and Oracle also support mutations (INSERT, UPDATE, DELETE).
Introducing Logical Models and Native Queries (Cloud / Enterprise edition only)
This feature is in beta. We welcome your feedback!
The Hasura GraphQL Engine automatically generates a schema that includes fields for querying, mutating, and subscribing to data changes and events, but sometimes you need more flexibility over your data model. We are announcing two new features which combine to handle any use case you can think of:
-
Logical Models allows you to define custom GraphQL types that don't directly map to a database object, giving you more flexibility and control over your Hasura-generated GraphQL schema.
-
With Native Queries, you'll be able to harness the full power of SQL within Hasura without the need to create database objects that require DDL privileges.
You might find Native Queries useful for many reasons:
- Use the full power of SQL that Hasura might not provide access to through the typical table API, such as
GROUP BY, window functions, or scalar functions. - Provide custom arguments to the users of your API to greatly expand its flexibility.
- Encapsulate sophisticated filtering with a query, allowing your users to provide a single argument rather than having to understand how to manipulate the data.
- Work with the advanced features of your database to improve performance.
- Write a compatibility layer around tables, making it easier to change your API without breaking existing clients.
- Reduce duplication by moving common data manipulation into one place.
Read the docs and check out both of these new features in our May Community Call!
Support for SQL Server stored procedures (Cloud / Enterprise edition only)
This feature is in beta. We welcome your feedback!
The Hasura GraphQL Engine can now track read-only SQL Server Stored Procedures using the new Logical Models feature. This allows you to define custom GraphQL types directly in the Hasura GraphQL Engine, to define the result set returned from the stored procedure, and automatically generate a GraphQL root field for querying it.
Support for Snowflake User-Defined Functions (Cloud / Enterprise edition only)
The Hasura GraphQL Engine now supports Snowflake User-Defined Functions. See docs.
Support for caching Remote Schemas and Actions when forwarding client headers (Cloud / Enterprise edition only)
Previously, Hasura would not cache Remote Schemas and Actions when forward_client_headers setting was set to true. Now, this limitation has been removed, by adding the client headers as part of the cache key. Now one can use @cached with Remote Schema or Action queries.
Behaviour changes
-
In Action payload transformation, GraphQL Engine will now ignore the
x-www-form-urlencodedvalues which arenull -
Fix
event processing timemetrics calculation and removesZfrom thecreated_atvalue in the payload sent by the Event Trigger to reflect that the time in the payload may or may not represent a UTC Time. (For e.g., It's DB local time in PG and UTC time in MSSQL) -
Removes the deprecated MySQL implementation. Customers using the deprecated implementation will need to upgrade to the new MySQL implementation based on GraphQL Data Connectors.
-
Data Connector DB connections will now be closed when idle for 10 minutes, and connections swapped for new ones when reaching 2 hours alive. This is to prevent issues with timeouts and long-lived connections in certain datasources. (Cloud / Enterprise edition only)
Bug fixes and improvements
Server
- A new
<kind>_track_tablesmetadata API has been added that allows tracking of multiple tables in one API request (docs). This is typically faster than issuing multiple single<kind>_track_tableAPI calls, or placing multiple<kind>_track_tablerequests into abulkAPI call. - A new
<kind>_untrack_tablesmetadata API has been added that allows untracking of multiple tables in one API request (docs). This is typically faster than issuing multiple single<kind>_untrack_tableAPI calls, or placing multiple<kind>_untrack_tablerequests into abulkAPI call. - The
get_table_infofor Data Connector backends can now be called as a prefixed command, such assqlite_get_table_info. - Add HTTP response status to the context of response transforms in Actions and Event Triggers.
- Properly scope root-table references in permissions appearing in boolean expressions on relationships (fix #9283)
- Add additional error information to the output when an HTTP Exception Error is thrown during Action and Remote Schema execution in dev mode.
- Add new Prometheus metrics
hasura_subscription_total_time_seconds,hasura_subscription_db_execution_time_seconds. (Cloud / Enterprise edition only) - Add a new Prometheus metric
hasura_events_fetched_per_batch. (Cloud / Enterprise edition only) - Add a new Prometheus metric to track cache hit-and-miss requests:
hasura_cache_request_countwith labelstatuswhich can have two possible valueshitandmiss. Exposed metric: (Cloud / Enterprise edition only)# HELP hasura_cache_request_count Total number of incoming requests for cache lookup # TYPE hasura_cache_request_count counter hasura_cache_request_count{status="hit"} 0.0 hasura_cache_request_count{status="miss"} 0.0 - Add configuration for high-cardinality labels for Prometheus metrics (metrics with dynamic labels). (Cloud / Enterprise edition only)
Console
- Add a feature flag to enable the new permissions user interface
- Fix issue with renaming databases via the connection management screen
- Fix object suggested relationships being tracked as array relationships
- Fix bug where remote relationships were being created instead of local relationships.
- Fix bug where we wrongly mapped and filtered currently supported relationships.
- Add a percentage progress indicator while tracking/un-tracking large number of tables in Data Connector-backed databases.
- Improve handling of connection issues to Data Connector-backed sources. (Cloud / Enterprise edition only)
- Display a pop-up for users to use caching for queries slower than 1s in API Explorer. (Cloud / Enterprise edition only)
- Add support for
x-www-form-urlencodedpayload when using OpenAPI imports. (Cloud / Enterprise edition only)
Data Connectors
- Fix errors in Snowflake queries caused by tables with non-uppercase names. (Cloud / Enterprise edition only)
- Fix a bug where database foreign keys defined with non-alphanumeric or underscored names caused Snowflake/Oracle/MySQL/MariaDB data source connection errors. (Cloud / Enterprise edition only)
v2.25.1
v2.26.0-beta.1
Changelog
Highlights
Introducing Logical Models and Native Queries (Cloud / Enterprise edition only)
This feature is in beta. We welcome your feedback!
The Hasura GraphQL Engine automatically generates a schema that includes fields for querying, mutating, and subscribing to data changes and events, but sometimes you need more flexibility over your data model. We are announcing two new features which combine to handle any use case you can think of:
-
Logical Models allows you to define custom GraphQL types that don't directly map to a database object, giving you more flexibility and control over your Hasura-generated GraphQL schema.
-
With Native Queries, you'll be able to harness the full power of SQL within Hasura without the need to create database objects that require DDL privileges.
You might find Native Queries useful for many reasons:
- Use the full power of SQL that Hasura might not provide access to through the typical table API, such as
GROUP BY, window functions, or scalar functions. - Provide custom arguments to the users of your API to greatly expand its flexibility.
- Encapsulate sophisticated filtering with a query, allowing your users to provide a single argument rather than having to understand how to manipulate the data.
- Work with the advanced features of your database to improve performance.
- Write a compatibility layer around tables, making it easier to change your API without breaking existing clients.
- Reduce duplication by moving common data manipulation into one place.
Read the docs and check out both of these new features in our May Community Call!
Support for SQL Server stored procedures (Cloud / Enterprise edition only)
This feature is in beta. We welcome your feedback!
The Hasura GraphQL Engine can now track read-only SQL Server Stored Procedures using the new Logical Models feature. This allows you to define custom GraphQL types directly in the Hasura GraphQL Engine, to define the result set returned from the stored procedure, and automatically generate a GraphQL root field for querying it.
Support for caching Remote Schemas and Actions when forwarding client headers (Cloud / Enterprise edition only)
Previously, Hasura would not cache Remote Schemas and Actions when forward_client_headers setting was set to true. Now, this limitation has been removed, by adding the client headers as part of the cache key. Now one can use @cached with Remote Schema or Action queries.
Behaviour changes
-
In Action payload transformation, GraphQL Engine will now ignore the
x-www-form-urlencodedvalues which arenull -
Fix
event processing timemetrics calculation and removesZfrom thecreated_atvalue in the payload sent by the Event Trigger to reflect that the time in the payload may or may not represent a UTC Time. (For e.g., It's DB local time in PG and UTC time in MSSQL) -
Removes the deprecated MySQL implementation. Customers using the deprecated implementation will need to upgrade to the new MySQL implementation based on GraphQL Data Connectors.
-
Data Connector DB connections will now be closed when idle for 10 minutes, and connections swapped for new ones when reaching 2 hours alive. This is to prevent issues with timeouts and long-lived connections in certain data sources. (Cloud / Enterprise edition only)
Bug fixes and improvements
Server
- A new
<kind>_untrack_tablesmetadata API has been added that allows untracking of multiple tables in one API request (docs). This is typically faster than issuing multiple single<kind>_untrack_tableAPI calls, or placing multiple<kind>_untrack_tablerequests into abulkAPI call. - A new
<kind>_track_tablesmetadata API has been added that allows tracking of multiple tables in one API request (docs). This is typically faster than issuing multiple single<kind>_track_tableAPI calls, or placing multiple<kind>_track_tablerequests into abulkAPI call. - The
get_table_infofor Data Connector backends can now be called as a prefixed command, such assqlite_get_table_info. - Add HTTP response status to the context of response transforms in Actions and Event Triggers.
- Properly scope root-table references in permissions appearing in boolean expressions on relationships (fix #9283)
- Add additional error information to the output when an HTTP Exception Error is thrown during Action and Remote Schema execution in dev mode.
- Add new Prometheus metrics
hasura_subscription_total_time_seconds,hasura_subscription_db_execution_time_seconds. (Cloud / Enterprise edition only) - Add a new Prometheus metric
hasura_events_fetched_per_batch. (Cloud / Enterprise edition only) - Add a new Prometheus metric to track cache hit-and-miss requests:
hasura_cache_request_countwith labelstatuswhich can have two possible valueshitandmiss. (Cloud / Enterprise edition only)
Exposed metric:# HELP hasura_cache_request_count Total number of incoming requests for cache lookup # TYPE hasura_cache_request_count counter hasura_cache_request_count{status="hit"} 0.0 hasura_cache_request_count{status="miss"} 0.0 - Add configuration for high-cardinality labels for Prometheus metrics (metrics with dynamic labels) (Cloud / Enterprise edition only)
Console
- Add a feature flag to enable the new permissions user interface
- Fix issue with renaming databases via the connection management screen
- Fix object suggested relationships being tracked as array relationships
- Fix bugs where we wrongly mapped and filtered currently supported relationships.
- Add a percentage progress indicator while tracking/un-tracking large number of tables in Data Connector-backed databases.
- Improve handling of connection issues to Data Connector-backed sources. (Cloud / Enterprise edition only)
- Display a pop-up for users to use caching for queries slower than 1s in API Explorer. (Cloud / Enterprise edition only)
- Add support for
x-www-form-urlencodedpayload when using OpenAPI imports. (Cloud / Enterprise edition only)
Data Connectors
- Fix a bug where database foreign keys defined with non-alphanumeric or underscored names caused Snowflake/Oracle/MySQL/MariaDB data source connection errors. (Cloud / Enterprise edition only)
v2.11.6
Changelog
This is a patch release for v2.11
Bug fixes and improvements
Server
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.
The following bugs are also fixed -
- Include Remote Schema root fields also in the cache restriction check
- Include Remote Schema-to-Remote Schema joins also in the caching restriction check
(Enterprise edition only)
Build
Updates base image of graphql-engine to the latest available ubuntu update to avail all the security patches.
v2.25.0
Changelog
Behaviour changes
- Introduce a timeout while processing Event Triggers. The timeout will be determined by the lower value, 30 minutes or the response timeout associated with the Event Trigger.
Bug fixes and improvements
Server
- Add support for
pg_get_event_logs,pg_get_event_invocation_logs,pg_get_event_by_id,mssql_get_event_logs,mssql_get_event_invocation_logsandmssql_get_event_by_idAPIs. See the docs for more details. - Throw
source-cleanup-failedwarnings when an inconsistent source is removed using thereplace_metadataorclear_metadatametadata APIs only if there are event triggers associated with the removed source. - Mark Event Triggers as inconsistent if GraphQL Engine is unable to create the Event Trigger infrastructure (SQL triggers and tables for logging) on the source.
- Add a new Prometheus metric
hasura_websocket_message_queue_timeand extend thehasura_graphql_requests_totalto also include subscriptions requests. (Cloud / Enterprise edition only) - Add a new Prometheus metric
hasura_active_subscription_pollers_in_error_statefor better observability in the subscriptions subsystem. (Cloud / Enterprise edition only) - In the OpenTelemetry exporter, set the
service.nameresource attribute to "hasura" by default. (Enterprise edition only) - Improve tracing spans and OpenTelemetry exporter. The top level trace is annotated with
request_idandparameterized_query_hash. Bulk queries should output a separateparameterized_query_hashfor each query span. (Enterprise edition only) - Fixed checking of remote schema to remote schema joins in the caching restriction check. Hasura doesn't allow queries with remote schemas to be cached when
forward_client_headersis set. But remote schema to remote schema joins were not checked for this restriction. This is now fixed. (Cloud / Enterprise edition only)
Console
- Updated create REST endpoint form to fix the base URL from a fixed label of
localhost:8080to the actual server URL. - Add warning badge for non-cached queries with warning response header in API Explorer.
- The "Track All" action for tables in Data Connector-backed databases does not fail for the entire batch if there are conflicts with existing schema for a one/more tables. The ones that can be tracked will be tracked successfully.
- Clicking the name of a tracked table in the new table tracking UI will now link to the manage table page.
- Add Console support for warning notifications while importing and resetting Metadata, and setting API time limits.
- Fix a UI bug in inspect modal in the operation tab under monitoring. The modal was broken if any error was associated with the inspected operation. (Cloud / Enterprise edition only)
- Enable SSO token authorization from the Console for Enterprise Edition. (Enterprise Edition only)
v2.25.0-beta.1
Changelog
Behaviour changes
- Introduce a timeout while processing Event Triggers. The timeout will be determined by the lower value, 30 minutes or the response timeout associated with the Event Trigger.
Bug fixes and improvements
Server
- Add a new Prometheus metric
hasura_websocket_message_queue_timeand extend thehasura_graphql_requests_totalto also include subscriptions requests. (Cloud / Enterprise edition only) - Add a new Prometheus metric
hasura_active_subscription_pollers_in_error_statefor better observability in the subscriptions subsystem. (Cloud / Enterprise edition only) - Add support for
pg_get_event_logs,pg_get_event_invocation_logs,pg_get_event_by_id,mssql_get_event_logs,mssql_get_event_invocation_logsandmssql_get_event_by_idAPIs. See the docs for more details. - Throw
source-cleanup-failedwarnings when an inconsistent source is removed using thereplace_metadataorclear_metadatametadata APIs only if there are event triggers associated with the removed source. - Mark Event Triggers as inconsistent if GraphQL Engine is unable to create the Event Trigger infrastructure (SQL triggers and tables for logging) on the source.
- In the OpenTelemetry exporter, set the
service.nameresource attribute to "hasura" by default. (Enterprise edition only) - Improve tracing spans and OpenTelemetry exporter. The top level trace is annotated with
request_idandparameterized_query_hash. Bulk queries should output a separateparameterized_query_hashfor each query span. (Enterprise edition only)
Console
- Fix a UI bug in inspect modal in the operation tab under monitoring. The modal was broken if any error was associated with the inspected operation. (Cloud / Enterprise edition only)
- Updated create REST endpoint form to fix the base URL from a fixed label of
localhost:8080to the actual server URL. - Add warning badge for non-cached queries with warning response header in API Explorer.
- The "Track All" action for tables in Data Connector-backed databases does not fail for the entire batch if there are conflicts with existing schema for a one/more tables. The ones that can be tracked will be tracked successfully.
- Clicking the name of a tracked table in the new table tracking UI will now link to the manage table page.
- Add Console support for warning notifications while importing and resetting Metadata, and setting API time limits.