Releases: hasura/graphql-engine
v2.17.1
Changelog
Bug fixes and improvements
Server
- Remove the use of a spinlock that could lead to high CPU usage and non-responsiveness
Build
- Updates base image to get the latest security updates
v2.17.0
Changelog
Highlights
New Action Type Generator to import types from Table
While creating a new Action, now you can use a new type generator "From Table" on the Console to easily create GraphQL types from generated type definitions.
This helps users to import one or more table types to the Action Type configuration that are already present in the GraphQL schema without having to manually enter them again.
This is a beta feature and we started an open discussion #9273 to track enhancement requests & feature level design discussions.
Revamped Cron Triggers page with Request Transforms added
The cron trigger form on the UI has been revamped to meet the design standards of the rest of the Hasura platform. Some improvements have been made such as adding the delete feature and adding request transform section to the form (see below).
CLI enhancements for database seeds
- add flag
--all-databasestohasura seedscommand to apply seeds on all databases - add flag
--with-seedstohasura deploycommand to also apply database seeds - better handle case when no seeds are present for certain databases when applying seeds on all databases
Data Connectors Beta API
We are pleased to announce the Data Connectors beta API.
What are Data Connectors?
Data Connectors are microservice-based database drivers that extend Hasura's GraphQL Engine to support new backends.
For a detailed explanation of the feature, the best place to look is currently the
Data Connectors README.md.
The API currently supports:
- Queries
- Relationships
- Comparisons
- Aggregations
- Explain
- Prometheus Metrics
- Raw Queries
- User-Defined Scalar Types
and is being regularly extended with new features.
For more information, please see:
- The Data Connectors README.md
- The Data Connectors Directory on Github
- The dc-api-types NPM Package
- The Hasura Blog Data Connectors Announcement
- The Hasura Blog Athena Announcement
Bug fixes and improvements
Server
- Add new metadata API (
<db_kind>_suggest_relationships) for suggesting relationships from the server for use by console and other clients. - Fixes a bug with quoting database trigger names which might throw an error when creating event triggers on SQL Server
- Respect custom column name for
graphql-defaultnaming convention (fixes #9306) - Fixed the edge case in multiplexed queries where a run-time SQL exception caused by a subscription query affects all subscriptions in the batch (fix #9281)
- Respect
stringify-numeric-typesoption in remote database relationships (fix #8387) - Fix the behavior of the
clear_metadataandreplace_metadataAPIs when the metadata is inconsistent. Now, the APIs succeed and a log with the typemetadata-logis emitted if the graphql-engine footprint is not cleared successfully. The following cases have been fixed:- Source is inconsistent -
source with name "<source-name>" is inconsistent - Table is inconsistent and an event trigger is present -
event trigger "<event-trigger-name>" does not exist.
- Source is inconsistent -
- Postgres 10 is EOL since November 10, 2022 and so thus ends Hasura GraphQL engine's official support with it.
- Provide capability for Data Connector agents to map custom scalar types to built-in GraphQL types for parsing purposes.
- Fix a bug in the OpenTelemetry exporter where it would attempt to export spans when there were none, resulting in repeated log lines by the exporter even when the feature was disabled. (Enterprise edition only)
- Fix missing
query-loglog type for Enterprise Edition (Enterprise edition only) - Add experimental Prometheus metrics for measuring approximations of the data transferred by HTTP requests, WebSocket messages, actions, event triggers, and scheduled triggers. These metrics may be removed at a later time. (Enterprise edition only)
- Add the
hasura_event_processing_time_secondsPrometheus metric for better monitoring of event triggers (Enterprise edition only) - Propagate B3 sampling state (
X-B3-Sampledheader) (Enterprise edition only)
Console
- Fixes an issue where creating an Asynchronous action actually created it as a Synchronous action. (fix #9286)
- Fixes an issue where Null comments on REST endpoints created by older Hasura versions prevent editing endpoint (fix #9347)
- Show notifications for console queries running longer than 10 seconds to help debug slow queries.
- Fix performance issue when displaying invocation logs of an event trigger.
- Minor enhancements to the one-off scheduled trigger form on the console. As a result of the change, placement of few fields have changed including that of comment/description.
- Fix issues with missing props -
ssl_configuration,isolation_levelanduse_prepared_statementswhen creating/editing read-replicas. - Fix
Target Columns not foundissue with the new Postgres relationship UI - Add console support for AlloyDB
- View local relationships data for Amazon Athena and Snowflake tables from the Browse Rows section.
- Add a section on remote schema tabs to show remote schema inconsistency information.
- Fix console errors when data is not ready yet (fix #9238)
- Improve the performance for the data tab on read-only data fetch requests
- Fix miscellaneous issues when generating actions from OpenAPI. (Cloud / Enterprise edition only)
CLI
- Fix offline assets mode configuration not being respected by CLI console (fix #8482)
- Update log messages to surround database names with
'' - Adds support for metadata changes introduced by Data Connectors and also adds support for
backend_configsroot level object in metadata JSON.
v2.17.0-beta.1
Changelog
Highlights
New Action Type Generator to import types from Table
While creating a new Action, now you can use a new type generator "From Table" on the Console to easily create GraphQL types from generated type definitions.
This helps users to import one or more table types to the Action Type configuration that are already present in the GraphQL schema without having to manually enter them again.
This is a beta feature and we started an open discussion #9273 to track enhancement requests & feature level design discussions.
Revamped Cron Triggers page with Request Transforms added
The cron trigger form on the UI has been revamped to meet the design standards of the rest of the Hasura platform. Some improvements have been made such as adding the delete feature and adding request transform section to the form (see below).
CLI enhancements for database seeds
- add flag
--all-databasestohasura seedscommand to apply seeds on all databases - add flag
--with-seedstohasura deploycommand to also apply database seeds - better handle case when no seeds are present for certain databases when applying seeds on all databases
Data Connectors Beta API
We are pleased to announce the Data Connectors beta API.
What are Data Connectors?
Data Connectors are microservice-based database drivers that extend Hasura's GraphQL Engine to support new backends.
For a detailed explanation of the feature, the best place to look is currently the
Data Connectors README.md.
The API currently supports:
- Queries
- Relationships
- Comparisons
- Aggregations
- Explain
- Prometheus Metrics
- Raw Queries
- User-Defined Scalar Types
and is being regularly extended with new features.
For more information, please see:
- The Data Connectors README.md
- The Data Connectors Directory on Github
- The dc-api-types NPM Package
- The Hasura Blog Data Connectors Announcement
- The Hasura Blog Athena Announcement
Bug fixes and improvements
Server
- Add new metadata API (
<db_kind>_suggest_relationships) for suggesting relationships from the server for use by console and other clients. - Fixes a bug with quoting database trigger names which might throw an error when creating event triggers on SQL Server
- Respect custom column name for
graphql-defaultnaming convention (fixes #9306) - Fixed the edge case in multiplexed queries where a run-time SQL exception caused by a subscription query affects all subscriptions in the batch (fix #9281)
- Respect
stringify-numeric-typesoption in remote database relationships (fix #8387) - Fix the behavior of the
clear_metadataandreplace_metadataAPIs when the metadata is inconsistent. Now, the APIs succeed and a log with the typemetadata-logis emitted if the graphql-engine footprint is not cleared successfully. The following cases have been fixed:- Source is inconsistent -
source with name "<source-name>" is inconsistent - Table is inconsistent and an event trigger is present -
event trigger "<event-trigger-name>" does not exist.
- Source is inconsistent -
- Postgres 10 is EOL since November 10, 2022 and so thus ends Hasura GraphQL engine's official support with it.
- Provide capability for Data Connector agents to map custom scalar types to built-in GraphQL types for parsing purposes.
- Fix a bug in the OpenTelemetry exporter where it would attempt to export spans when there were none, resulting in repeated log lines by the exporter even when the feature was disabled. (Enterprise edition only)
- Fix missing
query-loglog type for Enterprise Edition (Enterprise edition only) - Add experimental Prometheus metrics for measuring approximations of the data transferred by HTTP requests, WebSocket messages, actions, event triggers, and scheduled triggers. These metrics may be removed at a later time. (Enterprise edition only)
- Add the
hasura_event_processing_time_secondsPrometheus metric for better monitoring of event triggers (Enterprise edition only) - Propagate B3 sampling state (
X-B3-Sampledheader) (Enterprise edition only)
Console
- Fixes an issue where creating an Asynchronous action actually created it as a Synchronous action. (fix #9286)
- Fixes an issue where Null comments on REST endpoints created by older Hasura versions prevent editing endpoint (fix #9347)
- Show notifications for console queries running longer than 10 seconds to help debug slow queries.
- Fix performance issue when displaying invocation logs of an event trigger.
- Minor enhancements to the one-off scheduled trigger form on the console. As a result of the change, placement of few fields have changed including that of comment/description.
- Fix issues with missing props -
ssl_configuration,isolation_levelanduse_prepared_statementswhen creating/editing read-replicas. - Fix
Target Columns not foundissue with the new Postgres relationship UI - Add console support for AlloyDB
- View local relationships data for Amazon Athena and Snowflake tables from the Browse Rows section.
- Add a section on remote schema tabs to show remote schema inconsistency information.
- Fix console errors when data is not ready yet (fix #9238)
- Improve the performance for the data tab on read-only data fetch requests
- Fix miscellaneous issues when generating actions from OpenAPI. (Cloud / Enterprise edition only)
CLI
- Fix offline assets mode configuration not being respected by CLI console (fix #8482)
- Update log messages to surround database names with
'' - Adds support for metadata changes introduced by Data Connectors and also adds support for
backend_configsroot level object in metadata JSON.
v2.16.1
v2.16.0
Changelog
Highlights
Import OpenAPI endpoint as an action (Cloud / Enterprise edition only)
This console feature makes it easy to import an endpoint with an OpenAPI definition as a Hasura Action. It allows you to upload or paste the OpenAPI definition (json or yaml), and it will automatically convert this into action definition. This is an alpha release of the feature and requires enabling of feature flag to try it out (Settings -> Feature Flags -> Import action from OpenAPI).
Subscriptions on CockroachDB and Citus
Support added for Subscriptions (Live Queries and Streaming Subscriptions) on CockroachDB & Citus databases
Two new metrics are added for event triggers to Prometheus: (Enterprise edition only)
| Prometheus metric | Meaning of the metric |
|---|---|
hasura_event_fetch_time_per_batch_seconds |
polling latency of fetching events ie. the time required to fetch a batch of event triggers from the database |
hasura_event_processing_time_seconds |
the time required to execute the webhook call for an event trigger ie. the time when an event is picked for delivery to the time its status is updated in the DB |
Validations for Response Transforms
Response Transforms will now be validated for the following metadata API endpoints:
create_event_triggercreate_cron_triggercreate_actionupdate_actiontest_webhook_transform
As a result, now both request and response transforms will be validated for the above metadata API endpoints.
New 'toggle all' button to select all the columns for update operation event triggers.
Control log spamming of JWK refreshes
Many JWK providers have a Cache-Control policy which makes Hasura refresh them every second and pollute the logs. Before this release, the jwk-refresh-log type was not configurable. Now, jwk-refresh-log type has been added as a configurable log type, so that users can disable it in case their logs are getting spammed. To prevent a breaking change for existing users, we have also added jwk-refresh-log type to default enabled log types. (related to #8611)
Behaviour changes
Request/response transform template validation error for Rest Connectors
Updates the request/response template validation error (for create_event_trigger, create_cron_trigger, create_action, update_action and test_webhook_transform metadata APIs):
- The HTTP status code has been changed from
200to400for metadata APIs with wrong transformation templates. - The response body has been changed to be uniform across the metadata APIs.
Example, for response for a wrong transformation template:
| Old behaviour | New behaviour |
|---|---|
|
HTTP status code: 200 Response: [
{
"error_code": "Parse Error",
"message": "Unexpected token '}'.",
"source_position": {
"end_column": 15,
"end_line": 0,
"start_column": 14,
"start_line": 0
}
}
]
|
HTTP status code: 400 Response: {
"code": "validation-failed",
"error": "request transform validation failed",
"path": "$.args",
"internal": [
{
"error_code": "Parse Error",
"message": "Unexpected token '}'.",
"source_position": {
"end_column": 15,
"end_line": 0,
"start_column": 14,
"start_line": 0
}
}
]
}
|
Bug fixes and improvements
Server
- Fix streaming subscription input type names for
graphql-default - Support use of kriti template to generate query param for request transform from list of arguments.
- Add option to enable/disable event triggers on logically replicated tables
- Fix bug when an enum was used as a variable on a remote schema that has a custom prefix or suffix (fixes #9219)
- Hasura was incorrectly omitting 'all' scalar types and so it caused the printed schema to be invalid preventing users from using the new experimental support for Apollo federation. Now, as a fix we have removed all the 'built-in' scalars from our schema while keeping the 'custom' scalars. As a result, it should work for custom scalars such as UUID. (fixes #9115).
- Previously while creating an event trigger with Heroku instance, users were getting an error “
Extensions can only be created on heroku_ext schema”. Now, we are making it easy for users to quickly resolve the error by providing a hint in the error message - “pgcrypto can only be created in heroku_ext schema. Hint: You can set \"extensions_schema\” (related to #8734). - Introduce a new experimental feature flag
hide_stream_fieldswhich toggles off streaming features, to be used if these cause schema type name conflicts. - Renaming
get_event_invocationsAPI toget_scheduled_event_invocations. Theget_event_invocationsAPI endpoint is not used forevent triggerinvocations, but forscheduled eventinvocations, thus the renaming. - Add Prometheus metric for Postgres connection pool utilization (Enterprise edition only)
Console
- Fix filter, sort, and pagination on nested browse rows views.
- Show roles created from allow list on Data, Remote Schema and Action permission tables
- Adds
Enable Naming Conventioncheckbox to enable/disable naming convention in theGraphQL Field Customizationsection ofConnect Databasepage. - Restore the Custom Tracking Table modal, in case of naming conflicts
- Fix clone row with primary key, enums, boolean (fixes #9248, #9254, #9253)
Build
- debian based images are no longer built, only Ubuntu is supported.
v2.15.2
Changelog
❗ Fixes a critical security vulnerability. See more details in the security advisory.
v2.14.1
Changelog
❗ Fixes a critical security vulnerability. See more details in the security advisory.
v2.13.2
Changelog
❗ Fixes a critical security vulnerability. See more details in the security advisory.
v2.12.1
Changelog
❗ Fixes a critical security vulnerability. See more details in the security advisory.
v2.11.3
Changelog
❗ Fixes a critical security vulnerability. See more details in the security advisory.