Shahidh K Muhammed
a5890623c4
specify needed node version, clarify setup instructions ( close #1754 ) ( #1815 )
2019-03-19 10:42:50 +05:30
Tirumarai Selvan
8615c306ec
add for update skip locked to fetch query ( #1798 )
2019-03-19 10:00:44 +05:30
Vamshi Surabhi
24dcefb142
use bytestring builder to represent encoded json ( #1800 )
2019-03-18 21:52:21 +05:30
Anon Ray
961f1af528
send error
not connection_error
on query validation errors ( fix #1790 ) ( #1792 )
2019-03-17 17:30:54 +05:30
Vamshi Surabhi
c7346fd55a
bump stackage to lts 13 and refer to hasura's pg-client-hs ( #1747 )
2019-03-14 20:25:33 +05:30
Rakesh Emmadi
e32f5a1fb1
sync metadata cache across multiple instances connected to same db ( closes #1182 ) ( #1574 )
...
1. Haskel library `pg-client-hs` has been updated to expose a function that helps listen to `postgres` notifications over a `channel` in this [PR](https://github.com/hasura/pg-client-hs/pull/5 )
2. The server records an event in a table `hdb_catalog.hdb_cache_update_event` whenever any `/v1/query` (that changes metadata) is requested. A trigger notifies a `cache update` event via `hasura_cache_update` channel
3. The server runs two concurrent threads namely `listener` and `processor`. The `listener` thread listens to events on `hasura_cache_update` channel and pushed into a `Queue`. The `processor` thread fetches events from that `Queue` and processes it. Thus server rebuilds schema cache from database and updates.
2019-03-12 11:16:27 +05:30
Rakesh Emmadi
5f274b5527
fix mutation returning when relationships are present ( fix #1576 ) ( #1703 )
...
If returning field contains nested selections then mutation is performed in two steps
1. Mutation is performed with returning columns of any primary key and unique constraints
2. returning fields are queried on rows returned by selecting from table by filtering with column values returned in Step 1.
Since mutation takes two courses based on selecting relations in returning field, it is hard to maintain sequence of prepared arguments (PrepArg) generated while resolving returning field. So, we're using txtConverter instead of prepare to resolve mutation fields.
2019-03-07 15:54:07 +05:30
Vamshi Surabhi
98405fdc0c
allow x-hasura- req headers for jwt unauth role, closes #1686 ( #1689 )
2019-03-05 17:54:47 +05:30
Anon Ray
d9882fcb03
fix remote queries/mutations to work over websocket ( fix #1619 ) ( #1621 )
2019-03-05 16:39:02 +05:30
Anon Ray
02d80c9ac6
read cookie while initialising websocket connection ( fix #1660 ) ( #1668 )
...
* read cookie while initialising websocket connection (fix #1660 )
* add tests for cookie on websocket init
* fix logic for tests
* enforce cors, and flag to force read cookie when cors disabled
- as browsers don't enforce SOP on websockets, we enforce CORS policy
on websocket handshake
- if CORS is disabled, by default cookie is not read (because XSS
risk!). Add special flag to force override this behaviour
* add log and forward origin header to webhook
- add log notice when cors is disabled, and cookie is not read on
websocket handshake
- forward origin header to webhook in POST mode. So that when CORS is
disabled, webhook can also enforce CORS independently.
* add docs, and forward all client headers to webhook
2019-03-04 13:16:53 +05:30
Vamshi Surabhi
f794653b69
update event triggers on rename operations ( #1684 )
2019-03-01 19:29:24 +05:30
Rakesh Emmadi
377290a058
breaking: correct (de)serialisation of postgres numeric types in json ( fix #1523 ) ( #1662 )
2019-03-01 17:15:04 +05:30
Rakesh Emmadi
6c20ca8a55
allow renaming tables, columns and relationships ( close #79 ) ( #1542 )
2019-03-01 14:47:22 +05:30
nizar-m
1fa66dc622
add option to disable metadata and graphql apis ( close #1088 ) ( #1650 )
2019-02-28 19:23:03 +05:30
Shahidh K Muhammed
097bfb6bfa
revert "forward response headers from remote servers ( #1664 )"
...
This reverts commit c19fe35f4e
.
2019-02-28 17:20:56 +05:30
Anon Ray
c19fe35f4e
forward response headers from remote servers ( fix #1654 ) ( #1664 )
2019-02-28 17:15:07 +05:30
Rakesh Emmadi
c731fde1e3
enforce column presets of update permission with upserts ( fix #1647 ) ( #1653 )
2019-02-23 16:06:42 +05:30
Tirumarai Selvan
7851015cb2
refactor event processing logic ( #1639 )
2019-02-22 17:55:36 +05:30
Rakesh Emmadi
0833d35088
generate scalar types for SQL function arguments ( fix #1632 ) ( #1633 )
...
Also involved a refactor of the internals to localise the context needed for each field
2019-02-22 15:57:38 +05:30
Igor Pashev
7ccc91ec4f
remove grep from server makefile ( #1614 )
...
awk can do all the job.
2019-02-19 12:20:54 +05:30
nizar-m
f83a8e591f
rename access-key to admin-secret ( close #1347 ) ( #1540 )
...
Rename the admin secret key header used to access GraphQL engine from X-Hasura-Access-Key to X-Hasura-Admin-Secret.
Server CLI and console all support the older flag but marks it as deprecated.
2019-02-14 15:07:47 +05:30
Tirumarai Selvan
51dd6157e1
remove wreq and set response timeout ( close #1477 ) ( #1501 )
2019-02-14 13:07:59 +05:30
Anon Ray
199a24d050
add support for multiple domains in cors config ( close #1436 ) ( #1536 )
...
Support for multiple domains (as CSV) in the `--cors-domain` flag and `HASURA_GRAPHQL_CORS_DOMAIN` env var.
Following are all valid configurations (must include scheme and optional port):
```shell
HASURA_GRAPHQL_CORS_DOMAIN="https://*.foo.bar.com:8080 "
HASURA_GRAPHQL_CORS_DOMAIN="https://*.foo.bar.com , http://*.localhost , https://example.com "
HASURA_GRAPHQL_CORS_DOMAIN="*"
HASURA_GRAPHQL_CORS_DOMAIN="http://example.com , http://*.localhost , http://localhost:3000 , https://*.foo.bar.com , https://foo.bar.com "
```
**Note**: top-level domains are not considered as part of wildcard domains. You have to add them separately. E.g - `https://*.foo.com ` doesn't include `https://foo.com `.
The default (if the flag or env var is not specified) is `*`. Which means CORS headers are sent for all domains.
2019-02-14 11:28:38 +05:30
Vamshi Surabhi
68bb898b24
Update CONTRIBUTING.md
2019-02-14 10:47:27 +05:30
Vamshi Surabhi
392a37f12a
Update CONTRIBUTING.md
2019-02-14 10:46:14 +05:30
Rakesh Emmadi
2054bdc44e
do not allow overloading already tracked functions ( #1563 )
2019-02-14 09:35:18 +05:30
Rakesh Emmadi
cba732d439
support column presets in update mutation ( closes #1449 , closes #1464 ) ( #1473 )
...
Also restricts altering type of columns which are used in presets
2019-02-11 18:15:30 +05:30
Tirumarai Selvan
9a6fa7fafc
add delivery info to event payload ( close #1476 ) ( #1517 )
...
Adds the following to the event payload:
```
"delivery_info": {
"max_retries": 0,
"current_retry": 0
}
```
2019-02-07 18:07:28 +05:30
Anon Ray
4f6462e98f
add config for stringified hasura claims in JWT ( fix #1176 ) ( #1538 )
2019-02-05 17:34:16 +05:30
Rakesh Emmadi
96f8b05326
don't allow altering tracked SQL functions type to VOLATILE ( fix #1546 ) ( #1547 )
2019-02-05 11:27:03 +05:30
nizar-m
68da491d9d
Improve error message when no operation specs are provided during event trigger creation ( close #998 ) ( #1541 )
2019-02-01 15:07:38 +05:30
Rakesh Emmadi
4ef50d95c7
hdb_views should always be cleared before building schema cache ( #1513 )
2019-01-29 15:39:58 +05:30
Rakesh Emmadi
3caff9b924
support jsonb and postgis operators in permissions ( #1461 )
...
* support jsonb and geometry operators on RQL bool exps, close #1408
* add tests for jsonb operators in /v1/query
TODO:-
-> add tests for geometry (postgis) operators
* support parsing session variables for st_d_within and has_key ops
-> Add tests for boolExp operators and select permissions
* improve parsing $st_d_within op's json value logic
2019-01-28 23:16:31 +05:30
Anon Ray
91c19ecf3d
test jwt with invalid signtaure and expired token ( #1492 )
2019-01-28 22:22:43 +05:30
Anon Ray
4ae44f7b5d
add functions to server telemetry ( #1500 )
2019-01-28 22:16:44 +05:30
nizar-m
32387ba964
support union and interface types in remote schema ( close #1276 ) ( #1361 )
2019-01-28 22:15:10 +05:30
Anon Ray
39bc3acffd
fix conversion when merging remote schema scalars with hasura ( fix #1244 ) ( #1497 )
2019-01-28 21:01:37 +05:30
Shahidh K Muhammed
11e7c3f9d6
add anonymous telemetry ( #1401 )
2019-01-28 19:25:28 +05:30
nizar-m
8e3b8f51c9
Support default values (in inputvalue) from the remote schema ( close #1491 ) ( #1493 )
2019-01-28 18:08:38 +05:30
Rakesh Emmadi
fc73d4d30a
handle the absence of any update operators, fix #1448 ( #1475 )
2019-01-28 12:54:24 +05:30
Tirumarai Selvan
e590144d02
send session variables in event trigger payload ( close #1328 ) ( #1458 )
2019-01-28 11:42:52 +05:30
Rakesh Emmadi
0bf2457e23
allow exposing postgres functions through GraphQL interface ( close #333 ) ( #1073 )
2019-01-25 09:01:54 +05:30
Rakesh Emmadi
ae63ed9603
simplify SQL generated for _eq and _neq operators in GraphQL API ( #1466 )
2019-01-25 00:04:44 +05:30
Vamshi Surabhi
5514b40de2
dependencies of object relationship now includes remote table, closes #1441 ( #1442 )
2019-01-24 18:56:13 +05:30
nizar-m
bf67e5e246
update Server Contributing.md ( close #1370 ) ( #1414 )
2019-01-20 15:19:56 +05:30
nizar-m
916caf1575
add flag to disable prepared statements ( close #1392 ) ( #1396 )
2019-01-18 19:50:41 +05:30
Rakesh Emmadi
d91d7e658a
optimise 'run_sql' query, closes #1362 ( #1406 )
2019-01-18 16:15:59 +05:30
Rakesh Emmadi
7ff1c8829a
add PostGIS operators in boolean expressions ( closes #1051 ) ( #1372 )
2019-01-17 11:51:38 +05:30
Nathan Stitt
1b9540f996
allow specifying network interface with "server-host" option ( #1280 )
...
* allow specifying network interface with "server-host" option
* store host value as a HostPreference
* document server-host options
2019-01-11 16:37:13 +05:30
Rakesh Emmadi
1008c08420
accept null and empty values for relationships during insert, closes #1352
2019-01-11 12:52:58 +05:30
Anon Ray
e9121a903f
fix typo in pgcrypto error message ( fix #1322 ) ( #1331 )
2019-01-08 14:35:25 +05:30
Rakesh Emmadi
e2fe078b89
fix fetching primary key columns for non table owners ( close #1269 ) ( #1300 )
2019-01-04 16:36:05 +05:30
Rakesh Emmadi
41e487d203
fix auth hook mode env var ( fix #1270 ) ( #1285 )
...
Support HASURA_GRAPHQL_AUTH_HOOK_MODE env var for --auth-hook-mode flag.
Drop support for HASURA_GRAPHQL_AUTH_HOOK_TYPE env var in next major
update (beta/stable)
2019-01-04 12:12:36 +05:30
Vamshi Surabhi
380fdad468
update constraint enum types when a new constraint is added ( #1287 )
...
* update metadata when constraints on a table are altered, fix #240
* capture only unique or primary constraints in tableinfo
2019-01-03 09:28:12 +05:30
Rakesh Emmadi
4d9d1505dd
improve startup logging, close #1236 ( #1258 )
2019-01-02 16:54:17 +05:30
Vamshi Surabhi
be1d9414f8
diff's query should account for table having no columns ( #1256 )
2018-12-21 15:24:22 +05:30
Vamshi Surabhi
ea4d2644e8
local console during development ( #1252 )
...
* console now works on local builds of the server
1. local console assets can be served at /static/ by a build time flag
'local-console'. This can be set with stack as follows:
`stack build --flag graphql-engine:local-console`
2. the --root-dir option is removed which was used as a temporary hack
for serving graphiql
3. remove server's graphiql source code
2018-12-21 13:21:02 +05:30
Rakesh Emmadi
63acd0e7b2
generate aggregate order by types only if relevant columns are present, closes #1243 ( #1248 )
2018-12-20 19:31:54 +05:30
Rakesh Emmadi
d4e6ffcae8
revert back to older cli options parser type ( #1231 )
2018-12-19 17:08:33 +05:30
Vamshi Surabhi
c28fbd3f98
faster retrieval of table information from postgres ( #1235 )
2018-12-19 16:11:06 +05:30
Vamshi Surabhi
8feff0daca
clear event_triggers when clear_metadata is called, closes #1232 ( #1233 )
2018-12-19 12:04:27 +05:30
Rakesh Emmadi
b5bbb966f2
add consolePath in console.html template ( #1222 )
...
Server templates `consolePath` key in `window.__env` object in console html template.
If server is hit at `/console/table/author` then `window.__env` in served html looks like
```
{
consoleMode: "server",
urlPrefix: "/console",
consolePath: "/console/table/author",
isAccessKeySet: true
}
```
2018-12-18 15:09:01 +05:30
Rakesh Emmadi
3026c49087
apply update permissions for upsert mutations ( #628 )
2018-12-15 21:40:29 +05:30
Tirumarai Selvan
6de17b303f
drop trigger functions on updating event triggers ( #1214 )
2018-12-15 10:35:29 +05:30
Anon Ray
2bcec7dca9
point jose version to 0.8.0.0 on github ( closes #983 ) ( #1202 )
2018-12-14 09:51:29 +05:30
Rakesh Emmadi
708a29fc89
refactor server cli code, add more cli options & version command ( closes #51 , #144 , #1090 , #1195 ) ( #1200 )
2018-12-14 08:51:41 +05:30
Vamshi Surabhi
ec8b2c80b5
refactor to remove warnings especially with orphan instances ( #1163 )
...
* remove phase one/two distinction and hdbquery typeclass
* move extensions to default-extensions
* switch to LazyTx which only acquires a connection if needed
* move defns from TH module into Ops module
* remove tojson orphan instance for http exception
* remove orphan instance for dmlp1
* getTopLevelNodes will not throw any exceptions
2018-12-13 12:56:15 +05:30
Rakesh Emmadi
ff6c95c2f8
allow ordering with aggregated fields ( close #1039 ) ( #1042 )
2018-12-12 18:28:39 +05:30
Anon Ray
77cbf12bb7
merge types with same structure in remote schema ( closes #1112 , #1135 ) ( #1145 )
2018-12-12 17:31:18 +05:30
Rakesh Emmadi
9fbd407374
parse graphql input objects and arrays as scalar values ( close #1132 ) ( #1137 )
2018-12-04 19:51:58 +05:30
Rakesh Emmadi
29ba490296
conform to graphql subscription and error spec ( close #1056 , close #1059 ) ( #1126 )
2018-12-04 19:07:38 +05:30
Rakesh Emmadi
3ea20bc4d7
allow authentication webhook with POST ( close #1138 ) ( #1147 )
2018-12-03 16:49:08 +05:30
Vamshi Surabhi
db1f6c1a39
remove dependency on 'first' aggregate, closes #1085 ( #1089 )
2018-11-27 21:40:54 +05:30
Rakesh Emmadi
1e896a9c42
handle null values for input arguments, fix #1113 ( #1123 )
2018-11-27 17:54:51 +05:30
Anon Ray
0d14c13f98
metadata should be backwards compatible for remote schemas ( fix #1120 ) ( #1121 )
2018-11-27 16:56:10 +05:30
Anon Ray
a509a86eaa
implement internal graphql server for remote schema tests ( #1117 )
...
* implement internal graphql server for remote schema tests
* add one more graphql endpoint and more tests
* add missing dependency
2018-11-26 18:38:16 +05:30
Rakesh Emmadi
8df23ad6c9
use postgres IN experssion for _in operator ( fix #1109 ) ( #1111 )
2018-11-26 15:39:55 +05:30
Anon Ray
512ee6fb9f
adds basic support for remote schemas/schema stitching ( #952 )
2018-11-23 18:32:46 +05:30
Shahidh K Muhammed
6fb24d5bf0
update server dockerfile, install manifests and docs ( #1097 )
2018-11-23 14:47:31 +05:30
Rakesh Emmadi
58fe579497
support Postgres's DISTINCT ON ( close #1040 ) ( #1099 )
2018-11-23 07:23:56 +05:30
Dimitrios Mavrommatis
ef6e53a407
change descending ordering to nulls first ( fix #1008 ) ( #1009 )
2018-11-22 10:28:18 +05:30
Rakesh Emmadi
030f094de9
handle empty array for _in and _nin operators, fix #1075 ( #1076 )
2018-11-21 12:28:29 +05:30
Vamshi Surabhi
47dcae1614
fix sql generation for boolean expressions, closes #853 ( #1037 )
...
When using self referential relationships in boolean expressions, the exists clause incorrectly uses the table names to qualify columns which will be the same for parent table and the child table. This is now fixed by generating unique aliases as we traverse down the relationships.
2018-11-16 18:10:23 +05:30
Rakesh Emmadi
1539d6b5a6
server port can be set with HASURA_GRAPHQL_SERVER_PORT env variable, closes #1033 ( #1038 )
2018-11-15 10:25:39 +05:30
Rakesh Emmadi
b719e82e89
add statistical aggregate operations and count on columns ( close #1028 ) ( #1029 )
2018-11-14 18:29:59 +05:30
Tirumarai Selvan
317efb81f1
event triggers: take webhook url from env ( close #966 ) ( #968 )
2018-11-14 12:43:01 +05:30
Rakesh Emmadi
9af591e2cb
remove x-hasura-access-key header from logs ( fix #1016 ) ( #1017 )
2018-11-13 14:05:44 +05:30
Tirumarai Selvan
d4d31838cb
quote function and trigger names, allow hyphen in trigger name ( #1012 )
2018-11-13 11:28:55 +05:30
Rakesh Emmadi
8c1700e76f
improve SQL generation for '_in' operation ( close #1013 ) ( #1014 )
2018-11-12 18:57:47 +05:30
Rakesh Emmadi
80de0e019a
do not generate prefix for column identifiers in agg select, fix #1004 ( #1005 )
2018-11-12 12:58:46 +05:30
Abhinav Srivastava
c776cd84a6
update multiple files ( #943 )
2018-11-08 12:02:57 +05:30
Anupam Dagar
e1253e595a
add missing serve command to server contributing guide ( #910 )
2018-11-04 08:11:06 +05:30
Rakesh Emmadi
999580481c
allow specifying a list of columns that can be inserted ( close #250 ) ( #917 )
2018-11-02 20:38:38 +05:30
Rakesh Emmadi
0e9d6994ac
refactor nested insert mutation and fix returning ( fix #844 ) ( #852 )
...
* improved nested insert execution logic
* integrate error path, improve executing 'withExp' and improve tests
* add more readable types in '/Resolve/Insert.hs'
* set conflict context just before executing WITH expression
2018-11-02 19:31:01 +05:30
Shahidh K Muhammed
f7da89e10a
remove enable console from docker cmd and add it as env var ( close #907 ) ( #938 )
2018-11-02 15:59:01 +05:30
Rakesh Emmadi
1a91399298
extract session variables from relational bool expression ( fix #960 ) ( #961 )
2018-11-02 15:06:33 +05:30
Rakesh Emmadi
0803738df1
refactor select query generation ( #941 )
2018-10-31 18:21:20 +05:30
Tirumarai Selvan
c5c2ed2389
give precedence to retry-after header over retry conf ( #954 )
2018-10-31 17:22:41 +05:30
Tirumarai Selvan
b40807c9ec
change type of fetch interval to milliseconds ( #939 )
2018-10-30 20:50:18 +05:30
Mohammed Rishad
58ccddc76e
pep8 fixes for python files ( #875 )
2018-10-30 14:51:58 +05:30