zakariya-s opened a new issue, #2775: URL: https://github.com/apache/iceberg-rust/issues/2775
### Is your feature request related to a problem or challenge? Iceberg's `write.metadata.path` table property lets a table place its metadata files somewhere other than the default `<table-location>/metadata`. Iceberg's Java implementation honors this via [`BaseMetastoreTableOperations.metadataFileLocation`](https://github.com/apache/iceberg/blob/d303514b4a9e90e62ffe136dcea3eed624eab288/core/src/main/java/org/apache/iceberg/BaseMetastoreTableOperations.java#L218-L226), but iceberg-rust always writes metadata files to `<table-location>/metadata`, ignoring the property. This breaks setups where object-store credentials are prefix-scoped. A REST catalog that vends credentials scoped to the table's configured `write.data.path` and `write.metadata.path` prefixes will deny `PutObject` to `<table-location>/metadata` when `write.metadata.path` points elsewhere, so a commit fails with `AccessDenied` on the manifest write. Data files are unaffected, because `write.data.path` is already honored by [`DefaultLocationGenerator`](https://github.com/apache/iceberg-rust/blob/22e80a63dbb4e58e034672b4ff665a6eae82fa02/crates/iceberg/src/writer/file_writer/location_generator.rs#L60-L67). ### Describe the solution you'd like Honor `write.metadata.path` when generating metadata file locations, mirroring how `write.data.path` is honored for data files and matching Iceberg's Java implementation: - Resolve the metadata directory as `write.metadata.path` when set, otherwise default to `<location>/metadata`. - Apply it to the manifest and manifest-list paths written by the snapshot producer, and to the table metadata JSON path (`MetadataLocation`). Behavior is unchanged when the property is unset (default `<location>/metadata`). ### Willingness to contribute I can contribute to this feature independently -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
