Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correctly reject field names starting with __ #2237

Merged
merged 2 commits into from
Nov 10, 2022

Conversation

pcmanus
Copy link
Contributor

@pcmanus pcmanus commented Nov 7, 2022

Fixes #2236

@netlify
Copy link

netlify bot commented Nov 7, 2022

👷 Deploy request for apollo-federation-docs pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit ae03d05

@codesandbox-ci
Copy link

codesandbox-ci bot commented Nov 7, 2022

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

@pcmanus pcmanus merged commit 0366537 into apollographql:main Nov 10, 2022
pcmanus pushed a commit to pcmanus/federation that referenced this pull request Nov 14, 2022
The fix for apollographql#2237 has been a bit over-zealous, at least to some extent,
as `graphql-js` accepts a schema that manually redeclare the introspection
types but those are now rejected.

It's a bit unclear why `graphql-js` makes that particular exception, in
particular since:
1. it makes no such special cases for the introspection fields (being it
   `__typename`, `__schema` or `type(name)`). Particuarly strange when
   `__schema` and `__type` are the actual "entry point" for those
   introspection types in the first place ...
2. it does not seem to otherwise validate that those introspection types
  are valid, though "manual" definitions seems to be silently discarded
  so have no impact.

But in any case, being consistent with `graphql-js` makes sense, so this
patch re-allow definitions of introspection types, but ignores them.
pcmanus pushed a commit to pcmanus/federation that referenced this pull request Nov 14, 2022
The fix for apollographql#2237 has been a bit over-zealous, at least to some extent,
as `graphql-js` accepts a schema that manually redeclare the introspection
types but those are now rejected.

It's a bit unclear why `graphql-js` makes that particular exception, in
particular since:
1. it makes no such special cases for the introspection fields (being it
   `__typename`, `__schema` or `type(name)`). Particuarly strange when
   `__schema` and `__type` are the actual "entry point" for those
   introspection types in the first place ...
2. it does not seem to otherwise validate that those introspection types
  are valid, though "manual" definitions seems to be silently discarded
  so have no impact.

But in any case, being consistent with `graphql-js` makes sense, so this
patch re-allow definitions of introspection types, but ignores them.
pcmanus pushed a commit that referenced this pull request Nov 16, 2022
The fix for #2237 has been a bit over-zealous, at least to some extent,
as `graphql-js` accepts a schema that manually redeclare the introspection
types but those are now rejected.

It's a bit unclear why `graphql-js` makes that particular exception, in
particular since:
1. it makes no such special cases for the introspection fields (being it
   `__typename`, `__schema` or `type(name)`). Particuarly strange when
   `__schema` and `__type` are the actual "entry point" for those
   introspection types in the first place ...
2. it does not seem to otherwise validate that those introspection types
  are valid, though "manual" definitions seems to be silently discarded
  so have no impact.

But in any case, being consistent with `graphql-js` makes sense, so this
patch re-allow definitions of introspection types, but ignores them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix validation of fields starting with __
2 participants