[inferno-ml-server-types] Split Model
and ModelVersion
#107
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.
Splits the
Model
type into two parts:Model
, which now just contains metadata that should not change between versions (name
,user
,permissions
)ModelVersion
, which contains other version-specific metadata as well as the actual model contentsSplitting the type like this helps prevent certain undesirable scenarios. For example, all model versions previously had their own
permissions
. This meant that it would be possible for a user to have access to (or even own) one version of a model, but not others. That's not what we want.Also, previously the different versions of a model were only linked together by their
name
field. This wasn't really structured into the database in any way. Now it is possible to get all versions of a model directly by a foreign key lookup.I've integrated these changes on branches for the other Inferno ML projects but this will need to be merged first.
The DB tables now look like this: