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

Releases: hasura/graphql-engine

v1.2.0-beta.4

16 Apr 10:47

Choose a tag to compare

v1.2.0-beta.4 Pre-release
Pre-release

Changelog

Highlights

server: add query support in Actions

Now, you can have Actions with queries! Read more in the docs.

query-actions

(close #4032) (#4309, #4318)

server: support reusing Postgres scalars in Actions

You can now use types like uuid, timestamptz in your Action without defining them.

(close #4125)

server: accept a new argument "claims_namespace_path" in JWT config

You can now provide a JSONPath to Hasura claims in your JWT. Read more in the docs.

For e.g. values like $.hasura.claims or $ (i.e. root of the payload)

(close #4349) (#4365)

console: persist page state in data browser across navigation

The order, collapsed state of columns and rows limit is now persisted across page navigation

(close #3390) (#3753)

console: allow customising graphql field names for columns of views

(close #3689) (#4255)

Bug fixes and improvements

  • cli: set_table_is_enum metadata type for squashing migrations (close #4394) (#4395)
  • cli: add retry_conf in event trigger for squashing migrations (close #4296) (#4324)
  • cli: allow customization of server api paths (close #4016)
  • cli: clean up migration files created during a failed migrate api (close #4312) (#4319)
  • cli: add support for multiple versions of plugin (close #4105)
  • cli: template assets path in console HTML for unversioned builds
  • console: recover from SDL parse in actions type definition editor (fix #4385) (#4389)
  • console: fix clone permission migrations (close #3985) (#4277)
  • console: decouple data rows and count fetch in data browser to account for really large tables (close #3793) (#4269)
  • console: update cookie policy for API calls to "same-origin"
  • console: redirect to /:table/browse from /:table (close #4330) (#4374)
  • docs: add One-Click Render deployment guide (close #3683) (#4209)
  • server: reserved keywords in column references break parser (fix #3597) #3927
  • server: fix postgres specific error message that exposed database type on invalid query parameters (#4294)
  • server: manage inflight events when HGE instance is gracefully shutdown (close #3548)
  • server: fix an edge case where some events wouldn't be processed because of internal erorrs (#4213)
  • server: fix downgrade not working to version v1.1.1 (#4354)
  • server: type field is not required if jwk_url is provided in JWT config

Using this release

Use the following docker image:

hasura/graphql-engine:v1.2.0-beta.4

CLI

Download the binary:

Using existing CLI ( since v1.2.0-beta.2):

hasura update-cli --version v1.2.0-beta.4

v1.2.0-beta.3

01 Apr 06:06

Choose a tag to compare

v1.2.0-beta.3 Pre-release
Pre-release

Changelog

console: manage Postgres check constraints from Create Table page

Check constraints were already part of Modify Table page. They have been brought to Create Table page as well.

Example:
When a product is created, ensure that the price is greater than zero. The SQL would look like this:

CREATE TABLE products (
    product_id UUID DEFAULT gen_random_uuid(),
    name TEXT,
    price NUMERIC CONSTRAINT positive_price CHECK (price > 0)
);

To create this table with Hasura Console, on the 'Add a new table' screen, after adding all the columns, scroll down to 'Check constraints' section and 'Add a new check constraint' with the following properties:

  • Constraint name: positive_price
  • Check expression: price > 0

Read more about check constraints on Postgres Docs.

(close #1700) (#3881)

CLI: V2 migrations architecture

A new CLI migrations image is introduced to account for the new migrations workflow. If you're have a project with version: 2 in config.yaml, you should use the new image: hasura/graphql-engine:v1.2.0-cli-migrations-v2. Mount the migrations at /hasura-migrations and metadata at /hasura-metadata.

Docs will be updated soon.

(close #3969) (#4145)

Bug fixes and improvements

  • server: improve performance of replace_metadata tracking many tables (fix #3802)
  • server: option to reload remote schemas in 'reload_metadata' API (fix #3792, #4117)
  • server: fix various space leaks to avoid excessive memory consumption
  • server: event triggers refactor with backpressure. HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL changes semantics slightly: we sleep for the interval only when there were previously no events to process (close #3839)
  • server: fix postgres query error when computed fields included in mutation response (fix #4035)
  • server: fix __typename not being included for custom object types (fix #4063)
  • server: preserve cookie headers from sync action webhook (close #4021)
  • server: validate action webhook response to conform to action output type (fix #3977)
  • server: add 'ID' to default scalars in custom types (fix #4061)
  • console: enum field values can be selected through a dropdown in insert/edit rows page (close #3748) (#3810)
  • console: exported metadata filenames are now unique(hasura_metadata_<timestamp>.json) (close #1772) (#4106)
  • console: allow bulk deleting rows in 'Browse Rows' section (close #1739) (#3735)
  • console: fix computed field permission selection (#4246)
  • console: allow customising root fields of single row mutations (close #4203) (#4254)
  • console: fix json string rendering in data browser (close #4201) (#4221)
  • console: handle long column names in event trigger update columns (close #4123) (#4210)
  • console: disable selecting roles without permissions for bulk actions (close #4178) (#4195)
  • console: fix passing default value to JsonInput (#4175)
  • console: fix parsing of wrapped types in SDL (close #4099) (#4167)
  • console: misc actions fixes (#4059)
  • console: action relationship page improvements (fix #4062, #4130) (#4133)
  • cli: fix init command to generate correct config (fix #4036) (#4038)
  • cli: fix parse error returned on console api (close #4126) (#4152)
  • cli: fix typo in cli example for squash (fix #4047) (#4049)
  • docs: add statement to grant hasura permissions for PG functions (#4238)
  • docs: add docs for redeliver_event api (fix #4176) (#4177)
  • docs: update permission.rst for check constraint api (#4124)
  • docs: add note on pg versions for actions (#4034)
  • docs: add latest prerelease build info (close #4041) (#4048)
  • docs: add AuthGuardian JWT guide (#3958)

Using this release

Use the following docker image:

hasura/graphql-engine:v1.2.0-beta.3

CLI

Download the binary:

Using existing CLI ( since v1.2.0-beta.2):

hasura update-cli --version v1.2.0-beta.3

First patch release for 1.1

27 Mar 15:59
ad07c06

Choose a tag to compare

This release brings few server-only changes that resolve potential space leaks:

  • Event Triggers refactor with backpressure. HASURA_GRAPHQL_EVENTS_FETCH_INTERVAL changes semantics slightly: we sleep for the interval only when there were previously no events to process: c425b55
  • More robust forking of threads: c52bfc5
  • Better assertions while doing mutable writes: 3a284c0

2nd beta release for 1.2.0

05 Mar 08:58

Choose a tag to compare

Pre-release

This release fixes bugs that were identified in the 1st beta release.

Changelog

  • server: Don't update catalog version if using --dryRun (#3970)
  • server, cli: use prerelease tag as channel for console assets cdn (#3927)
  • cli: bug fixes related to actions (#3951)
  • cli(actions): preserve action definition in metadata apply (fix… (#3993)
  • cli: fix flags in actions, migrate and metadata cmd (fix #3982) (#3991)
  • cli: add version flag in update-cli command (#3996)

Using this release

Use the following docker image:

hasura/graphql-engine:v1.2.0-beta.2

CLI

Download the binary:

1st beta release for 1.2.0

25 Feb 08:07

Choose a tag to compare

Pre-release

Hasura Actions

Actions are a way to extend Hasura’s auto-generated mutations with entirely custom ones which can handle various use cases such as data validation, data enrichment from external sources and any other complex business logic.

A new mutation can be created either by defining its GraphQL SDL or by deriving it from an existing Hasura-generated mutation. The resolver is exposed to Hasura as a webhook which can be called synchronously or asynchronously. This release also includes an ever evolving codegen workflow to make managing the custom resolvers easier.

Read more about actions in the docs.

(#3042) (#3252) (#3859)

Downgrade command

A new command is added to the server executable for downgrading to earlier releases. Previously, if you ran a newer Hasura version and wanted to go back to an old version on the same database, you had to stop Hasura, run some SQL statements and start Hasura again. With the new downgrade command, these SQL statements can be run automatically.

Example: Downgrade from v1.2.0 to v1.0.0:

# stop hasura v1.2.0

# run the following command:
docker run hasura/graphql-engine:v1.2.0 graphql-engine --database-url <db-url> downgrade --to-v1.0.0

# start hasura v1.0.0

Read more about this command in the docs.

(close #1156) (#3760)

Bug fixes and improvements

  • server: check expression in update permissions (close #384) (rfc #3750) (#3804)
  • console: show pre-release update notifications with opt out option (#3888)
  • console: handle invalid keys in permission builder (close #3848) (#3863)

Using this release

Use the following docker image:

hasura/graphql-engine:v1.2.0-beta.1

CLI

Download the binary:

v1.1.0

19 Feb 10:49

Choose a tag to compare

Changelog

Server 🗄️

Batching queries 📚

It's now possible to batch queries (close #1812) (#3490):

query getAuthors {
  authors {
    name
  }
}

query getArticles {
  articles {
    title
  }
}

This will return an array of query results:

[
    {
      "data": {
        "authors": [
          {
            "name": "Sarah"
          },
          {
            "name": "Rachel"
          }
        ]
      }
    },
    {
      "data": {
        "articles": [
          {
            "title": "How to make fajitas"
          },
          {
            "title": "Birthday surprises"
          }
        ]
      }
    }
]

Improved logging

  • Log time spent consuming request bytes from socket (close #3547) (#3622)
  • Add request timings and count histograms to telemetry (close #3552) (#3622)

Improved caching

  • Fix unnecessary conditional logic in cache implementations
  • Fix Hasura.Cache.Bounded.mkCacheSize to make sure we don't silently wrap or accept 0
  • Initial benchmarks for caching (close #3530)

Other server enhancements

  • Allow fine(er)-grained dependency tracking when building permissions
  • Caching is now available for recreating event trigger functions
  • Metadata is now exported without nulls, empty arrays & default values (#3393)
  • Improved performance for querying functions (close #3349) (#3504)
  • Read cache control header to refresh JWK (close #3301) (#3446)
  • Check database connection in /healthz endpoint (close #2645) (#3440)
  • Refactor schema cache (#3394)
  • Add fast path for server internal metadata migrations (#3686)

Bug fixes 🐞

  • Fix Postgres query error when updating a column with multiple operators (fix #3432) (#3458)
  • Fix error of permission views not being unique for long role names (fix #3444) (#3486)
  • Fix JSON/JSONB colums being returned as type String in nested returning of mutations (fix #3365) (#3375)
  • Fix absence of "args" input field omits session variable argument and causes custom functions to fail (fix #3576)(#3585)
  • Include scalars types returning by computed fields in generated schema (fix #3650) (#3651)
  • Fix cache-control header parsing for JWK (fix #3655) (#3779)
  • Fix connection handler in websocket transport not using the UserAuthentication interface to resolve user info (#3509)

Console 🖥️

Computed fields support on console (close #3203) (#3565)

Computed fields can now be created and managed on the console.

Other console enhancements

  • add custom root fields section for views
  • display Postgres version in the about page of the console (close #3461)
  • add bigint id to frequently used columns (close #3524)
  • add info button to inform about Hasura Pro
  • pretty print JSON metadata file during export from the console (close #3690)
  • accept query params for filter/sort in browse table page (close #833)
  • allow manually editing table row permission rules on console
  • persist RawSql content across screen changes
  • show pre-release update notifications with opt out option

Bug fixes 🐞

  • Fix blank image on remote schemas section in console (fix #2209) (#3574)
  • Fix console generating incorrect SQL rollback statement for column default value change (fix #3291) (#3441)
  • Fix update event trigger & dropping triggers on run_sql (fix #3803 #3784) (#3833)

CLI ⌨️

Use directory name as argument for init command (#3590)

The directory name is now available as an argument to init command:

hasura init my-project

The --directory flag has been marked as deprecated but can still be used.

Drop metadata inconsistencies from CLI (close #2766) (#2973)

So far, metadata inconsistencies had to be handled using console. As of this release, it's possible to manage metadata inconsistencies using the CLI as well.

The following new commands are now available:

hasura metadata inconsistency status
hasura metadata inconsistency list
hasura metadata inconsistency drop

There is also an alias ic: hasura metadata ic list

Add browser flag to console command (close #3333) (#3601)

It's now possible to automatically open the hasura console on your favourite browser instead of the default one by running the following command:

$ hasura console --browser firefox
INFO console running at: http://localhost:9695/ on firefox

Goto a particular migration version (close #2689) (#3715)

A --goto flag is now available with the hasura migrate apply command. All up or down migrations till the version mentioned in goto will be applied in order.

If we have the following state:

$ hasura migrate status
VERSION        SOURCE STATUS  DATABASE STATUS
...
1564701126000  Present        Present
1564701547000  Present        Present
1564702123000  Present        Present
1564702123002  Present        Present
1564702123003  Present        Present
1564738682051  Present        Present
1564738682052  Present        Not Present
1564738682053  Present        Not Present

and we execute the following command:

hasura migrate apply --goto 1564702123002

It will result in the following status:

$ hasura migrate status
VERSION        SOURCE STATUS  DATABASE STATUS
...
1564701126000  Present        Present
1564701547000  Present        Present
1564702123000  Present        Present
1564702123002  Present        Present
1564702123003  Present        Not Present
1564738682051  Present        Not Present
1564738682052  Present        Not Present
1564738682053  Present        Not Present

Other CLI Enhancements

  • Examples are now available for all CLI commands (close #3475) (#3492)
  • Logs are now displayed as JSON on non-CLI environments (close #2770) (#3528)
  • Better error handling on unknown API errors: the CLI now prints out the response code and body (close #2954) (#3104)
  • cli(installer): add -f flag to curl (fix #1871) (#3477)
  • export metadata without nulls, empty arrays & default values (#3393)

Bug fixes 🐞

  • Fix version constraint for update check (close #3719) (#3730)
  • Fix various version-related issues with CLI (close #3706) (#3709)
  • Update go-binddata, fix realize (close #3588) (#3687)
  • Execute down migration in the correct order (#3625)
  • Better error handling on non-json api responses (close #2954) (#3104)
  • Fix squash command not adding the last down (close #3401) (#3569)
  • Mark from flag as required for squash (close #3400) (#3500)

Docs & community 📄🌈

  • Document explain API (close #870) (#3739)
  • Add information on HASURA_GRAPHQL_PG_CONNECTIONS to docs
  • Update server/CONTRIBUTING.md and include manual build and test steps
  • Update the console README
  • Fix Auth0 integration instructions (fix #2655) (#3214) (#3367)
  • Add Netlify event-trigger echo boilerplate (#2985)
  • Update docs colour scheme (#3586)

3rd beta release for 1.1.0

06 Feb 10:31

Choose a tag to compare

Pre-release

This is mostly a bug fix release and unless new critical bugs are discovered, this will be promoted to v1.1.0.

Fixes

  • server: disable explain end-points when metadata API is disabled (#3717)
  • server: fix postgres errors when using certain columns/relationshps in a mutation's returning clause (#3609, #3642, #3271)
  • server: fix parsing JWK expiry time from headers on startup (#3655)
  • server: new enum values are now reflected in the schema with 'reload enum values' (#3759)
  • server: fix webhook not being called on a trigger definition update (#3791)
  • server: fix webhook not being called after migrations/upgrade (#3791)
  • server: allow disabling CORS headers through an environment variable (#3782)
  • console: handle uncategorized types in permission builder (close #3603) (#3712)
  • console: allow "_is_null" operator for all types in permissions (close #3777) (#3813)
  • console: handle empty columns / computed fields in permissions (close #3789) (#3813)
  • console: separate operators for json and jsonb column types & allow null as valid JSON type in permissions (#3823)
  • console: handle "create if not exists" syntax for track table (close #3766) (#3816)

Feature additions

  • console: use user friendly terms for filter operators in browse rows page (#3699)
  • console: update graphiql explorer (#3073)
  • console: allow manually editing permissions (close #1734) (#3823)
  • console: accept url query params for filter/sort in browse table page (close #833) (#3041)

2nd beta release for 1.1.0

16 Jan 06:56

Choose a tag to compare

Pre-release

Known Issues

Instructions to downgrade from v1.1.0-beta.2 to v1.0.0: #3822 (comment)

  • Returning null valued references objects throws internal error: #3754
  • Event Trigger functions are not getting recreated after update/reload operations: (#3784, #3803)
  • Enums are not getting updated: #3759

Changelog

  • server: remove hdb_views for inserts (#3598)
  • cli: fix various version-related issues with cli (close #3706) (#3709)
  • cli: Merge branch 'master' into beta
  • console: pretty print json metadata file during export from console (close #3690) (#3694)

1st beta release for 1.1.0

14 Jan 12:40

Choose a tag to compare

Pre-release

Known Issues

Instructions to downgrade from v1.1.0-beta.1 to v1.0.0 : #3710 (comment)

  • Missing hdb_view when inserting (#3710, #3598)
  • There is a bug in the CLI auto-update code which will cause the CLI to NOT auto-update to this version. If you have the server running on v1.1.0-beta.1 release and want to use the CLI, please download/install the CLI again rather than auto-updating. (#3706, #3709)
  • Returning null valued references objects throws internal error: #3754
  • Event Trigger functions are not getting recreated after update/reload operations: (#3784, #3803)
  • Enums are not getting updated: #3759

Changelog

A more detailed changelog will be added soon.

  • server: check db connection in healthz endpoint (close #2645) (#3440)
  • server: fix updating a column with multiple operators causing postgres query error (fix #3432) (#3458)
  • server: read cache control header to refresh JWK (fix #3301) (#3446)
  • server: bulk query should not care about access mode of select or count queries (#3467)
  • server: Update server/CONTRIBUTING.md and include manual build/test steps (#3472)
  • server: fix insert permission views are not unique for long role names (fix #3444) (#3486)
  • server: avoid CTE expressions in sql function queries, close #3349 (#3504)
  • server: fix json/jsonb columns as String values in nested returning of a mutation (fix #3365) (#3375)
  • server: fix resolving user info in websocket transport (#3509)
  • server: Fix documentation of HASURA_GRAPHQL_PG_CONNECTIONS (#3495)
  • server: export metadata without nulls, empty arrays & default values (#3393)
  • server: Allow request body to be logged even with successful queries (#3529)
  • server: Test with postgis 3.0.0 (#3519)
  • server: Support batched queries (fix #1812) (#3490)
  • server: Fix unnecessary conditional logic in cache implementations
  • server: Fix Hasura.Cache.Bounded.mkCacheSize to make sure we don't silently wrap or accept 0
  • server: Initial benchmarks for caching. Closes #3530
  • server: Show request id on test failures (#3556)
  • server: fix absence of "args" input field omits session variable argument, fix #3576 (#3585)
  • server: Report errors in parallel when batching (#3605)
  • server: add query execution time and response size to ws-server logs in websocket transport (#3584)
  • server: Add Hasura.Incremental, a library for incremental builds
  • server: Refactor schema cache construction to avoid imperative updates
  • server: Use arrows instead of monads to define the schema cache construction
  • server: Split up Hasura.RQL.DDL.Schema.Cache
  • server: Use a significantly more efficient table_info_agg view
  • server: Switch to a CPS implementation of Rule
  • server: Add caching for recreating event trigger functions
  • server: Properly check that custom field names do not conflict with other fields
  • server: Fix new hdb_table_info_agg query to fetch column base types
  • server: Move arrow transformers into a separate module
  • server: Add support for fine-grained dependency tracking to Incremental
  • server: Use fine(er)-grained dependency tracking when building permissions
  • server: Alter the type of hdb_catalog columns that reference SQL identifiers
  • server: Add missing check in SetTableCustomFields; update various test cases
  • server: incremental metadata: Clean up a few lingering loose ends
  • server: remove brotli from packaging and CI images (#3673)
  • server: include scalars types returning by computed fields in generated schema (fix #3650) (#3651)
  • server: add computed fields support on console (close #3203 #3565) (#3522)
  • server: fix cache-control header parsing for JWK (fix #3655) (#3676)
  • server: Add fast path for server internal metadata migrations (#3686)
  • cli: fix(cli): mark from flag as required for squash (close #3400) (#3500)
  • cli: add examples to all cli commands (#3475) (#3492)
  • cli: cli(installer): add -f flag to curl (fix #1871) (#3477)
  • cli: cli(build): migrate to go modules (close #3476) (#3493)
  • cli: export metadata without nulls, empty arrays & default values (#3393)
  • cli: Fix failing CLI test (#3567)
  • cli: console(fix): blank image on remote schemas section (close #220… (#3574)
  • cli: cli: add directory name as an argument to init cmd (#3590)
  • cli: cli: add commands to manage inconsistent metadata (close #2766) (#2973)
  • cli: cli: use json logs on non-terminal envs (close #2770) (#3528)
  • cli: cli(fix): squash command not adding the last down (close #3401) (#3569)
  • cli: cli(fix): better error handling on non-json api responses (clos… (#3104)
  • cli: cli(fix): execute down migration in the correct order (#3625)
  • cli: cli: add browser flag to console command (close #3333) (#3601)
  • cli: cli: update go-binddata, fix realize (close #3588) (#3687)
  • cli: update manifests to v1.1.0-beta.1
  • console: add read_only flag to run_sql select queries from console (#3465)
  • console: fix column edit migrations (close #3291) (#3441)
  • console: add custom root fields section for views to console (#3532)
  • console: remove console feature version checks (#3494)
  • console: merge branch 'release-v1.0' to master after stable release
  • console: console: Bump dependencies to support Node v13.x (#3579)
  • console: add base code for console read only mode (#3466)
  • console: display postgres version in About page of console (close #3461) (#3611)
  • console: misc console improvements (#3435)
  • console: console: add hasura pro info button (#3594)
  • console: update console pro popup content (#3660)
  • console: Use fine(er)-grained dependency tracking when building permissions
  • console: add bigint id to frequently used columns (close #3524) (#3669)
  • console: run sql queries refactor (close #3543) (#3662)
  • console: add computed fields support on console (close #3203 #3565) (#3522)
  • console: update console readme (#3691)

v1.0.0

17 Dec 13:20

Choose a tag to compare

Changelog

1st stable release for Hasura (v1.0.0) is here 🎉 🎂 👏

This is just a promotion of v1.0.0-rc.1 with a small bugfix on console (fix feature compatibility version check expression (#3546))

Release process

Some notes on how new releases will be made are detailed below:

  1. Hasura releases will follow semver.
  2. Updates to any 1.x version will be non-breaking.
  3. A beta release channel in the community Discord server for developers to try out the next version in dev/staging and report issues.
  4. Every release will be promoting the beta/release-candidate(rc) release to a stable release and the creation of a new beta release for the next version.