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
Nullable GraphQL API #1829
Nullable GraphQL API #1829
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I confirmed that I'm now able to load my particular older datasets (created prior to v0.14 and currently migrated to v0.15.1), but isn't this treating a symptom and not the problem? Other old datasets will surely cause some other errors...
It seems to me that, since we currently only lazily migrate datasets to the current version when they are loaded, the App must throw a huge try-except around anything related to listing datasets and just say "well, I guess I can't include that dataset in my list until the user migrates it".
The lazy-dataset-migration design will obviously continue to cause issues for all features that are supposed to work across datasets. Probably guarantees we'll change this model in Teams. But, if the OSS App remains a purely single dataset visualization tool, then the dataset list dropdown seems like the only problem area and thus a "patch" could make sense. |
I made all fields except name optional which accounts for the progression of the dataset document from prior versions. Generally, GraphQL intentionally separates the internal representation from the exposed API, so backward compatibility comes naturally. If we need to account for changes, we just bake it into the resolvers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Changes all run fields except key to be nullable for backward compatibility with dataset that have yet to be migrated. These datasets are still exposed in the GraphQL API for pagination.
Resolves #1806