Changelog History
Page 3
-
v2.6.0-beta.1 Changes
๐ฅ Breaking changes
- ๐ The
query
andraw-query
field from http-logs for metadata requests are removed by default. UseHASURA_GRAPHQL_ENABLE_METADATA_QUERY_LOGGING
to renable those fields.
๐ Bug fixes and improvements
- server: Fix BigQuery overflow issue when using Decimal/BigDecimal data type.
- server: remove 'query' and 'raw-query' field from logs for metadata queries by default. Use
HASURA_GRAPHQL_ENABLE_METADATA_QUERY_LOGGING
to renable those fields. - ๐ server:
clear_metadata
now correctly archives event triggers and the drop source API drops indirect dependencies created by remote relationships when the dependent source is dropped. - server: fix inserting values into columns with case sensitive enum types for PostgreSQL/Citus backends (fix #4014)
- server: remote relationships can be defined on and to Microsoft SQL Server tables
- ๐ server: fix issues with JSON key encoding for remote schemas (fixes #7543 and #8200)
- server: fix Microsoft SQL Server insert mutation when relationships are used in check permissions (fix #8225)
- ๐จ server: refactor GraphQL query static analysis and improve OpenAPI warning messages
- server: avoid a resource leak when connecting to PostgreSQL fails
- ๐ console: add support for setting aggregation query permissions for Microsoft SQL Server
- ๐ console: add support for RS-to-DB and RS-to-RS joins to Remote Schemas tab
- ๐ console: removed the need for clicking the Modify btn before editing a remote schema (#1193, #8262)
- ๐ cli: fix remote schema metadata formatting issues (#7608)
- ๐ cli: fix query collections metadata formatting issues (#7616)
- ๐ docs: support for
graphql-ws
is considered GA
- ๐ The
-
v2.5.2 Changes
- ๐จ server: refactor insert mutations IR use of "default values" (fixes #8443)
-
v2.5.1 Changes
Known issue
0๏ธโฃ SQL Server: Mutation: Default values overwritten on insert under certain conditions. Will be addressed in 2.5.2 and 2.6.1.
๐ Bug fixes and improvements
- ๐ server: fixes remote relationships on actions (fix #8399)
- server: validate top level fragments in GQL query
- ๐ cli: fix performance regression in
migrate status
command (fix #8398)
-
v2.5.0 Changes
Remote relationships from remote schemas
๐ This release adds three new metadata API commands:
create_remote_schema_remote_relationship
update_remote_schema_remote_relationship
delete_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: RHSColumnName
๐ Similarly to DB-to-DB relationships, only
Postgres
is supported on the right-hand side for now.๐ Deprecations
- The
custom_column_names
property of TableConfig used on<db>_track_table
andset_table_customization
metadata APIs has been deprecated in favour of the newcolumn_config
property.custom_column_names
will still work for now, however, values used incolumn_config
will take precedence over values fromcustom_column_names
and any overlapped values incustom_column_names
will 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 export
will 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: public function: schema: public name: search_albums
Streaming subscriptions
Streaming subscriptions can be used to subscribe only to the data which has been changed in the query. The streaming is done on the basis of a cursor, which is chosen by the user.
๐ฐ Request payload:
subscription GetUserLatestMessages ($user_id: uuid!) { messages_stream (cursor: {initial_value: {id: 0}, ordering: ASC}, batch_size: 1, where: {user_id: {_eq: $user_id}} ) { id from to } }
The above subscription streams the messages of the user corresponding to the
user_id
in batches of 1 message per batch.Suppose there are two messages to be streamed, then the server will send two responses as following:
Response 1:
{ "data": [ { "id": 1, "from": 155234, "to": 155523 } ] }
Response 2:
{ "data": [ { "id": 5, "from": 178234, "to": 187523 } ] }
๐ 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)
- ๐ console: fixed actions search to be case-insensitive
- ๐ 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.5.0-beta.1 Changes
Remote relationships from remote schemas
๐ This release adds three new metadata API commands:
create_remote_schema_remote_relationship
update_remote_schema_remote_relationship
delete_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: RHSColumnName
๐ Similarly to DB-to-DB relationships, only
Postgres
is supported on the right-hand side for now.๐ Deprecations
- The
custom_column_names
property of TableConfig used on<db>_track_table
andset_table_customization
metadata APIs has been deprecated in favour of the newcolumn_config
property.custom_column_names
will still work for now, however, values used incolumn_config
will take precedence over values fromcustom_column_names
and any overlapped values incustom_column_names
will 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 export
will 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: public function: 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)
- ๐ console: fixed actions search to be case-insensitive
- ๐ 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 Changes
๐ Bug fixes and improvements
- server: add custom function for case insensitive lookup in session variable in request transformation
- ๐ server: add metadata inconsistency information in reload_metadata API call
- 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_metadata
for 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_headers
field to thetest_webhook_transform
API. - ๐ 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.4.0-beta.3 Changes
- server: fix regression in MSSQL subscriptions when results exceed 2048 characters (#8267)
-
v2.4.0-beta.2 Changes
- ๐ server: fix regression where remote relationships would get exposed over Relay, which is unsupported
-
v2.4.0-beta.1 Changes
๐ Bug fixes and improvements
๐ (Add entries below in the order of server, console, cli, docs, others)
- ๐ server: add metadata inconsistency information in
reload_metadata
API call - server: add custom function for case insensitive lookup in session variable in request transformation
- server: Improved error messaging for
test_webhook_transform
metadata API endpoint - server: Webhook Tranforms can now produce
x-www-url-formencoded
bodies. - 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_metadata
for 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_headers
field to thetest_webhook_transform
API. - ๐ server: add support for relationships on nested action fields
- ๐ 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)
- ๐ server: add metadata inconsistency information in
-
v2.3.1 Changes
- ๐ server: fix regression where remote relationships would get exposed over Relay, which is unsupported