sangria-graphql/sangria
View on GitHubNew middleware to limit visibility of schema elements
Open
#417 opened on Nov 12, 2018
featurehelp wanted
Description
The idea is to provide a middleware that allows to hide specific fields and types based on arbitrary logic. There hidden parts of the schema should be unavailable:
- During the execution
- During input value coercion (it should be possible to hide input as well as output types)
- During validation
- In the introspection results
The validation might be tricky since it is not aware of the middleware right now. On the other had, if for example a field is hidden, GraphQL query that uses the field should produce a violation during the validation phase. So maybe this feature needs to implemented as a new concept in the library and not necessarily as a middleware.
It should be possible to "hide" following elements of the schema:
- Type (input and output)
- Field (input and output)
- Argument
- Enum value
This idea is inspired by "Limiting Visibility" feature in graphql-ruby: