Skip to content

Releases: hasura/graphql-engine

v2.37.1

28 Feb 11:47
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.37

Bug fixes and improvements

Server

  • Fix output of error field for asynchronous actions with 2xx response status.

Data connectors

  • Remove explicit NULL ordering when generating ORDER BY statements.
    Some dialects such as MySQL do not support ORDER BY ... NULLS FIRST/LAST
    The translation to ORDER BY CASE WHEN causes the optimizer to be unable to use indices.

v2.37.0

30 Jan 16:24
Compare
Choose a tag to compare

Changelog

Bug fixes and improvements

Server

  • When adding a data connector agent, the agent URI can now be sourced from an environment variable (fix #9777).
  • Allow ignoring the errors field if both data and errors are present in the Remote Schema response. Can be configured via the server HASURA_GRAPHQL_REMOTE_SCHEMA_PRIORITIZE_DATA env var or the remote-schema-prioritize-data flag.
  • Remove additional internal error response field being returned in Async Actions when dev mode is false.
  • Ensure Logical Models do not create empty GraphQL object types.
  • Add a new environment variable HASURA_GRAPHQL_CONFIGURED_HEADER_PRECEDENCE to specify header precedence when delivering payload to webhook in actions and input validations.
  • BigQuery filters now support ilike and nilike for case-insensitive versions of like and nlike.

Console

  • Also prettify the query variables on hitting the GraphiQL Prettify button (fix #9968).
  • Sort the columns in the filter and sort column selectors alphabetically in the data browser (fix #9966).
  • Show table schema names in the new relationships UI for PostgreSQL and MS SQL Server.

Data Connectors

  • Fix multi-schema issue for simple queries in Snowflake. (Cloud / Enterprise edition only)
  • Fix aggregation limit for Snowflake, now aggregate limits are treated separately from row-based limits which can come through from permission-based limits. (Cloud / Enterprise edition only)
  • Add support for the following additional JDBC auth mechanisms: (Cloud / Enterprise edition only)
    • AWS
      • password managed by the AWS Secrets Manager
      • IAM based access for AWS (available for MySQL, MariaDB and PostgreSQL)
    • Snowflake
      • encrypted private keys

Build

  • Update the Ubuntu and Red Hat UBI base images to receive latest security updates

v2.36.3

24 Jan 10:09
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.36

Bug fixes and improvements

Server

  • Fix query caching when database connection templates are involved. Session variables and HTTP headers used in the templates are now included in the cache key generation. (Cloud / Enterprise edition only)

v2.37.0-beta.1

15 Jan 09:48
Compare
Choose a tag to compare
v2.37.0-beta.1 Pre-release
Pre-release

Changelog

Bug fixes and improvements

Server

  • When adding a data connector agent, the agent URI can now be sourced from an environment variable (fix #9777).
  • Allow ignoring the errors field if both data and errors are present in the Remote Schema response. Can be configured via the server HASURA_GRAPHQL_REMOTE_SCHEMA_PRIORITIZE_DATA env var or the remote-schema-prioritize-data flag.
  • Remove additional internal error response field being returned in Async Actions when dev mode is false.
  • Ensure Logical Models do not create empty GraphQL object types.

Console

  • Also prettify the query variables on hitting the GraphiQL Prettify button (fix #9968).
  • Sort the columns in the filter and sort column selectors alphabetically in the data browser (fix #9966).

Data Connectors

  • Fix multi-schema issue for simple queries in Snowflake. (Cloud / Enterprise edition only)
  • Fix aggregation limit for Snowflake, now aggregate limits are treated separately from row-based limits which can come through from permission-based limits. (Cloud / Enterprise edition only)

Build

  • Update the ubuntu and redhat ubi base images to receive latest security updates

v2.36.2

15 Jan 08:34
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.36

Bug fixes and improvements

Server

  • Support SpanKind for OpenTelemetry traces (Cloud / Enterprise edition only)

Console

  • Add permission summary view for data-connector based databases.
  • Fix issues with permission summary on the new Data tab UI.

v3.alpha.12-19-2023 Release 🚀

19 Dec 12:04
Compare
Choose a tag to compare
Pre-release

We're thrilled to announce the alpha release of Hasura V3! 🎉

Key Features

  • Data Connectors: The v3-engine can be used with any connector that adheres to the NDC specification to get a GraphQL API. We currently have NDC agents available for Postgres, Clickhouse and Deno (Typescript). Learn more about Hasura connectors here.
  • Metadata Modeling Objects: Use these metadata objects to map the underlying data sources using NDC agents and create a supergraph:
    • Models: collections of data objects that can be queried. These serve as the interface for querying your data. A model may be backed by a database table, an ad-hoc SQL query, a pre-materialized view or a custom API server.
    • Commands: opaque functions or procedures that can be used to query or mutate data. You can use them to validate, process, enrich some data or call another API,
    • Permissions: access control rules on your types / models / commands. There are two types of permissions available - model permissions and type permissions.
    • Relationships: creating edges in your graph from a data type to a model or a command. A relationship allows you to query nested or linked information and it can span across multiple data sources such as from Postgres to Clickhouse.
    • Global ID: is a unique identifier for an object across the entire application, not just within a specific table or type.The Global ID generated by Hasura DDN follows the Relay Global ID spec and can be used to fetch any object directly.
  • GraphQL API Features
    • Queries - Leverage a powerful API to query data with the following features -
      • Simple Queries including query by primary key, running multiple queries in a request, using multiple arguments in the same query, using variables, aliases and fragments.
      • Nested Queries including object and array relationships across data sources.
      • Sorting objects, nested objects, sorting based on nested object’s fields including computed fields, and sorting by multiple fields.
      • Pagination using limit and offset operators including limiting results from an offset, limiting results in a nested object and keyset cursor based
      • Filtering using the where argument with support of the following operators - simple comparison operator, boolean operator, text search operator and nested objects.
      • Directives including @include and @skip for fields.
      • Native Queries for PostgreSQL where each query is specified as SQL and can take arguments using the {{argument_name}} syntax
      • Business Logic - Now write your business logic in Typescript and use Hasura to front them as queries and mutations using the Typescript Deno connector.
    • Mutations - Leverage the flexibility of mutating data with the following ways -
      • Using the Typescript Deno connector which exposes Typescript functions as Hasura commands, which can be made available over the GraphQL API as a mutation. You can write to a database or an API and incorporate any business logic in the Typescript function while mutating.
      • Point to point (simple) database inserts, updates, and deletes via the respective data connectors are coming soon.
  • Authentication: Hasura v3 utilizes "session variables", with specific user, role, organization and any other information you may need to determine the data access rights of the user. Hasura's authentication can be configured via JSON web tokens (JWT) or a webhook service and can be integrated with any other provider you choose.

Alpha Phase

This release marks the initial phase of our alpha rollout. Please note that Hasura V3 is still in its early stages and has limited functionality. We encourage feedback, bug reports, and contributions from the community to help us shape the future of this project.

Get Involved

We're excited to have you on board as we embark on this journey together.

  • Report any bugs or issues you encounter via GitHub Issues.
  • Propose new features or enhancements via Pull Requests.
  • Join the discussions in our Discord channel.

Your participation and feedback are invaluable as we work towards more updates and exciting features in the upcoming releases! 🚀

v2.36.1

19 Dec 12:16
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.36

Bug fixes and improvements

Server

  • Improvements to the schema sync process between Hasura instances when the metadata is updated.

CLI

  • Fix a bug where batch_limit configuration was not being applied.

Build

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

v2.35.3

19 Dec 12:12
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.35

Bug fixes and improvements

Server

  • Improvements to the schema sync process between Hasura instances when the metadata is updated.

v2.35.2

12 Dec 06:40
Compare
Choose a tag to compare

Changelog

This is a patch release for v2.35

Bug fixes and improvements

Data Connectors

  • Adds support for overriding the public schema in Redshift with single or multiple alternate schemas via the include_schemas configuration option. (Cloud / Enterprise edition only)
  • Fix errors in certain Athena query compilations caused by lack of CAST for datetime types. (Cloud / Enterprise edition only)
  • Added support for a Pro License Key to the licensing options for hasura/graphql-data-connector. (Enterprise edition only)

v2.36.0

12 Dec 08:37
Compare
Choose a tag to compare

Changelog

Behaviour changes

  • We have fixed GraphQL query validation where queries that assigned a null value to a variable with a declared non-nullable type were previously allowed.

    For example:

    query ($user_id: Int!) {
      users(where: {id: {_eq: $user_id}}){
        id name
      }
    }
    {
      "user_id": null
    }

    Now, queries with this aforementioned condition will be properly invalidated and rejected.

    Since, it is a behavior change, we are introducing a server option to preserve the old behavior when either of the following are set to true:

    • Environment variable: HASURA_GRAPHQL_BACKWARDS_COMPAT_NULL_IN_NONNULLABLE_VARIABLES
    • Flag: --null-in-nonnullable-variables

    The above configuration is optional, and the default value is false i.e, new fixed behavior is applied

Bug fixes and improvements

Server

  • Change in PostgreSQL array introspection to improve query performance.
  • For MS SQL Server, handle missing type information for columns when querying metadata.
  • The pg_dump version has been upgraded to v16, so that it can extract data from PostgreSQL 16 databases.
  • Fix websocket connection failure when hide_aggregation_predicates and hide_stream_fields experimental features are enabled.
  • Fix the check to classify requests to Apollo persisted queries (fix #10013).

Console

  • Support creation of REST endpoint from a table in new data tab UI.
  • Support computed fields in new permissions UI
  • Truncate large JSON values in browse rows for data-connector backed databases.
  • Fix a validation bug in the GraphQL Data Connector connection form when advanced settings is not open.

Data Connectors

  • hasura/graphql-data-connector image now supports all non-root user IDs and groups
  • Fixes duplicate alias issue in Snowflake for multiple relationships to the same table in a single query. (Cloud / Enterprise edition only)

Build

  • RedHat UBI-based graphql-engine docker images are now available.

    hasura/graphql-engine:v2.36.0-beta.1.ubi
    hasura/graphql-engine:v2.36.0-beta.1.cli-migrations-v2.ubi
    hasura/graphql-engine:v2.36.0-beta.1.cli-migrations-v3.ubi