这是indexloc提供的服务,不要输入任何密码
Skip to content

Releases: hasura/graphql-engine

v2.0.8

30 Aug 14:45

Choose a tag to compare

Changelog

Highlights

Support for graphql-ws protocol

The graphql-engine now supports the graphql-ws protocol which is aiming to become the standard GraphQL over Websockets protocol. Read more about it here.

Other features and fixes

  • server: fix nullability of object relationships (close #7201)
  • server: update non-existent event trigger, action and query collection error msgs (close #7396)
  • server: fix broken untrack_function for non-default source
  • server: Adding support for TLS allowlist by domain and service id (port)
  • server: add support for graphql-ws clients
  • console: fix error due to rendering inconsistent object's message
  • console: support insecure TLS allowlist
  • console: support computed fields in remote schema join
  • console: fix data sidebar not updated when a table is renamed
  • cli: fix delay starting console using hasura console (#7255)

v2.0.7

17 Aug 15:03

Choose a tag to compare

Changelog

  • server: fix v2 -> v1 downgrade bug when cron triggers exist
  • server: add index on the event_id column of the hdb_cron_event_invocation_logs table
  • server: fix GraphQL type for remote relationship field (close #7284)
  • server: support EdDSA algorithm and key type for JWT
  • server: fix GraphQL type for single-row returning functions (close #7109)
  • console: add support for creation of indexes for Postgres data sources
  • console: allow same named queries and unnamed queries on allowlist file upload
  • console: support computed fields in permission builder
  • console: add custom timeouts to actions

v2.0.6

11 Aug 08:35

Choose a tag to compare

Changelog

  • server: Add support for inherited roles for mutations, remote schema, actions and custom function permissions
  • server: fix an issue with remote relationships when join columns are aliased (close #7180)
  • server: fix for incorrect __typename value in nested remote joins with a customized remote schema
  • server: fix a bug where some unicode characters in default string values for fields in remote schemas could lead to internal errors
  • server: bigquery: implement _in and _nin operators. (close #7343)
  • console: fix untracked foreign-key relationships suggestion across schemas
  • cli: fix SDL formatting in actions.graphql(#7296)

v2.0.5

05 Aug 09:49

Choose a tag to compare

Changelog

  • server: prevent invalid collisions in remote variable cache key (close #7170)
  • server: preserve unchanged cron triggers in replace_metadata API
  • server: fix inherited roles bug where mutations were not accessible when inherited roles was enabled
  • server: reintroduce the unique name constraint in allowed lists
  • server: subscriptions now validate that all session variables are properly set (#7111)
  • cli-migrations-v2: fix database url showing up in metadata (#7319)

v2.0.4

29 Jul 16:00

Choose a tag to compare

Changelog

  • server: Support computed fields in permission check/filter (close #7102)
  • server: support computed fields in query 'order_by' (close #7103)
  • server: log warning if there are errors while executing clean up actions after "drop source" (previously it would throw an error)
  • server: Fixed a bug where MSSQL and BigQuery would ignore environment variables set from the console
  • server: Fixing bug in ReplaceMetadata parser - Moving from Alternative to committed-choice.
  • server: Relax the unique operation name constraint when adding a query to a query collection
  • server: officially deprecate query plan caching, which had already been disabled for a long time
  • server/bigquery: Fix issues related to adding and querying from non-US datasets (closes 6937).
  • console: add pagination on the Raw SQL results page
  • console: fix issues with replacing invalid graphql identifiers in table and column names
  • console: show error message on inconsistent objects table
  • console: add template gallery
  • cli: add support for query_tags metadata object

v2.0.3

19 Jul 16:40

Choose a tag to compare

Changelog

v2.0.3

  • server: inherited role improvements for select queries
    • an inherited role can now inherit from other inherited roles as well
    • explicit permissions for inherited roles can now be set which will override the inherited permission (if any)
  • server: fix optional global_select_limit config for BigQuery
  • console: support global_select_limit for bigquery sources
  • cli: add -o/--output flag for hasura metadata inconsistency list command

v2.0.2

15 Jul 09:21

Choose a tag to compare

Changelog

v2.0.2

  • server: support computed fields in query filter (where argument) (close #7100)
  • server: support scalar computed fields in remote joins (close #7101)
  • server: only if query-log is enabled the graphql query string is printed in http-log and websocket-log
  • server: fix reloading inconsistent sources or remote schemas via reload_metadata API
  • server: add a $.detail.operation.request_mode field to http-log which takes the values "single" or "batched" to log whether a GraphQL request was executed on its own or as part of a batch
  • server: add query field to http-log and websocket-log in non-error cases
  • server: Add global limit to BigQuery via the global_select_limit field in the connection configuration
  • server: include action and event names in log output
  • server: log all HTTP errors in remote schema calls as remote-schema-error with details
  • server: For BigQuery, make global_select_limit configuration optional with a default value of 1000
  • console: add reload all databases checkbox to the metadata settings page
  • console: add schema sharing
  • console: fix issue with changing table's column name and graphQL field name simultaneously
  • cli: add linux and darwin arm64 support

v2.0.1

24 Jun 04:20

Choose a tag to compare

Changelog

This patch release fixes a startup issue on upgrading to v2.0.0 which affected users with Event Triggers configured.

Bug fix:

  • server: fix resetting metadata catalog version to 43 while initializing postgres source with v1.0 catalog (#7058)

Using this release

Use the following docker image:

hasura/graphql-engine:v2.0.1

v2.0.0

23 Jun 12:15

Choose a tag to compare

We are glad to announce the stable release of Hasura GraphQL Engine v2.0.0.

Please check the upgrade guide before upgrading. There are few breaking changes in special scenarios which are described in Breaking changes section below.

IMPORTANT UPGRADE NOTE: Due to a startup issue observed on upgrading to v2.0.0 we've removed the v2.0.0 docker image. We have found the cause and the fix has been made in v2.0.1.

Hasura 2.0 highlights

Multiple databases support and metadata storage separation

Simultaneously add multiple Postgres databases:

You can also store Hasura metadata in a separate (Postgres) database given by the environment variable
HASURA_GRAPHQL_METADATA_DATABASE_URL

Generalized backend: Support for MS SQL server and BigQuery

The server has been generalized to support different databases. We start off by providing read-only support for MS SQL server and BigQuery.

MS SQL server

create-database-mssql

BigQuery

bigquery

REST APIs

Support for creating idiomatic REST API endpoints from GraphQL query templates so that users can support non-GraphQL clients easily and integrate with their existing REST tooling.

Remote Schema Permissions

The permission system has been extended for Remote Schemas. You can do type/field masking and preset arguments (with session variables) over remote schemas.

Volatile functions as mutations/queries

You can now track VOLATILE Postgres functions as mutations (or even queries).

Inherited Roles

You can now create an Inherited Role which allows you to combine multiple roles into one role (in an additive way). This solves fundamental problems with permission system (as described in #877 and #3442) and also helps you manage roles in a modular way.

To get started, head to Hasura Console, Settings -> Inherited Roles (read docs here)

In the first version, only Postgres queries and subscriptions are exposed for an inherited role.

PS: Inherited roles is currently an experimental feature. To enable inherited roles, start the Hasura server with environment variable HASURA_GRAPHQL_EXPERIMENTAL_FEATURES: "inherited_roles"

Support comparing columns across related tables in permission's boolean expressions

We now support comparing columns across related tables (fixing #3459) . For example:

Consider two tables, items(id, name, stock) and shopping_cart(id, item_id, quantity)
and these two tables are related via the item_id column. Now, while defining insert permission
on the shopping_cart table, there can be a check to insert an item into the shopping cart
only when there is enough stock present in the items table.

ltree comparison operators

Comparison operators on columns with ltree, lquery or ltxtquery types are now supported, for searching through data stored in a hierarchical tree-like structure.

See the documentation at graphql/core/queries/query-filters more details on the currently supported ltree operators.

Support geometry and geography spatial data comparison operators in MS SQL Server

Comparison operators on spatial data types, geometry and geography, are now supported in MS SQL Server. The following operators are supported:

  • STEquals
  • STIntersects
  • STTouches
  • STOverlaps
  • STCrosses
  • STWithin
  • STContains

Support for 3D PostGIS Operators

We now support the use of the functions ST_3DDWithin and ST_3DIntersects in boolean expressions.
Note that ST_3DIntersects requires PostGIS be built with SFCGAL support which may depend on the PostGIS distribution used.

Other fixes and improvements:

  • server: add allow_inconsistent_metadata option to replace_metadata API to allow adding objects which are inconsistent
  • server: add "resource_version" field to metadata for concurrency control - disable lookup during migrations
  • server: add request field to webhook POST body containing the GraphQL query/mutation, its name, and any variables passed (close #2666)
  • server: add --websocket-compression command-line flag for enabling websocket compression (fix #3292)
  • server: some mutations that cannot be performed will no longer be in the schema (for instance, delete_by_pk mutations won't be shown to users that do not have select permissions on all primary keys) (#4111)
  • server: treat the absence of backend_only configuration and backend_only: false equally (closing #5059) (#4111)
  • server: accept only non-negative integers for batch size and refetch interval (close #5653) (#5759)
  • server: Configurable websocket keep-alive interval. Add --websocket-keepalive command-line flag and HASURA_GRAPHQL_WEBSOCKET_KEEPALIVE env variable (fix #3539)
  • server: introduce optional custom table name in table configuration to track the table according to the custom name. The set_table_custom_fields API has been deprecated, A new API set_table_customization has been added to set the configuration. (#3811)
  • server: support joining Int or String scalar types to ID scalar type in remote relationship
  • server: add support for regex operators (close #4317) (#6172)
  • server: do not block catalog migration on inconsistent metadata
  • server: various changes to ensure timely cleanup of background threads and other resources in the event of a SIGTERM signal.
  • server: fix issue with event triggers defined on a table which is partitioned (fixes #6261)
  • server: action array relationships now support the same input arguments (such as where or distinct_on) as usual relationships
  • server: action array relationships now support aggregate relationships
  • server: fix issue with non-optional fields of the remote schema being added as optional in the graphql-engine (fix #6401)
  • server: accept new config allowed_skew in JWT config to provide leeway for JWT expiry (fixes #2109)
  • server: always log the request_id at the detail.request_id path for both query-log and http-log (#6244)
  • server: fix issue with --stringify-numeric-types not stringifying aggregate fields (fix #5704)
  • server: terminate a request if time to acquire connection from pool exceeds configurable timeout (#6326)
  • server: support tracking of functions that return a single row (fix #4299)
  • server/mssql: supports connection pooling to sql server
  • server: improve errors messages for inconsistent sources
  • server: better handling for one-to-one relationships via both manual_configuration and foreign_key_constraint_on (#2576)
  • server/mssql: support tracking and querying from views
  • server: fix issue when a remote relationship's joining field had a custom GraphQL name defined (fix #6626)
  • server: fix handling of nullable object relationships (fix #6633)
  • server/mssql: mssql_add_source can now take connection strings from environment variables
  • server: support IN, NIN, LIKE and NLIKE operators in MS SQL Server
  • server: remove the restriction of supporting only base type function arguments. The type of an argument with a table type is now <tablename>_scalar to avoid conflicts with the object type <tablename>.
  • server: add --async-actions-fetch-interval command-line flag and HASURA_GRAPHQL_ASYNC_ACTIONS_FETCH_INTERVAL environment variable for configuring async actions re-fetch interval from metadata storage (fix #6460)
  • server: add 'replace_configuration' option (default: false) in the add source API payload
  • server: add a comment field for actions
  • server: accept GeoJSON for MSSQL geometry and geography operators
  • server: update pg_dump clean output to disable function body validation in create function statements to avoid errors due to forward references
  • server: add a new /dev/rts_stats endpoint, enabled when hasura is started with '+RTS -T'
  • server: support for bigquery datasets
  • server: format the values of injectEventContext as hexadecimal string instead of integer (fix #6465)
  • server: add "kind" field to query-log items. Kind can be "database", "action", "remote-schema", "graphql", "cached", or "subscription"
  • server: support query multiplexing in MSSQL subscriptions
  • server: aggregation fields are now supported on mssql
  • server: accept a new env conf HASURA_GRAPHQL_EVENTS_FETCH_BATCH_SIZE to configure the number of rows being fetched from the events log table in a single batch
  • server: restore proper batching behavior in event trigger processing so that at most 2x batch events are checked out at a time
  • server: decrease polling interval for scheduled triggers from 60 to 10 seconds
  • server: Change HASURA_GRAPHQL_SCHEMA_POLL_INTERVAL env var to HASURA_GRAPHQL_SCHEMA_SYNC_POLL_INTERVAL and schema-poll-interval option to --schema-sync-poll-interval
  • server:...
Read more

v2.0.0-beta.2

16 Jun 13:59

Choose a tag to compare

v2.0.0-beta.2 Pre-release
Pre-release

Changelog

Bug fixes and improvements

  • server: remote relationships (database to remote schema joins) are now supported on SQL Server and BigQuery (console pending)
  • server: BigQuery: switches to a single query generation from a dataloader approach. This should result in
    faster query responses.
  • server: BigQuery: various bug fixes related to aggregations
  • server: fix add source API wiping out source's metadata when replace_configuration is true
  • console: add foreign key CRUD functionality to ms sql server tables
  • console: allow tracking of custom SQL functions having composite type (rowtype) input arguments
  • console: allow input object presets in remote schema permissions
  • console: add modify functionality on columns, primary keys & unique keys to MS SQL Server tables
  • cli: add interactive prompt to get input when --database-name flag is missing
  • cli: fix metadata export to avoid unnecessary empty lines in actions.graphql (#5338)
  • cli: generate migrations for mssql databases in hasura console mode (#7011)