Changelog
Highlights
ClickHouse support (Beta)
We’re delighted to release the beta version of our ClickHouse data connector, which supports queries, table relationships, remote relationships, and permissions for ClickHouse.
For more information on how to set this up, please see our docs. This integration is built using Hasura Data Connectors.
Support remote source relationships in permissions
Hasura now supports using remote source relationships in permission predicates. This means you can now define permission based on a column from a remote Postgres source.
Limitations
-
The remote relationship predicate must follow the following template:
{ "<rel name>": { "<remote column name>": { "<op>": "<some session variable name or some literal text>" } } }
This implies the following:
- The remote relationship predicate can only be one level deep although, the predicate can be nested in an
_and
,_or
,_not
or_exists
node. - Only
_eq
,_neq
,_gt
,_lt
,_gte
,_lte
,_in
,_nin
,_like
,_nlike
and_is_null
operators are supported for comparing fields - Only columns from the remote source can be compared with session variables or literal text only.
- The remote relationship predicate can only be one level deep although, the predicate can be nested in an
-
The remote source relationship permission can only be defined for Postgres and data connector backends.
-
The remote source relationship RHS backend can be Postgres only.
Support for relationships between Tables and Native Queries
Hasura now allows returning data in a table along with related data returned from a Native Query using a nested GraphQL query.
Support for Logical Models & Native Queries on Snowflake (Cloud / Enterprise edition only)
Hasura now supports creating Logical Models & Native Queries on Snowflake data sources.
Behaviour changes
- Adds Native Query support for Data Connectors and implements the feature in SQLite and Snowflake agents. This change breaks backwards compatibility for the Data Connector Agent API, and as such, agents will need to be upgraded along with HGE.
Bug fixes and improvements
Server
- The Explain feature (also known as Analyze in the Hasura Console) now returns a full execution plan for SQL Server. Previously, the execution plan was not generated; only the generated SQL was shown.
- Fixes issue where
null
valued variables with customized types were causing a GraphQL exception from the upstream server (fix #9757). - Adds support for the
_contains
and_contained_in
operators for PostgreSQL arrays to be used with permissions. - Adds dynamic labels to Prometheus metric
hasura_websocket_messages_sent_bytes_total
. (Cloud / Enterprise edition only) - Adds new Prometheus metrics
hasura_postgres_connection_init_time
andhasura_postgres_pool_wait_time
. (Cloud / Enterprise edition only) - Adds new Prometheus/OpenTelemetry metrics for monitoring OTLP telemetry export:
hasura_otel_sent_spans
andhasura_otel_dropped_spans
. (Cloud / Enterprise edition only)
Console
- Adds a feature flag to enable Performance Mode on the Data Tab. Performance Mode offers a faster experience, especially with larger databases, but with fewer database authoring features.
- Fix saving permissions of string columns with numbers as value.
- Improve Remote Schema permissions UI by allowing search and more clearly displaying available types.
- Better descriptive error handling for Permissions on Logical Model and data-connector based databases.
- Add console support for adding and editing remote schema to Data Connector-based databases
- Fix issue with error handling on the table relationship UI for failed
bulk
responses. - Fix Apollo Federation UI to extend table types in other subgraphs.
- New MongoDB collection tracking flow added to the Console. (Cloud / Enterprise edition only)
- Add support for MongoDB nested objects in the permissions editor. (Cloud / Enterprise edition only)
CLI
- Adds support for Snowflake functions. Fixes metadata export failure where Snowflake UDFs are configured. (Cloud / Enterprise edition only)
Data Connectors
- Improved the performance of working with Data Connector-based data sources (such as Oracle, Snowflake, MySQL, MariaDB) that have many tables. Listing untracked tables in the Console is significantly faster, and tracking only a subset of all available tables is also significantly faster.