Repository navigation
chore(deps): take the Renovate dashboard upgrades - #85
Merged
Merged
Conversation
Rust: jsonwebtoken 11, argon2 0.6, aes-gcm 0.11, p256 0.14, ecdsa 0.17 and totp-rs 6, behind known-answer tests whose vectors come from the old crates (stored Argon2 hashes, AES-GCM envelopes, HS256 tokens, high-S P-256 signatures and RFC 6238 codes keep verifying). P-256 JWK parsing moves in-house: elliptic-curve 0.14 dropped it. utoipa 6, utoipa-swagger-ui 10, sqlx 0.9 (dynamic SQL audited and wrapped in AssertSqlSafe), clickhouse 0.15, tower-http 0.7, rustls-platform-verifier 0.7, metrics-exporter-prometheus 0.18, tokio-tungstenite 0.30, and a lock refresh. MSRV is now 1.94.1; the server image builds on rust 1.99. Found on the way: ClickHouse 26.9 answers compress=1 with ZSTD, which the crate cannot read, so the client names LZ4; SLO percentiles decoded Int64 as f64 and came out as denormals. Frontend: minor/patch updates, vitest 5, jsdom 30, jest-dom 7, react-day-picker 10, pnpm 11.28.4. Images: nginx 1.31, node 24.21.0, ClickHouse 26.8 LTS, zitadel 4.19.4. Actions pinned to SHAs on their current majors. Renovate config migrated (baseBranchPatterns), core crates left to hand pinning, ClickHouse kept on LTS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Works through the Renovate dependency dashboard (#79): every pending upgrade that could be taken safely, in one PR to spend one CI run.
Rust
Crypto (
=pins moved deliberately):jsonwebtoken10.3.0 → 11.1.0,argon20.5.3 → 0.6.0,aes-gcm0.10.3 → 0.11.1,p2560.13.2 → 0.14.0,ecdsa0.16.9 → 0.17.0, andtotp-rs5 → 6.Data written by the old versions must keep verifying, so this PR first adds known-answer tests. Their vectors were produced with the old crates, and every test passes before and after the bump:
alg: noneand forged signatures are still rejected (theValidationdefaults are unchanged)NORMALIZE_S, and that is false for P-256Code changes:
elliptic-curve0.14 dropped JWK support (it moved tojose-jwk), so P-256 JWK parsing and serialisation are now done by hand inverify_signature.rs:kty/crvare checked,x/ymust be unpadded base64url of exactly 32 bytes each, and the point must lie on the curve. Tests cover the round trip and malformed keys.ecdsa'sverifyingfeature is now calledalgorithm.totp-rs6 uses theBuilderAPI with default features off, so the migration shims are not compiled in.Other majors:
oneOfmembers for nullable refs.AssertSqlSafe. I audited all 18 sites, and each one interpolates only&'static strfragments or generated identifiers.insert()is now async. Row validation is a new default; this PR turns it off, which gives the sameRowBinarybehaviour as 0.13 (see below)./metricsoutput is the same apart from line order), and tokio-tungstenite 0.30 (tests only).cargo updatefor everything else. Thetw-*core crates stay on v0.62.0.The new dependencies need rustc ≥ 1.94.1, so
rust-versionnow says that, andDockerfile.servermoves fromrust:1.93torust:1.99. 1.93 can no longer build the workspace.Bugs found on the way
network_compression_methodfrom LZ4 to ZSTD. The clickhouse crate (0.13 and 0.15 alike) asks forcompress=1and only decodes LZ4, so every query fails with "incorrect magic number". The client now names LZ4 on every query, which works on every server version. The test harness does the same.quantileExactoverNullable(Int64)returns Int64, and that was decoded intoOption<f64>, so p50/p95/p99 came out as denormals next to zero. The 0.15 row validation caught it. The query now usestoFloat64(...), and the integration test asserts the percentiles are whole milliseconds.Frontend
initialFocus→autoFocus.package.json, CI andDockerfile.web.Images and actions
nginx1.29 → 1.31: the built web image passesnginx -tand serves the app.node→ 24.21.0-alpine.action.yml. CI service images are pinned by digest.Renovate config
baseBranches→baseBranchPatterns) is applied.renovate-config-validator --strictpasses; it flagged the old file as needing migration.tw-*core crates alone, because they are pinned by hand.Supply chain
Checks run locally
cargo fmt --check,clippy --all-targets -D warnings, and 755 unit tests.🤖 Generated with Claude Code