Commit Graph

1496 Commits

Author SHA1 Message Date
Noon van der Silk
4ebfaf2ffd
adds postgres password to docker-compose setup (fix #3894) (#3895)
* adds postgres password to docker-compose setup

* fix confusion with pg password

* add pw to other docker-compose files

* add password to db url

* setting postgis image version

Co-authored-by: Marion Schleifer <marion@hasura.io>
Co-authored-by: Shahidh K Muhammed <muhammedshahid.k@gmail.com>
2020-02-19 19:22:40 +05:30
Shahidh K Muhammed
88afa2ef70
update manifests to v1.1.0 (#3913) 2020-02-19 19:21:40 +05:30
Rikin Kachhia
0805719523
docs: remove wip actions docs (#3909)
* revert actions docs
2020-02-19 17:49:35 +05:30
Rikin Kachhia
b0d180efa2
docs: use install manifests from stable branch (#3906)
* update docs install manifests to use stable branch

* change the link to master at some more places

Co-authored-by: Shahidh K Muhammed <muhammedshahid.k@gmail.com>
2020-02-19 17:13:08 +05:30
Rishichandra Wawhal
6b8c7eff67
console: add actions support (#3889) 2020-02-19 15:29:20 +05:30
Rikin Kachhia
ff3ac78d8f
console: show pre-release update notifications with opt out option (#3888) 2020-02-18 15:05:06 +05:30
InHoeKu
03e1e75705
translation(readme): add korean (#3818) 2020-02-18 14:02:23 +05:30
Vamshi Surabhi
b84db36ebb
allow custom mutations through actions (#3042)
* basic doc for actions

* custom_types, sync and async actions

* switch to graphql-parser-hs on github

* update docs

* metadata import/export

* webhook calls are now supported

* relationships in sync actions

* initialise.sql is now in sync with the migration file

* fix metadata tests

* allow specifying arguments of actions

* fix blacklist check on check_build_worthiness job

* track custom_types and actions related tables

* handlers are now triggered on async actions

* default to pgjson unless a field is involved in relationships, for generating definition list

* use 'true' for action filter for non admin role

* fix create_action_permission sql query

* drop permissions when dropping an action

* add a hdb_role view (and relationships) to fetch all roles in the system

* rename 'webhook' key in action definition to 'handler'

* allow templating actions wehook URLs with env vars

* add 'update_action' /v1/query type

* allow forwarding client headers by setting `forward_client_headers` in action definition

* add 'headers' configuration in action definition

* handle webhook error response based on status codes

* support array relationships for custom types

* implement single row mutation, see https://github.com/hasura/graphql-engine/issues/3731

* single row mutation: rename 'pk_columns' -> 'columns' and no-op refactor

* use top level primary key inputs for delete_by_pk & account select permissions for single row mutations

* use only REST semantics to resolve the webhook response

* use 'pk_columns' instead of 'columns' for update_by_pk input

* add python basic tests for single row mutations

* add action context (name) in webhook payload

* Async action response is accessible for non admin roles only if
  the request session vars equals to action's

* clean nulls, empty arrays for actions, custom types in export metadata

* async action mutation returns only the UUID of the action

* unit tests for URL template parser

* Basic sync actions python tests

* fix output in async query & add async tests

* add admin secret header in async actions python test

* document async action architecture in Resolve/Action.hs file

* support actions returning array of objects

* tests for list type response actions

* update docs with actions and custom types metadata API reference

* update actions python tests as per #f8e1330

Co-authored-by: Tirumarai Selvan <tirumarai.selvan@gmail.com>
Co-authored-by: Aravind Shankar <face11301@gmail.com>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
2020-02-13 23:08:23 +05:30
Tirumarai Selvan
f8e133070b
run default tests in test_server_upgrade (#3718)
* run basic tests after upgrade

* terminate before specifying file in pytest cmd

* Move fixture definitions out of test classes

Previously we had abstract classes with the fixtures defined
in them. The test classes then inherits these super classes. This
is creating inheritence problems, especially when you want to just
inherit the tests in class, but not the fixtures. We have now moved
all those fixture definitions outside of the class (in conftest.py).
These fixtures are now used by the test classes when and where they
are required.

* Run pytests on server upgrade

Server upgrade tests are run by
  1) Run pytest with schema/metadata setup but do not do schema/metadata
teardown
  2) Upgrade the server
  3) Run pytest using the above schema and teardown at the end of the
tests
  4) Cleanup hasura metadata and start again with next set of tests

We have added options --skip-schema-setup and --skip-schema-teardown to
help running server upgrade tests.

While running the tests, we noticed that error codes and messages for
some of the tests have changed. So we have added another option to
pytest `--avoid-error-message-checks`. If this flag is set, and if
comparing expected and response message fails, and if the expected
response has an error message, Pytest will throw warnings instead of an
error.

* Use marks to specify server-upgrade tests

Not all tests can be run as serve upgrade tests, particularly those
which themselves change the schema. We introduce two pytest markers.
Marker allow_server_upgrade_test will add the test into the list of
server  upgrade  tests  that  can  be run. skip_server_upgrade_test
removes it from the list.

With this we have added tests for queries, mutations, and selected
event trigger and remote schema tests to the list of server upgrade
tests.

* Remove components not needed anymore

* Install curl

* Fix error in query validation

* Fix error in test_v1_queries.py

* install procps for server upgrade tests

* Use postgres image which has postgis installed

* set pager off with psql

* quote the bash variable WORKTREE_DIR

Co-authored-by: nizar-m <19857260+nizar-m@users.noreply.github.com>
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-02-13 14:44:02 +05:30
Phil Freeman
f615abd2f2
Add check expresion to update permissions (close #384) (#3804)
* Add check expresion to update permissions (close #384)

* wip on conflict behavior

* Handle upserts for views properly

* Use insert check if there is no update check

* Fix the test

* Improve error message slightly

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-02-13 13:08:49 +05:30
Karthikeyan Chinnakonda
441c0a2452
cli: update installation instructions in the readme (fix #3875) (#3876)
Co-authored-by: Shahidh K Muhammed <muhammedshahid.k@gmail.com>
2020-02-13 12:54:36 +05:30
Rikin Kachhia
4b78884d36
handle invalid keys in permission builder (close #3848) (#3863)
* handle non-existent column names
* handle invalid _exist operator expression keys
* handle non-array values for _and/_or operators
2020-02-12 14:45:26 +05:30
Rakesh Emmadi
3a07228525
fix casting citext column type (fix #2818) (#3861) 2020-02-11 16:02:13 +05:30
Phil Freeman
94102c0460
Add downgrade command (close #1156) (#3760)
* Add downgrade command

* Add docs per @lexi-lambda's suggestions

* make tests pass

* Update hdb_version once, from Haskell

* more work based on feedback

* Improve the usage message

* Small docs changes

* Test downgrades exist for each tag

* Update downgrading.rst

* Use git-log to find tags which are ancestors of the current commit

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-02-07 16:33:12 +05:30
Vamshi Surabhi
e84f8b9b58
persist mix files only when coverage is enabled (#3844) 2020-02-06 20:09:52 -06:00
Vamshi Surabhi
fb9498488f
Merge pull request #3798 from lexi-lambda/3759-3791-minor-metadata-build-bugfixes
Fix two minor bugs in the schema cache build process (fix #3759 and #3791)
2020-02-05 19:34:20 +05:30
Vamshi Surabhi
446a788943
Merge branch 'master' into 3759-3791-minor-metadata-build-bugfixes 2020-02-05 18:48:11 +05:30
Aleksandra Sikora
f834f6b0d8
handle missed edge-cases introduced in #3041 (#3837) 2020-02-05 18:39:59 +05:30
Vamshi Surabhi
2de663d2a8
Merge branch 'master' into 3759-3791-minor-metadata-build-bugfixes 2020-02-05 18:25:46 +05:30
Rakesh Emmadi
7fb6577924
fix update event trigger & dropping triggers on run_sql, fix #3803 #3784 (#3833)
Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-02-05 18:24:26 +05:30
Philippe MARTIN
70e1b771e0
accept query params for filter/sort in browse table page (close #833) (#3041) 2020-02-05 16:00:47 +05:30
Rikin Kachhia
87e97dfda7
update console codeowner (#3832)
[skip ci]
2020-02-05 15:19:10 +05:30
Anon Ray
c6e34baad8
fix parsing JWK expiry time from headers on startup (fix #3655) (#3779) 2020-02-05 12:37:30 +05:30
Rikin Kachhia
916ccc2e2f
console: permission builder fixes (#3823)
* allow manually editing permissions (#1734)
* separate operators for json and jsonb column types
* allow null as valid JSON type
2020-02-05 00:33:06 +05:30
Rakesh Emmadi
53b9cabd88
fix few bugs related to nested insert returning (fix #3609, #3642, #3271) (#3618)
* fix nested insert with returning computed fields gives error, fix #3609

* revert using ordered hashmaps, sort columns based on ordinal postion

* fix 1. keys order 2. json/jsonb column value in nested insert returning

* add a note for sorted columns

* cast 'VALUES' expression as table row type

* use single CTE expression for generating returning for nested inserts
2020-02-04 21:04:17 +05:30
Alexis King
c90c75f0b1
Merge pull request #3622 from jberryman/3552-gather-usage-telemetry-for-cache
Add request timings and count histograms to telemetry. Closes #3552
2020-02-03 18:51:20 -06:00
Brandon Simmons
b863dc25c8 dev.sh: exit and report if graphql-engine fails to start up during integration tests 2020-02-03 18:50:10 -06:00
Brandon Simmons
f506cb397f Log time spent consuming request bytes from socket. Closes #3547
Add a new 'request_read_time' to the logging record.

We also use 'withElapsedTime' to get proper monotonic clock for
'query_execution_time' as well.
2020-02-03 18:50:10 -06:00
Brandon Simmons
58ef316118 Add request timings and count histograms to telemetry. Closes #3552
We upload a set of accumulating timers and counters to track service
time for different types of operations, across several dimensions (e.g.
did we hit the plan cache, was a remote involved, etc.)

Also...

Standardize on DiffTime as a standard duration type, and try to use it
consistently.

See discussion here:
https://github.com/hasura/graphql-engine/pull/3584#pullrequestreview-340679369

It should be possible to overwrite that module so the new threadDelay
sticks per the pattern in #3705 blocked on #3558

Rename the Control.Concurrent.Extended.threadDelay to `sleep` since a
naive use with a literal argument would be very bad!

We catch a bug in 'computeTimeDiff'.

Add convenient 'Read' instances to the time unit utility types. Make
'Second' a newtype to support this.
2020-02-03 18:50:10 -06:00
Vamshi Surabhi
21efd3aa1e
Test and dev script improvements
* Unit tests: pass through some useful flags to hspec (--match and --skip)

--match for instance is suggested on test failure, so this is convenient
to have.

* More comments in cabal.project files

* dev.sh: restore code coverage functionality

Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com>
2020-02-03 21:47:31 +05:30
Vamshi Surabhi
15072237e4
Merge branch 'master' into test-improvements-01-2020 2020-02-03 21:10:42 +05:30
Lyndon Maydwell
be6f966ce0
New ENV variable support for disabling CORS headers (close #3782) (#3785) 2020-02-03 16:43:03 +05:30
Isala Piyarisi
79f1603f13
console: handle create if not exists syntax for track table (close #3766) (#3816) 2020-02-03 15:45:06 +05:30
Aravind
c258fa75cb
cli: add --goto flag in hasura migrate apply (close #2689) (#3715)
* cli: add --goto <version> flag to migrate command

* cli: fix error encoutered in goto, when on version -1

* do down migrations one step down

* reorganize code

* in case of up "gotos" make sure that all previous migration in migration chain are applied

* modify readUp and readDown functions to account for --goto use case

* refactor to clean up and adopt a better implementation addressing the comments

* remove empty error handling step

* return ErrNoChange when no migrations were applied

* respect m.stop() can panic so place conditional cases after that and add a couple other small fixes

* fix bug caused by early checking of versions

* fix to add migration_mode and nil version check

* add some more examples for migrate apply command

Co-authored-by: Aravind Shankar <face11301@gmail.com>
Co-authored-by: Shahidh K Muhammed <muhammedshahid.k@gmail.com>
2020-02-03 12:33:32 +05:30
Marion Schleifer
2b977bb9b9
docs: document explain api (close #870) (#3739) 2020-02-03 12:04:44 +05:30
Rikin Kachhia
fca16b88ef
misc console fixes (close #3777, #3789) (#3813)
* handle string errors
* handle empty columns / computed fields in permissions (#3789)
* allow is_null for all operators (#3777)
2020-02-01 09:59:38 +05:30
Rishichandra Wawhal
405d6450f9
console: replace graphiql fork with pkg + update explorer + replace uglify with terser (#3073) 2020-01-31 17:24:19 +05:30
Alexis King
895f244a67 Refactor common logic out of metadata processing 2020-01-30 18:17:29 -06:00
Alexis King
8ef205fba5 Explicitly invalidate enum values when metadata is reloaded
This fixes #3759. Also, while we’re at it, also improve the way
invalidations are synced across instances so enums and remote schemas
are appropriately reloaded by the schema syncing process.
2020-01-30 18:17:29 -06:00
Alexis King
3cdb3841e6 Build the GraphQL context after pruning dangling dependents
fixes #3791
2020-01-30 18:17:29 -06:00
Shahidh K Muhammed
64485a0fd6
cli: fix version constraint for update check (close #3719) (#3730) 2020-01-30 14:41:03 +05:30
Praveen Durairaju
2791000475 update nuxtjs-postgres-graphql dependencies (close #3743) (#3765)
* update nuxt to 2.11

* fix issue 3743
2020-01-24 10:32:55 +05:30
Brandon Simmons
87cbe68cab dev.sh: restore code coverage functionality
After https://github.com/hasura/graphql-engine/pull/3558
2020-01-23 18:35:18 -05:00
Brandon Simmons
5257c61f15 More comments in cabal.project files 2020-01-23 18:20:58 -05:00
Alexis King
5bd5a548fa
server: Parameterize the graphql-engine library over the version (#3668) 2020-01-22 15:55:55 -06:00
Karthikeyan Chinnakonda
b344e7f39c disable explain end-points when metadata API is disabled, fix #3717 (#3751) 2020-01-22 16:20:49 +05:30
Brandon Simmons
8716cf0e08 Unit tests: pass through some useful flags to hspec (--match and --skip)
--match for instance is suggested on test failure, so this is convenient
to have.
2020-01-21 13:12:27 -05:00
Rikin Kachhia
ce547dc341
console: misc bug fixes (#3733)
* handle undefined headers configuration for event triggers
* save SQL to localStorage after execution (to avoid it being lost in case page is closed without umounting)
* fix nested objects View bug in Browse rows in case nested objects are present in a separate * schema.
2020-01-21 17:13:36 +05:30
Rikin Kachhia
5702881d5c
docs: misc updates (#3700)
* added example for select_by_pk query
* improved notes on _or and _and behaviour
* improve distinct and order_by usage note
2020-01-20 17:17:49 +05:30
Aravind Shankar
c00a3d47ff circleci: update workflow id (#3745) 2020-01-20 15:34:00 +05:30