这是indexloc提供的服务,不要输入任何密码
Skip to content

Releases: hasura/graphql-engine

v1.0.0-alpha26

26 Oct 19:30

Choose a tag to compare

v1.0.0-alpha26 Pre-release
Pre-release

Changelog

This release introduced a bug that caused auth webhooks to stop working. The issue has been fixed (see #894) and is released as alpha27. Please avoid upgrading to this release and update to 27 instead.

IMPORTANT This release breaks the order_by API. Please read these notes before upgrading.

Breaking changes:

The syntax of order_by changes from order_by: id_asc to order_by: {id: asc}. This is needed to support more powerful order_by arguments. See 2 in features.

Features

  1. Aggregations: Now you can do basic aggregations like count, sum, avg etc. using the GraphQL interface. For every table there will be a table_aggregate field:

    {
      articles_aggregate(where: {author_id: {_eq: 1}}) {
        aggregate {
          avg {
            rating
          }
          max {
            rating
          }
        }
      }
    }

    Every array relationship will also have an associated _aggregate field.

    You can also do counts for pagination

    {
      articles_aggregate(where: {title: {_ilike : "%hello%"}}) {
        aggregate {
          totalCount: count
        }
      }
      articles (where: {title: {_ilike : "%hello%"}} limit: 10) {
        id
        title
      }
    }

    Try them out in GraphiQL ! Aggregations are only enabled for non admin roles through select permissions.

  2. more powerful order by: Now you can order by an object relationships's columns too. This unforutanetly changes the syntax of order_by and we consider this a major breaking change. We couldn't add the new feature with the existing syntax. The syntax changes from order_by: id_asc to order_by: {id: asc}.

    For example, if you would like to sort articles based on author's name:

    {
      articles (order_by: {author: {name: asc}}) {
        id
        title
      }
    }
  3. column presets for insert: Often you would find yourself sending something like user_id from the client side during inserts even though it can be determined on the server from the Authorization header. In the insert permissions you can now configure to force set a column value to some value/or a value from a header. See #216.

  4. allow anonymous role without webhook: Sometimes you would like to assign a role (say anonymous) when a user is not authorized (say missing x-hasura-access-key or missing Authorization header in JWT mode). The server now allows you to specify a role in such instances with --unauthorized-role flag. #595

  5. capture user information in postgres: Often when adding triggers in Postgres to audit your tables you would also want the user information as seen by hasura. You can now access the user information with current_setting('hasura.user') in your pl/pgsql functions. See auditing tables.

  6. event triggers on update only happen when the specified columns change (close #547, close #680) (#550)

  7. retry-after header is respected if present in an event trigger response (#525)

Bug fixes

  • server: user information is now correctly logged in both http and websocket interfaces.
  • server: MultiPolygon GeoJSON types are now correctly parsed
  • cli: fix a typo in metadata command (#788)
  • console: add syntax highlighting for sql in query analysis (#819)
  • console: increase width of schema text section (fix #820) (#822)
  • console: quote schema identifier separately (close #837) (#838)

25th alpha release for v1.0.0

19 Oct 03:20

Choose a tag to compare

Pre-release

Changelog

New features

  • GraphQL queries can now be "analyzed" ⚡. Click the Analyze button on GraphiQL to see the generated SQL and the explain on it. Use it to do database level optimisations like adding indexes etc. (close #562) (#805)
  • CLI now has a metadata reload command, similar to the button on console settings page. Use it when you change something in the underlying Postgres. [This is a Hacktoberfest contribution 💪] (close #722) (#725)
  • When SQL is executed from the console, you can save them as a migration with a custom name [This is a Hacktoberfest contribution 💪] (close #541) (#750)

Fixes

  • Fixes a bug that caused nested object inserts to fail if the relation was to a non-update view. (fix #773) (#774)

Other changes

  • server: send 'completed' after an error when handling start in ws (close #671) (#776)
  • console: fix track table error when table name is immediately followed by '(' (close #717) #718)
  • console: track multiple instances of table/view in run sql (close #784) (#785)

24th alpha release for v1.0.0

12 Oct 13:31

Choose a tag to compare

Pre-release

Changelog

New features

  • If you have updatable views on Postgres, mutations are generated for insert/update/delete on them. (fix #232) (#339)
  • Server now accepts HASURA_GRAPHQL_ENABLE_CONSOLE environment variable to enable/disable console at /console endpoint. To enable, set the value true and set to false to disable. Note that the --enable-console flag takes precedence over this variable. (close #632) (#642)
  • New shortcut for executing SQL in console Ctrl+Enter (close #542)
  • Adds support for _is_null operator in permission rules (#700)

Fixes

  • Fixes a bug that caused identifier errors in event system when table/column names had mixed case letters. (fix #639) (#644)
  • Server now tracks init error on each websocket connection (close #682) (#683)
  • Fixes a bug that caused Postgres query error when the identifier names have > 63 characters, especially when queries are nested. (close #688) (#707)
  • Fixes a bug in the mutation argument validation logic that caused issues when invalid terms are present. (fix #693) (#711)

Other changes

  • server: upgrade stackage to 12.12 (#684)
  • cli: update help for metadata export command (#661)
  • console: add phantom div for update check banner (fix #271) (#665)
  • console: add clear access key button (close #486) (#675)
  • console: fix alert in cli mode without accesskey (close #536) (#588)
  • console: metadata button appears for custom versions (fixe #618) (#662)
  • console: insert row inputs respect null and default values (fix #545) (#589)
  • console: improve version check for server dependent features (close #388) (#676)
  • console: track table in run_sql handles schema name and table name separately (close #484) (#685)
  • console: add reset metadata button to settings page (close #515) (#673)
  • console: fix to append uriPrefix on schema change event (close #691) (#692)

23rd alpha release for v1.0.0

05 Oct 16:00

Choose a tag to compare

Pre-release

Changelog

Breaking changes

  • Postgres bigint and bigserial types are now encoded as GraphQL String in the response. Previously this was Int. This fix is required because GraphQL Int types are 32-bit signed integers while bigint and bigserial are 64-bit signed integers. (fix #633) (#640)

New features

  • Improved SQL generation which results in more readable output. (closes #6, #121, #278) (#643)
  • Insert mutations can now handle nested-data/relationships. An objects and it's related objects can be inserted by nesting them across relationships. Check docs for more info. (close #343) (#429)

Fixes

  • Fixes a bug in CLI that caused migrate create command to fail. (fix #585) (#586)
  • Fixes a bug on server that caused an error if an order_by column is not included in the returning fields (close #6) (#643)
  • Query response now respects the order of fields in the query. (close #121) (#643)
  • Fixes a bug that caused an error when the same relationship is aliased multiple times in a query. (close #278) (#643)

Other changes

  • server: add python based tests, remove haskell tests
  • server: generate coverage report for server tests (close #464) (#512)
  • console: ask for confirmation before deleting event triggers (close #599)
  • console: fix typo in proptypes validation (fixes #604) (#605)
  • console: add tooltip for upsert option under custom permissions (#546) (#566)
  • console: logo and favicon update on console (#627)
  • console: configuration list is alphabetical, add note in sql tab for down migrations (close #616) (close #617)
  • console: fix failing tests on console (#650)
  • console: enable redux-dev-tools if present in dev mode (closes #606) (#607)

22nd alpha release for v1.0.0

29 Sep 09:01

Choose a tag to compare

Pre-release

Changelog

New features

  • Console now allows adding relationship across different schemas (fix #526) (#533)

Fixes

  • Fixes a bug that caused migration from v1.0.0-alpha20 to v1.0.0-alpha21 to fail for Postgres user with restricted permissions. Earlier, hdb_views schema was dropped, now it is cleaned. (closes #567) (#568)
  • Fixes a bug that caused a non-admin upsert query to return affected_rows: 1 and [{column: null}] instead of affected_rows: 0 and []. (fix #563) (#565)
  • Fixes a bug that caused server to close websocket connections on initialisation error instead of sending he connection error message. (fix #537) (#572)

v1.0.0-alpha21

27 Sep 14:55

Choose a tag to compare

v1.0.0-alpha21 Pre-release
Pre-release

Changelog

Known issue

  • If GraphQL Engine is configured to connect to Postgres with a non-superuser role, migration will fail while upgrading to v1.0.0-alpha21. See #567 for more details. If you are connecting with a user that has restricted access, we recommend that you to migrate to the next release, skipping this one.

New Features

  • Server supports getting JWK from an external URL. Useful when the auth provider (like Firebase) rotate the keys frequently. Check docs for detailed info. (close #465) (#527)
  • Server supports setting request headers for event trigger webhooks. Custom headers can be set by mentioning them directly or by setting them as environment variable and they will be sent while triggering the webhook. (Console UI changes are pending: #523) (#419)
  • Server supports editing the settings for an event trigger. (Console UI changes are pending: #489) (#367)

Fixes

  • Fixes a bug that caused --project on CLI to behave inconsistently (close #552) (#557)
  • Server now accepts crs key to specify the Coordinate Reference System as accepted in GeoJSON 2008 spec. (closes #510) (#513)
  • Create extension commands in the server initialisation steps now explicitly sets the schema too. Earlier this had caused issues on Heroku Postgres and Amazon RDS. (fix #495) (#496)
  • Fixes some typos in the metadata command with CLI. (#493)
  • (Breaking) Removes s from query_execution_time in the server logs. The value should be treated as in seconds. You might have to change your log monitoring setup if you're relying on the presence of s. (close #509) (#553)
  • Fixes a bug that caused non-admin upsert queries to fail if the constraint name had capital letters. All constraint names are now quoted using quote_ident() in the insert trigger function definition. (fix #494) (#497)

Other changes

  • server (test): add tests for subscription (#487)
  • console: take access key from redux state (#514)
  • console: fixes (close #406) (close #491) (#522)
  • console: update contributing guide and change mode hasuradb to server (close #517) (#538)

20th alpha release for v1.0.0

26 Sep 08:18

Choose a tag to compare

Pre-release

Changelog

  • community: add json2graphql to tools (#454)
  • server: add python based tests (#387)
  • server: payload is now optional in connection_init message (close #470) (#471)
  • server: dont set non-null constraint for manual object relationships (close #462)
  • server: allow _is_null operator for filter/check permissions (close #456) (#477)

19th alpha release for v1.0.0

14 Sep 14:03

Choose a tag to compare

Pre-release

Changelog

  • console: export event triggers component (#386)
  • console: fix track_table pattern, error handling in run_sql (close #392) (#448)
  • console: sort untracked table list alphabetically (close #421) (#449)
  • console: fix add manual relationships state (close #442) (#450)
  • server: dont reload schema cache for event deliveries (#453)
  • server: indicate access key is set in the console context (close #426) (#447)
  • server: dont retry http requests in the client (close #434) (#436)
  • server: jwt claims check should be case-insensitive (fix #435) (#438)
  • server: better handling for pgcrypto extension (fix #338) (#423)
  • server: uri-decode database uri strings (fix #372) (#424)
  • server: update checks on ci systems (close #319) (#383)
  • cli: migration apply should not fail if there are no migrations (close #389) (#390)
  • docs: merge docs into main repo (close #397) (#398)
  • community: add community boilerplates and examples (#430)
  • community: add installation manifests (#432)
  • community: add jwt + auth0 todo example app (#445)
  • community: add postgis specific docker-compose file (#452)

18th alpha release for v1.0.0 - bugfix for json api

08 Sep 18:06

Choose a tag to compare

Changelog

  • console: add parallel tests and update dependencies (#374)
  • server: returning on json queries now returns only affected row (fix #380) (#381)

17th alpha release for v1.0.0

07 Sep 13:13

Choose a tag to compare

Pre-release

Important

Structure of JWT claims required from the auth server has changed. This is a breaking change from the previous release. Till this release, all X-Hasura-* claims were at the top level of JWT claims JSON. With this release, they are to be moved under a key https://hasura.io/jwt/claims (or another claim name as configured by the JWT config). See docs for more info.

Changelog

  • server: add custom namespace in jwt claims (close #350) (#364)
  • server: make sure only events for existing triggers are fetched (#368)
  • server: implement api to deliver a particular event (close #371) (#373)
  • server: add jsonb boolean operators (close #369) (#376)
  • console: add version check for event triggers (#361)
  • console: update request payload event triggers (#358)
  • console: handle non access key errors (#356)
  • console ui buttons to export and import metadata, reload metadata api (close #293) (#323)