github hasura/graphql-engine v2.5.0-beta.1

latest releases: v2.45.0-beta.1, cli/v2.45.0-beta.1, v2.44.0...
pre-release2 years ago

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 and set_table_customization metadata APIs has been deprecated in favour of the new column_config property. custom_column_names will still work for now, however, values used in column_config will take precedence over values from custom_column_names and any overlapped values in custom_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

Don't miss a new graphql-engine release

NewReleases is sending notifications on new releases.