validate classes in config persistence #10484
Merged
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
One shortcoming of the
ConfigPersistence
iface is that it doesn't give great type safety. If you ask for a workspace object but query the sync table, it'll happily try to return this. The error handling on it isn't very clear. Sometimes it might fail because json validation will catch the mismatch. If the validation succeeds though, then you can end up with a weird, hard-to-debug output.This is relevant as we think about consolidating
StandardSourceDefinition
andStandardDestinationDefinition
into a single structActorDefinition
. Making that change will be safer if we check that class we are asking for matches the class declare in the enum.How
AirbyteConfig
. Build a decorate class that compares the classname inAirbyteConfig
to class requested ingetConfig()
, etc, and the inputs into any write methods.