-
Notifications
You must be signed in to change notification settings - Fork 271
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
Transitioning from DEPRECATED
state?
#722
Comments
This is an interesting question, actually. I can see the reasoning behind the current approach. You can go from In one sense I think the artifact version "state" is actually combining two concepts:
But I think what we've done is a reasonable simplification/combination of those concepts. The question becomes what state transitions should be allowed. I think perhaps we have erred on the side of being too restrictive with our state transitions. As you say, accidentally deprecating something allows for no going back. I think I would argue that we should allow more transitions and trust users to create their own processes to properly utilize the states. So that was all a long way of saying - yes let's allow @alesj @carlesarnal @jsenko thoughts? |
I'm not a big fan of allowing this kind of transitions but, if we do so, once we have authentication/authorization I would suggest restricting this kind of transitions (especially the |
That's a good idea. We should start a document around Registry roles and what those roles have permission to do. |
Fixed by PR #783 |
Apicurio restricts the transitions between states via the ArtifactStateExt class (1) but it seems that once an artifact is in
DEPRECATED
state it can only then transition toDELETED
state. Typically, a deprecated resource is still usable, but will eventually become unusable, which I think maps to theDISABLED
state in Apicurio.Additionally, if a user accidentally deprecates an artifact, there is no way to reverse that action at the moment, beyond creating a new artifact.
Is there an expected lifecycle of an artifact version? My guess is something like the following:
ENABLED
->DEPRECATED
->DISABLED
->DELETED
With transitions permitted between any of
ENABLED
,DEPRECATED
andDISABLED
, but not fromDELETED
, which is a final irreversible state.(1)
apicurio-registry/app/src/main/java/io/apicurio/registry/storage/ArtifactStateExt.java
Lines 39 to 43 in fe1282f
The text was updated successfully, but these errors were encountered: