minio/internal/event
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
..
target Validates PostgreSQL table name (#19602) 2024-04-24 10:51:07 -07:00
arn.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
arn_test.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
config.go add gocritic/ruleguard checks back again, cleanup code. (#13665) 2021-11-16 09:28:29 -08:00
config_test.go avoid run-away goroutine build-up in notification send, use channels (#18533) 2023-12-05 02:16:33 -08:00
errors.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
event.go Bump up madmin-go and pkg deps (#17469) 2023-06-19 17:53:08 -07:00
name.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
name_test.go ilm: Handle DeleteAllVersions action differently for DEL markers (#19481) 2024-04-30 18:11:10 -07:00
rules.go add codespell action (#18818) 2024-01-17 23:03:17 -08:00
rules_test.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
rulesmap.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
rulesmap_test.go feat: add support for GetObjectAttributes API (#18732) 2024-01-05 10:43:06 -08:00
targetid.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
targetid_test.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
targetidset.go add codespell action (#18818) 2024-01-17 23:03:17 -08:00
targetidset_test.go rename all remaining packages to internal/ (#12418) 2021-06-01 14:59:40 -07:00
targetlist.go logging: Add subsystem to log API (#19002) 2024-04-04 05:04:40 -07:00
targetlist_test.go avoid run-away goroutine build-up in notification send, use channels (#18533) 2023-12-05 02:16:33 -08:00