From 4833a930c1d8df6ddc4dd5e848d18927d2b3eff5 Mon Sep 17 00:00:00 2001 From: Adam J Esslinger Date: Thu, 13 Aug 2026 08:57:49 -0400 Subject: [PATCH 1/6] build(deps): bump actions/github-script from 7 to 9 (#10) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v8's only change was Node.js 24.x runner support. v9's breaking changes (require('@actions/github') no longer works, getOctokit is now an injected parameter) don't apply here — ci.yml's version-suggestion script only uses the injected github.rest.*/github.graphql client, never require() or a redeclared getOctokit. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69b34dd..7d2dd18 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -132,7 +132,7 @@ jobs: echo "version=$BASELINE" >> "$GITHUB_OUTPUT" - name: Compute suggestion, manage comment - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const classification = "${{ steps.classify.outputs.class }}"; From 112af0e0ebb20c36b811f9464acffb3f50aae680 Mon Sep 17 00:00:00 2001 From: Adam J Esslinger Date: Thu, 13 Aug 2026 08:59:04 -0400 Subject: [PATCH 2/6] build(deps): bump async-trait from 0.1.91 to 0.1.92 (#12) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch release (resolves a clippy double_must_use lint in generated code); async-trait isn't used directly in this crate's own code, only pulled transitively via deadpool-postgres/tokio-postgres. Cargo.toml's existing "0.1" range already covers this — only Cargo.lock needed updating. Build/test/clippy all pass unchanged. --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e7db1a8..f340e36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -36,9 +36,9 @@ checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" [[package]] name = "async-trait" -version = "0.1.91" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", From 15538744720f1dd3c72fcad4068eb069590087f2 Mon Sep 17 00:00:00 2001 From: Adam J Esslinger Date: Thu, 13 Aug 2026 09:01:02 -0400 Subject: [PATCH 3/6] build(deps): bump base64 from 0.22.1 to 0.23.1 (#11) Major bump, but 0.23's changelog only adds new consts/SIMD-accelerated engines and custom padding support -- Engine::encode/decode with general_purpose::STANDARD (our only usage, in extract.rs/binding.rs/blob.rs for BLOB wire format) is untouched. tokio-postgres's own transitive postgres-protocol dependency stays pinned to 0.22.1 independently -- no shared types cross that boundary, so both coexist without conflict. Verified: 85/85 unit tests pass (including BLOB encode/decode coverage in binding_tests.rs/blob_tests.rs), clippy/fmt clean, and the full live_db.rs suite against a real PostgreSQL instance (7/7). --- Cargo.lock | 10 ++++++++-- Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f340e36..84fd9d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,6 +57,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "base64ct" version = "1.8.3" @@ -776,7 +782,7 @@ version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08808e3c483c46e999108051c78334f473d5adb59d78bb80a1268c7e6aa6c514" dependencies = [ - "base64", + "base64 0.22.1", "byteorder", "bytes", "fallible-iterator", @@ -809,7 +815,7 @@ name = "postgresql-plugin" version = "1.0.0-beta.4" dependencies = [ "async-trait", - "base64", + "base64 0.23.1", "chrono", "deadpool-postgres", "infer", diff --git a/Cargo.toml b/Cargo.toml index 15932a8..3d737c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ uuid = { version = "1.20", features = ["v4", "serde"] } rust_decimal = { version = "1.36", features = ["db-tokio-postgres", "serde"] } async-trait = "0.1" log = "0.4" -base64 = "0.22.1" +base64 = "0.23.1" infer = "0.16" [profile.release] From 65ab8ece89bcbda40a06db8ef27aceb11c8d2d2c Mon Sep 17 00:00:00 2001 From: Adam J Esslinger Date: Thu, 13 Aug 2026 09:02:30 -0400 Subject: [PATCH 4/6] build(deps): bump infer from 0.16.0 to 0.22.0 (#14) Six minor versions, but our only usage (infer::get(data).map(|k| k.mime_type()) in handlers/blob.rs's encode_blob_full) is infer's core stable API -- the version range only adds new format detectors (DWG, qcow2, par2, improved LZ4/zstd/audio/PDF/mkv detection) and internal cleanup, no signature changes. Verified: 85/85 unit tests pass (including blob_tests.rs's direct coverage of encode_blob_full's mime-sniffing path), clippy/fmt clean. --- Cargo.lock | 20 +++++++++++++++----- Cargo.toml | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 84fd9d0..5924b54 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -178,13 +178,13 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfb" -version = "0.7.3" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3" dependencies = [ - "byteorder", "fnv", "uuid", + "web-time", ] [[package]] @@ -542,9 +542,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.16.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" +checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4" dependencies = [ "cfb", ] @@ -1692,6 +1692,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "webpki-root-certs" version = "1.0.9" diff --git a/Cargo.toml b/Cargo.toml index 3d737c7..5649064 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,7 +30,7 @@ rust_decimal = { version = "1.36", features = ["db-tokio-postgres", "serde"] } async-trait = "0.1" log = "0.4" base64 = "0.23.1" -infer = "0.16" +infer = "0.22" [profile.release] lto = true From 33b25b7a7dc67ffb45a319d0db9bba00dd7a95f3 Mon Sep 17 00:00:00 2001 From: Adam J Esslinger Date: Thu, 13 Aug 2026 09:04:00 -0400 Subject: [PATCH 5/6] build(deps): bump rustls-platform-verifier from 0.6.2 to 0.7.0 (#13) Explicitly documented upstream as semver-incompatible only due to the jni 0.21->0.22 bump, which affects Android targets exclusively -- this plugin only ships linux/darwin/windows binaries (release.yml), no Android. Remaining changes are Windows-specific certificate-chain fixes. Our only call site, BuilderVerifierExt::with_platform_verifier() in client.rs, is unchanged. Verified: 85/85 unit tests pass, clippy/fmt clean, compiles without any call-site changes needed. Not verified: a live TLS handshake end-to-end -- the local test Postgres container has ssl=off, and reconfiguring it would disrupt the shared dev environment. The with_platform_verifier() builder call itself is exercised by every build; no behavior change is documented for non-Android platforms. --- Cargo.lock | 150 +++++++++++++++++++---------------------------------- Cargo.toml | 2 +- 2 files changed, 55 insertions(+), 97 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5924b54..2db981e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -170,12 +170,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfb" version = "0.14.0" @@ -557,27 +551,32 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jni" -version = "0.21.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "cesu8", "cfg-if", "combine", - "jni-sys 0.3.1", + "jni-macros", + "jni-sys", "log", + "simd_cesu8", "thiserror", "walkdir", - "windows-sys 0.45.0", + "windows-link", ] [[package]] -name = "jni-sys" -version = "0.3.1" +name = "jni-macros" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" dependencies = [ - "jni-sys 0.4.1", + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.119", ] [[package]] @@ -1026,6 +1025,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustls" version = "0.23.43" @@ -1073,9 +1081,9 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" dependencies = [ "core-foundation", "core-foundation-sys", @@ -1168,6 +1176,12 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + [[package]] name = "serde" version = "1.0.229" @@ -1228,6 +1242,16 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" +[[package]] +name = "simd_cesu8" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] + [[package]] name = "simdutf8" version = "0.1.5" @@ -1330,22 +1354,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "thiserror" -version = "1.0.69" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] @@ -1792,22 +1816,13 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -1819,67 +1834,34 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -1892,48 +1874,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/Cargo.toml b/Cargo.toml index 5649064..96bcd74 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ tokio-postgres = { version = "0.7", features = ["with-chrono-0_4", "with-uuid-1" deadpool-postgres = "0.14" tokio-postgres-rustls = "0.13" rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } -rustls-platform-verifier = "0.6" +rustls-platform-verifier = "0.7" rustls-pemfile = "2" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" From cde355aa019e9704aa1b3c3001efaeb72d7b94db Mon Sep 17 00:00:00 2001 From: Adam J Esslinger Date: Thu, 13 Aug 2026 09:14:17 -0400 Subject: [PATCH 6/6] build(deps): bump tokio-postgres-rustls from 0.13.0 to 0.14.0 (#15) Internal fixes only (correct x509 channel-binding parsing, deferred TLS hostname validation, drops the ring/const-oid deps in favor of sha2). Our only call site, MakeRustlsConnect::new(tls_config) in client.rs, is unchanged. Verified against a disposable, self-signed-cert Postgres container (not the shared dev container) built specifically for this: verify-ca mode connects successfully with a proper SAN cert pinned via ssl_ca, and require mode correctly rejects an untrusted cert -- both behaviors confirmed identical against a from-scratch build of the pre-dependabot baseline commit, ruling out any regression from this bump specifically. Also ran the full live_db.rs suite (7/7) against the primary non-TLS pooled-connection path. 85/85 unit tests, clippy/fmt clean. --- Cargo.lock | 7 +++---- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2db981e..a9496f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1462,13 +1462,12 @@ dependencies = [ [[package]] name = "tokio-postgres-rustls" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d684bad428a0f2481f42241f821db42c54e2dc81d8c00db8536c506b0a0144" +checksum = "4c2ad44aa0ae96db89c4742212ed41645b2f597311ff6e1945542a4d9fadc2fb" dependencies = [ - "const-oid 0.9.6", - "ring", "rustls", + "sha2", "tokio", "tokio-postgres", "tokio-rustls", diff --git a/Cargo.toml b/Cargo.toml index 96bcd74..e7dfe71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ path = "src/bin/test_plugin.rs" tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-util", "io-std", "sync", "time"] } tokio-postgres = { version = "0.7", features = ["with-chrono-0_4", "with-uuid-1", "with-serde_json-1", "array-impls"] } deadpool-postgres = "0.14" -tokio-postgres-rustls = "0.13" +tokio-postgres-rustls = "0.14" rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } rustls-platform-verifier = "0.7" rustls-pemfile = "2"