-
Notifications
You must be signed in to change notification settings - Fork 12
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
Questions regarding post-merge validation rules #147
Comments
yes, i checked the merge algorithm, we return an interface without any fields in it #152 I have also seen that we currenlty silently remove unions that are empty. This seems wrong, as this way we cannot validate it properly
I think this should be an exception. Same for all root types, i will take this to the WG.
Yes, is exposed is no longer needed. I created #153
Yes that algorithm is wrong. I think that's one of the algorithms that we need to ensure that an interface is still valid after the merge. We could theoretically just run the GraphQL Validation and would get a similar result, but this is a more explicit implementation of it. The name of the rule is bad too, but we need to iterate over the names before the release anyway.
Debatable, you'd have to get all possible keys from all source schemas to know which fields are shareable and which are not. yet, also nested keys would make fields shareable. So you'd need to verify the whole type hierarchy. It could be a pre merge validation rule, yet isnt the idea of pre merge validation rules that they should validate that we can safely merge?
Yes this should be a pre merge validation rule (also the rule is wrong) #155
Yes i have this of the list for the WG.
Should probably just be
|
I think it's possible that "At least one source schema has a non-internal and non-inaccessible field on the Query type" Right? Or are there other reasons why such a field may not make it into the merged schema? Do let me know, but for now I'll implement it as a post-merge validation rule. |
Empty Merged Object Type
EMPTY_MERGED_INTERFACE_TYPE
#152No Queries
Empty Merged Object Type
?Implemented by Inaccessible
@inaccessible
" – this wouldn't happen in the composite schema?@inaccessible
" – same, this would only be applicable in an execution schema?Interface Field No Implementation
Invalid Field Sharing
Invalid Shareable Usage
Only Inaccessible Children
@inaccessible
and not@internal
" – there definitely won't be any internal fields in the composite schema.Require Invalid Fields
parentType
is used without being defined.Require Invalid Syntax
source schema validation rule.Provides Invalid Fields
Input Fields cannot reference inaccessible type
@inaccessible
" – no concept of inaccessible in composite (not execution) schema?General thoughts
I think that we need to clarify the separation of composite (client-facing) and execution schemas. It was my understanding that the spec would not mention the latter at all. Any rules involving
@inaccessible
in the merged schema don't seem applicable to this specification?The text was updated successfully, but these errors were encountered: