minio/internal/bucket/lifecycle
Krishnan Parthasarathi 7926401cbd
ilm: Handle DeleteAllVersions action differently for DEL markers (#19481)
i.e., this rule element doesn't apply to DEL markers.

This is a breaking change to how ExpiredObejctDeleteAllVersions
functions today. This is necessary to avoid the following highly probable
footgun scenario in the future.

Scenario:
The user uses tags-based filtering to select an object's time to live(TTL). 
The application sometimes deletes objects, too, making its latest
version a DEL marker. The previous implementation skipped tag-based filters
if the newest version was DEL marker, voiding the tag-based TTL. The user is
surprised to find objects that have expired sooner than expected.

* Add DelMarkerExpiration action

This ILM action removes all versions of an object if its
the latest version is a DEL marker.

```xml
<DelMarkerObjectExpiration>
    <Days> 10 </Days>
</DelMarkerObjectExpiration>
```

1. Applies only to objects whose,
  • The latest version is a DEL marker.
  • satisfies the number of days criteria
2. Deletes all versions of this object
3. Associated rule can't have tag-based filtering

Includes,
- New bucket event type for deletion due to DelMarkerExpiration
2024-04-30 18:11:10 -07:00
..
action_string.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
and.go add codespell action (#18818) 2024-01-17 23:03:17 -08:00
delmarker-expiration_test.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
delmarker-expiration.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
error.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
expiration_test.go Add DeleteAll with expiry days non zero value only (#19095) 2024-02-21 12:28:34 -08:00
expiration.go Add DeleteAll with expiry days non zero value only (#19095) 2024-02-21 12:28:34 -08:00
filter_test.go ilm: Select an object when all AND tags are satisfied (#19134) 2024-02-26 16:01:20 -08:00
filter.go ilm: Select an object when all AND tags are satisfied (#19134) 2024-02-26 16:01:20 -08:00
lifecycle_test.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
lifecycle.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
noncurrentversion_test.go Newer noncurrent versions (#13815) 2021-12-14 09:41:44 -08:00
noncurrentversion.go Newer noncurrent versions (#13815) 2021-12-14 09:41:44 -08:00
prefix.go Fix distributed listing not able to resume (#17855) 2023-08-15 07:45:25 -07:00
rule_test.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
rule.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
tag.go cleanup ignored static analysis (#16767) 2023-03-06 08:56:10 -08:00
transition_test.go Add immediate inline tiering support (#13298) 2021-10-01 11:58:17 -07:00
transition.go feat: decommission feature for pools (#14012) 2022-01-10 09:07:49 -08:00