mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 09:22:43 +03:00
18efbe9380
This PR refactors the schema crate to enable overriding the interpretation of roles at runtime. By providing a `NamespacedGetter` that ignores roles entirely (i.e. `GDSNamespacedGetterAgnostic`) to schema generation functions it is possible to derive a GraphQL schema that ignores permissions and presets. This PR leaves back a few opportunities to improve code clarity, which I hope to address in follow-up PRs. For instance, it seems superfluous to make sense for generic code parametrised `<S: SchemaContext>` to carry around both a `S::Namespace` and a `S::NamespaceGetter`, when all that code could ever do with that `S::Namespace` value anyway is apply it to the `S::NamespaceGetter`. Taking this line of reasoning to its conclusion suggests that we can reduce the complexity of `trait SchemaContext` and its associated types and kit. --------- Co-authored-by: Samir Talwar <samir.talwar@hasura.io> V3_GIT_ORIGIN_REV_ID: c84555fd88279582670919faa5a62bbd00b714bd |
||
---|---|---|
.. | ||
queries | ||
validation/introspection | ||
lexer.rs | ||
parser.rs | ||
schema_serde.rs | ||
validation.rs |