Releases: hasura/graphql-engine
v1.0.0-alpha26
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
-
Aggregations: Now you can do basic aggregations like
count,sum,avgetc. using the GraphQL interface. For every table there will be atable_aggregatefield:{ articles_aggregate(where: {author_id: {_eq: 1}}) { aggregate { avg { rating } max { rating } } } }Every array relationship will also have an associated
_aggregatefield.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.
-
more powerful order by: Now you can order by an object relationships's columns too. This unforutanetly changes the syntax of
order_byand we consider this a major breaking change. We couldn't add the new feature with the existing syntax. The syntax changes fromorder_by: id_asctoorder_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 } } -
column presets for insert: Often you would find yourself sending something like
user_idfrom the client side during inserts even though it can be determined on the server from theAuthorizationheader. 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. -
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-keyor missingAuthorizationheader in JWT mode). The server now allows you to specify a role in such instances with--unauthorized-roleflag. #595 -
capture user information in postgres: Often when adding triggers in Postgres to audit your tables you would also want the
userinformation as seen by hasura. You can now access the user information withcurrent_setting('hasura.user')in your pl/pgsql functions. See auditing tables. -
event triggers on update only happen when the specified columns change (close #547, close #680) (#550)
-
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:
MultiPolygonGeoJSON 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
Changelog
New features
- GraphQL queries can now be "analyzed" ⚡. Click the
Analyzebutton 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 reloadcommand, 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
24th alpha release for v1.0.0
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_CONSOLEenvironment variable to enable/disable console at/consoleendpoint. To enable, set the valuetrueand set tofalseto disable. Note that the--enable-consoleflag takes precedence over this variable. (close #632) (#642) - New shortcut for executing SQL in console Ctrl+Enter (close #542)
- Adds support for
_is_nulloperator 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
Changelog
Breaking changes
- Postgres
bigintandbigserialtypes are now encoded as GraphQLStringin the response. Previously this wasInt. This fix is required because GraphQLInttypes are 32-bit signed integers whilebigintandbigserialare 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 createcommand to fail. (fix #585) (#586) - Fixes a bug on server that caused an error if an
order_bycolumn is not included in thereturningfields (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
Changelog
New features
Fixes
- Fixes a bug that caused migration from
v1.0.0-alpha20tov1.0.0-alpha21to fail for Postgres user with restricted permissions. Earlier,hdb_viewsschema was dropped, now it is cleaned. (closes #567) (#568) - Fixes a bug that caused a non-admin upsert query to return
affected_rows: 1and[{column: null}]instead ofaffected_rows: 0and[]. (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
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
--projecton CLI to behave inconsistently (close #552) (#557) - Server now accepts
crskey 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
metadatacommand with CLI. (#493) - (Breaking) Removes
sfromquery_execution_timein 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 ofs. (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
20th alpha release for v1.0.0
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
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
17th alpha release for v1.0.0
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)