Skip to content

fix(parser): keep lifecycle and replication event data in S3RecordModel - #8819

Open
dropps07 wants to merge 1 commit into
aws-powertools:developfrom
dropps07:fix/8800-s3-record-model
Open

dropps07 wants to merge 1 commit into
aws-powertools:developfrom
dropps07:fix/8800-s3-record-model

Conversation

@dropps07

@dropps07 dropps07 commented Nov 15, 2026 •

Copy link
Copy Markdown

Issue number: closes #8800

Summary

Changes
S3RecordModel drops lifecycleEventData and replicationEventData from S3 events. Pydantic silently discards undeclared keys, so the parser loses both fields even though S3 sends them. Added three typed models for the lifecycle and replication event data, added lifecycleEventData and replicationEventData fields to S3RecordModel, added a replication event fixture and a new replication test plus lifecycle assertions.

User experience
Before: parsing an S3 event with lifecycle or replication data silently dropped those fields, so event objects had no access to them. After: both fields are preserved on the parsed S3 record.

Verification
I ran the S3 parser tests, the full parser unit suite and the functional parser tests and they all pass, with ruff and mypy clean. Negative control: both new tests fail without the fix. This PR was prepared with the assistance of an AI coding assistant, and the verification above was done by me.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

@dropps07
dropps07 requested a review from a team as a code owner November 15, 2026 14:08
@boring-cyborg

boring-cyborg Bot commented Nov 15, 2026

Copy link
Copy Markdown

Thanks a lot for your first contribution! Please check out our contributing guidelines and don't hesitate to ask whatever you need.
In the meantime, check out the #python channel on our Powertools for AWS Lambda Discord: Invite link

@powertools-for-aws-oss-automation powertools-for-aws-oss-automation Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 15, 2026
@boring-cyborg boring-cyborg Bot added the tests label Nov 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@codecov

codecov Bot commented Nov 15, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.18%. Comparing base (0637145) to head (5177e4d).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #8819   +/-   ##
========================================
  Coverage    97.17%   97.18%           
========================================
  Files          323      323           
  Lines        16629    16641   +12     
  Branches      1510     1510           
========================================
+ Hits         16160    16172   +12     
  Misses         328      328           
  Partials       141      141           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dropps07

Copy link
Copy Markdown
Author

heyy @leandrodamascena pls review my pr and approve it. thanks!!

@leandrodamascena leandrodamascena added this to the 3.42.0 milestone Nov 15, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L Denotes a PR that changes 100-499 lines, ignoring generated files. tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: S3RecordModel drops lifecycleEventData and replicationEventData

2 participants