Changelog
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)
- 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