Changelog
Behaviour changes
-
In certain circumstances, all HTTP headers were included in the set of session variables. This has now been reduced to only the session variables. This change affects a number of areas, including the HTTP logs, query validation, JWT claims, rate limiting, and accessing session variables in Kriti code.
-
When
update_*_many
is given an empty list of updates, the result will now be an empty list, rather than an object. Previously, this meant that an empty list of updates would result in a result of the wrong type. -
In rare cases, sensitive headers were written to the GraphQL Engine logs. These cases are now handled correctly to avoid logging sensitive information.
Bug fixes and improvements
Server
-
Add field
ignored_client_headers
to Action definition to specify an explicit list of client headers to ignore when forwarding headers to the webhook handler. -
Add an experimental feature flag
remove_empty_subscription_responses
to filter empty responses in subscription queries for Postgres data sources. This should reduce Hasura-to-database and Hasura-to-client network overhead for users with many streaming subscriptions seeing empty results. -
Add an experimental feature flag
no_null_unbound_variable_default
to remove unbound nullable variables with no defaults from the query, as per the spec.For example, if
$unbound: String
is not given a variable assignment, the queryupdate_table({ _set: { column: $unbound }})
will not update any columns. -
Quote Postgres custom scalar types in SQL. This enables using custom type names that are not just lowercase identifiers.