Anon Ray
af6121f83d
jwt claims check should be case-insensitive ( fix #435 ) ( #438 )
2018-09-13 18:34:50 +05:30
Tirumarai Selvan
c3a38517cd
dont retry http requests in the client ( close #434 ) ( #436 )
2018-09-13 17:22:11 +05:30
Shahidh K Muhammed
be20a11d37
update checks on ci systems ( close #319 ) ( #383 )
2018-09-12 16:33:36 +05:30
Anon Ray
a5930edd8a
uri-decode database uri strings ( fix #372 ) ( #424 )
2018-09-12 11:49:08 +05:30
Rakesh Emmadi
86b769c8e5
returning on json queries now returns only affected row ( fix #380 ) ( #381 )
2018-09-08 23:02:58 +05:30
Vamshi Surabhi
dd8e09d6cb
add jsonb boolean operators ( close #369 ) ( #376 )
2018-09-07 17:45:28 +05:30
Tirumarai Selvan
e905535beb
implement api to deliver a particular event ( close #371 ) ( #373 )
2018-09-07 17:21:01 +05:30
Tirumarai Selvan
2814e87e37
make sure only events for existing triggers are fetched ( #368 )
2018-09-07 13:53:56 +05:30
Anon Ray
f726bb549d
add custom namespace in jwt claims ( close #350 ) ( #364 )
2018-09-07 11:30:50 +05:30
Karthik Venkateswaran
e3102dfd5e
ui buttons to export and import metadata, reload metadata api ( close #293 ) ( #323 )
2018-09-05 20:55:30 +05:30
Tirumarai Selvan
e402d11318
update catalog version to 2 ( #357 )
2018-09-05 17:12:20 +05:30
Tirumarai Selvan
82e09efce6
add event triggers ( #329 )
2018-09-05 16:56:46 +05:30
Rakesh Emmadi
0a3f68a6eb
allow selectively updating columns on a conflict during insert ( fix #342 )
...
* fix primary key changing on upsert, fix #342
* add 'update_columns' in 'on_conflict' object, consider 'allowUpsert'
* 'ConflictCtx' type should respect upsert cases
* validation for not null fields in an object
2018-09-04 19:09:48 +05:30
Rakesh Emmadi
10edb431e4
generate a returning field in a mutation only when the select permission is defined ( fix #340 ) ( #341 )
2018-09-03 12:35:00 +05:30
Anon Ray
b2f88ff28a
add support for jwt authorization ( close #186 ) ( #255 )
...
The API:
1. HGE has `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var. The value of which is a JSON.
2. The structure of this JSON is: `{"type": "<standard-JWT-algorithms>", "key": "<the-key>"}`
`type` : Standard JWT algos : `HS256`, `RS256`, `RS512` etc. (see jwt.io).
`key`:
i. Incase of symmetric key, the key as it is.
ii. Incase of asymmetric keys, only the public key, in a PEM encoded string or as a X509 certificate.
3. The claims in the JWT token must contain the following:
i. `x-hasura-default-role` field: default role of that user
ii. `x-hasura-allowed-roles` : A list of allowed roles for the user. The default role is overriden by `x-hasura-role` header.
4. The claims in the JWT token, can have other `x-hasura-*` fields where their values can only be strings.
5. The JWT tokens are sent as `Authorization: Bearer <token>` headers.
---
To test:
1. Generate a shared secret (for HMAC-SHA256) or RSA key pair.
2. Goto https://jwt.io/ , add the keys
3. Edit the claims to have `x-hasura-role` (mandatory) and other `x-hasura-*` fields. Add permissions related to the claims to test permissions.
4. Start HGE with `--jwt-secret` flag or `HASURA_GRAPHQL_JWT_SECRET` env var, which takes a JSON string: `{"type": "HS256", "key": "mylongsharedsecret"}` or `{"type":"RS256", "key": "<PEM-encoded-public-key>"}`
5. Copy the JWT token from jwt.io and use it in the `Authorization: Bearer <token>` header.
---
TODO: Support EC public keys. It is blocked on frasertweedale/hs-jose#61
2018-08-30 16:02:09 +05:30
Rakesh Emmadi
daf01c2b9d
mutation return type and query type are same ( close #315 ) ( #324 )
2018-08-30 15:19:21 +05:30
Rakesh Emmadi
f72d8de87a
fix insert fails for non-admin roles on v1/query ( fix #327 ) ( #328 )
...
* fix insert fails for non-admin roles on v1/query, fix #327
* add test case for user role upsert usint constraint name
2018-08-29 19:11:33 +05:30
Rakesh Emmadi
75e4400bc5
add req_user_id as alias to x-hasura-user-id ( fix #317 ) ( #320 )
2018-08-29 11:17:13 +05:30
Rakesh Emmadi
efc9fc7ba9
simpler root level select fields using primary keys ( fix #304 ) ( #306 )
...
* select fields by primary key col values as argument values, fix #304
* change field name 'table_by_pkey' to 'table_by_pk'
2018-08-27 19:47:03 +05:30
Rakesh Emmadi
0f13f72bfe
do not allow creating permissions for admin role, fix #310 ( #312 )
2018-08-27 17:20:18 +05:30
Rakesh Emmadi
a0574307c3
set header variables in subscription transaction, fix #297 ( #299 )
2018-08-22 13:53:53 +05:30
Rakesh Emmadi
e3b56ac368
fix upsert queries to work on non admin roles ( fix #239 ) ( #291 )
2018-08-17 20:14:43 +05:30
Shahidh K Muhammed
0ea2ab45f8
add default cmd to dockerfile ( close #228 ) ( #281 )
2018-08-13 15:58:22 +05:30
Rakesh Emmadi
0797407dbf
respect the nullability of columns in generated schema ( fix #256 ) ( #276 )
2018-08-10 18:14:44 +05:30
Rakesh Emmadi
adf973dee5
better error code when insertion check constraint fails ( fix #257 ) ( #267 )
2018-08-10 17:35:07 +05:30
Vamshi Surabhi
c901767cd1
update packages ( #251 )
...
* move to stackage 12.4
* upgrade pg-client
* docker build improvements
2018-08-08 13:10:13 +05:30
Rakesh Emmadi
cffa808d19
returning returns [] when mutations affect no rows ( fix #265 ) ( #269 )
...
* fix returning returns null, fix #265
* add a test case for delete mutation with returning
2018-08-08 12:31:49 +05:30
Rakesh Emmadi
8ecb80d2da
accept null values for input values, closes #252 ( #266 )
2018-08-07 16:13:42 +05:30
Vamshi Surabhi
dcde969d66
ignore certain headers from the request when calling the webhook ( close #260 ) ( #261 )
2018-08-06 19:36:48 +05:30
Rakesh Emmadi
9c55490e98
add limit in select permission which overrides limit in query ( close #178 ) ( #237 )
2018-08-06 17:45:08 +05:30
Rakesh Emmadi
c94640a377
don't allow creating relationships from/to a table that isn't tracked ( fix #185 ) ( #229 )
...
* don't allow fkey based relations from/to a table that isn't tracked, fix #185
Check if remote table exist in metadata when creating foreign-key
based object relationship.
* add tests for adding object relation using fkey if remote table is untracked
2018-08-03 15:04:37 +05:30
Rakesh Emmadi
8ef2692eb7
improve logs on webhook errors ( closes #238 , #242 ) ( #243 )
...
* logging for webhook IO exceptions, fix log request for errors, fix #238
* log status code and response in case of any error for webhook
2018-08-03 14:13:35 +05:30
Rakesh Emmadi
a0590598e5
filter schema identifiers to conform to graphql naming scheme ( close #134 ) ( #211 )
...
* filter schema identifiers to conform to graphql naming scheme,closes #134
Filter out tables, columns, relationships etc which does not conform to
graphql naming scheme.
This ensures GraphiQL initialisation works properly for existing
databases.
* rename `isGraphQLConform` to `isValidName`
* rename all graphQL validators
2018-07-27 15:20:12 +05:30
Anon Ray
62b7b800c5
check for updates every 24 hrs in background ( fix #204 ) ( #209 )
2018-07-27 15:04:50 +05:30
Anon Ray
c747971f2d
server tests now run across supported postgres versions >= 9.5 ( fix #154 ) ( #199 )
2018-07-26 11:17:21 +05:30
Rakesh Emmadi
ad31f02b51
add ca certificates to packager ( fix #195 ) ( #197 )
2018-07-24 13:17:09 +05:30
Rakesh Emmadi
27e2d647bb
add _inc and jsonb operators to update_mutation ( close #159 ) ( #169 )
2018-07-20 16:21:20 +05:30
Anon Ray
07ac9fe345
add more tests ( #170 )
2018-07-20 13:49:06 +05:30
Vamshi Surabhi
e3f960da96
initial support for livequeries ( #176 )
...
fix #59
2018-07-20 12:52:46 +05:30
Aravind Shankar
5985bf8e9e
deploy script enhancements ( #124 )
2018-07-17 22:30:26 +05:30
Vamshi Surabhi
679310b008
accomodate for the precedence of IS before 9.5, closes #150
2018-07-17 22:26:47 +05:30
Rakesh Emmadi
5efa366b49
add 'on_conflict' argument to insert mutation ( closes #105 )
...
* add 'on_conflict' condition to allow upsert mutation, closes #105
* check for empty unique or primary key constraints
* add 'on_conflict' condition test cases and introspection test case
* update 'conflict_action' enum values' description
2018-07-17 18:53:23 +05:30
Earl St Sauver
6d68a819e0
update path in server contributing guide ( #136 )
...
update path in server contributing guide
2018-07-16 19:27:13 +05:30
rakeshkky
a094394f38
server: add _is_null operator, closes #106
2018-07-12 19:33:02 +05:30
Anon Ray
79d7b497c9
add contributing guidelines for server ( #104 )
2018-07-11 16:04:29 +05:30
Rakesh Emmadi
6160e24085
rename 'raven' to 'graphql-engine' in help text, closes #87
2018-07-11 13:54:13 +05:30
Anon Ray
4270529c11
basic test suite ( #78 )
...
* server: basic test setup
* server: use the default transaction mode
* server: basic tests in yaml files
* server: restructure test setup and some more tests
2018-07-11 12:43:07 +05:30
Rakesh Emmadi
4a76c7e89e
server: throw 401 exception for accesskey mismatch/notfound, fix #67 ( #71 )
...
return 401 when access key does not match or is not found, closes #67
2018-07-11 11:07:53 +05:30
Shahidh K Muhammed
83ab85fb04
update readme and contributing guides ( #90 )
2018-07-11 10:27:03 +05:30
dsandip
29654fa883
remove license file reference
2018-07-10 20:57:20 +05:30
dsandip
467988c4b4
Changes license
2018-07-10 19:48:54 +05:30
Shahidh K Muhammed
50165fc1ed
circleci integration ( #74 )
2018-07-10 10:01:02 +00:00
rakeshkky
82e81cd540
server: use row expressions instead of json_build_object
2018-07-09 12:55:49 +05:30
Rakesh Emmadi
38c91e2b9e
catch and log http exceptions from auth webhook, closes #28
2018-07-09 11:34:41 +05:30
Rakesh Emmadi
b9ff99329a
server: process headers only for known urls, fixes #46
2018-07-06 10:46:42 +05:30
Rakesh Emmadi
e834bc51a6
server: try environment variables if flags are missing, closes #45
2018-07-06 10:43:46 +05:30
Rakesh Emmadi
b9dd3b2ab2
server: close #34 render console assets version as v[maj.min] ( #39 )
2018-07-04 18:15:34 +05:30
Shahidh K Muhammed
98c827449b
build: integrate circleci
...
integration with circleci for various workflows
2018-07-03 22:40:13 +05:30
Rakesh Emmadi
400a0e3f16
server: add v1/version api, fix #34 ( #37 )
2018-07-03 21:04:25 +05:30
Anon Ray
9d2d158532
server: build now is multi-stage builds ( fix #29 )
...
- Change the build flow to use docker multi-stage builds
2018-07-02 16:40:13 +00:00
Vamshi Surabhi
9a845b4932
server: mutationRoot is optional in __schema
2018-06-29 17:32:59 +05:30
Rakesh Emmadi
128ed2388b
server: console is served at /console Closes #16 ( #22 )
2018-06-29 16:35:09 +05:30
Vamshi Surabhi
db1a098b3b
server: do not publish schema for system defined tables
2018-06-29 16:30:54 +05:30
Vamshi Surabhi
114418c378
server: support @skip and @include directives. closes #7
2018-06-29 14:50:49 +05:30
Vamshi Surabhi
f6bb130240
server: improved error messages. closes #8
2018-06-29 12:51:04 +05:30
Vamshi Surabhi
c09725ba79
server: coerce 'a' to '[a]' for list input types
2018-06-29 10:17:53 +05:30
Vamshi Surabhi
7e0bb03f17
server: map pgvarchar to GraphQL String
2018-06-29 10:17:53 +05:30
Rakesh Emmadi
a4dbe58c15
server: Disallow untrack_table for system defined tables. Fix #12 ( #15 )
2018-06-28 17:26:40 +05:30
Rakesh Emmadi
f625882199
[server] allow only one of db url or conn params. Closes #5 ( #11 )
2018-06-28 16:19:40 +05:30
Vamshi Surabhi
47c73f750f
server: use insert-ordered-containers for ordered map
2018-06-28 13:49:52 +05:30
Vamshi Surabhi
3b8c5a1848
server: use attoparsec-iso8601 for parsing time information
2018-06-28 13:49:52 +05:30
Vamshi Surabhi
e637f3dd7b
server: packaging now works
2018-06-28 13:49:52 +05:30
Vamshi Surabhi
530027cf20
move raven into graphql-engine repo
2018-06-28 00:32:00 +05:30