v2.15.0
版本发布时间: 2022-11-07 20:36:00
hasura/graphql-engine最新发布版本:v2.44.0(2024-10-08 18:36:54)
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.
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.
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.
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
onSecurity -> 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
1、 cli-hasura-darwin-amd64 75.13MB
2、 cli-hasura-darwin-arm64 75.17MB
3、 cli-hasura-linux-amd64 23.44MB
4、 cli-hasura-linux-arm64 22.01MB
5、 cli-hasura-windows-amd64.exe 69MB