Commit Graph

5774 Commits

Author SHA1 Message Date
Puru Gupta
698190894f server: use kriti template to generate query param from list
## Description ✍️
This PR adds support to generate query params directly using a kriti template which can be used to flatten a list of parameter arguments as well.

### Changes in the Metadata API
Earlier the `query_params` key inside `request_transform` used to take in an object of key/value pairs where the `key` represents the query parameter name and `value` points to the value of the parameter or a kriti template which could be resolved to the value.

With this PR, we provide the user with more freedom to generate the complete query string using kriti template. The  `query_params` can now take in a string as well which will be a kriti template. This new change needs to be incorporated on the console and CLI metadata import/export as well.
- [x] CLI: Compatible, no changes required
- [ ] Console

## Changelog ✍️

__Component__ : server

__Type__: feature

__Product__: community-edition

### Short Changelog

use kriti template to generate query param from list of arguments

### Related Issues ✍
https://hasurahq.atlassian.net/browse/GS-243

### Solution and Design ✍
We use a kriti template to generate the complete query parameter string.

| Query Template | Output |
|---|---|
| `{{ concat ([concat({{ range _, x := [\"apple\", \"banana\"] }} \"tags={{x}}&\" {{ end }}), \"flag=smthng\"]) }}`| `tags=apple&tags=banana&flag=smthng`  |
| `{{ concat ([\"tags=\", concat({{ range _, x := $body.input }} \"{{x}},\" {{ end }})]) }}` | `tags=apple%2Cbanana%2C` |

### Steps to test and verify ✍
- start HGE and make the following request to `http://localhost:8080/v1/metadata`:
```json
{
    "type": "test_webhook_transform",
    "args": {
        "webhook_url": "http://localhost:3000",
        "body": {
            "action": {
                "name": "actionName"
            },
            "input": ["apple", "banana"]
        },
        "request_transform": {
            "version": 2,
            "url": "{{$base_url}}",
            "query_params": "{{ concat ([concat({{ range _, x := $body.input }} \"tags={{x}}&\" {{ end }}), \"flag=smthng\"]) }}",
            "template_engine": "Kriti"
        }
    }
}
```
- you should receive the following as output:
```json
{
    "body": {
        "action": {
            "name": "actionName"
        },
        "input": [
            "apple",
            "banana"
        ]
    },
    "headers": [],
    "method": "GET",
    "webhook_url": "http://localhost:3000?tags=apple&tags=banana&flag=smthng"
}
```

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6961
Co-authored-by: Tirumarai Selvan <8663570+tirumaraiselvan@users.noreply.github.com>
GitOrigin-RevId: 712ba038f03009edc3e8eb0435e723304943399a
2022-11-29 20:27:41 +00:00
Daniele Cammareri
16561d2c9a feat(console): add import single endpoint from openAPI
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6970
GitOrigin-RevId: 14bbca9efbda6fa71f6b00ab5d45062d71abd794
2022-11-29 19:09:53 +00:00
Karthikeyan Chinnakonda
32a316aef7 server: provide an option to enable event triggers on logically replicated tables
## Description ✍️
This PR introduces a new feature to enable/disable event triggers during logical replication of table data for PostgreSQL and MS-SQL data sources. We introduce a new field `trigger_on_replication` in the `*_create_event_trigger` metadata API. By default the event triggers will not fire for logical data replication.

## Changelog ✍️

__Component__ : server

__Type__: feature

__Product__: community-edition

### Short Changelog

Add option to enable/disable event triggers on logically replicated tables

### Related Issues ✍

https://github.com/hasura/graphql-engine/issues/8814
https://hasurahq.atlassian.net/browse/GS-252

### Solution and Design
- By default, triggers do **not** fire when the session mode is `replica` in Postgres, so if the `triggerOnReplication` is set to `true` for an event trigger we run the query `ALTER TABLE #{tableTxt} ENABLE ALWAYS TRIGGER #{triggerNameTxt};` so that the trigger fires always irrespective of the `session_replication_role`
- By default, triggers do fire in case of replication in MS-SQL, so if the `triggerOnReplication` is set to `false` for an event trigger we add a clause `NOT FOR REPLICATION` to the the SQL when the trigger is created/altered, which sets the `is_not_for_replication` for the trigger as `true` and it does not fire during logical replication.

### Steps to test and verify ✍
- Run hspec integration tests for HGE

## Server checklist ✍

### Metadata ✍

Does this PR add a new Metadata feature?
-  Yes
  - Does `export_metadata`/`replace_metadata` supports the new metadata added?
    - 

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6953
Co-authored-by: Puru Gupta <32328846+purugupta99@users.noreply.github.com>
Co-authored-by: Sean Park-Ross <94021366+seanparkross@users.noreply.github.com>
GitOrigin-RevId: 92731328a2bbdcad2302c829f26f9acb33c36135
2022-11-29 17:43:13 +00:00
Daniel Harvey
7184c46a4e [server] fix api-tests-pro
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7078
GitOrigin-RevId: 427186eac62926408a8e1cd191fb3363757954b0
2022-11-29 15:43:22 +00:00
Luca Restagno
8a45b4d075 console: fix nested browse rows run query
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7072
GitOrigin-RevId: cf3aa7588c1dbf4dbb225491ab36fba35535b0d1
2022-11-29 15:06:35 +00:00
Varun Choudhary
88fd90d0e5 console: show roles created from from allow list on data, RS and action permission tables
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7059
GitOrigin-RevId: 9ccdbf14ed7066f44cd9bd568101e6ec566c1762
2022-11-29 14:01:14 +00:00
Abhijeet Khangarot
1e1622053a console: track console load custom event on heap
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7086
GitOrigin-RevId: 838fc52e603324f2df0b234be898033eb76a0766
2022-11-29 12:48:29 +00:00
Abby Sassel
7089b9de64 server/tests: Subscriptions > Value of Derived Field > Citus
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7065
GitOrigin-RevId: a14aa4e37971817b84e321dd6872cb17c12524a3
2022-11-29 11:17:21 +00:00
awjchen
41b64e8a9e server: clean up query variables hotfix
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6916
GitOrigin-RevId: ace6e625e70930d36e019be910a26101cb6eed5b
2022-11-29 10:06:14 +00:00
Erik Magnusson
459aa73d2b console: fix filtering using nullish values
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7076
GitOrigin-RevId: 369a8abc2fd871e0e67d07c9ef299f689c01d81a
2022-11-29 09:33:04 +00:00
Varun Choudhary
ff223ab938 console: clean up response transform code base
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6782
Co-authored-by: Daniele Cammareri <5709409+dancamma@users.noreply.github.com>
GitOrigin-RevId: 57f4731d2d5eb74950e6e9c3a41a2a71f162c394
2022-11-29 09:03:49 +00:00
Erik Magnusson
a4d669a71e console: added checks to hide previously removed sources
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6996
GitOrigin-RevId: 3467b68521b50afd364c7842c7e69fbe9bd7f90f
2022-11-29 08:06:28 +00:00
awjchen
badad573f6 server: implement resource attributes for the OpenTelemetry exporter
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6891
GitOrigin-RevId: 2c7b4767160e9fb976be4b5e656ef70cd19e4e0e
2022-11-29 07:35:09 +00:00
Daniel Chambers
ed79049637 Mutation Data Connector API types [GDC-594]
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6893
GitOrigin-RevId: edf0f72027197ae61bfa8d27d53eabf6ca626112
2022-11-29 03:37:13 +00:00
Auke Booij
cca0b6e81a Further schema cache cleanups
Mostly trying to avoid tricky `Arrows` syntax, and unnecessary use of the `Hasura.Incremental` framework.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6997
GitOrigin-RevId: 9a2f5883e7e29af164e1581049ae003afec2cbe4
2022-11-29 01:02:09 +00:00
Auke Booij
7928179024 Delete SourceM type class
I encountered this dead code while doing other things: it's a type class with a single method which is never called. Deleting the type class allows us to simplify `TableCoreCacheRT` and `TableCacheRT`

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7075
GitOrigin-RevId: 121320349c478a93717b0706037553d8406cbfa9
2022-11-28 20:20:32 +00:00
Brandon Simmons
1b7602a2a5 server: define instance Functor InputFieldsParser by hand to lower memory usage slightly
fwiw: I was looking here because ghc-debug showed many closures associated with the Applicative instance,
but defining Monoid/Semigroup by hand and inlining didn't seem to have any effect

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7026
GitOrigin-RevId: 4ad2fd26519da98b2380658d89942c700de4ffa2
2022-11-28 15:58:11 +00:00
Philip Lykke Carlsen
a6e25a9e01 server/tests: Re-enable ObjectRelationshipsSpec for Citus
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7074
GitOrigin-RevId: 72592a29d6ea7897f93718b656fce4ac7179f4cc
2022-11-28 13:58:35 +00:00
Luca Restagno
e27ed1eb5b fix: show the accelerate project box on the cloud console only
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7060
GitOrigin-RevId: 6718c5412d8541f0ab19f4d53e6afa20543b9e8c
2022-11-28 13:00:47 +00:00
Nicolas Inchauspe
25cc0b75d6 console: fix REST endpoint creation form width
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7061
GitOrigin-RevId: 6fa530518051fab25443889c261b8ae879e8af8f
2022-11-28 11:07:39 +00:00
Erik Magnusson
6980054a35 console: removed unnecessary null defaulting from input fields
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6988
Co-authored-by: Luca Restagno <59067245+lucarestagno@users.noreply.github.com>
GitOrigin-RevId: 0b56327130bd268403054479c9cfd725b65dfb72
2022-11-28 10:35:35 +00:00
Auke Booij
b0d4493b5c Replace non-canonical Select instance with a canonical one
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7066
GitOrigin-RevId: ef65253ad816d669d109cf45662817b3115b37c3
2022-11-28 09:50:18 +00:00
Mohd Bilal
9335e40d76 cli: remove os.IsNotExist and os.IsExist error checks
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7068
GitOrigin-RevId: 37735c0020df23857015871890d2f6774166d7b1
2022-11-28 08:45:42 +00:00
Varun Choudhary
b74c2952dd console: enable naming convention check to enable/disable naming convention carded radio button
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6897
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
GitOrigin-RevId: 9dba07b1febf44fe10426e6c383cc8f3e0b799a6
2022-11-28 07:36:27 +00:00
Abby Sassel
37e7480822 server/tests: refactor XToDBArrayRelationshipSpec setup/teardown
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7055
GitOrigin-RevId: 71d631165e4364d9cc22c303becf75fef5d01497
2022-11-25 17:59:19 +00:00
Rahul Agarwal
5f2490b26c Adding features to the enterprise listing docs page
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7048
Co-authored-by: Tirumarai Selvan <8663570+tirumaraiselvan@users.noreply.github.com>
Co-authored-by: Marion Schleifer <5722022+marionschleifer@users.noreply.github.com>
GitOrigin-RevId: 916a20213a137d2f797648d12c6976351d67e59d
2022-11-25 15:49:13 +00:00
Daniel Harvey
60ab8e2ae3 [tooling] make commands for building and formatting CI pipeline
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7051
GitOrigin-RevId: dca45b31608680bf57a2dd190171b2567e1fcb02
2022-11-25 15:49:06 +00:00
Philip Lykke Carlsen
afa1e2fc02 server/tests: Port Citus table relationship tests from pytest
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7047
GitOrigin-RevId: 1ddcc656a43adc2c34f36fa4cf220eebb91f09ae
2022-11-25 15:40:49 +00:00
Daniel Harvey
9dc863e479 [server/tests] allow api-tests to be filtered by backend type
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7056
GitOrigin-RevId: 84618c3d5a0c2273b51584831287968b4df73fba
2022-11-25 15:40:41 +00:00
Tom Harding
b85a6572bf Make fixtureRepl work again
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6906
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
GitOrigin-RevId: cf00c31f610ad65305a007d8fbc6b7971ce9b7a9
2022-11-25 13:15:43 +00:00
Philip Lykke Carlsen
88af86e21a server/tests: Add ghci macros to ease working with fixtureRepl
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7046
GitOrigin-RevId: 6a3f4780cfd86646bfdd933839ca0dfb865fd32c
2022-11-25 12:34:37 +00:00
Daniel Harvey
5ab101acd5 [server/tests] Re-add Citus views test
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7043
GitOrigin-RevId: f737af39d5f6b46b29587400f53e2c6e2a772706
2022-11-25 10:33:25 +00:00
Philip Lykke Carlsen
375aa28c4e server/tests: Improve details in feature matrix tool
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7041
GitOrigin-RevId: ba0c6a28ac507d5d57fa1faf37f6e69deaba3a61
2022-11-24 17:54:40 +00:00
Nicolas Beaussart
b01a9e2784 frontend: re import code into new mono
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6966
GitOrigin-RevId: 92a8909a3d316f6a6d5dc512057e60995389383d
2022-11-24 17:21:59 +00:00
Tirumarai Selvan
4662d75bc6 revamp elastic connection pool docs
Restructure elastic connection pool docs to remove internal details and describe connection pooling benefits.

[Rendered](https://tiru-elastic-connection-pool.hasura-docs-mono.pages.dev/docs/latest/databases/connect-db/cloud-connection-pooling/)

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6960
Co-authored-by: Sean Park-Ross <94021366+seanparkross@users.noreply.github.com>
GitOrigin-RevId: 10c0ebfe1313fcf0c25631e6103978ce774502f8
2022-11-24 15:18:13 +00:00
hasura-bot
0df52d8497 docs: fix streaming subscription example (close #9241)
GITHUB_PR_NUMBER: 9242
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/9242

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6984
Co-authored-by: Jeff Lambert <11539524+jflambert@users.noreply.github.com>
GitOrigin-RevId: ed0965a016e3957ecc91184595478741e1cc7b25
2022-11-24 14:33:03 +00:00
Samir Talwar
a0dc296ede Document and automate spinning up AlloyDB for testing.
We sometimes need to test against cloud databases. Here, we add a Terraform module to start a new AlloyDB cluster and instance, which we can then use for testing purposes.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7002
GitOrigin-RevId: 2d661b5cc6d60e47485ea68b781e13426ed4f097
2022-11-24 14:16:21 +00:00
Abby Sassel
eebeb5cc3b Server/tests: Remote Relationships > Citus
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7040
GitOrigin-RevId: 1a177e2d8a903144576990d047addcef70c69544
2022-11-24 13:31:04 +00:00
Varun Choudhary
3061f7a90c console: forwardClientHeader is not saved while creating action
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7012
GitOrigin-RevId: 3c343a794a581033cfbf1e2759e08694b4839e74
2022-11-24 12:54:25 +00:00
Stefano Magni
fdb2d87174 console: Fix the RequestHeadersSelector interaction tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6963
GitOrigin-RevId: 5e6b56d5536d82cb93189b5b33c7cb14bc88d899
2022-11-24 12:16:08 +00:00
Varun Dey
248ea61600 cli: expose deploy command in public API [GT-307]
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6994
GitOrigin-RevId: 915e60952bc7c8f21169e4d49bb7733988a8ee40
2022-11-24 11:43:05 +00:00
Luca Restagno
4c109f9b85 Console: retain filters and sorts conditions while moving from one tab to the other
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6905
Co-authored-by: Abby Sassel <3883855+sassela@users.noreply.github.com>
Co-authored-by: Auke Booij <164426+abooij@users.noreply.github.com>
Co-authored-by: Erik Magnusson <32518962+ejkkan@users.noreply.github.com>
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
Co-authored-by: Vishnu Bharathi <4211715+scriptnull@users.noreply.github.com>
Co-authored-by: Brandon Simmons <210815+jberryman@users.noreply.github.com>
Co-authored-by: awjchen <13142944+awjchen@users.noreply.github.com>
Co-authored-by: Krushan Bauva <31391329+krushanbauva@users.noreply.github.com>
GitOrigin-RevId: 889feeb75b8119f94d9d5da071c50374ac59f589
2022-11-24 10:11:43 +00:00
Karthikeyan Chinnakonda
e9794a6639 server: fix bug with customized remote schema enum variables
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6993
GitOrigin-RevId: 0458c806176e752aea5a848e68246744c3e5b38a
2022-11-24 08:47:46 +00:00
Mohd Bilal
c55cca3061 cli: refactor migrate/ to use internal/errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7006
GitOrigin-RevId: bfa2be15cef0460b32576e8297cfa177ed59031a
2022-11-23 17:15:19 +00:00
Daniel Harvey
79b50add5e [server] regularly ping selected sources
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6945
GitOrigin-RevId: cad67b121090d4100330067d3d50f575292b4584
2022-11-23 16:41:46 +00:00
Stefano Magni
c50cfad476 console: Improve the analytics docs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7015
GitOrigin-RevId: 66e461f20173d5e669056f3d818821a1f1384bb4
2022-11-23 16:04:30 +00:00
Abby Sassel
4598e1e008 NDAT-300: skip fewer CockroachDB tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7016
GitOrigin-RevId: 0fbbfd9fed46301759ee4d62827c9ab7989617b6
2022-11-23 15:22:19 +00:00
Nicolas Beaussart
1b33ebc32d ci: introduce required review github action
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7011
GitOrigin-RevId: 357186328a784ad5b44a155d098944c242b08ca8
2022-11-23 14:33:45 +00:00
Kailash Sudhakar
458ce8b384 Build configs for preview builds through GKE
Build configs for preview builds through GKE

## Description ✍️

Moving the docs preview builds from Cloudflare to "websitecloud" Google Cloud Project which is currently handling the staging and production deployments:

The preview triggers are expected to be called only on changes to the docs folder

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6999
GitOrigin-RevId: 1699fe7677ebc03b8ce6338394e91d8e848640c3
2022-11-23 14:18:37 +00:00
Samir Talwar
43779ff0c1 server/tests-py: Fix test_inconsistent_meta.py for split databases.
This test did not work when splitting the metadata and source backends. Fixed mostly by running the relevant SQL using `source_backend.engine`, but I also took the time to clean it up a little, and broke up _test.yaml_ into 3 files.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6957
GitOrigin-RevId: bbca60a8906caba2d0cffd834b3b8595fca058fd
2022-11-23 14:14:01 +00:00