Repository navigation
fix(buckets): confirm versioning changes before applying - #290
Merged
Merged
Conversation
Require an explicit decision before changing bucket versioning and explain irreversible creation settings. Keep unconfigured and suspended states distinct, retain failed changes for retry, and cover the confirmation flow. Refs: rustfs/rustfs#9198 Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com>
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Pull Request
Description
Bucket versioning currently changes as soon as its switch is clicked. Add a confirmation that names the bucket and explains that enabled versioning can only be suspended, not reset to an unconfigured state. Suspension also explains the risk of overwriting null-version objects.
Keep the current value until the request succeeds, retain failed changes for retry, distinguish unconfigured/enabled/suspended states, and explain irreversible versioning/Object Lock choices during bucket creation. New text is localized in all 15 locales.
Type of Change
Testing
Passed locally with Node 22 and pnpm 11.25:
All 883 tests passed, including 13 focused confirmation-flow tests. Running the focused tests against the unchanged base reproduces the immediate-write and incorrect-status behavior.
Automated browser checks exercised the running Console with controlled S3/admin responses: Cancel and Escape send no write, focus returns to the switch, failed writes preserve state and can be retried, and mobile/Chinese/dark/short-screen layouts keep the actions reachable. Permission checks, Object Lock, failed reads, duplicate clicks, and bucket switching are covered by component tests.
Checklist
Related Issues
Related to rustfs/rustfs#9198.
Screenshots (if applicable)
Running Console with controlled S3/admin responses. Before and after use the same bucket and desktop viewport.
Mobile, Chinese/dark mode, and short-screen error recovery
Additional Notes
The S3 request format is unchanged. Browser fixtures verify Console behavior, not live storage integration. Reverting this change restores the previous interaction; shipping the fix also requires updated Console assets in RustFS distributions.