fix(storage): prevent deletion of segments in use by flags#4879
Conversation
Add validation to segment deletion to prevent removing segments that are referenced by flag rules or rollouts. This ensures data integrity by checking all flags in the namespace before allowing segment deletion. Signed-off-by: Roman Dmytrenko <[email protected]>
There was a problem hiding this comment.
Pull Request Overview
This PR adds validation to prevent deletion of segments that are currently referenced by flag rules or rollouts, ensuring data integrity by checking all flags in the namespace before allowing segment deletion.
- Added validation logic to check for segment usage in flag rules and rollouts before deletion
- Enhanced error messages to specify which flag and rule/rollout number is using the segment
- Added comprehensive test coverage for various scenarios of segment usage
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| internal/storage/environments/fs/flipt/segments.go | Added validation logic to prevent deletion of segments referenced by flags |
| internal/storage/environments/fs/flipt/segments_test.go | Added comprehensive test cases for segment deletion validation scenarios |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## v2 #4879 +/- ##
==========================================
+ Coverage 58.98% 59.01% +0.03%
==========================================
Files 135 135
Lines 16861 16874 +13
==========================================
+ Hits 9945 9959 +14
+ Misses 6235 6234 -1
Partials 681 681
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Add validation to segment deletion to prevent removing segments that are
referenced by flag rules or rollouts. This ensures data integrity by
checking all flags in the namespace before allowing segment deletion.
Closes #4183