Skip to content

Releases: hasura/graphql-engine

v2.31.0-beta.1

26 Jul 16:07
Compare
Choose a tag to compare
v2.31.0-beta.1 Pre-release
Pre-release

Changelog

Highlights

Newly-improved suggested relationships UI

Introduces a new suggested relationships UI for Postgres and MS SQL with added features and improved performance. It is currently accessible by enabling a Feature Flag.

Improved User Experience for RESTified Endpoints!

  • Create CRUD REST endpoints for your tracked tables with just 2 clicks from the Modify tables page.
  • Enjoy a seamless REST endpoint creation form experience with features like "Import from GraphiQL," auto-suggested name and URL, and more.
  • Easily navigate and manage your RESTified endpoints with an improved listing page, equipped with search and HTTP Request Method filters.
  • Improvements to REST endpoints details page for a better overall experience.

Bug fixes and improvements

Server

  • Fixes a bug for MS SQL Server data sources where aggregation queries would fail.
  • Improves handling of inherited roles in Postgres and SQL Server.
  • Allow the return type for a Native Query to be defined inline to avoid name clashes.
  • Adds a new env var HASURA_GRAPHQL_REMOTE_SCHEMA_SKIP_NULLS to control whether explicit null values are forwarded to Remote Schemas.
  • When Postgres source connections fail to connect, the source name will now be logged as part of the error.
  • Fixes a bug for Postgres data sources where aggregating over Computed Fields while also ordering or using the nodes field would cause the query to fail.
  • Allows dropping remote relationships using the *_delete_remote_relationship as part of an atomic metadata change with the bulk_atomic Metadata API.
  • Adds a log line for an Event Trigger timeout error.
  • Allows dropping table relationships using *_drop_relationship as part of an atomic metadata change with the bulk_atomic Metadata API.
  • Fixes issue where we were not ignoring some Cloudflare-related headers while computing cache key (with "forward client headers"). (Cloud / Enterprise edition only)
  • Added support for exporting OpenTelemetry metrics: now, you can quickly and easily enable an OpenTelemetry-compatible metrics endpoint using the Console, CLI, or API. (Cloud Enterprise / Enterprise edition only)

Console

  • Improved the user experience for Postgres array data types in the Console.
  • Fixed headers issue with mutation input validation. Now we support templating for headers value from env vars
  • Fix issue with the new tracking UI where the pagination does not reset when search is applied
  • Fix issue with missing details in edit postgres connection when SSL settings are only partially filled.
  • Display and allow editing database permission comments.
  • Reflect new values when saving permissions on some databases.
  • template and timeout properties can be provided from the console for Data Connector-backed databases connections.
  • In the Raw SQL page, SQL queries with more than 5000 characters are not persisted across sessions anymore to avoid performance issues.
  • Resolves an issue where the permissions editor for Postgres/MS SQL databases could show stale data for table relationships.
  • Fixes issue with MSSQL where the creation of table with a default value in a text column prevented the table's creation (fixes: 9737).
  • Fixes issue with MSSQL and Cockroach DB where browse rows records would not render when the source had GraphQL customization.
  • Fixes bug preventing non-existent columns from being highlighted as errors in the GraphiQL editor.
  • Adds a search bar to RESTified Endpoints table.
  • Adds the ability to edit existing Native Queries and add relationships between two Native Queries on the same source in the Console.
  • Credentials are no longer suggested for the x-hasura-admin-secret header in API Explorer. (not working on Chrome for now due to an open chrome issue).
  • Support tracking Mongo collections using Logical Models. (Cloud / Enterprise edition only)

Data Connectors

  • Adds support for explicitly listing desired schemas from Snowflake, via the new include_schemas config option. (Cloud / Enterprise edition only)

v2.30.1

24 Jul 07:49
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.30

Bugfixes and Improvements

Server

  • Fix handling of MS SQL connections without pooling. The Server previously always assumed there is a connection pool, leading to a crash when trying to disable it.

v2.30.0

19 Jul 11:08
Compare
Choose a tag to compare

Changelog

Highlights

Create REST endpoints from a table with one click

With a single click in the Data view of the Console, you can create REST endpoints from tables 🎉 By simply navigating to a table, you can choose which CRUD operations to create, and then interact with these endpoints from the API tab of the Console.

Behaviour changes

  • Update Hasura WebSockets to adhere to the graphql-ws protocol standards for cases where connection initialization fails. Upon encountering a failed initialization, the connection is now closed with a server error code 4403: Forbidden, in accordance with the specifications mentioned in the spec.

Bug fixes and improvements

Server

  • For SQL Server, it is now possible to disable the connection pool entirely by setting the source configuration's "pool_settings" to {"enable": false}.
  • Add operation_name to subscription Prometheus metrics and Query Tags from parsed executable document when not explicitly included in the body of the request from the client.
  • Use the knowledge of a column's nullability to generate simpler permissions SQL expressions for columns that are not nullable (fixes #9637).
  • You can now create multiple table relationships (using create_array_relationship and create_object_relationship) within a single metadata transaction using the bulk_atomic Metadata API.
  • Extend livequery-poller-log to log the error details for both live queries and streaming subscriptions in the case of any error. Previously there was no way for a user to debug or know what went wrong when the poller thread goes in an error state.
  • Adds more detailed error messages on HTTP exception errors in log lines for Event and Scheduled Triggers improving the clarity and ease of troubleshooting.
  • Logical Model array/object fields are no longer required in order to create Native Query relationships.
  • Support __typename for namespaced subscriptions (fixes #8174).
  • Fix over-zealous validation for relationships with after_parent insertion order. This is expected to fix issues #8522, #9451, and #9709.
  • A failing Postgres connection will now log a JSON object containing the number of times the connection has been retried, and the host to which a connection is being attempted. (Cloud / Enterprise edition only)
  • Fix hasura_active_subscription_pollers_in_error_state metric not decrementing when subscriptions are closed. (Cloud / Enterprise edition only)

Console

  • Fix manual relationship creation for CockroachDB on the Console.
  • Permissions can be enabled for Snowflake functions from the Console.
  • Display boolean comparator in permissions builder for Postgres Computed fields (fixes #9101).
  • Support Function Custom Field customization for GDC-backed data sources.
  • Fixes the "Next" button state for paginated row views on the Console. Previously, when there were no more rows, the "Next" button was still enabled.
  • Fix an issue where the data tab tree view would not refresh after a SQL execution (fixes #8695).
  • Adds support for customizing function root fields in Postgres and Citus.
  • Fixes request and response transforms generated when importing from an OpenAPI spec and Kriti reserved keywords are present in field names (fixes #9734).
  • Long column names truncated in the Insert & Edit row UI now have an icon that shows the full name on hover.

Data Connectors

  • Feature enhancements to the Oracle connector: (Cloud / Enterprise edition only)
    • You now have the option to choose the schemas to include in introspection. It accepts a comma separated list that is case sensitive. If left blank it will only return the users owned schema.
    • Materialized views will now be returned during introspection and be allowed to track.
  • Added multi-schema support for Snowflake. (Cloud / Enterprise edition only)

Build

  • Updates base image to get the latest security updates

v2.29.2

19 Jul 09:53
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.29

Bugfixes and Improvements

Server

  • For Remote Schema queries, stop forwarding absent variable values as null to the Remote Schema, i.e. avoid coercing lack of a variable value to null in query arguments.

v2.30.0-beta.1

12 Jul 19:43
Compare
Choose a tag to compare
v2.30.0-beta.1 Pre-release
Pre-release

Changelog

Highlights

Create REST endpoints from a table with one click

With a single click in the Data view of the Console, you can create REST endpoints from tables 🎉 By simply navigating to a table, you can choose which CRUD operations to create, and then interact with these endpoints from the API tab of the Console.

Behaviour changes

  • Update Hasura WebSockets to adhere to the graphql-ws protocol standards for cases where connection initialization fails. Upon encountering a failed initialization, the connection is now closed with a server error code 4403: Forbidden, in accordance with the specifications mentioned in the spec.

Bug fixes and improvements

Server

  • Add operation_name to subscription Prometheus metrics and Query Tags from parsed executable document when not explicitly included in the body of the request from the client.
  • Use the knowledge of a column's nullability to generate simpler permissions SQL expressions for columns that are not nullable (fixes #9637).
  • You can now create multiple table relationships (using create_array_relationship and create_object_relationship) within a single metadata transaction using the bulk_atomic Metadata API.
  • Extend livequery-poller-log to log the error details for both live queries and streaming subscriptions in the case of any error. Previously there was no way for a user to debug or know what went wrong when the poller thread goes in an error state.
  • Adds more detailed error messages on HTTP exception errors in log lines for Event and Scheduled Triggers improving the clarity and ease of troubleshooting.
  • Logical Model array/object fields are no longer required in order to create Native Query relationships.
  • Support __typename for namespaced subscriptions (fixes #8174).
  • Fix over-zealous validation for relationships with after_parent insertion order. This is expected to fix issues #8522, #9451, and #9709.
  • A failing Postgres connection will now log a JSON object containing the number of times the connection has been retried, and the host to which a connection is being attempted. (Cloud / Enterprise edition only)
  • Fix hasura_active_subscription_pollers_in_error_state metric not decrementing when subscriptions are closed. (Cloud / Enterprise edition only)

Console

  • Fix manual relationship creation for CockroachDB on the Console.
  • Permissions can be enabled for Snowflake functions from the Console.
  • Display boolean comparator in permissions builder for Postgres Computed fields (fixes #9101).
  • Support Function Custom Field customization for GDC-backed data sources.
  • Fixes the "Next" button state for paginated row views on the Console. Previously, when there were no more rows, the "Next" button was still enabled.
  • Fix an issue where the data tab tree view would not refresh after a SQL execution (fixes #8695).
  • Adds support for customizing function root fields in Postgres and Citus.
  • Fixes request and response transforms generated when importing from an OpenAPI spec and Kriti reserved keywords are present in field names (fixes #9734).
  • Long column names truncated in the Insert & Edit row UI now have an icon that shows the full name on hover.

Data Connectors

  • Feature enhancements to the Oracle connector: (Cloud / Enterprise edition only)
    • You now have the option to choose the schemas to include in introspection. It accepts a comma separated list that is case sensitive. If left blank it will only return the users owned schema.
    • Materialized views will now be returned during introspection and be allowed to track.
  • Added multi-schema support for Snowflake. (Cloud / Enterprise edition only)

Build

  • Updates base image to get the latest security updates

v2.29.1

11 Jul 12:28
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.29

Bugfixes and Improvements

Server

  • Add disable_postgres_arrays experimental feature flag that can be used to preserve the earlier behavior to output types like _text for Postgres array fields instead of [String!] (fix #9756).

v2.11.9

06 Jul 08:43
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.11

Bug fixes and improvements

Build

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

v2.29.0

05 Jul 12:48
Compare
Choose a tag to compare

Changelog

Highlights

Introducing Input Validation for GraphQL Mutations [Beta]

Hasura now offers a new permission layer called "Input Validations." This feature secures mutations by using pre-execution HTTP webhooks to validate data inputs. It enhances security, provides fine-grained control, and improves data integrity.

You can configure input validations via the Console through the table permissions section! 🚀

input-validations

Support for native Postgres arrays

Adds support for using native GraphQL arrays with Postgres array fields. Also filtering using _contains and _contained_in operators on array fields is now supported. (fixes #348, #7187)

Note that while the earlier format for input to Postgres array fields (ie. "{dog,cat,bat}") is still supported, the output type of array fields have changed, for instance, text[] used to have the type _text, but will now have [String!].

edit: An experimental feature flag disable_postgres_arrays has been added in v2.29.1 to preserve the earlier behavior.

Behaviour changes

  • Remove Data-connector backed databases from the Raw SQL tab in Console as the feature is not supported for them as yet.

  • Remove feature flag for the new permissions UI on Postgres. Use the existing UI for Postgres DBs.

  • Removing a tracked source from the Console will now cascade delete any dependant metadata objects on other sources.

  • The output type of Postgres array fields has changed, for example, for text[] fields from _text to [String!]. See highlight for "Support for native Postgres arrays" above for more details.

  • The cumulative header size limit for HTTP requests is set to 1MB. (Cloud only)

Bug fixes and improvements

Server

  • Restore function of the optimize_permission_filters experimental feature.
  • Add support for {{}} style templates for headers in Actions, Remote Schemas and Event Triggers. You can specify the template as the header value. e.g. bearer {{TOKEN_ENV_VAR}}
  • Check for, and disallow, conflicting array and object relationships on the same Native Query.
  • Properly handle MS SQL Server inserts with an empty array of values (resolves #8959).
  • Add support for setting a default isolation level for MS SQL Server sources and set the default behaviour to read-committed.
  • Fix a bug with the Schema Registry where we sent older Metadata resource versions and inconsistent schemas. (Cloud only)
  • Add a new environment variable HASURA_GRAPHQL_MAX_TOTAL_HEADER_LENGTH, to configure the cumulative header size limit (in bytes) for HTTP requests, with a default value of 1MB. (Community / Enterprise edition only)

Console

  • Fix navigation when a data source is removed.
  • The table header for the browse row UI is now sticky.
  • Improve table tracking UI for Postgres/MS SQL Server. This is an experimental feature and can be enabled from Settings > Feature Flags > Enable new Table Tracking UI for Postgres & SQL Server
  • Add missing common operators in permissions for types: geography and geometry
  • Fix array relationship details not showing and allow untracking which was not working in certain edge conditions in new relationships UI. (resolves #9713, #9595)
  • Add a Logical Models Details view.
  • Allows nesting of Logical Models on creation. Logical Models can also now be marked as arrays in order to have one-to-many relationships defined.
  • Enable browse rows and relationship tabs for MongoDB. (Cloud / Enterprise edition only)
  • Improves error handling for the database latency check when Hasura cannot connect to the project's connected data source. (Cloud only)

Data Connectors

  • Add support for SQL contains comparisons (case-sensitive) for Strings. (Cloud / Enterprise edition only)

Build

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

v2.28.2

04 Jul 19:54
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.28

Bugfixes and Improvements

Server

  • Fix a regression where null values were rejected for nullable types in Remote Schemas and query validation errors were thrown.

v2.29.0-beta.1

29 Jun 17:12
Compare
Choose a tag to compare
v2.29.0-beta.1 Pre-release
Pre-release

Changelog

Highlights

Introducing Input Validation for GraphQL Mutations [Beta]

Hasura now offers a new permission layer called "Input Validations." This feature secures mutations by using pre-execution HTTP webhooks to validate data inputs. It enhances security, provides fine-grained control, and improves data integrity.

You can use the environment variable HASURA_GRAPHQL_EXPERIMENTAL_FEATURES = input_validations to enable this on the Server and you can configure input validations via the Console through the table permissions section! 🚀

input-validations

Behaviour changes

  • Remove Data-connector backed databases from the Raw SQL tab in Console as the feature is not supported for them as yet.

  • Remove feature flag for the new permissions UI on Postgres. Use the existing UI for Postgres DBs.

  • Removing a tracked source from the Console will now cascade delete any dependant metadata objects on other sources.

  • The cumulative header size limit for HTTP requests is set to 1MB. (Cloud only)

Bug fixes and improvements

Server

  • Implements support for using native GraphQL arrays with Postgres arrays, including filtering with _contains and _contained_in.
  • Restore function of the optimize_permission_filters experimental feature.
  • Add support for {{}} style templates for headers in Actions, Remote Schemas and Event Triggers. You can specify the template as the header value. e.g. bearer {{TOKEN_ENV_VAR}}
  • Check for, and disallow, conflicting array and object relationships on the same Native Query.
  • Properly handle MS SQL Server inserts with an empty array of values (resolves #8959)
  • Adds support for setting a default isolation level for MS SQL Server sources and set the default behaviour to read-committed.
  • Adds a new environment variable HASURA_GRAPHQL_MAX_TOTAL_HEADER_LENGTH, to configure the cumulative header size limit (in bytes) for HTTP requests, with a default value of 1MB. (Community / Enterprise edition only)
  • Fixes a bug with the Schema Registry where we sent older Metadata resource versions and inconsistent schemas. (Cloud only)

Console

  • Fix navigation when a data source is removed.
  • The table header for the browse row UI is now sticky.
  • Improve table tracking UI for Postgres/MS SQL Server. This is an experimental feature and can be enabled from Settings > Feature Flags > Enable new Table Tracking UI for Postgres & SQL Server
  • Add missing common operators in permissions for types: geography and geometry
  • Fix array relationship details not showing and allow untracking which was not working in certain edge conditions in new relationships UI. (resolves #9713, #9595)
  • Allows nesting of Logical Models on creation. Logical Models can also now be marked as arrays in order to have one-to-many relationships defined.
  • Adds a Logical Models Details view.
  • Enable browse rows and relationship tabs for MongoDB. (Cloud / Enterprise edition only)
  • Improves error handling for the database latency check when Hasura cannot connect to the project's connected data source. (Cloud only)

Build

  • Upgrades our Docker images to Ubuntu 22.04 to benefit from the latest security patches and improvements.