github hasura/graphql-engine v2.18.0

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

Changelog

Highlights

Dynamically route GraphQL requests to different database connections of a Postgres source

Before this release, Hasura only executed queries against a connection that was configured when the source is added in the metadata. In this release we provide an extention to the graphql-engine where a query can be executed against a dynamically (during runtime) resolved connection. Currently this is configurable only via the metadata API or the CLI.

The configuration object of Postgres source metadata now accepts the following new fields:

  1. connection_set - A set of database connections to which the GraphQL queries can be routed to.
  2. connection_template - A Kriti template in which the routing logic is defined using various request parameters like session variables, client headers etc.

Find a sample Postgres source metadata here. A new query type, pg_test_connection_template is introduced in metadata API to test connection template of a Postgres source. Learn more about the API here.

Runtime behavior: Connection template, if configured, is resolved for all non-admin GraphQL requests and the SQL generated is executed on the resolved connection.

Please refer to the RFC at #9310 to learn more about the feature and current limitations. Below is an example of metadata configuration of connection set and connection template:

image

Export Traces in the OpenTelemetry format (Beta) (Enterprise edition only)

Traces are generated by instrumenting application code. Hasura has instrumented all API queries, mutations and subscriptions with the OpenTelemetry format. These traces can be exported directly from your Hasura instances to your observability tool that supports OpenTelemetry traces. This can be configured in the Settings section of the Hasura Console. For more information please refer to the docs.

OpenTelemetry Configuration

One Click Deploy to Hasura Cloud

This new feature enables you to quickly try out sample applications on Hasura Cloud with just a click. It takes the
Hasura metadata, migrations and seeds from a GitHub repository and creates a new Hasura Cloud project to instantly
try out the generated GraphQL API of the sample application. Check out the workflow in our docs.

If you’re working on a cool project that you’d like to share with the community to try out, you can also create a
sample application and enable One Click deploy on it using our deploy button! Check out more on this in our docs.

Try out some sample apps from the Hasura Hub!

One Click Deploy

Support for string query parameters in actions, event and cron triggers

Added console support for string query parameters in actions, event and cron triggers request transforms. This is a follow up enhancement to a previous metadata API enhancement of supporting arrays in query parameters. One example of using string query parameters is to import a REST endpoint such as GET/resource/findByTags via Actions.

Screenshot 2023-01-10 at 4 12 37 PM

Bug fixes and improvements

Server

  • Log the statistics of event trigger and scheduled trigger events fetched under event-trigger-process and scheduled-trigger-process log types respectively, for every 10 minutes.
  • Fix a tracing issue where errors sometimes prevented enclosing spans from being reported (Cloud / Enterprise edition only)
  • Adjusting the *_suggest_relationships Metadata API to provide contextual constraint_name keys.
  • Fix next_retry_at for MSSQL event triggers and update the timezone of created_at and locked columns to UTC.
    Note: The default value of created at is altered for tables event_log and event_invocation_logs. After source migration, earlier events might be delayed or deliver earlier depending on the timezone of the SQL server.
  • Changes the list_source_kinds metadata API to return per-agent availability information rather than fail the API call.
  • Few new fields added to the livequery-poller-log log:
    • a kind field, which indicates if its a streaming subscription or a live-query subscription.
    • a new field db_execution_time to replace pg_execution_time, and intent to deprecate pg_execution_time in the future. With this change pg_execution_time will only be present only for vanilla PG backends (i.e. not in Cockroach, Citus etc.)
    • a new field subscription_options to replace live_query_options, and intent to deprecate live_query_options in the future. With this change live_query_options will only be present for live-query subscriptions.
  • Fix handling of special language characters in MS SQL Server event trigger payload (fixes: #9293, #8747)

Console

  • Fix editing columns with bigint arrays, when the column was not touched
  • Add console support for string query parameters in actions, event and cron triggers request transforms
  • Load filter and sort conditions from URL and preserve them while switching between tables.

CLI

  • Add EE support in CLI console (Enterprise edition only)
  • Fix broken CLI console when server console is disabled and local console assets are being used (fix #9378)
  • Support migrations for Cockroach DB in CLI Console
  • Add a new flag --console-hge-endpoint to hasura console command that allows the CLI console to be correctly configured when running the CLI inside of a container. (fix #2824)
  • Make the version update notifications when running Hasura CLI commands non-blocking (fix #9367)

Data Connectors

  • Added connection parameters to Snowflake connect strings to indicate that connections were initiated by Hasura. (Cloud / Enterprise edition only)
  • Bugfix for failure of the super-connector to properly order results based on a single column aggregate. (Cloud / Enterprise edition only)
  • Adding a new Data Connectors /datasets API for creating new databases from templates. For more information, see dc-agents/README.md.
  • Remove builtin scalar types from Data Connector backend. This means that HGE no longer assumes that all Data Connector agents support a minimal set of scalar types (number, string, and bool) or any particular aggregate functions. All scalar types, must now be explicitly specified in the agent capabilities, along with any aggregate functions they support.

Don't miss a new graphql-engine release

NewReleases is sending notifications on new releases.