graphql-engine/server/src-lib/Hasura/GraphQL
Antoine Leblanc 42e5205eb5 server: reduce schema contexts to the bare minimum
### Description

This monster of a PR took way too long. As the title suggests, it reduces the schema context carried in the readers to the very strict minimum. In practice, that means that to build a source, we only require:
  - the global `SchemaContext`
  - the global `SchemaOptions` (soon to be renamed `SchemaSourceOptions`)
  - that source's `SourceInfo`

Furthermore, _we no longer carry "default" customization options throughout the schema_. All customization information is extracted from the `SourceInfo`, when required. This prevents an entire category of bugs we had previously encountered, such as parts of the code using uninitialized / unupdated customization info.

In turn, this meant that we could remove the explicit threading of the `SourceInfo` throughout the schema, since it is now always available through the reader context.

Finally, this meant making a few adjustments to relay and actions as well, such as the introduction of a new separate "context" for actions, and a change to how we create some of the action-specific postgres scalar parsers.

I'll highlight with review comments the areas of interest.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6709
GitOrigin-RevId: ea80fddcb24e2513779dd04b0b700a55f0028dd1
2022-11-17 10:35:54 +00:00
..
Execute ghc 9.2.5 2022-11-15 11:26:42 +00:00
Schema server: reduce schema contexts to the bare minimum 2022-11-17 10:35:54 +00:00
Transport pro-server: hotfix: respect analyze_query_variables in logs 2022-11-09 23:31:59 +00:00
Analyse.hs Upgrade Ormolu to v0.5. 2022-11-02 20:55:13 +00:00
ApolloFederation.hs server: remove built-in scalars from graphql schema printer 2022-11-10 18:53:05 +00:00
Context.hs server: runParse returns QErr 2022-06-16 12:22:30 +00:00
Execute.hs ghc 9.2.5 2022-11-15 11:26:42 +00:00
Explain.hs server: support for Apollo federation 2022-07-25 15:54:41 +00:00
Logging.hs Source typename customization (close graphql-engine#6974) 2021-10-29 14:43:14 +00:00
Namespace.hs Move MkTypename and NamingCase into their own modules. 2022-07-12 14:01:28 +00:00
ParameterizedQueryHash.hs Implement HLint suggestions and turn warnings into errors 2022-07-01 10:50:33 +00:00
RemoteServer.hs Upgrade Ormolu to v0.5. 2022-11-02 20:55:13 +00:00
Schema.hs server: reduce schema contexts to the bare minimum 2022-11-17 10:35:54 +00:00