allow graphql types and fields to be gated behind feature flags #69
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What it Does
This adds an API for specifying a set of required features for types and object and interface fields.
The set of enabled features is given as a parameter to GraphQL validation and execution.
Types and fields that require features which are not enabled effectively do not exist – queries containing them will not validate and they will not appear in introspection.
At schema compilation time, a set of rules is used to ensure that all possible combinations of enabled feature flags result in a perfectly valid schema:
This functionality is closely related to the proposal in the GraphQL RFC for Opt-in features and discussion happening in graphql/graphql-spec#943.
Limitations:
This PR doesn't support:
These may be added in a future PR.
Steps to Test
go test -v ./...