github hasura/graphql-engine v2.16.0

latest releases: v2.45.0-beta.1, cli/v2.45.0-beta.1, v2.44.0...
23 months ago

Changelog

Highlights

Import OpenAPI endpoint as an action (Enterprise edition only)

This console feature makes it easy to import an endpoint with an OpenAPI definition as a Hasura Action. It allows you to upload or paste the OpenAPI definition (json or yaml), and it will automatically convert this into action definition. This is an alpha release of the feature and requires enabling of feature flag to try it out (Settings -> Feature Flags -> Import action from OpenAPI).

Subscriptions on CockroachDB and Citus

Support added for Subscriptions (Live Queries and Streaming Subscriptions) on CockroachDB & Citus databases

Two new metrics are added for event triggers to Prometheus: (Enterprise edition only)

Prometheus metric Meaning of the metric
hasura_event_fetch_time_per_batch_seconds polling latency of fetching events ie. the time required to fetch a batch of event triggers from the database
hasura_event_processing_time_seconds the time required to execute the webhook call for an event trigger ie. the time when an event is picked for delivery to the time its status is updated in the DB

Validations for Response Transforms

Response Transforms will now be validated for the following metadata API endpoints:

  • create_event_trigger
  • create_cron_trigger
  • create_action
  • update_action
  • test_webhook_transform

As a result, now both request and response transforms will be validated for the above metadata API endpoints.

New 'toggle all' button to select all the columns for update operation event triggers.

  • Create Event:

    Screenshot 2022-11-04 at 12 14 40 PM
  • Edit Event:

    Screenshot 2022-11-04 at 12 15 10 PM

Control log spamming of JWK refreshes

Many JWK providers have a Cache-Control policy which makes Hasura refresh them every second and pollute the logs. Before this release, the jwk-refresh-log type was not configurable. Now, jwk-refresh-log type has been added as a configurable log type, so that users can disable it in case their logs are getting spammed. To prevent a breaking change for existing users, we have also added jwk-refresh-log type to default enabled log types. (related to #8611)

Behaviour changes

Request/response transform template validation error for Rest Connectors

Updates the request/response template validation error (for create_event_trigger, create_cron_trigger, create_action, update_action and test_webhook_transform metadata APIs):

  • The HTTP status code has been changed from 200 to 400 for metadata APIs with wrong transformation templates.
  • The response body has been changed to be uniform across the metadata APIs.

Example, for response for a wrong transformation template:

Old behaviour New behaviour
HTTP status code: 200
Response:
[
  {
    "error_code": "Parse Error",
    "message": "Unexpected token '}'.",
    "source_position": {
      "end_column": 15,
      "end_line": 0,
      "start_column": 14,
      "start_line": 0
    }
  }
]
         
HTTP status code: 400
Response:
{
  "code": "validation-failed",
  "error": "request transform validation failed",
  "path": "$.args",
  "internal": [
    {
      "error_code": "Parse Error",
      "message": "Unexpected token '}'.",
      "source_position": {
        "end_column": 15,
        "end_line": 0,
        "start_column": 14,
        "start_line": 0
      }
    }
  ]
}
        

Bug fixes and improvements

Server

  • Fix streaming subscription input type names for graphql-default
  • Support use of kriti template to generate query param for request transform from list of arguments.
  • Add option to enable/disable event triggers on logically replicated tables
  • Fix bug when an enum was used as a variable on a remote schema that has a custom prefix or suffix (fixes #9219)
  • Hasura was incorrectly omitting 'all' scalar types and so it caused the printed schema to be invalid preventing users from using the new experimental support for Apollo federation. Now, as a fix we have removed all the 'built-in' scalars from our schema while keeping the 'custom' scalars. As a result, it should work for custom scalars such as UUID. (fixes #9115).
  • Previously while creating an event trigger with Heroku instance, users were getting an error “Extensions can only be created on heroku_ext schema”. Now, we are making it easy for users to quickly resolve the error by providing a hint in the error message - “pgcrypto can only be created in heroku_ext schema. Hint: You can set \"extensions_schema\” (related to #8734).
  • Introduce a new experimental feature flag hide_stream_fields which toggles off streaming features, to be used if these cause schema type name conflicts.
  • Renaming get_event_invocations API to get_scheduled_event_invocations. The get_event_invocations API endpoint is not used for event trigger invocations, but for scheduled event invocations, thus the renaming.
  • Add Prometheus metric for Postgres connection pool utilization (Enterprise edition only)

Console

  • Fix filter, sort, and pagination on nested browse rows views.
  • Show roles created from allow list on Data, Remote Schema and Action permission tables
  • Adds Enable Naming Convention checkbox to enable/disable naming convention in the GraphQL Field Customization section of Connect Database page.
  • Restore the Custom Tracking Table modal, in case of naming conflicts
  • Fix clone row with primary key, enums, boolean (fixes #9248, #9254, #9253)

Build

  • debian based images are no longer built, only Ubuntu is supported.

Don't miss a new graphql-engine release

NewReleases is sending notifications on new releases.