Releases: hasura/graphql-engine
v2.5.0-beta.1
Changelog
Remote relationships from remote schemas
This release adds three new metadata API commands:
create_remote_schema_remote_relationshipupdate_remote_schema_remote_relationshipdelete_remote_schema_remote_relationship
that allows to create remote relationships between remote schemas on
the left-hand side and databases or remote schemas on the right-hand
side. Both use the same syntax as remote relationships from databases:
type: create_remote_schema_remote_relationship
args:
remote_schema: LeftHandSide
type_name: LeftHandSideTypeName
name: RelationshipName
definition:
to_remote_schema:
remote_schema: RightHandSideSchema
lhs_fields: [LHSJoinKeyName]
remote_field:
rhsFieldName:
arguments:
ids: $LHSJoinKeyName
type: create_remote_schema_remote_relationship
args:
remote_schema: LeftHandSide
type_name: LeftHandSideTypeName
name: RelationshipName
definition:
to_source:
source: RightHandSideSource
table: {schema: public, name: RHSTable}
relationship_type: object
field_mapping:
LHSJoinKeyName: RHSColumnNameSimilarly to DB-to-DB relationships, only Postgres is supported on
the right-hand side for now.
Deprecations
- The
custom_column_namesproperty of TableConfig used on<db>_track_tableandset_table_customizationmetadata APIs has been deprecated in favour of the newcolumn_configproperty.custom_column_nameswill still work for now, however, values used incolumn_configwill take precedence over values fromcustom_column_namesand any overlapped values incustom_column_nameswill be discarded.
Behaviour Changes
-
cli: use indentation of 2 spaces in array elements of metadata YAML files
Example:
Old behaviour metadata/query_collections.yaml
New behaviour metadata/query_collections.yaml
- name: allowed-queries definition: queries: - name: getAlbums query: | query getAlbums { albums { id title } }- name: allowed-queries definition: queries: - name: getAlbums query: | query getAlbums { albums { id title } }This change is a result of fixing some inconsistencies and edge cases in writing array elements.
hasura metadata exportwill write YAML files in this format going forward. Also, note that this is a backwards compatible change. -
cli: change ordering of elements in metadata files to match server metadata
Example:
Server Metadata (JSON) Old behaviour (YAML) New Behaviour (YAML) { "function": { "schema": "public", "name": "search_albums" } }function: name: search_albums schema: publicfunction: schema: public name: search_albums
Bug fixes and improvements
- server: improve error messages in BigQuery upstream API exceptions
- server: Fix regression in MSSQL subscriptions when results exceed 2048 characters (#8267)
- server: refactor OpenAPI spec generation (for REST endpoints) and improve OpenAPI warnings
- server: add jsonb to string cast support - postgres (#7818)
- server: improve performance of fetching postgres catalog metadata for tables and functions
- server: Queries present in query collections, such as allow-list and rest-endpoints, are now validated (fixes #7497)
- server: improve SQL generation for BigQuery backend queries involving
Orderby. - server: fix regression where remote relationships would get exposed over Relay, which is unsupported
- server: add support for customising the GraphQL schema descriptions of table columns in metadata
- server: column presets for SQL Server were broken and consequently insert and upsert mutations were failing with constraint violations. This change fixes this behavior (#8221).
- server: fix caching bug with session variables in remote joins
- server: fix regression where JWKs are refreshed once per second when both must-revalidate and max-age are specified in the Cache-Control header (#8299)
- server: respect custom field names in delete, insert and update mutations on SQL Server (#8314)
- console: enable searching tables within a schema in the sidebar
- console: add support for setting comments on the custom root fields of tables/views
- console: add feature flags section in settings
- console: improved support for setting comments on computed fields
- console: fix the ability to create updated_at and created_at in the modify page (#8239)
- console: fix an issue where editing both a column's name and its GraphQL field name at the same time caused an error
- console: fix redirect to metadata status page on inconsistent inherited role (#8343)
- console: fix malformed request with REST live preview section (#8316)
- cli: add support for customization field in sources metadata (#8292)
- cli: fix inherited roles metadata not being updated when dropping all roles (#7872)
- ci: ubuntu and centos flavoured graphql-engine images are now available
v2.4.0
Changelog
- server: add custom function for case insensitive lookup in session variable in request transformation (#7953)
- server: add metadata inconsistency information in reload_metadata API call (#8129)
- server: Webhook Transforms can now delete request/response bodies explicitly. (#7937)
- server: Fix truncation of session variables with variable length column types in MSSQL (#8158)
- server: improve performance of
replace_metadatafor large schemas - server: improve baseline memory consumption for typical workloads
- server: fix parsing timestamp values in BigQuery backends (fix #8076)
- server: add support for customising the GraphQL schema descriptions of table root fields
- server: add a
request_headersfield to thetest_webhook_transformAPI. - console: include cron trigger with include in metadata as false on cron trigger manage page (#8017)
- console: show an error notification if Hasura CLI migrations fail
- console: fixed an issue where cron triggers were not removed from the list after deletion
- console: only show tables from current schema in clone permissions section
- console: provide checkbox to remove body in rest connectors (#7937 )
- cli: fix metadata version being set to 3 when doing
hasura init --version 2(#8148)
v2.4.0-beta.3
Changelog
This releases fixes a regression introduced in an earlier 2.4.0-beta release.
- server: fix regression in MSSQL subscriptions when results exceed 2048 characters (fixes #8267)
v2.4.0-beta.2
Changelog
- server: fix regression where remote relationships would get exposed over Relay, which is unsupported
v2.3.1
Changelog
This patch release contains the following fix:
- server: fix regression where remote relationships would get exposed over Relay, which is unsupported
v2.2.2
Changelog
This patch release contains the following fix:
- server: fix regression where remote relationships would get exposed over Relay, which is unsupported
v2.4.0-beta.1
Changelog
Bug fixes and improvements
- server: add custom function for case insensitive lookup in session variable in request transformation
- server: Webhook Transforms can now delete request/response bodies explicitly.
- server: Fix truncation of session variables with variable length column types in MSSQL (#8158)
- server: improve performance of
replace_metadatafor large schemas - server: improve baseline memory consumption for typical workloads
- server: fix parsing timestamp values in BigQuery backends (fix #8076)
- server: add support for customising the GraphQL schema descriptions of table root fields
- server: add a
request_headersfield to thetest_webhook_transformAPI. - console: include cron trigger with include in metadata as false on cron trigger manage page
- console: show an error notification if Hasura CLI migrations fail
- console: fixed an issue where cron triggers were not removed from the list after deletion
- console: only show tables from current schema in clone permissions section
- console: provide checkbox to remove body in rest connectors
- cli: fix metadata version being set to 3 when doing
hasura init --version 2(#8148)
v2.3.0
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_transformmetadata 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.
- server: fix issues working with read-only DBs by reverting the need for storing required SQL functions in a
hdb_libschema in the user's DB - server: Fix experimental sql optimization read from
HASURA_GRAPHQL_EXPERIMENTAL_FEATURESor--experimental-features - 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-verifyflag is set (fix #4926)
v2.3.0-beta.3
Changelog
- server: Fix experimental sql optimization read from
HASURA_GRAPHQL_EXPERIMENTAL_FEATURESor--experimental-features