All Versions
101
Latest Version
Avg Release Cycle
18 days
Latest Release
-

Changelog History
Page 3

  • v2.6.0-beta.1 Changes

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ“‡ The query and raw-query field from http-logs for metadata requests are removed by default. Use HASURA_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
  • 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 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

    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 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)
    • ๐Ÿ›  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 the test_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 the test_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)
  • v2.3.1 Changes

    • ๐Ÿ‘ server: fix regression where remote relationships would get exposed over Relay, which is unsupported