feat: upgrade cipherstash-client to 0.37.0#406
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (11)
📝 WalkthroughWalkthroughThree workspace dependencies ( ChangesEqlOutput Migration and 0.37.0 Upgrade
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR upgrades the workspace CipherStash Rust crates to cipherstash-client/config/cts-common 0.37.0 and updates the proxy to use the new EQL output types and ciphertext storage format handling introduced by that release.
Changes:
- Bump
cipherstash-client,cipherstash-config, andcts-commonto0.37.0(plus lockfile refresh). - Update the encryption pipeline to return/propagate
EqlOutput(instead ofEqlCiphertext) for encrypted parameter rewriting. - Add backwards-compatible deserialization in
DataRowto read both legacy pre-v2.x ciphertext JSON and the current tagged ("k") format.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/cipherstash-proxy/src/proxy/zerokms/zerokms.rs | Updates encryption return type to EqlOutput and adjusts result reconstruction. |
| packages/cipherstash-proxy/src/proxy/mod.rs | Updates EncryptionService::encrypt trait signature to return EqlOutput. |
| packages/cipherstash-proxy/src/proxy/encrypt_config/manager.rs | Updates test config to include new SteVecMode field. |
| packages/cipherstash-proxy/src/postgresql/messages/data_row.rs | Adds legacy→current ciphertext JSON remapping and updates tests for new API. |
| packages/cipherstash-proxy/src/postgresql/messages/bind.rs | Updates bind rewriting to accept EqlOutput. |
| packages/cipherstash-proxy/src/postgresql/frontend.rs | Propagates EqlOutput through literal encryption and statement transformation. |
| packages/cipherstash-proxy/src/postgresql/context/mod.rs | Updates context encrypt API return type usages/mocks. |
| packages/cipherstash-proxy/src/postgresql/backend.rs | Updates ciphertext identifier access to the new identifier() accessor API. |
| packages/cipherstash-proxy/src/lib.rs | Re-exports EqlOutput. |
| packages/cipherstash-proxy/src/error.rs | Adjusts pattern matching for updated EqlError::CouldNotDecryptDataForKeyset shape. |
| Cargo.toml | Bumps workspace dependency versions to 0.37.0. |
| Cargo.lock | Lockfile updates for the dependency upgrade. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| assert_eq!( | ||
| column_config[1].as_ref().unwrap().identifier, | ||
| encrypted[1].as_ref().unwrap().identifier | ||
| *encrypted[1].as_ref().unwrap().identifier() | ||
| ); |
| assert_eq!( | ||
| column_config[0].as_ref().unwrap().identifier, | ||
| encrypted[0].as_ref().unwrap().identifier | ||
| *encrypted[0].as_ref().unwrap().identifier() | ||
| ); |
| assert_eq!( | ||
| column_config[2].as_ref().unwrap().identifier, | ||
| encrypted[2].as_ref().unwrap().identifier | ||
| *encrypted[2].as_ref().unwrap().identifier() | ||
| ); |
|
Closing in favour of #407 |
…tack-auth patch (CIP-3233) Moves Proxy off the `vendor/stack-auth` `[patch.crates-io]` workaround and onto the current released cipherstash-client group, built against the fixed stack-auth. Background: 2.2.4 (PR #408) shipped the CIP-3233 access-key token-refresh fix via a vendored stack-auth patched on top of the 0.34.1-alpha.4 source. cipherstash-client 0.38.0 links stack-auth 0.38.0, which carries the same fix from crates.io, so the vendored copy and patch are no longer needed. Changes: - cipherstash-client / cipherstash-config / cts-common: 0.34.1-alpha.4 -> 0.38.0 (carries the API migration from PR #406's 0.37.0 upgrade; 0.37 -> 0.38 needed no further source changes) - Remove `[patch.crates-io] stack-auth = { path = "vendor/stack-auth" }`, the `exclude = ["vendor/stack-auth"]` workspace entry, and the vendor/stack-auth tree - stack-auth now resolves from crates.io (0.38.0); single version of the cipherstash-client group in the lock (zerokms-protocol 0.12.19) Verified: `cargo check --workspace`, `cargo clippy --workspace --all-targets`, and `cargo test --workspace --lib` (111 proxy unit tests) all pass. Integration tests need a live DB/ZeroKMS and were not run here.
Acknowledgment
By submitting this pull request, I confirm that CipherStash can use, modify, copy, and redistribute this contribution, under the terms of CipherStash's choice.
Summary by CodeRabbit
Chores
Bug Fixes
Refactor