Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
We're thrilled to announce the alpha release of Hasura V3! 🎉
@include
and @skip
for fields.{{argument_name}}
syntaxThis release marks the initial phase of our alpha rollout. Please note that Hasura V3 is still in its early stages and has limited functionality. We encourage feedback, bug reports, and contributions from the community to help us shape the future of this project.
We're excited to have you on board as we embark on this journey together.
Your participation and feedback are invaluable as we work towards more updates and exciting features in the upcoming releases! 🚀
We have fixed GraphQL query validation where queries that assigned a null
value to a variable with a declared non-nullable type were previously allowed.
For example:
query ($user_id: Int!) {
users(where: {id: {_eq: $user_id}}){
id name
}
}
{
"user_id": null
}
Now, queries with this aforementioned condition will be properly invalidated and rejected.
Since, it is a behavior change, we are introducing a server option to preserve the old behavior when either of the following are set to true
:
HASURA_GRAPHQL_BACKWARDS_COMPAT_NULL_IN_NONNULLABLE_VARIABLES
--null-in-nonnullable-variables
The above configuration is optional, and the default value is false
i.e, new fixed behavior is applied
pg_dump
version has been upgraded to v16, so that it can extract data from PostgreSQL 16 databases.hide_aggregation_predicates
and hide_stream_fields
experimental features are enabled.hasura/graphql-data-connector
image now supports all non-root user IDs and groupsRedHat UBI-based graphql-engine docker images are now available.
hasura/graphql-engine:v2.36.0-beta.1.ubi
hasura/graphql-engine:v2.36.0-beta.1.cli-migrations-v2.ubi
hasura/graphql-engine:v2.36.0-beta.1.cli-migrations-v3.ubi
This is a patch release for v2.35
include_schemas
configuration option. (Cloud / Enterprise edition only)
hasura/graphql-data-connector
. (Enterprise edition only)
We have fixed GraphQL query validation where queries that assigned a null
value to a variable with a declared non-nullable type were previously allowed.
For example:
query ($user_id: Int!) {
users(where: {id: {_eq: $user_id}}){
id name
}
}
{
"user_id": null
}
Now, queries with this aforementioned condition will be properly invalidated and rejected.
Since, it is a behavior change, we are introducing a server option to preserve the old behavior when either of the following are set to true
:
HASURA_GRAPHQL_BACKWARDS_COMPAT_NULL_IN_NONNULLABLE_VARIABLES
--null-in-nonnullable-variables
The above configuration is optional, and the default value is false
i.e, new fixed behavior is applied
pg_dump
version has been upgraded to v16, so that it can extract data from PostgreSQL 16 databases.hide_aggregation_predicates
and hide_stream_fields
experimental features are enabled.hasura/graphql-data-connector
image now supports all non-root user IDs and groupsRedHat UBI-based graphql-engine docker images are now available.
hasura/graphql-engine:v2.36.0-beta.1.ubi
hasura/graphql-engine:v2.36.0-beta.1.cli-migrations-v2.ubi
hasura/graphql-engine:v2.36.0-beta.1.cli-migrations-v3.ubi
Adds a model count summary page to the data tab to easily see the count of tables, collections, and logical models available in your metadata.
The Server
HTTP header is no longer included in server responses by default. This change enhances security by withholding potentially sensitive information about the server version that could aid attackers in identifying known security vulnerabilities. This new default behavior aligns with the recommendations in RFC 2068.
Disallow subscriptions on fields using remote relationship permission.
Date parsing for query inputs for MongoDB queries is changed from RFC 3339
to ISO 8601
.
Fix an issue where Event Triggers for MS SQL Server failed for tables with columns named after reserved words.
Allow relationship mappings to contain paths to fields of nested objects in document databases such as MongoDB.
Using '
for strings is the only method guaranteed to function on MySQL. The behavior of "
is dictated by the ANSI_QUOTES
setting: https://dev.mysql.com/doc/refman/8.2/en/sql-mode.html#sqlmode_ansi_quotes
This was causing errors during introspection:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\"$[*]\" COLUMNS(schemaname VARCHAR(255) PATH \"$.s\", tablename VARCHAR(255) PATH \"' at line 14"
Add $session_variables
to the context of response transforms.
PostgreSQL 16 is now officially supported.
PostgreSQL 11 is no longer officially supported, as it will be end of life as of November 9, 2023. Hasura GraphQL Engine will continue working with PostgreSQL 11 but functionality may break in the future.
Adds a new Environment Variable HASURA_GRAPHQL_ASYNC_ACTIONS_FETCH_BATCH_SIZE
(async-actions-fetch-batch-size
) which sets the number of asynchronous action requests processed at a time (default: 10).
Fix issue with SQL Server not being able to deal with large results when the target of a remote relationship.
Disabled polling of the database when HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL = 0
. This prevents continuous polling by the event trigger.
Added the _like
and _nlike
operators to the supported list of operators in BigQuery permissions.
Support a new template_variables
configuration property for Data Connector sources that allows the definition of variables, the values of which can be read from files. The intended use case is for environments that rotate secrets frequently, where otherwise we would have to restart. The environment variable HASURA_GRAPHQL_DYNAMIC_SECRETS_ALLOWED_PATH_PREFIX
must be set to enable this feature and limits access to the file system. (Community / Enterprise edition only)
Add PostgreSQL and CockroachDB datasource dynamic_from_file
configuration. Whenever a new connection is established, Hasura will read the connection string found in the configuration file to establish the connection. The intended use case is for environments that rotate secrets frequently, where otherwise, we would have to restart. To use this feature, HASURA_GRAPHQL_DYNAMIC_SECRETS_ALLOWED_PATH_PREFIX
must also be set and non-empty. To get the same dynamic behavior for the metadata database, we now support setting HASURA_GRAPHQL_METADATA_DATABASE_URL=dynamic-from-file:///path/to/file
. (Community / Enterprise edition only)
Add support for OpenTelemetry OTLP log export. (Cloud / Enterprise edition only)
Add support for W3C Trace Context propagation for OpenTelemetry. (Cloud / Enterprise edition only)
Adds new Prometheus metrics hasura_http_request_bytes_total
and hasura_http_response_bytes_total
. (Cloud / Enterprise edition only)
Support env template for OpenTelemetry attributes. (Cloud / Enterprise edition only)
Fix the source health check /healthz/sources
API, where the health check for sources whose database URL is specified as an environment variable always results in a FAILED
state. (fix #9904) (Cloud only)
*
wildcard is used instead of explicitly listing all column names.$oid
and $date
objects.array
type introspection.The naming_convention
experimental feature now also covers:
on_conflict
upserts.Since these changes are breaking by nature, their use is gated by a feature flag, which can be enabled by setting the environment variable HASURA_FF_NAMING_CONVENTION_SEP_2023=True
.
(partially fixes: #8929)
Add support for environment variable templating in OpenTelemetry endpoint URLs. (Cloud / Enterprise edition only)
Fix a memory leak in EE wherein data would accumulate in memory at each replace_metadata
call. (Enterprise edition only)
Data
Tab's Permissions
section.Data
tab.This is a patch release for v2.11
null
value to a variable with a declared non-nullable type were previously allowed. Now, queries with this aforementioned condition will be properly invalidated and rejected.