Changelog
Experimental SQL optimizations
Row-level permissions are applied by a translation into SQL WHERE
clauses. If
some tables have similar row-level permission filters, then the generated SQL
may be repetitive and not perform well, especially for GraphQL queries that make
heavy use of relationships.
This version includes an experimental optimization for some SQL queries. It
is expressly experimental, because of the security-sensitive nature of the
transformation that it applies. You should scrutinize the optimized SQL
generated by this feature before using it in production.
The optimization can be enabled using the
--experimental-features=optimize_permission_filters
flag or the
HASURA_GRAPHQL_EXPERIMENTAL_FEATURES
environment variable.
Breaking changes
- Computed field comments are now used as the description for the field in the GraphQL schema. This means that computed fields where the comment has been set to empty string will cause the description of the field in the GraphQL schema to also be blank. Setting the computed field comment to null will restore the previous auto-generated description. The previous version of the Console would set the comment to empty string if the comment textbox was left blank, so some existing computed fields may unintentionally have empty string set as their comment.
Bug fixes and improvements
- server: validate saved REST endpoint queries wrt schema
- server: improved error reporting for env vars in
test_webhook_transform
metadata API endpoint - server: extend allowlist metadata with scope information, new command
update_scope_of_allowlist_in_metadata
- server: (Postgres, Citus, and MSSQL backends) Identity columns and computed
columns are now marked immutable, removing them from the schema of insert and
update mutations. - server: allow inserting more than 1 row simultaneously into table with generated columns (fix #4633)
that have generated columns in Postgres. - server: postgres: return a single entry per row (selected randomly) when an object relationship has multiple matches (fix #7936)
- server: Updates Kriti to v0.3.0
- server: add operation name in the request sent to remote schemas
- server: add support for scalar response types for actions (fix #7805)
- server: fix nullable action response (fix #4405)
- server: add support for customization of table & computed field GraphQL schema descriptions (fix #7496)
- server: classify MSSQL exceptions and improve API error responses
- server: MSSQL generates correct SQL when object relationships are null.
- console: add support for remote database relationships
- console: enable support for update permissions for mssql
- cli: skip tls verIfication for all API requests when
insecure-skip-tls-verify
flag is set (fix #4926) - server: fix issues working with read-only DBs by reverting the need for storing required SQL functions in a
hdb_lib
schema in the user's DB - server: Fix experimental sql optimization read from
HASURA_GRAPHQL_EXPERIMENTAL_FEATURES
or--experimental-features