Skip to content

fix(lifecycle): preserve expiration days with marker cleanup#170

Merged
cxymds merged 1 commit into
mainfrom
cxymds/fix-lifecycle-expiration-days
Jul 17, 2026
Merged

fix(lifecycle): preserve expiration days with marker cleanup#170
cxymds merged 1 commit into
mainfrom
cxymds/fix-lifecycle-expiration-days

Conversation

@cxymds

@cxymds cxymds commented Jul 17, 2026

Copy link
Copy Markdown
Member

Pull Request

Description

Fix lifecycle rule creation so enabling expired delete-marker cleanup no longer replaces the configured current-version expiration days. The form now emits the Expiration.Days rule and the ExpiredObjectDeleteMarker rule separately in one lifecycle configuration update, preserves suspended-versioning behavior, validates incomplete or incompatible tag filters, and enforces the S3 1000-rule limit.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test improvements
  • Security fix

Testing

  • Unit tests added/updated
  • Manual testing completed
pnpm type-check
pnpm lint
pnpm prettier --check .
pnpm test:run
pnpm build

Checklist

  • Code follows the project's style guidelines
  • Self-review completed
  • TypeScript types are properly defined
  • All commit messages are in English (Conventional Commits)
  • All existing tests pass
  • No new dependencies added, or they are justified

Related Issues

Fixes rustfs/rustfs#4963

Companion RustFS change: rustfs/rustfs#4974

Screenshots (if applicable)

N/A. The local app required an authenticated RustFS session, so the lifecycle dialog could not be exercised visually without bypassing authentication.

Additional Notes

The AWS SDK serialization regression test verifies that Days and ExpiredObjectDeleteMarker are emitted in two separate lifecycle rules.

@cxymds
cxymds marked this pull request as ready for review July 17, 2026 09:47
@cxymds
cxymds merged commit 7ad5c77 into main Jul 17, 2026
10 checks passed
@cxymds
cxymds deleted the cxymds/fix-lifecycle-expiration-days branch July 17, 2026 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

When setting the lifecycle rule parameter to 3 days, the effective value returned becomes 0 days.

1 participant