Skip to content

Releases: hasura/graphql-engine

v1.0.0-beta.4

01 Aug 12:15
Compare
Choose a tag to compare
v1.0.0-beta.4 Pre-release
Pre-release

Changelog

Support casting between PostGIS geometry and geography types (close #1983) (#2495)

This adds a new _cast operator to boolean comparison expressions for fields of type geometry and geography. This allows queries to take advantage of both the more efficient and featureful operations on geometry and the more accurate distance calculations of geography, regardless of how the data is actually stored. The following syntax is used for queries that use casts:

{
  geometry_table(where: {
    geometry_col: {
      _cast: {
        geography: {
          _st_d_within: {
            distance: 1000000
            from: { type: "Point", coordinates: [1, 50] }
          }
        }
      }
    }
  }){
    name
  }
}

Other server changes

  • Increase idle GC interval to workaround CPU leak issue (#2581)

  • Schema cache update events from schema syncing when Hasura is horizontally scaled do not accumulate anymore (close #2542) (#2585)

  • Better SQL generation when row limit is part of a permission rule (#2630)

  • Fix a bug in the pg_dump api when there are unicode characters in the dump (fix #2571) (#2647)

  • Fix an issue with logging when body parsing fails (fix #2555) (#2556)

Console & CLI features and fixes

  • column comparision operators(like ceq,cgte, etc.) in console's permission builder are now supported (close #2040) (#2606)

    E.g. To allow the role category_manager to edit rows in the products table that exceed the configured maximum for the category (in the same table), you can define the following permission using the console:

    column comparison operators

  • allow adding frequently used columns while creating tables + show table triggers on modify page (closes #1462) (#2240)

  • add multiline and rich editing to text fields (close #458) (#2498)

  • warnings are shown for names of tables, columns and relationships that do not conform to GraphQL naming convention (close #212) (#2422)

    graphql name warnings

  • error stack trace is now shown on console's error page for easier bug reports (close #2598) (#2597)

  • A newAbout page is available in the console with versions info (#2334)

  • fix re-introspection on header change in console graphiql (#2522)

  • fix column valid typecasts logic in console (close #2519) (#2543)

  • update console UI for RawSQL & Migration pages, and for notifications (#2563)

  • fix issue with using citext columns in row permission builder (#2622)

  • fix radio btn selection on data input in edit row page (close #2595) (#2600)

  • legacy code/support for query templates removed (#2560)

  • A flag to disable ci colors is now available (close #2072) (#2634)

3rd beta release for v1.0.0

12 Jul 06:28
Compare
Choose a tag to compare
Pre-release

Changelog

Summary

  • Improved logging 📃
  • Support for array operators in permissions 🔐
  • Caching of introspection queries on Remote Schemas ⚡
  • JWT Analyzer on Console 🔍
  • Set cookies from Remote Schema 🍪
  • Other features & enhancements 🎁
  • Bug Fixes 🐞
  • Other changes 🖥
  • Consolidated list of 🚨 🚨 Breaking changes 🚨 🚨

Improved logging 📃

This release adds many enhancements to the server logs.

  • Logs GraphQL query and corresponding SQL (This is not enabled by default. See docs for instructions). Note that SQL is only logged for queries, not for mutations and subscriptions.
  • Introduces different log types and adds a flag/env-var to configure them
    • startup
    • query-log
    • http-log
    • websocket-log
    • webhook-log
  • Unfortunately, we had to 🚨 break 🚨 some of the existing log structure to support these changes.
    • Migrating to the new structure: If you're analysing logs, check out this migration guide to update your setup.
  • There are other internal log types which cannot be configured. Check out the PR description and docs for more information. (close #507, close #2171) (#1835)

logging

Support for array operators in permissions 🔐

  • Session variables can now be used with operators _in, _nin, _has_keys_any and _has_keys_all.
  • This will let you define permissions like {"org_id": {"_in": "x-hasura-allowed-org-ids"}}
  • Note that the value of "x-hasura-allowed-org-ids" should be in the Postgres array literal format "{1,2,3}".
  • We’ll be adding support for passing session variables as JSON values instead of string literals wherever possible i.e. auth webhook, JWT, etc. but not in HTTP headers from client apps.
  • To implement this feature, we had to 🚨 break 🚨 some of the existing behaviour:
    • The type of input values for _in and _nin operators in the GraphQL schema has changed from [t] (t being the type of the column) to [t!]. Note that even previously, when you had a GraphQL query with say {owner_id: {_in: [1, null]}}, you would only get rows where owner_id is 1 and not rows with owner_id set as NULL. This change makes the previous behaviour explicit. It is higly unlikely that you will be affected by this change.
    • Previously, you could define a permission like {"org_id": {"_in": ["x-hasura-org-id1", "x-hasura-org-id2", ...]}. Such rules don't work as expected any more - array operators now expect a session variable to be present only at the top-level and not inside an array. In the aforementioned example, you should modify the session variables to include all the "allowed org IDs" in a single session variable, say x-hasura-allowed-org-ids, and modify the permission rule to {"org_id": {"_in": "x-hasura-allowed-org-ids"}}.
  • More information can be found in the PR description and docs (close #1333) (#2475)

array_permissions

Caching of introspection queries on Remote Schemas ⚡

  • The response to introspection query on a remote schema is now cached.
  • Earlier, the remote schema used to be refreshed for every action that modified schema state.
  • Now you will have to explicitly reload the remote schema (from the console or using the API) to reflect remote changes in the Hasura generated schema.
  • The API response while adding or reloading a remote schema is improved to show the status code and response from the remote server separately. This 🚨 breaks 🚨 the previous response format.
    // previous versions
    {
      "path": "$.args[0].args",
      "error": "<Large HTML Response Body from Remote Server>",
      "code": "remote-schema-error"
    }
    
    // this version
    {
      "internal": {
        "raw_body": "<Large HTML Response Body from Remote Server>"
      },
      "path": "$.args[0].args",
      "error": "introspection query to https://remote-schema.com has responded with 404 status code",
      "code": "remote-schema-error"
    }
  • This change is also reflected in the corresponding server logs.
  • This is a huge performance improvement while executing lots of metadata actions at once, like applying migrations or tracking many tables at once. For e.g., tracking around 300 tables through console earlier took 26.31s, but now takes only 1.25s.
  • Read more in the PR description or in the docs. (fix #1679) (#2089)

JWT Analyzer on Console 🔍

  • A JWT analyzer is now part of the Graphiql section of the console - you can use this tool to quickly decrypt and analyze JWTs, especially for checking out Hasura claims, without leaving the console. (closes #1831, #1369) (#1925)

    • In JWT mode, add the JWT to the headers section of Graphiql, to see the analyzer icon:
      JWT-analyzer-icon
    • Click on the analyzer icon to see details:
      decoded-jwt

Set cookies from Remote Schema 🍪

  • Set-Cookie headers are now forwarded from remote schema servers to the clients (fix #1654) (#2305)
  • This is especially useful for auth servers configured as remote schemas

Other features & enhancements 🎁

  • server: support null and default values for function arguments (close #2176, close #2250) (#2282)
  • server: use all CPU cores by default (#2511) (#2233)
  • console: add all PG column types in table add / modify (close #223, #2035, #394, #2038) (#1933)
  • console: add json editor for json data type (fix #504) (#1181)
  • console: optimize sql used to fetch schema information on console (fix #2273) (#2280)
  • console: better change detection when altering foreign key constraints (fix #2060) (#2252)
  • console: support multi-column manual relationships from console (close #2007) (#2332)
  • console: suggest default values for columns (#2352)
  • console: add graphql-voyager to console (close #314) (#2369)
  • console: infer relationship type using uniqueness constraint of foreign key (close #969) (#2347)

Bug Fixes 🐞

  • server: fix response for remote schema queries over ws (fix #2246) (#2248)
  • server: better change detection when altering foreign key constraints (fix #2060) (#2252)
  • server: fixes a bug that caused renaming of columns to fail if it was used in an insert permission (fix #2398) (#2414)
  • server: fail on tracking table/function with name conflict (close #2020) (#2383)
  • server: check input for empty strings in metadata api action arguments (close #2302) (#2300)
  • cli, console: create down migration when a column is dropped (close #2291) (#2385)
  • console: fix handling tables with capitals in name (close #2266) (#2267)
  • server: fix server tests (#2510)
  • console: handle empty recommended type casts for some pg types (close #2258) (#2262)
  • console: fix console logging (#2268)
  • console: fix breadcrumbs and pKey unique handling (#2281)
  • console: fix loadSchema to fetch currentSchema if schemas is empty (#2283)
  • console: fix console schema update quirks (#2286)
  • console: fix head to home console error from error page (#2304)
  • console: fix console bugs (#2309)
  • console: fix fk name generation (#2320)
  • console: change events success code from 200 to 2xx (close #2335) (#2342)
  • console: fix query to fetch list of postgres types, change filter (close #2314) (#2339)
  • console: quote SQL appropriately while modifying PK (#2289)
  • console: set console subscriptions protocol based only on graphql endpoint (close #2330) (#2374)
  • console: enable add/modify/delete for event triggers and remote schemas in disabled migration mode (fix #1875) (#2366)
  • console: fix postgres query to fetch pg_types default functions (close #2399) (#2402)
  • console: clear header state for remote-schema (close #2396) (#2401)
  • console: change browse rows action buttons heading id (close #2403) (#2413)
  • console: fix browse rows query error handling + boolean filter value (close #2421) (#2440)
  • console: fix to show error notification when run sql fails in cli mode (close #2438) (#2446)
  • console: refactor AddTable validation on console (close #1712) (#2408)
  • console: change default type placeholder from 'text' to type (fix 2394) (#2458)
  • console: fix type placeholders in console insert/edit row (#2460)
  • console: fix relationship page error if array fk relationship exists with table in another schema (#2459)
  • console: handle table with no columns in console (close #2481) (#2484)
  • console: fix multiple introspection queries (#2492)
  • console: handle missing columns in permission rules (fix #2506) (#2507)
  • console: refactor schema management in console and misc fixes (#2016)
  • console: quote SQL appropriately wh...
Read more

v1.0.0-beta.2

21 May 07:22
Compare
Choose a tag to compare
v1.0.0-beta.2 Pre-release
Pre-release

Changelog

Bug fixes

  • Fixes a bug with exported metadata JSON which caused later imports to fail, marked allow-list table as a system defined on catalog migration (fix #2225) (#2226)
  • Fixes another bug with allow list which required the user to reload metadata when a query in the list is updated; keep allowed queries in sync when collections are changed (fix #2221) (#2230)
  • A bug with setting transaction isolation settings flag on the server is fixed. (#2211)
  • Fixed a regression that prevented user from creating multiple relationships which include the same column (fix #2228) (#2232)

Other changes

v1.0.0-beta.1

16 May 09:58
Compare
Choose a tag to compare
v1.0.0-beta.1 Pre-release
Pre-release

Changelog

2019-05-16 17:45 IST: The fixed image has been pushed with tag v1.0.0-beta.1
2019-05-16 15:53 IST: (We have taken the docker images down from docker hub as there seem to be some issue serving console html - will post an update soon)

A new v1/graphql endpoint 🎉

This release introduces a new endpoint, /v1/graphql, that will be the primary GraphQL endpoint going forward. Breaking changes in this release (described below) have been released only into this endpoint, leaving the /v1alpha1/graphql endpoint unaffected by them.

New Features & enhancements 🎁

  • Allow-list: A list of safe queries can now be configured in GraphQL engine. When enabled, it is used to restrict GraphQL engine so that it executes only those queries that are present in the list. See docs for more details. This is enforced over both v1 and v1alpha1 GraphQL endpoints. (closes #989) (#2075)

  • Optimised server startup time: Startup time for GraphQL engine has been reduced by ~7X to ~30X depending on the quantum of metadata (startup time is ~0.26 secs with 300 tables and 1300 relationships). (closes #1430) (#2120)

  • Manual Event triggers: Events can now be configured to be triggered manually using the console. Read more here. (closes #1687) (#2077)

  • Console features: The console now has native support for creating/deleting the following Postgres elements:

  • Offline mode for console: GraphQL engine's console now works without access to a public network. The console's static assets are bundled into the Docker image, and GraphQL engine can be configured to use locally available static files instead of relying on a CDN. This feature is currently not available for a console instance served by the CLI, this will be addressed in the next releases. See docs for
    more information. (closes #516, #521, #2130) (#2192, #2201)

Breaking change in v1/graphql 🔨

The following changes are available only in the v1/graphql endpoint and are breaking only when compared to the behaviour of the v1alpha1/graphql endpoint:

  • Response codes: All graphql responses in the /v1/graphql endpoint will be 200 OK. Most GraphQL clients expect responses to be HTTP 200 to parse the error properly. Non-200 responses are considered transport layer errors.

  • Consistent error messages: Errors in HTTP and Websocket layer are now consistent and have the same structure. (closes #1368) (#2064) (#2173)

Bug Fixes 🐞

  • Websocket connections will now be closed automatically on JWT expiry. (fixes #578) (#2156)
  • Fixed sending duplicate content-type headers to remote schemas. (fixes #2159) (#2170) (#2197)
  • Boolean Environment variables will be compared with a case-insensitive match. (fixes #2177) (#2182)

Other changes

v1.0.0-alpha45

06 May 12:14
Compare
Choose a tag to compare
v1.0.0-alpha45 Pre-release
Pre-release

Changelog

Breaking Fixes

  • This fix changes the behavior of aggregate queries when used in conjunction with the limit configuration in select permissions. In versions prior to this, aggregate functions account for the value of the limit setting when calculating the aggregate value. This will not be the case going forward and aggregate values will calculated over all the rows that the role has permissions for. (fix #1837) (#2027)

    E.g.: Assuming a role has permissions to access all the rows in the authors table and the limit configuration is set to 2. Query:

    {
      authors {
        id
        num_articles
      }
      authors_aggregate {
        aggregate {
          max {
            num_articles
          }
        }
      }
    }

    Before the fix:

    {
      "data": {
        "authors": [
          {
            "id": 1,
            "num_articles": 1
          },
          {
            "id": 2,
            "num_articles": 2
          }
        ],
        "authors_aggregate": {
          "aggregate": {
            "max": {
              "num_articles": 2
            }
          }
        }
      }
    }

    After the fix:

    {
      "data": {
        "authors": [
          {
            "id": 1,
            "num_articles": 1
          },
          {
            "id": 2,
            "num_articles": 2
          }
        ],
        "authors_aggregate": {
          "aggregate": {
            "max": {
              "num_articles": 5
            }
          }
        }
      }
    }

Bug Fixes

  • Server now adds variable name to the path when there is an error. Earlier, the path key in the error response when there is an issue with variables was just $.variableValues. Now, it includes the variable name as well, like $.variableValues.<var_name>. (close #2050) (#2051)
  • Fixes a bug that allowed null values for non-nullable fields. (close #1981) (#2057)
  • Fixes a bug on server that allowed dropping of columns that were used in the permissions rules with column operators. (close #2054) (#2055)
  • Fixes a bug that caused server to send duplicate headers to remote schema server. (#2118)
  • Fixes a bug that caused server not to update the GraphQL Schema when a column's nullability or type is changed. (fix #2101) (#2106)

New Features

  • Server adds a new API to execute pg_dump on the connected Postgres server. The migrations workflow has improved a lot because of this. To get the schema and metadata from a server, only one CLI command is enough. See docs for more details. (close #1939) (#1967)
    hasura migrate create "init" --from-server

Other changes

  • server: multiplexed subscription improvements (#2081)
  • server: log inconsistent metadata objects only when there are any (close #2053) (#2058)
  • server: schema cache sync improvements (#2098)
  • console: change Github to GitHub at multiple places (#2046)
  • console: fix console bugs (close #2030, #2032, #226) (#2044)
  • console: change position of constraint names in table modify (#2070)
  • console: restructure console files (#2078)
  • console: fix console expandable editor styles (#2111)
  • console: fix set column as unique bug (close #2096) (#2108)

v1.0.0-alpha44 - bugfix

18 Apr 14:04
Compare
Choose a tag to compare
Pre-release

Changelog

Bug fixes

  • Fixes a bug with multiplexed subscription planning introduced in alpha43, candidate id shouldn't be part of the plan in multiplexed subscriptions (#2029)
  • Introspection queries are now much faster and are only recomputed when the schema changes, reduces the memory footprint of the server for introspection queries, use ByteString to cache introspection response, closes #1942 (#2028)
  • console: fix typo in the field name for accessing headers (#2026)

v1.0.0-alpha43

17 Apr 18:04
Compare
Choose a tag to compare
v1.0.0-alpha43 Pre-release
Pre-release

Changelog

🚨 Breaking change 🚨

You cannot access the current user with current_setting('hasura.user') from custom SQL functions/views anymore. This information is still available inside triggers for mutations. If you are using current user information inside custom functions you'll need to wait for the next release where we will pass user information to custom functions. Unless you know what we are talking about, you are most definitely not affected by this.

🎁 New features 🎁

Recovery from inconsistent metadata

The server now starts even when the metadata is inconsistent. You can then fix/drop this metadata from the console. You can apply a new metadata, execute Hasura Metadata API actions to fix the inconsistencies or drop the inconsistent objects altogether. All this while, Hasura will be serving the GraphQL schema with only the consistent metadata. (closes #231) (#1863)

⚡ Performance improvements for subscriptions ⚡

This release greatly improves the performance of subscriptions backend. Hasura will now let you handle more active subscriptions (at least 10-100x more) while reducing the load on Postgres (CPU usage reduces by 5-10x while number of connections used reduces by 20-40x).

These optimisations only kick in when your susbscriptions meet the following conditions:

  1. All the variable types are non-nullable scalars.
  2. All the variables are part of the where condition (i.e, not limit/offset).

Few example,

This susbscription will be optimised:

subscription s ($id: uuid!) {
  build(where: {id: {_eq: $id}}) {
    status
  }
}

This will not be (notice the absence of non-nullable '!' in the declaraton of $id):

subscription s ($id: uuid) {
  build(where: {id: {_eq: $id}}) {
    status
  }
}

This will not be optimised ($condition is not a scalar):

subscription s ($condition: build_bool_exp!) {
  build(where: {id: {_eq: $id}}) {
    status
  }
}

This will not be optimised ($type is nullable, all arguments have to be non-nullable):

subscription s ($category: String! $type: String) {
  build(where: {category: {_eq: $category} type: {_eq: $type}) {
    status
  }
}

We'll document the architecture and the usage patterns more clearly in the coming few days. (#1934)

⚡ Performance improvements for queries ⚡

Reduces the number of trips to Postgres, so your queries will be faster. You'll notice a speedup particularly if the connection between graphql-engine and postgres has high RTT (round trip time). (#1934)

Composite foreign key and primary key support with Console

Console now supports creating composite primary and foreign keys. (close #1707) (#1854)

Bug fixes

  • server: fix excessive memory consumption with bulk queries (#1972)
  • server: fix incorrect default values for inserts after column drop, fix #1991 (#1993)
  • console: fix webhook url edit for event triggers (#1987)
  • console: fix fk bug in non-public schemas (#2010)

Other changes

  • server: read version from env var during server build time (close #1398) (#1897)
  • cli: fix cli contrib instructions (#1958)
  • console: fix styles in browse rows, relationship and permission tables (#1969)
  • console: update console permissions ui (#1924)
  • console: re-add same as other action options in permissions (#1970)
  • console: add placeholder for bool type fields while inserting rows (#1962)
  • console: fix save function in console's retry config editor (fix #1975) (#1976)
  • console: optimise introspection query calls (#1971)
  • console: handle permission api shorthands in console (#1986)
  • console: show default values as placeholder during insert row (#1985)
  • console: make console function fetchTableListBySchema reusable (#2008)
  • console: persist explorer / endpoint / headers collapsed state in ApiExplorer (#1992)
  • console: refactor permissions types handling (#2009)

v1.0.0-alpha42 - bugfix release

08 Apr 08:54
Compare
Choose a tag to compare
Pre-release

Changelog

Bug fixes

  • Fixes a bug on server which caused event trigger update API to return success without actually updating the trigger metadata. This bug was introduced in the last release. (#1950)
  • Fixes a bug that caused server to generate incorrect types for arguments of custom SQL functions, in certain cases. (close #1952) (#1953)

Other changes

  • server: specify better error msgs for remote schema conflicts (fix #1805) (#1904)
  • server: run graphql tests on both http and websocket; add parallelism (close #1868) (#1921)
  • cli: fix bash completion example docs on cli (#1832)
  • cli: rename metadata reset to metadta clear (close #1851) (#1893)
  • cli: added feedback for metadata commands (close #1411) (#1929)
  • cli: improve error messages for metadata apply (close #1877) (#1895)
  • cli: added feedback on migration commands (close #1410) (#1931)
  • console: make graphiql api endpoint and request header sections collapsible (#1723)
  • console: refactor some console components for readability (#1928)
  • console: update raw sql notes and tooltips (#1926)
  • console: remove remote schema env var note (#1932)
  • console: update track relationship text in console (#1927)
  • console: improve console error page (close #272) (#1890)
  • console: persist queries in GraphiQL (closes #1894) (#1903)

v1.0.0-alpha41

26 Mar 06:50
Compare
Choose a tag to compare
v1.0.0-alpha41 Pre-release
Pre-release

Changelog

UPDATE (26 Mar 2019 12:20 PM GMT): We have identified an issue with the docker image for alpha41 where a shared library is missing. Please DONT upgrade until we push the fixed image.

UPDATE (26 Mar 2019 01:00 PM GMT): The docker bug has been fixed and a new docker image is pushed. You can now upgrade to this release.

UPDATE (28 Mar 2019 03:15 PM GMT): (#1809) has been moved from bug fixes to breaking changes as it could break queries with variables for which right types are not used.

🚨 🚨 Breaking changes 🚨 🚨

  • To fix a bug that caused event trigger id to change on metadata replace operations, the id column is dropped from the metadata entirely. This affects the event payloads as it will be missing in the trigger key as well. You can find the complete payload reference in docs. (fix #1840) (#1857)

    Payload before alpha41:

    ...
      "trigger": {
        "id": "e9723071-d6a8-47c3-981b-811e891ac6dd",
        "name": "email_trigger"
      }
    ...

    Payload after alpha41:

    ...
      "trigger": {
        "name": "email_trigger"
      }
    ...
  • Fixes a long standing bug which didn't enforce type validations for input variables since Postgres allows it. With this fix, if a String variable is used for an Int input type, validation error will be thrown. This could break your existing queries if you are not using the right types for variables. (e.g. using $value: Float while the column is of Numeric type) (close #21) (#1809)

  • This is not a breaking change on the server, but a change in behaviour for Console. It now uses inflection to suggest relationship names. For example, if author_id column in article table has a foreign key constraint to id column of author table, the object relationship suggested on article table will be author instead of authorByAuthorId, and the array relationship on author table will articles instead of articlesByAuthorId. If you depend on the names generated by console elsewhere, please pay extra attention. This change applies to all releases, not just alpha41 since console follows a rolling update strategy. (close #1665) (#1801)

🎁 🎁 New features 🎁 🎁

  • Server now supports ST_DWithin and ST_Intersects spatial predicates for PostGIS GEOGRAPHY columns directly in GraphQL queries and permissions builder. (close #1674) (#1735)
  • JSON/JSONB columns now have a path argument which accepts a JSON Path and the field value returns the value for the path. You can find an example in the docs. (close #1598) (#1661)
  • CLI now supports creating migration files by reading an SQL file and getting metadata from server. Command details can be found in the docs. (close #1699) (#1761)
  • metadata apply command on CLI now accepts a JSON or YAML file. (close #1698) (#1746)
  • Console now includes OneGraph Explorer. (close #1616) (#1680)
  • New favicons for Console and Docs. (close #1485) (#1760)

🐛 🐛 Bug fixes 🐛 🐛

  • Over websocket transport, in some cases of query validation errors, connection_error was thrown (which is for protocol errors) instead of error. This is now fixed to send GQL_ERROR instead of GQL_CONNECTION_ERROR. (fix #1790) (#1792)
  • Fixes a bug that was introduced in alpha40 which mandated a table/view to have a primary key or a unique constraint if the delete mutation had to return the data in response. This requirement is not there anymore and delete mutations returns the correct data. (fix #1794) (fix #1763) (#1827)
  • Fixes a bug that skipped validations for relationship definitions on startup (#1849)
  • Fixes a bug on console that caused issues with the Track this checkbox in SQL tab. (close #1671, #1627) (#1717)

Other changes

  • server: bump stackage to lts 13 and refer to hasura's pg-client-hs (#1747)
  • server: use bytestring builder to represent encoded json (makes things faster) (#1800)
  • server: add for update skip locked to fetch query (#1798)
  • server: specify needed node version, clarify setup instructions (close #1754) (#1815)
  • server: reduce server build time on ci (#1836)
  • server: Revert "reduce server build time on ci (#1836)"
  • server: refactor graphql query execution logic (#1855)
  • server: bump haskell-docker-packager version (#1870)
  • server: add user information to transactions in ws protocol (fix #1867) (#1869)
  • console: change try it out link for remote schema in console #1788
  • console: show migration name section only if This is migration is checked (close #1732) (#1762)
  • console: reload onegraph schema on header change (#1810)
  • console: remove graphiql suggestions on page navigation (#1803)
  • console: fix relationship editor bug in console (#1814)
  • console: handle capital letters and quotes in Raw SQL Track this (#1811)

40th alpha release for v1.0.0

12 Mar 07:36
Compare
Choose a tag to compare
Pre-release

Changelog

Update on 14 March 2019:

🚨 🚨 Breaking change 🚨 🚨

From alpha40, relationships/nested objects can be retrieved in mutations ONLY if the table has a primary key or a unique constraint. The approach taken prior to alpha40 would only work in some cases and could trigger inconsistent results such as those documented in #1576.

  • Please add either a primary key or a unique constraint to tables with such mutations.
  • If you are using updatable views, you can either have mutations on the underlying tables directly or you can downgrade to alpha39 by following these instructions:
    1. Stop graphql-engine alpha40
    2. Run this SQL on your database:
    DROP TABLE hdb_catalog.hdb_schema_update_event;
    DROP FUNCTION hdb_catalog.hdb_schema_update_event_notifier();
    UPDATE hdb_catalog.hdb_version SET version = '10';
    1. Start graphql-engine alpha39

We are looking into inferring the constraints on an updatable view from the underlying base table asap.

Sorry about missing this in the previous announcement! If you need any help with this, please reach out to @team hasura on the #general channel on Discord.

🎁 🎁 New features 🎁 🎁

  • The server can now sync metadata changes across multiple instances. Previously, if there were more than one Hasura instances connected to a database, metadata had to be reloaded on all instances of Hasura when migrations were applied or if the schema was changed via one of the Hasura instances. With this release, updating schema on one instance emits an event that other instances will listen to and reload the metadata automatically. (closes #1182) (#1574)
  • Server now respects x-hasura- headers for unauthorized role permissions (close #1686) (#1689)

🐛 🐛 Bug fixes 🐛 🐛

  • Queries/Mutations on remote schema now works over websocket. (fix #1619) (#1621)
  • Mutation now returns the updated data over relationships (fix #1576) (#1703)

Other changes

  • console: fix console browse rows bugs (#1691)
  • console: console code refactor (#1688)
  • console: add quickstart content to console remote schema and event triggers pages (#1630)