Dricmoy opened a new pull request, #53996: URL: https://github.com/apache/arrow/pull/53996
**Draft for author review.** This follows #53949. The author's personal review of all changes is pending; this PR will remain a draft until that review is complete. ### Rationale for this change `FileKeyWrapper` fills missing KMS instance ID and URL values in its stored configuration, but passes the original configuration to `GetKmsClient`. A client factory can therefore receive empty strings even though the file's key material contains `"DEFAULT"` values. ### What changes are included in this PR? - Pass the defaulted `kms_connection_config_` member to `GetKmsClient`. - Update C++ and Python key-rotation tests to expect default values for empty KMS connection fields. - Give the dataset encryption tests separate writer and reader crypto factories. The reader is intentionally given fewer keys, so its tests need an independent cache to check that missing keys are rejected. ### Are these changes tested? - Local C++ encryption key-management suite: 24 tests passed. - Both local Python encryption test files: 62 passed, 1 skipped. The skipped case requires a build without encryption support. - C++ and Python formatting and lint, and `git diff --check`, passed. - Fork CI for commit `537e296384`: [Python](https://github.com/Dricmoy/arrow/actions/runs/38923806919), [Dev](https://github.com/Dricmoy/arrow/actions/runs/38923806888), and [Docs](https://github.com/Dricmoy/arrow/actions/runs/38923806885) passed. The [C++ workflow](https://github.com/Dricmoy/arrow/actions/runs/38852310915) for the preceding commit also passed after retrying a dependency download failure; the follow-up commit changes only Python tests. ### Are there any user-facing changes? KMS client factories receive default instance ID and URL values when those fields are empty, matching the read-path behavior. There are no public API or breaking changes. Closes #51351. ### Was AI used for this PR? AI was used to inspect the code and CI failures, prepare the implementation and test changes, run validation, and draft this description. Human review and confirmation of understanding are still pending. **PR code and description written by:** - [ ] Human - [x] AI **Reviewed before submission by:** - [ ] Human - [x] AI - [ ] Not reviewed -- 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]
