github hasura/graphql-engine v2.15.0

latest releases: v2.36.8, cli/v2.36.8, cli/v2.44.0-beta.1...
22 months ago

Changelog

Highlights

Support for CockroachDB (beta)

We are pleased to announce the beta release for CockroachDB datasource on the Hasura GraphQL Engine. In this beta release Hasura supports Queries and Mutations with plans to add support for subscription before the GA release, which will coincide with the release of CockroachDB v22.2 (tentatively scheduled for early December).

CockroachDB is a distributed SQL database built on a transactional and strongly-consistent key-value store. It scales horizontally; survives disk, machine, rack, and even datacenter failures with minimal latency disruption and no manual intervention; supports strongly-consistent ACID transactions; and provides a familiar SQL API for structuring, manipulating, and querying data.

Together with Hasura, CockroachDB now supports: Instant GraphQL & REST APIs, Declarative Role Based Authorization, Advanced Security and Performance with rate limiting, allow lists, and caching.

Minimum Version Requirements

  • Hasura GraphQL engine v2.15.0 onwards
  • CockroachDB v22.2 onwards

ODBC Driver 18 for SQL Server

The ODBC Driver 18 for SQL Server is now installed. This allows users to provide ODBC Driver 18 connection strings. Because this version has native support for arm64/aarch64, this means that Hasura GraphQL Engine can now connect to a MS SQL Server database when running on macOS with an aarch64 chip (M1 or M2).

Action and Event Trigger Improvements

1. Action Response Transforms on Console

Response transformation for Actions has been available in the API. Now you can configure response transforms on the console (below the payload transform section of the Action creation form). For more information see the docs here.

image

2. Support for optional query parameters

When defining optional query parameters for rest endpoints, if the input is empty, the query parameter is still attempted to be sent, which yields an error at most REST endpoints as mentioned in this issue. With this release, actions and event trigger REST connector query parameters are now optional. For more information please see documentation here.

3. Updates to JSON payload transformation templates

Transforming of payloads for Actions and Event Triggers in Hasura is achieved using the in-house developed templating language - kriti-lang. In this release we have updated it to version 0.3.3 which has the following changes:

  • Adds elif syntax to if expressions.
  • Improved error messaging and error codes.
  • Allow arbitrary expressions as range iteratee.
  • Adds Kriti.CustomFunctions.basicFuncMap functions to the kriti executable.
  • Adds KritiError type to exports from Kriti.

New Batch Limit for increased API Security (Enterprise Edition Only)

Batch operations are basically an array of operations and hence prone to Denial of Service (DoS) attacks by supplying a very large number of operations. As a result, we have introduced a new batch limit to avoid this scenario on the API Limits section of the Security tab.

image

Elastic Connection Pooling (Cloud Only)

Introducing a new connection pool setting total_max_connections which is now the preferred way to manage Hasura instance pools and is configured per project to help with zero administration high reliability. This improves over the current functionality of max_connections setting which is per instance and often leads to exceeding the connections to the database at the project level. Connection pools in Hasura cloud have flexible maximum connections; pool's size is elastic in nature. When a project is scaled up or down, Hasura cloud automatically adjusts the number of maximum connections of sources' pools, including read replicas, to ensure consistent total maximum connections across all server instances.

image

Bug fixes and improvements

Server

  • fix the behaviour where a default time limit of 60 seconds was applied when no api limits were set. (Enterprise edition only)
  • Introduce a new experimental feature flag hide_aggregation_predicates which toggles off aggregation functions in where clauses, to be used if these cause schema type name conflicts.
  • Make action/event trigger REST connector query params optional
  • Postgres: change the name scheme for aggregation predicate types from <table name>_ <relation name>_aggregate to <relation table name>_aggregate_bool_exp, to avoid conflicting definitions with regular table selection aggregates.
  • add IF EXISTS while dropping the constraint in source migrations (2 -> 3)
  • fix remote relationship to remote schema sometimes being erroneously null when multiple relationships are defined on the same table / graphql object (fix #8345)
  • pg_dump has been upgraded in order to support PostgreSQL 15.
  • Add api limit - batch limit. batch limit - restricts the number of GraphQL operations for batched requests (Enterprise edition only)
  • close the WS connection in case of Apollo-ws protocol (protocol value: graphql-ws), when there is no authentication present (admin secret or unauthenticated role)

Console

  • Display Prometheus configuration in the console Settings page. (Enterprise edition only)
  • Add Batch on Security -> API Limits tab to tackle GraphQL batching attacks. (Enterprise edition only)
  • Fix remote schema permissions with null default value
  • Fix remote schema permissions with interfaces
  • Fix remote schema permission when there are arguments
  • Show Total Max Connections pool settings fields on connect DB page (Cloud Only)
  • Enable the Add operation to allowlist button on the monitoring tab

Don't miss a new graphql-engine release

NewReleases is sending notifications on new releases.