Skip to content

feat(encryption) [13/N] Write encrypted manifest files#2821

Merged
blackmwk merged 9 commits into
apache:mainfrom
xanderbailey:xb/write_encrypted_manifest_files
Jul 24, 2026
Merged

feat(encryption) [13/N] Write encrypted manifest files#2821
blackmwk merged 9 commits into
apache:mainfrom
xanderbailey:xb/write_encrypted_manifest_files

Conversation

@xanderbailey

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

What changes are included in this PR?

Today it is possible to read encrypted manifest files but not write them.

#2568 adds the foundations of what's needed to be able to do these writes but it wasn't wired into the actual write path.

Are these changes tested?

Yes - added round-trip write path test.

@xanderbailey xanderbailey changed the title feat(encryption) 13/N Write encrypted manifest files feat(encryption) [13/N] Write encrypted manifest files Jul 13, 2026
@xanderbailey

Copy link
Copy Markdown
Contributor Author

@blackmwk I think this is ready for a review when you have the time! Thanks!

Comment thread crates/iceberg/src/transaction/snapshot.rs Outdated
@xanderbailey
xanderbailey requested a review from blackmwk July 22, 2026 10:09

@blackmwk blackmwk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @xanderbailey for this pr, just one minor comment to add comments for the tracking issue.

.expect("new snapshot should carry the appended data manifest");

// The manifest list entry must carry decodable key metadata.
let key_metadata_bytes = manifest_file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please create an issue to create a ManifestReader(similar to ManifestWriter) so that we don't need to do this everytime.

@xanderbailey xanderbailey Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea - filed #2881 to track adding a ManifestReader symmetric to ManifestWriter so we don't repeat the read/decrypt/parse dance. Left a TODO(#2881) in the test.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll prep a PR for this now actually.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've actually remove this part of the test as it wasn't actually adding anything. But have opened #2884 for the manifest reader.

@xanderbailey

Copy link
Copy Markdown
Contributor Author

CI failing fixed in #2885

@blackmwk
blackmwk merged commit d82481f into apache:main Jul 24, 2026
21 checks passed
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.

2 participants