graphql-engine/CHANGELOG.md
Shahidh K Muhammed 5bc95d2b7a
add workflow automations, update changelog (#4079)
Co-authored-by: Aravind Shankar <aravind@hasura.io>
2020-03-29 12:01:30 +05:30

3.9 KiB
Raw Blame History

Hasura GraphQL Engine Changelog

v1.2.0 (in beta)

Hasura Actions

Actions are a way to extend Hasuras 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)

Manage Postgres Check Constraints from Console

Postgres Check constraints allows you to specify that the value in a certain column must satisfy a Boolean (truth-value) expression. They can be used to put in simple input validations for mutations and with this release, these constraints can now be added while creating a table or later from Modify tab on the console.

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)

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)

  • Check expression in update permissions (close #384) (rfc #3750) (#3804)

  • console: add multi select in browse rows to allow bulk delete (close #1739) (#3735)

    Adds a checkbox to each row on Browse Rows view that allows selecting one or more rows from the table and bulk delete them.

  • console: allow setting check constraints during table create (#3881)

    Adds a component that allows adding check constraints while creating a new table in the same way as it can be done on the Modify view.

  • console: add dropdown for enum fields in insert/edit rows page (close #3748) (#3810)

    If a table has a field referencing an enum table via a foreign key, then there will be a select dropdown with all possible enum values for that field on Insert Row and Edit Row views.

  • console: generate unique exported metadata filenames (close #1772) (#4106)

    Exporting metadata from the console will now generate metadata files of the form hasura_metadata_<timestamp>.json.

  • cli(migrations-docker): add support for v2 config (close #3969)

    A new CLI migrations image is introduced to account for the new CLI 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.