Commit Graph

6392 Commits

Author SHA1 Message Date
Nicolas Beaussart
f3951e1680 frontend: update nx to latest 15
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8079
Co-authored-by: Stefano Magni <173663+NoriSte@users.noreply.github.com>
GitOrigin-RevId: 46b1ed03ab225fccc9d769203d1af11a6bcdb63e
2023-02-28 19:42:51 +00:00
Nicolas Beaussart
fc4aec4330 console: fix graphiql version resolution
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8144
GitOrigin-RevId: 858ff17d6c12b7252ce43c85b5b6e883c741a466
2023-02-28 15:05:37 +00:00
Krushan Bauva
5319fe6bfc server: redact sensitive fields from multitenant logs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8085
GitOrigin-RevId: acf23c6eaaf84fa3218898be6484431ccc646ee9
2023-02-28 14:32:52 +00:00
Samir Talwar
6d9d774bae docs: Add documentation for the variants of run_sql.
Each database has its own `run_sql` command and assorted parameter support. Previously, we were only documenting PostgreSQL.

[NDAT-147]: https://hasurahq.atlassian.net/browse/NDAT-147?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8137
GitOrigin-RevId: cc40fa9441f12c08898ddb2563205744ad2ec14e
2023-02-28 13:55:56 +00:00
Daniel Chambers
6b19069c37 Only load the schema once for all schema tests in the Data Connector agent test suite
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8142
GitOrigin-RevId: 1e2340fa5670a9c11e424e85045dc18f5286cff7
2023-02-28 13:52:30 +00:00
Samir Talwar
987a0187e9 docs: Add API documentation for if_matched.
We document `on_conflict`, which handles upserts for Postgres, but we were missing the equivalent feature for MS SQL Server, `if_matched`.

[NDAT-145]: https://hasurahq.atlassian.net/browse/NDAT-145?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8136
GitOrigin-RevId: 6ed2f7b24356879156145e2d6a8c2825bc8b6881
2023-02-28 12:45:57 +00:00
Manas Agarwal
fbb92230bb Deprecation message in Console Folder Readme
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8131
Co-authored-by: Nicolas Beaussart <7281023+beaussan@users.noreply.github.com>
GitOrigin-RevId: d0c187bb322e26105a8ecdb19da4e8478b7d09dd
2023-02-28 12:05:04 +00:00
Gil Mizrahi
7872be0e82 feature(server): support subscriptions in logical models
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8076
GitOrigin-RevId: 84a3e89d97bdb81c02803b644f417dfe51834405
2023-02-28 11:18:43 +00:00
Varun Choudhary
1971f4f6e4 console: allow users to remove event trigger auto clean-up configuration
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8036
Co-authored-by: Sooraj <8408875+soorajshankar@users.noreply.github.com>
GitOrigin-RevId: da8df15ac3591a0fd5dfce8e0be26690479ef066
2023-02-28 09:59:14 +00:00
Puru Gupta
4e7fbbc2d6 server: use only server context and app env for dependent functions (remove passing of ServeOptions)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7920
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
GitOrigin-RevId: 6ebc4d0429fdfecf93950879b69e8b5f8f56b502
2023-02-28 09:11:27 +00:00
Vijay Prasanna
3034988a3b feature (console): clean up the ConnectPostgresWidget component
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8022
Co-authored-by: Matthew Goodwin <49927862+m4ttheweric@users.noreply.github.com>
GitOrigin-RevId: 870474c4e4f546a4c3876416b93cf0d932a97de5
2023-02-28 07:16:51 +00:00
Daniel Chambers
6a5fe902b7 Do nested JSON decoding in SQL in SQLite
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8138
GitOrigin-RevId: f22ebe94664a112536acaa37e13189d9fddcd222
2023-02-28 02:40:44 +00:00
Brandon Martin
bf16f628ec Update manifests for athena, snowflake, mysql
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8134
GitOrigin-RevId: d19a07efd7c372ee4ca26a414e6ca50c87afe3df
2023-02-27 16:51:26 +00:00
Varun Choudhary
546902240a console: show year in the date column while displaying event triggers, cron triggers and scheduled triggers
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8128
GitOrigin-RevId: 4522406f5e79dbb352778fa6849c284b813a0386
2023-02-27 14:54:42 +00:00
Daniel Chambers
bbe756dbcc Upgrade sqlite3 in SQLite agent, upgrade deps with security flaws, remove Sequelize dep
[GDC-812]: https://hasurahq.atlassian.net/browse/GDC-812?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8120
GitOrigin-RevId: c15d5aaf0c9e71fcfcaa8d580d6d1423efcc416f
2023-02-27 14:02:16 +00:00
hasura-bot
aaf20b971f community: add graphql benchmark
GITHUB_PR_NUMBER: 9401
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/9401

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7672
Co-authored-by: arjunyel <11153289+arjunyel@users.noreply.github.com>
Co-authored-by: Praveen Durairaju <14110316+praveenweb@users.noreply.github.com>
GitOrigin-RevId: 9b0e9a3dd4cee1ef0a76fb45dee3d5e76d404512
2023-02-27 13:15:01 +00:00
Nicolas Inchauspe
0b72259c1f Plat 473
[PLAT-473]: https://hasurahq.atlassian.net/browse/PLAT-473?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8123
GitOrigin-RevId: ed7d749e5ccf575419ca436dfcc0a28e15f8ca64
2023-02-27 10:47:17 +00:00
Puru Gupta
50f0e1df51 server: centralize various application state (introducing AppContext and AppEnv)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8108
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Naveen Naidu <30195193+Naveenaidu@users.noreply.github.com>
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
GitOrigin-RevId: 4a1f1ba960be4e0d4838188645d10162c73ecf06
2023-02-24 18:11:05 +00:00
Erik Magnusson
601e1951bc console: support for relationship array handling for permissions builder
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8089
GitOrigin-RevId: d24ee20ca56d5dc17a5857754770fbba5574759a
2023-02-24 16:28:52 +00:00
Erik Magnusson
938423ec54 console: add create "delete" permissions
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8071
GitOrigin-RevId: efb545e134908b61eef71f79a477061753a4bb1c
2023-02-24 13:20:35 +00:00
Tom Harding
318cf1b692 Boolean expressions should talk about fields, not tables
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8098
GitOrigin-RevId: 93b6e5b675a9421e6079ca344e308e7362839bc1
2023-02-24 12:32:38 +00:00
Nicolas Inchauspe
975d4ae91b console: fix operations filters
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8097
GitOrigin-RevId: 33a72186a38094bbcdee85d87d0f0a05aadb1736
2023-02-24 11:57:50 +00:00
Daniel Harvey
fbab8cd755 Revert "server: centralize various application state (introducing AppContext and AppEnv)"
The Postgres integration tests failed [here](https://buildkite.com/hasura/graphql-engine-mono/builds/30176#01867eb5-9635-4aaf-a147-44d43df03cbd), yet this merged. Looks like a missing required check. Have resolved that, but in the meantime, we should revert this PR until the test can be fixed.

Reverts hasura/graphql-engine-mono#7905

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8107
GitOrigin-RevId: 6ea329bc54f42d8c8686c5d26f0b2dbd43f991cf
2023-02-24 11:27:16 +00:00
Rikin Kachhia
a963fdcace console: fix browse rows page UI glitches
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8105
GitOrigin-RevId: 8ab4e3f77f7ca0b9e4dd7092423b01762c6dc33d
2023-02-24 10:51:53 +00:00
Stefano Magni
cb4334c78a fix(console): Disable the DropDown trigger when the disabled flag is passed
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8104
GitOrigin-RevId: 4bd1ad2089693b6c1dda10b5eed2c3559113fc27
2023-02-24 09:34:11 +00:00
Erik Magnusson
f9ec262ac0 NDAT-519-wrong-indexes-listed-when-multiple-schemas-have-tables-with-the-same-name-9420
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8083
GitOrigin-RevId: ca41229ac0227fb9e52c48c6a76eb80d0cf43fd4
2023-02-24 08:44:14 +00:00
Philip Lykke Carlsen
1af8d53c6f refactor(hlint): Demote Environment-from-OS to a suggestion
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8092
GitOrigin-RevId: 042aec936638fcb7890ecaa8cb368ed442100904
2023-02-23 21:44:44 +00:00
Samir Talwar
0271094df7 CI: Disable Python integration test groups covered by the new job.
We now run a lot of these at once by spawning a new HGE instance per
test class. The commented-out tests are now duplicated.

We have a lot of work to do to take care of the rest, but this should be
a decent start. With this change, we drop from 42 to 19 test groups.

[NDAT-533]: https://hasurahq.atlassian.net/browse/NDAT-533?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8060
GitOrigin-RevId: e38e1a72cfa6eafac97065a435d2c8e1508b834e
2023-02-23 15:45:20 +00:00
Stefano Magni
926b8c272e chore(ci, console): Prioritize the Chromatic diagnostic file over the CLI error
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8090
GitOrigin-RevId: 557c051bd0d0706897c08163bfbefaf9d0fe546c
2023-02-23 15:16:16 +00:00
Puru Gupta
f45928b03b server: centralize various application state (introducing AppContext and AppEnv)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7905
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Naveen Naidu <30195193+Naveenaidu@users.noreply.github.com>
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
GitOrigin-RevId: 74ce763b266dc053c10888767d5b4a0d9692508a
2023-02-23 14:45:24 +00:00
Daniel Chambers
6f50261274 Additional tests for mutations in the Data Connector agent test suite
[GDC-719]: https://hasurahq.atlassian.net/browse/GDC-719?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8080
GitOrigin-RevId: 2e35dd72723e0e9fc63426dc90b1a89aedbe4774
2023-02-23 13:54:37 +00:00
Nithin
063d7fbc2e Add scaling & load balancer related docs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8003
Co-authored-by: Sean Park-Ross <94021366+seanparkross@users.noreply.github.com>
Co-authored-by: Toan Nguyen  <1615675+hgiasac@users.noreply.github.com>
GitOrigin-RevId: d9b0038dd41d0b6e8e96b5e785ca27c62f1a4da0
2023-02-23 12:23:01 +00:00
Stefano Magni
5ed0d78d35 chore(ci): Drop a message in GitHub when Chromatic fails
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8012
GitOrigin-RevId: b8fb00ec847cad189b589bb3b60121ee9f68e37b
2023-02-23 11:34:33 +00:00
Luca Restagno
9387981034 console: suggested relationships respect the user naming convention while generating the relationship name [DSF-126]
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8041
Co-authored-by: Matthew Goodwin <49927862+m4ttheweric@users.noreply.github.com>
GitOrigin-RevId: 9b1261a453a4aa7e0c81f90552e12b43cac881df
2023-02-23 08:51:31 +00:00
ananya-2410
4a24e7d962 ci: add jobs to scan images
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7965
Co-authored-by: Divi <32202683+imperfect-fourth@users.noreply.github.com>
GitOrigin-RevId: 5fe28e133c6f578d8cf3e62559e331d0f770884d
2023-02-23 08:20:28 +00:00
ananya-2410
36db970a34 ci: tag release v2.20.0-beta.1
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8081
GitOrigin-RevId: 0e13f833e881a5acf648f43ce16358a13945f5c3
2023-02-23 06:52:12 +00:00
Daniel Chambers
190e429eef Add tests for delete mutations to the Data Connector agent test suite
[GDC-721]: https://hasurahq.atlassian.net/browse/GDC-721?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8067
GitOrigin-RevId: bf5b7e7c20c6011d438888be6017331def7063bf
2023-02-22 23:41:47 +00:00
Nicolas Beaussart
d2832f1067 frontend: use relative paths instead of absolute within modules
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8050
GitOrigin-RevId: 7fc12b2855d1632919613c77348119238b88ce6f
2023-02-22 16:38:45 +00:00
Antoine Leblanc
6e574f1bbe harmonize network manager handling
## Description

### I want to speak to the `Manager`

Oh boy. This PR is both fairly straightforward and overreaching, so let's break it down.

For most network access, we need a [`HTTP.Manager`](https://hackage.haskell.org/package/http-client-0.1.0.0/docs/Network-HTTP-Client-Manager.html). It is created only once, at the top level, when starting the engine, and is then threaded through the application to wherever we need to make a network call. As of main, the way we do this is not standardized: most of the GraphQL execution code passes it "manually" as a function argument throughout the code. We also have a custom monad constraint, `HasHttpManagerM`, that describes a monad's ability to provide a manager. And, finally, several parts of the code store the manager in some kind of argument structure, such as `RunT`'s `RunCtx`.

This PR's first goal is to harmonize all of this: we always create the manager at the root, and we already have it when we do our very first `runReaderT`. Wouldn't it make sense for the rest of the code to not manually pass it anywhere, to not store it anywhere, but to always rely on the current monad providing it? This is, in short, what this PR does: it implements a constraint on the base monads, so that they provide the manager, and removes most explicit passing from the code.

### First come, first served

One way this PR goes a tiny bit further than "just" doing the aforementioned harmonization is that it starts the process of implementing the "Services oriented architecture" roughly outlined in this [draft document](https://docs.google.com/document/d/1FAigqrST0juU1WcT4HIxJxe1iEBwTuBZodTaeUvsKqQ/edit?usp=sharing). Instead of using the existing `HasHTTPManagerM`, this PR revamps it into the `ProvidesNetwork` service.

The idea is, again, that we should make all "external" dependencies of the engine, all things that the core of the engine doesn't care about, a "service". This allows us to define clear APIs for features, to choose different implementations based on which version of the engine we're running, harmonizes our many scattered monadic constraints... Which is why this service is called "Network": we can refine it, moving forward, to be the constraint that defines how all network communication is to operate, instead of relying on disparate classes constraint or hardcoded decisions. A comment in the code clarifies this intent.

### Side-effects? In my Haskell?

This PR also unavoidably touches some other aspects of the codebase. One such example: it introduces `Hasura.App.AppContext`, named after `HasuraPro.Context.AppContext`: a name for the reader structure at the base level. It also transforms `Handler` from a type alias to a newtype, as `Handler` is where we actually enforce HTTP limits; but without `Handler` being a distinct type, any code path could simply do a `runExceptT $ runReader` and forget to enforce them.

(As a rule of thumb, i am starting to consider any straggling `runReaderT` or `runExceptT` as a code smell: we should not stack / unstack monads haphazardly, and every layer should be an opaque `newtype` with a corresponding run function.)

## Further work

In several places, i have left TODOs when i have encountered things that suggest that we should do further unrelated cleanups. I'll write down the follow-up steps, either in the aforementioned document or on slack. But, in short, at a glance, in approximate order, we could:

- delete `ExecutionCtx` as it is only a subset of `ServerCtx`, and remove one more `runReaderT` call
- delete `ServerConfigCtx` as it is only a subset of `ServerCtx`, and remove it from `RunCtx`
- remove `ServerCtx` from `HandlerCtx`, and make it part of `AppContext`, or even make it the `AppContext` altogether (since, at least for the OSS version, `AppContext` is there again only a subset)
- remove `CacheBuildParams` and `CacheBuild` altogether, as they're just a distinct stack that is a `ReaderT` on top of `IO` that contains, you guessed it, the same thing as `ServerCtx`
- move `RunT` out of `RQL.Types` and rename it, since after the previous cleanups **it only contains `UserInfo`**; it could be bundled with the authentication service, made a small implementation detail in `Hasura.Server.Auth`
-  rename `PGMetadaStorageT` to something a bit more accurate, such as `App`, and enforce its IO base

This would significantly simply our complex stack. From there, or in parallel, we can start moving existing dependencies as Services. For the purpose of supporting read replicas entitlement, we could move `MonadResolveSource` to a `SourceResolver` service, as attempted in #7653, and transform `UserAuthenticationM` into a `Authentication` service.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7736
GitOrigin-RevId: 68cce710eb9e7d752bda1ba0c49541d24df8209f
2023-02-22 15:55:54 +00:00
Erik Magnusson
3423e53480 console: add insert handling for permissions
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7973
Co-authored-by: Julian@Hasura <118911427+julian-mayorga@users.noreply.github.com>
GitOrigin-RevId: 6367c6bbf66e58fe2e08caacdf3217125c29a4c7
2023-02-22 15:27:16 +00:00
Varun Choudhary
d3287e5fb3 console: filter view from event trigger while selecting table
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8073
GitOrigin-RevId: 6f47bc21c5ec9ef6f20d420bb87849c9129b98ec
2023-02-22 14:58:22 +00:00
Gil Mizrahi
625e41cd77 rename naqi to logimo part 3 - data types
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8068
GitOrigin-RevId: 435527a98e645ed69c9be484ff0bd21af8181d69
2023-02-22 13:46:54 +00:00
Vijay Prasanna
983a08d296 bugfix (console): fix alignment issue in manage database section
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8072
GitOrigin-RevId: 32c1d47c044c110d47c56a2e31cc6423eb8e9f8e
2023-02-22 11:31:10 +00:00
Daniele Cammareri
a5e4141eef console: use naming convention for suggested relationships
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8058
GitOrigin-RevId: 5a47e814478fe29e0abf47430992ec6217041659
2023-02-22 09:59:27 +00:00
Gil Mizrahi
2b0e9ea14c rename NativeQuery module hierarchy to LogicalModel
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8063
GitOrigin-RevId: 0ed0cee7fb1d77f166770caae21cc05d5dd30b75
2023-02-22 09:23:54 +00:00
Varun Choudhary
68e8091fda console: allow users to execute read only SQL queries
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8057
Co-authored-by: Sooraj <8408875+soorajshankar@users.noreply.github.com>
GitOrigin-RevId: 3685e43e52ce3c7e29b8afef52169720e26bb67c
2023-02-22 07:52:04 +00:00
Daniel Chambers
72e319e486 Add tests for update mutations to the Data Connector agent test suite
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8054
GitOrigin-RevId: 6869e8938e7a70128770f959bf34e3a291074d14
2023-02-22 04:19:16 +00:00
Nicolas Beaussart
7dfd2d60f9 frontend: rework import between ce and ee libs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8034
GitOrigin-RevId: 317eeaccea1318451cc14b4c94086cb54720dd33
2023-02-21 14:56:41 +00:00
Gil Mizrahi
b761add3c4 rename naqi to logimo part 1
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8037
GitOrigin-RevId: 4839410ba836d4b69fd1ee30875bca9b46decc66
2023-02-21 13:46:44 +00:00
Samir Talwar
bb881c2b84 docs: Add a documentation page for BigQuery views.
This adds documentation for tracking and querying a BigQuery view. I simply copied the PostgreSQL documentation, then verified it all worked.

I had to make a few changes, of course:

1. the links point to BigQuery documentation
2. the metadata calls reference `bigquery_track_table`
3. the `text` datatype has been changed to `string`

I also renumbered the pages to match the PostgreSQL section.

[NDAT-336]: https://hasurahq.atlassian.net/browse/NDAT-336?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8052
GitOrigin-RevId: 2989bdf31ce768cb96c05b2258452789a61b4285
2023-02-21 12:28:17 +00:00