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

Releases: hasura/graphql-engine

v2.3.0-beta.2

22 Feb 16:38

Choose a tag to compare

v2.3.0-beta.2 Pre-release
Pre-release

Changelog

  • server: fix issues working with read-only DBs by reverting the need for storing required SQL functions in a hdb_lib schema in the user's DB

    If you have connected your DB to v2.3.0-beta.1 you can drop the hdb_lib schema created in your DB

v2.3.0-beta.1

16 Feb 14:16

Choose a tag to compare

v2.3.0-beta.1 Pre-release
Pre-release

Changelog

Experimental SQL optimizations

Row-level permissions are applied by a translation into SQL WHERE clauses. If
some tables have similar row-level permission filters, then the generated SQL
may be repetitive and not perform well, especially for GraphQL queries that make
heavy use of relationships.

This version includes an experimental optimization for some SQL queries. It
is expressly experimental, because of the security-sensitive nature of the
transformation that it applies. You should scrutinize the optimized SQL
generated by this feature before using it in production.

The optimization can be enabled using the
--experimental-features=optimize_permission_filters flag or the
HASURA_GRAPHQL_EXPERIMENTAL_FEATURES environment variable.

Breaking changes

  • Computed field comments are now used as the description for the field in the GraphQL schema. This means that computed fields where the comment has been set to empty string will cause the description of the field in the GraphQL schema to also be blank. Setting the computed field comment to null will restore the previous auto-generated description. The previous version of the Console would set the comment to empty string if the comment textbox was left blank, so some existing computed fields may unintentionally have empty string set as their comment.

Bug fixes and improvements

  • server: validate saved REST endpoint queries wrt schema
  • server: improved error reporting for env vars in test_webhook_transform metadata API endpoint
  • server: extend allowlist metadata with scope information, new command update_scope_of_allowlist_in_metadata
  • server: (Postgres, Citus, and MSSQL backends) Identity columns and computed
    columns are now marked immutable, removing them from the schema of insert and
    update mutations.
  • server: allow inserting more than 1 row simultaneously into table with generated columns (fix #4633)
    that have generated columns in Postgres.
  • server: postgres: return a single entry per row (selected randomly) when an object relationship has multiple matches (fix #7936)
  • server: Updates Kriti to v0.3.0
  • server: add operation name in the request sent to remote schemas
  • server: add support for scalar response types for actions (fix #7805)
  • server: fix nullable action response (fix #4405)
  • server: add support for customization of table & computed field GraphQL schema descriptions (fix #7496)
  • server: classify MSSQL exceptions and improve API error responses
  • console: add support for remote database relationships
  • console: enable support for update permissions for mssql
  • cli: skip tls verfication for all API requests when insecure-skip-tls-verify flag is set (fix #4926)

v2.2.0

02 Feb 20:33

Choose a tag to compare

Changelog

Highlights

Nested Action Types

Actions now support nested responses as described by associated action types.Example:

type Product {
 id: bigint!
 name: String
}
type ElasticOutput {
 products: [Product!]!
 aggregations: jsonb
}

Previously, nested responses could be encapsulated in a generic "jsonb" output type but this loses precise type information for the API. The current support now allows specifying complex return types for the output.

Currently limits action relationships to top-level fields in the output types.

GraphQL REST Endpoints OpenAPI Body Specifications

GraphQL REST endpoints are documented via Swagger (OpenAPI) under the /api/swagger/json endpoint. We now document the request and response bodies of the endpoints in addition to previous information.

MS SQL Server Update for Hasura Server

Expand Transactions to GraphQL Queries and mssql_run-sql API

Extend transactions to GraphQL queries and mssql_run_sql API

Rollback a Transaction Based in the Transaction State

We can query the transaction state using XACT_STATE() scalar function. If the transaction is not active, don't rollback the transaction.

Upsert - SQL Generation and Execution

We are translating the if_matched section from the graphql, which is represented by the if_matched type, to a MERGE SQL statement. Example:

mutation {
  insert_author(
    objects: { id: 1, name: "aaa" }
    if_matched: { match_columns: author_pkey, update_columns: name }
  ) {
    returning {
      id
      name
    }
  }
}

Breaking Changes

  • For any MSSQL backend, count aggregate query on multiple columns is restricted with a GraphQL
    schema change as follows
count (
---  columns: [table_select_column!]
+++  column: table_select_column
  distinct: Boolean
): Int!

MSSQL doesn't support applying COUNT() on multiple columns.

Bug fixes and improvements

  • server: add a placeholder field to the schema when the query_root would be empty
  • server: fix invalid GraphQL name in the schema arising from a remote relationship from a table in a custom schema
  • server: add a new metadata API get_cron_triggers to fetch all the cron triggers
  • server: add response transforms for actions, events, and triggers
  • server: bigquery: implement distinct_on.
  • server: extend transactions to MSSQL GraphQL queries and mssql_run_sql /v2/query API
  • server: improve error messages in MSSQL database query exceptions
  • server: in mssql transactions, rollback only if the transaction is active
  • server: add request and response bodies to OpenAPI specification of REST endpoints
  • server: implement upsert mutations for MS SQL Server (close #7864)
  • server: extend support for insert mutations to tables without primary key constraint in a MSSQL backend
  • server: fix parsing FLOAT64s in scientific notation and non-finite ones in BigQuery
  • server: extend support for the min/max aggregates to all comparable types in BigQuery
  • server: fix support for joins in aggregates nodes in BigQuery
  • server: fix for passing input objects in query variables to remote schemas with type name customization (#7977)
  • server: fix REST endpoints with path segments not showing correctly in the OpenAPI spec
  • server: fix aliases used in GraphQL queries in REST endpoints not being reflected in the OpenAPI spec
  • server: refresh JWKs a maximum of once per second (fix #5781)
  • server: implement update mutations for MS SQL Server (closes #7834)
  • server: support nested output object types in actions (#4796)
  • server: action webhook requests now include a User-Agent header (fix #8070)
  • console: action/event trigger transforms are now called REST connectors
  • console: fix list of tables (and schemas) being unsorted when creating a new trigger event (fix #6391)
  • console: fix custom field names breaking browse table sorting and the pre-populating of the edit row form
  • console: enable support for insert & delete permissions for mssql tables
  • console: enable inherited role on settings page
  • cli: migrate and seed subcommands has an option in prompt to choose and apply operation on all available databases
  • cli: fix metadata diff --type json | unified-json behaving incorrectly and showing diff in YAML format.
  • cli: fix regression in migrate create command (#7971)
  • cli: stop using /healthz endpoint to determine server health
  • cli: fix regression with --address flag of hasura console command (#8005)

v2.1.1

17 Dec 09:45

Choose a tag to compare

Changelog

This patch release fixes few regressions with handling metadata for remote relationships (closes #7933)

v2.1.0

14 Dec 19:17

Choose a tag to compare

Changelog

Highlights

Action transforms

Action transforms are used to perform arbitrary transformations to the HTTP request generated by an action.
This allows you to connect REST APIs and other existing APIs without writing any middleware/wrapper service.

You can transform the request method and the URL:

request-options-transformation1

You can also transform the request body:

example-transformation-21

Read more in the docs.

Event Trigger transforms

You can now modify the HTTP request that is sent to your Event Trigger webhook by using Event Trigger transforms.
This allows you to invoke any existing or 3rd party APIs directly without writing any middleware to transform the request first.

As with Action transforms, you can modify the HTTP method, URL and the body.

image

SQL Server Mutations

Insert and Delete mutations for SQL Server are now supported. Only Update mutations are remaining.

Root field name and type name customization per source (#6974)

When adding a source it is now possible to specify prefixes and suffixes
that will be added to all root field names and type names generated for that
source. It is also possible to specify a root "namespace" field to use for the
source. This can be done via *_add_source API and console support will be released soon.

Function field names customization (#7405)

It is now possible to specify the GraphQL names of tracked SQL functions in
Postgres sources, and different names may be given to the _aggregate and
suffix-less versions. Aliases may be set by both
/v1/metadata/pg_track_function and the new API endpoint
/v1/metadata/pg_set_function_customization.

Support for Mac M1

Hasura now supports the arm64 architecture and works on Mac M1 (closes #6337)
Caveat: MS-SQL as a data source is not supported on arm64/M1 yet (refer #7903)

Fixes and improvements

  • server: Ignore unexpected fields in action responses (#5731)
  • server: optimize SQL query generation with LIMITs
  • server: add GraphQL request query in the payload for synchronous actions
  • server: improve the event trigger logging on errors
    NOTE: This change introduces a breaking change, earlier when there
    was a client error when trying to process an event, then the status was reported as 1000. Now, the status will be NULL if there is no status received from the webhook.
  • server: support extensions field in error responses from action webhook endpoints (fix #4001)
  • server: fix custom-check based permissions for MSSQL (#7429)
  • server: remove identity notion for table columns (fix #7557)
  • server: support MSSQL transactions
  • server: log individual operation details in the http-log during a batch graphQL query execution
  • server: update create_scheduled_event API to return event_id in response
  • server: fix bug which allowed inconsistent metadata to exist after the replace_metadata API even though allow_inconsistent_object is set to false.
  • server: fix explicit null values not allowed in nested object relationship inserts (#7484)
  • server: introspect_remote_schema API now returns original remote schema instead of customized schema
  • server: prevent empty subscription roots in the schema (#6898)
  • server: support database-to-database joins (for now, limited to Postgres as the target side of the join)
  • server: add support for user comments for trackable functions (#7490)
  • server: do not recreate event triggers if tables haven't changed on reloading metadata
  • server: call auth webhooks even when the request is malformed JSON or otherwise fails to parse (close #7532)
  • server: updates kriti to v0.2.1 which adds an escapeUri function
  • server: add cascade option to mssql_run_sql metadata API
  • server: fix bug which recreated event triggers every time the graphql-engine started up
  • server: fix bug in OpenAPI when multiple REST endpoints have the same URL path but different method
  • server: add support for GraphQL block strings
  • server: Correctly translate permissions on functions to SQL (#7617)
  • server: allow nullable action responses (#4405)
  • server: add support for openapi json of REST Endpoints
  • server: enable inherited roles by default in the graphql-engine
  • server: support MSSQL insert mutations
  • server: fix bug in OpenAPI when multiple REST endpoints have the same URL path but different method
  • server: allows the use of mock env vars in the test_webhook_transform metadata API action
  • server: fix aggregate queries with nodes field in selection set for sql server (fix #7871)
  • server: fix permissions are not respected for aggregations in sql server (fix #7773)
  • server: the syntax for remote relationships in metadata is changed to be
    consistent with future remote relationships work. However, the older syntax
    is still accepted and this is a non-breaking change.
  • server: fix JSON path in error when parsing sources in metadata (fix #7769)
  • server: log locking DB queries during source catalog migration
  • server: fix to allow remote schema response to contain an "extensions" field (#7143)
  • server: support database-to-database joins with BigQuery
  • server: improved startup time when using large remote schemas
  • server: fix rest-endpoints bug allow list arguments (fix #7135)
  • server: fallback to unauthorized role when JWT is not found in cookie (fix #7272)
  • server: provide option to explicitly recreate event triggers for sources in the reload_metadata API (fix #7711)
  • server: fix gen_hasura_uuid migration to be idempotent, so that it doesn't fail if the database is already initialised with source migrations.
  • server: fix mssql table_by_pk query returning empty array (fix #7784)
  • console: support tracking of functions with return a single row
  • console: add GraphQL customisation under Remote schema edit tab
  • console: fix cross-schema array relationship suggestions
  • console: add performance fixes for handle large db schemas
  • console: fix missing cross-schema computed fields in permission builder
  • console: design cleanup Modify and Add Table forms (close #7454)
  • console: enable custom graphql root fields for mssql under modify tab
  • console: allow dropping indices on all schemas
  • console: fix bug with displaying 1-to-1 relationship with the same column mapping (close #7552)
  • console: add request transforms for actions
  • console: fix v2 metadata imports
  • console: design cleanup Modify and Add Table forms (close #7454)
  • console: enable custom graphql root fields for mssql under modify tab
  • console: add comments to tracked functions
  • console: add select all columns option while selecting the columns in event triggers
  • console: add request transforms for events
  • cli: add support for network metadata object
  • cli: hasura migrate apply --all-databases will return a non zero exit code if operation failed on atleast one database (#7499)
  • cli: migrate create --from-server creates the migration and marks it as applied on the server
  • cli: support query_tags in metadata
  • cli: add hasura deploy command
  • cli: allow exporting and applying metadata from yaml/json files
  • cli: allow squashing specific set of migrations. A new --to flag is introduced in migrate squash command. eg: hasura migrate squash --from <v1> --to <v4>
  • cli: split remote schema permissions metadata into seperate files (#7033)
  • cli: support action request transforms in metadata
  • cli: make --database-name optional in migrate subcommands when using a single database (#7434)
  • cli: support absolute paths in --envfile (#5689)
  • cli: fix cli-console failing to add migrations if there are tabs in SQL body (#7362)
  • cli: sign windows binary of Hasura CLI (#7147)
  • cli: core CLI features are not blocked in environments without internet (#7695)
  • metadata SDK: add type definitions for config v3

v2.1.0-beta.3

09 Dec 17:49

Choose a tag to compare

v2.1.0-beta.3 Pre-release
Pre-release

Changelog

This is the final beta release for v2.1.0

Highlights

Event Trigger transforms

You can now modify the HTTP request that is sent to your Event Trigger webhook by using Event Trigger transforms.
This allows you to invoke any existing or 3rd party APIs directly without writing any middleware to transform the request first.

As with Action transforms, you can modify the HTTP method, URL and the body.

image

Support for Mac M1

Hasura now supports the arm64 architecture and works on Mac M1 (closes #6337)
Caveat: MS-SQL as a data source is not supported on arm64/M1 yet (refer #7903)

SQL Server Delete Mutations

Delete mutations for SQL Server are now supported. Only Update mutations are remaining.

Bug fixes and improvements

  • server: allows the use of mock env vars in the test_webhook_transform metadata API action
  • server: fix event invocation logs to include transformed request bodies (fix #2983)
  • server: fix aggregate queries with nodes field in selection set for sql server (fix #7871)
  • server: fix permissions are not respected for aggregations in sql server (fix #7773)
  • server: the syntax for remote relationships in metadata is changed to be
    consistent with future remote relationships work. However, the older syntax
    is still accepted and this is a non-breaking change.
  • server: fix JSON path in error when parsing sources in metadata (fix #7769)
  • server: log locking DB queries during source catalog migration
  • server: fix to allow remote schema response to contain an "extensions" field (#7143)
  • server: support database-to-database joins with BigQuery
  • server: improved startup time when using large remote schemas
  • server: fix rest-endpoints bug allow list arguments (fix #7135)
  • server: fallback to unauthorized role when JWT is not found in cookie (fix #7272)
  • server: provide option to explicitly recreate event triggers for sources in the reload_metadata API (fix #7711)
  • server: fix gen_hasura_uuid migration to be idempotent, so that it doesn't fail if the database is already initialised with source migrations.
  • server: fix mssql table_by_pk query returning empty array (fix #7784)
  • console: add comments to tracked functions
  • console: add select all columns option while selecting the columns in event triggers
  • console: add request transforms for events
  • cli: fix cli-console failing to add migrations if there are tabs in SQL body (#7362)
  • cli: sign windows binary of Hasura CLI (#7147)
  • cli: core CLI features are not blocked in environments without internet (#7695)
  • metadata SDK: add type definitions for config v3

v2.1.0-beta.2

08 Nov 13:14

Choose a tag to compare

v2.1.0-beta.2 Pre-release
Pre-release

Changelog

Highlights

Action transforms

Action transforms are used to perform arbitrary transformations to the HTTP request generated by an action.
This allows you to connect REST APIs and other existing APIs without writing any middleware/wrapper service.

You can transform the request method and the URL:

request-options-transformation1

You can also transform the request body:

example-transformation-21

Read more in the docs.

SQL Server Insert Mutations

Insert mutations for SQL Server are now supported. Other mutations will follow soon.

Root field name and type name customization per source (#6974)

When adding a source it is now possible to specify prefixes and suffixes
that will be added to all root field names and type names generated for that
source. It is also possible to specify a root "namespace" field to use for the
source. This can be done via *_add_source API and console support will be released soon.

Function field names customization (#7405)

It is now possible to specify the GraphQL names of tracked SQL functions in
Postgres sources, and different names may be given to the _aggregate and
suffix-less versions. Aliases may be set by both
/v1/metadata/pg_track_function and the new API endpoint
/v1/metadata/pg_set_function_customization.

Bug fixes and improvements

  • server: do not recreate event triggers if tables haven't changed on reloading metadata
  • server: moves request_transform into the Action Definition the create_action metadata API call.
  • server: call auth webhooks even when the request is malformed JSON or otherwise fails to parse (close #7532)
  • server: updates kriti to v0.2.1 which adds an escapeUri function
  • server: add cascade option to mssql_run_sql metadata API
  • server: fix bug which recreated event triggers every time the graphql-engine started up
  • server: fix bug in OpenAPI when multiple REST endpoints have the same URL path but different method
  • server: add support for GraphQL block strings
  • server: Correctly translate permissions on functions to SQL (#7617)
  • server: add transformed request to action error responses
  • server: allow nullable action responses (#4405)
  • server: add support for openapi json of REST Endpoints
  • server: enable inherited roles by default in the graphql-engine
  • server: support MSSQL insert mutations
  • server: fix bug in OpenAPI when multiple REST endpoints have the same URL path but different method
  • console: design cleanup Modify and Add Table forms (close #7454)
  • console: enable custom graphql root fields for mssql under modify tab
  • console: allow dropping indices on all schemas
  • console: fix bug with displaying 1-to-1 relationship with the same column mapping (close #7552)
  • console: add request transforms for actions
  • console: fix v2 metadata imports
  • console: design cleanup Modify and Add Table forms (close #7454)
  • console: enable custom graphql root fields for mssql under modify tab
  • cli: split remote schema permissions metadata into seperate files (#7033)
  • cli: support action request transforms in metadata
  • cli: make --database-name optional in migrate subcommands when using a single database (#7434)
  • cli: support absolute paths in --envfile (#5689)

v2.0.10

19 Oct 08:15

Choose a tag to compare

Changelog

  • server: fix bug which recreated event triggers every time the graphql-engine started up
  • server: remove identity notion for table columns (fix #7557)
  • console: add performance fixes for handling large db schemas

v2.1.0-beta.1

30 Sep 11:25

Choose a tag to compare

v2.1.0-beta.1 Pre-release
Pre-release

Changelog

This is the first beta release for v2.1.0

  • server: Ignore unexpected fields in action responses (#5731)
  • server: add webhook transformations for Actions and EventTriggers
  • server: optimize SQL query generation with LIMITs
  • server: add GraphQL request query in the payload for synchronous actions
  • server: improve the event trigger logging on errors
    NOTE: This change introduces a breaking change, earlier when there
    was a client error when trying to process an event, then the status was reported as 1000. Now, the status will be NULL if there is no status received from the webhook.
  • server: support extensions field in error responses from action webhook endpoints (fix #4001)
  • server: fix custom-check based permissions for MSSQL (#7429)
  • server: remove identity notion for table columns (fix #7557)
  • server: support MSSQL transactions
  • server: log individual operation details in the http-log during a batch graphQL query execution
  • server: update create_scheduled_event API to return event_id in response
  • server: fix bug which allowed inconsistent metadata to exist after the replace_metadata API even though allow_inconsistent_object is set to false.
  • server: fix explicit null values not allowed in nested object relationship inserts (#7484)
  • server: introspect_remote_schema API now returns original remote schema instead of customized schema
  • server: prevent empty subscription roots in the schema (#6898)
  • server: support database-to-database joins (for now, limited to Postgres as the target side of the join)
  • server: add support for user comments for trackable functions (#7490)
  • console: support tracking of functions with return a single row
  • console: add GraphQL customisation under Remote schema edit tab
  • console: fix cross-schema array relationship suggestions
  • console: add performance fixes for handle large db schemas
  • console: fix missing cross-schema computed fields in permission builder
  • cli: add support for network metadata object
  • cli: hasura migrate apply --all-databases will return a non zero exit code if operation failed on atleast one database (#7499)
  • cli: migrate create --from-server creates the migration and marks it as applied on the server
  • cli: support query_tags in metadata
  • cli: add hasura deploy command
  • cli: allow exporting and applying metadata from yaml/json files
  • cli: allow squashing specific set of migrations. A new --to flag is introduced in migrate squash command. eg: hasura migrate squash --from <v1> --to <v4>

v2.0.9

07 Sep 09:48

Choose a tag to compare

Changelog

  • server: disable mutation for materialised views (#6688)
  • server: set tracecontext and userInfo for DML actions on Postgres sources (fixes #7087)
  • server: add support for connection_parameters on pg_add_source API
  • cli: add progress bar for migrate apply command (#4795)
  • cli: embed cli-ext for windows binaries (#7509)