Releases: hasura/graphql-engine
v1.0.0-alpha29
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 bycurrent_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
v1.0.0-alpha28
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:
- server:
Retry-After
header of the webhook response takes precedence over the configured retry policy (event triggers). - server:
EVENTS_FETCH_INTERVAL
can now be specified in milliseconds (event triggers). - console: handle non-public schema cases for manual relationship creation (#911)
Fixes:
- server: fixes an issue with insert mutations with relationships where
returning
is not specified. - console: fix an issue with pending event trigger logs when opened (#926)
- 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
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
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
,avg
etc. using the GraphQL interface. For every table there will be atable_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.
-
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 fromorder_by: id_asc
toorder_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_id
from the client side during inserts even though it can be determined on the server from theAuthorization
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. -
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 missingAuthorization
header in JWT mode). The server now allows you to specify a role in such instances with--unauthorized-role
flag. #595 -
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 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:
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
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
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_CONSOLE
environment variable to enable/disable console at/console
endpoint. To enable, set the valuetrue
and set tofalse
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
Changelog
Breaking changes
- Postgres
bigint
andbigserial
types are now encoded as GraphQLString
in the response. Previously this wasInt
. This fix is required because GraphQLInt
types are 32-bit signed integers whilebigint
andbigserial
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 thereturning
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
Changelog
New features
Fixes
- Fixes a bug that caused migration from
v1.0.0-alpha20
tov1.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 ofaffected_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
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
fromquery_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 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)