Skip to content

Releases: hasura/graphql-engine

v1.0.0-alpha29

16 Nov 14:26
Compare
Choose a tag to compare
v1.0.0-alpha29 Pre-release
Pre-release

Features

  • You can now configure event triggers with a webhook url from an environment variable. (#966) (#968)
  • Improved aggregations support: Aggregate functions for statistics (stddev, variance etc.) and count on columns with distincts are added. (close #1028) (#1029)

Improvements

  • Better SQL generation for _in operator. (#1013) (#1014)
  • Prevent x-hasura-access-key from getting logged or accessed by current_setting('hasura.user'). (#1016) (#1017)
  • server port can be set with HASURA_GRAPHQL_SERVER_PORT env variable (#1033) (#1038)
  • console: track table when 'create or replace' is used in run sql (#995) (#1021)

Bug fixes

  • server: do not generate prefix for column identifiers in agg select, (#1004) (#1005)
  • server: fix sql generation for boolean expressions which uses self referential relationships, (#853) (#1037)

v1.0.0-alpha28

02 Nov 16:32
Compare
Choose a tag to compare
v1.0.0-alpha28 Pre-release
Pre-release

This is a minor release with few bug fixes.

Features:

In the insert permissions, you can now specify the columns that are allowed to be inserted.

Improvements:

  1. server: Retry-After header of the webhook response takes precedence over the configured retry policy (event triggers).
  2. server: EVENTS_FETCH_INTERVAL can now be specified in milliseconds (event triggers).
  3. console: handle non-public schema cases for manual relationship creation (#911)

Fixes:

  1. server: fixes an issue with insert mutations with relationships where returning is not specified.
  2. console: fix an issue with pending event trigger logs when opened (#926)
  3. console: fix broken redirect from table/edit to table/brows

Complete changelog

  • server: gitignore generated .tix files in pytest folder (#924)
  • server: pep8 fixes for python files (#875)
  • server: change type of fetch interval to milliseconds (#939)
  • server: give precedence to retry-after header over retry conf (#954)
  • server: refactor select query generation (#941)
  • server: extract session variables from relational bool expression (fix #960) (#961)
  • server: remove enable console from docker cmd and add it as env var (close #907) (#938)
  • server: refactor nested insert mutation and fix returning (fix #844) (#852)
  • server: allow specifying a list of columns that can be inserted (close #250) (#917)
  • cli: remove docs from cli folder (#918)
  • console: handle non-public schema cases for manual relationship creation (close #911) (#912)
  • console: remove tries filter from where clause for pending events (#921)
  • console: fix issue with pending event trigger logs when opened (#926)
  • console: fix broken redirect from table/edit to table/browse (close #905) (#935)
  • console: update logo in console (#934)
  • console: allow specifying a list of columns that can be inserted (close #250) (#917)

27th alpha release for v1.0.0 - bugfix

29 Oct 08:39
Compare
Choose a tag to compare
Pre-release

Changelog

Fixes

This release fixes a bug introduced by alpha26, which caused server to deny all requests if auth-webhook was configured. Skip updating to 26 and update to alpha27 directly. Note that order_by API breaks from alpha26 on-wards. (closes #890) (#894)

Features

  • Custom headers (like Authorization) can be set for event triggers. You can now secure your trigger endpoints/webhooks using these headers. (close 523) (#812)
  • Console now suggests relationships over composite foreign keys too. (close #284) (#808)

Other changes

  • server: add tests for server with access control, jwt and auth webhooks (#710)
  • console: update advanced settings in create trigger page (close #654) (#868)
  • console: handle table/schema names in relationship suggestions properly (close #876) (#879)

v1.0.0-alpha26

26 Oct 19:30
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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)