Skip to content

build(deps): bump pgdriver, mapstructure, testcontainers + currency refresh#115

Merged
rsharath merged 2 commits intomainfrom
deps-bump-2026-05
May 5, 2026
Merged

build(deps): bump pgdriver, mapstructure, testcontainers + currency refresh#115
rsharath merged 2 commits intomainfrom
deps-bump-2026-05

Conversation

@rsharath
Copy link
Copy Markdown
Contributor

@rsharath rsharath commented May 5, 2026

Summary

Closes the Go-ecosystem Dependabot alerts that are addressable via go get, plus a currency refresh on the directly-used libraries that drift the most. Pure dependency-manifest update — zero code changes, two files touched (go.mod, go.sum).

Dependabot alerts closed

Severity Package Before → After Advisory
MEDIUM github.com/uptrace/bun/driver/pgdriver v1.2.11 → v1.2.18 SQL injection in our actual production Postgres driver
MEDIUM github.com/go-viper/mapstructure/v2 v2.2.1 → v2.5.0 "May Leak Sensitive Information in Logs When Processing Malformed Data" (indirect via koanf)

uptrace/bun and uptrace/bun/dialect/pgdialect were bumped together with pgdriver (all three to v1.2.18) to keep the bun stack at one minor version.

Currency

Package Before → After
github.com/danielgtaylor/huma/v2 v2.37.2 → v2.37.3
github.com/testcontainers/testcontainers-go (+ modules/postgres) v0.41.0 → v0.42.0
go.opentelemetry.io/otel + sdk + sdk/metric + metric + trace aligned to v1.43.0 (was mix of v1.35.0 / v1.42.0 / v1.43.0)
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.42.0 → v1.43.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace + .../otlptracegrpc v1.35.0 → v1.43.0
go.opentelemetry.io/proto/otlp v1.9.0 → v1.10.0
google.golang.org/grpc v1.79.3 → v1.80.0
google.golang.org/genproto/googleapis/{api,rpc} 0209 → 0401 snapshot
Indirect: moby/patternmatcher, shirou/gopsutil/v4, sirupsen/logrus patch bumps via testcontainers

Not addressed (known limitation)

The HIGH-severity docker/docker advisory (Moby AuthZ plugin bypass, ≥v29.3.1 required) is unactionable via go get. Moby's v29.x line uses docker-v29.x.x prefixed tags which the Go module proxy does not expose under github.com/docker/docker; v28.5.2+incompatible is the maximum installable version on this module path:

$ go list -m -versions github.com/docker/docker | tr ' ' '\n' | tail -3
v28.5.0+incompatible
v28.5.1+incompatible
v28.5.2+incompatible

The CVE concerns the docker daemon's AuthZ plugin handling — we don't run docker daemon with AuthZ plugins. testcontainers-go uses only the docker client to manage test fixtures, so this CVE has no actual impact on our deployment. Dependabot will continue to flag the alert until either Moby republishes the v29.x line with plain v29.x.x tags or testcontainers-go moves off the legacy module path.

Scope

Test plan

  • go vet ./... — clean (root + pkg/authjwt)
  • Full integration suite (testcontainers Postgres) — green ~9.9s
  • Race-enabled local run — no new flags

Out of scope (separate workstreams)

  • npm-side advisories (postcss < 8.5.10, vite <= 6.4.1, esbuild <= 0.24.2) — these are in cli/ (the TypeScript CLI) and @highflame/sdk consumer surface. Different module ecosystem, different release cadence; should land as separate cli/ and sdk/ PRs.
  • Major version bumps that would touch the API surface (e.g. huma v2 → v3 if/when released, otel v1 → v2). Out of scope here.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates several project dependencies in go.mod and go.sum, including huma/v2, testcontainers-go, bun, OpenTelemetry, and gRPC. It also includes updates to various indirect dependencies and adds new ones such as moby/moby/api and pgregory.net/rapid. There are no review comments provided, and I have no feedback to provide.

…efresh

Closes the Go-ecosystem Dependabot alerts that were addressable via go get,
plus a currency refresh on the directly-used libraries that drift the most.

## Security-flagged

- uptrace/bun + dialect/pgdialect + driver/pgdriver: v1.2.11 -> v1.2.18
  Closes pgdriver SQL injection (GHSA tracked by Dependabot, MEDIUM).
- go-viper/mapstructure/v2: v2.2.1 -> v2.5.0
  Closes "May Leak Sensitive Information in Logs When Processing Malformed
  Data" (MEDIUM, indirect via koanf).
- testcontainers-go + modules/postgres: v0.41.0 -> v0.42.0
  Brings in moby/sys/* + sirupsen/logrus + gopsutil patch versions.

## Currency

- danielgtaylor/huma/v2: v2.37.2 -> v2.37.3
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc: v1.42.0 -> v1.43.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace + .../otlptracegrpc: v1.35.0 -> v1.43.0
- go.opentelemetry.io/proto/otlp: v1.9.0 -> v1.10.0
- google.golang.org/grpc: v1.79.3 -> v1.80.0
- google.golang.org/genproto/googleapis/{api,rpc}: 0209 -> 0401 snapshot

## Not addressed (known limitation)

The HIGH-severity docker/docker AuthZ-plugin-bypass advisory (>=v29.3.1)
is unactionable via go get. Moby's v29.x line uses docker-v29.x.x prefix
tags which the Go module proxy does not expose under
github.com/docker/docker; v28.5.2+incompatible is the maximum installable
version on the module path. The CVE concerns docker daemon AuthZ plugins
which we don't run -- testcontainers-go uses only the docker client to
manage test fixtures. Dependabot will continue to flag this until either
Moby republishes the v29.x line with plain v29.x.x tags or testcontainers
moves to a different docker client surface.

## Scope

- Root go.mod / go.sum only. pkg/authjwt/go.mod unchanged.
- Rebased onto current main (which now includes #114, jwx v4 + Go 1.26).
- No code changes -- pure dependency manifest update.

## Test plan

- [x] go vet ./... (root + pkg/authjwt) -- clean
- [x] Full integration suite (testcontainers Postgres) -- green ~10s
@rsharath rsharath force-pushed the deps-bump-2026-05 branch from 4f966d5 to 50a49d7 Compare May 5, 2026 17:35
bun v1.2.18 deprecated bun.In in favor of bun.List/bun.Tuple. Inside an
existing 'IN (?)' template, bun.List produces identical SQL to bun.In
(comma-separated values, no surrounding parens), so this is a 1:1
mechanical swap. Resolves staticcheck SA1019 in lint-check.
@rsharath
Copy link
Copy Markdown
Contributor Author

rsharath commented May 5, 2026

Auto-fixed by pr-shepherd (iteration 1):

  • lint-check: replaced bun.In(identityTypes) with bun.List(identityTypes) in internal/store/postgres/identity.go:90. bun.In was deprecated in bun v1.2.18 (the version we just bumped to). Inside the existing IN (?) template, bun.List produces identical SQL (comma-separated values without surrounding parens) so this is a 1:1 mechanical swap with no behavior change.

Local verification: golangci-lint run --timeout=5m clean, go vet ./... clean, go test ./... -count=1 -timeout=180s green (10s integration suite).

Re-running CI.

@rsharath rsharath merged commit 2c83764 into main May 5, 2026
10 checks passed
@rsharath rsharath deleted the deps-bump-2026-05 branch May 5, 2026 17:47
rsharath added a commit that referenced this pull request May 5, 2026
…npm advisories (#117)

Closes the three npm-side Dependabot alerts on cli/package-lock.json:

| Severity | Package  | Before -> After     | Advisory                                   |
| -------- | -------- | ------------------- | ------------------------------------------ |
| MEDIUM   | postcss  | 8.5.8  -> 8.5.14    | XSS via Unescaped </style> (GHSA-qx2v-qp2m-jg93) |
| MEDIUM   | vite     | 5.4.21 -> 6.4.2     | Dev-server response leak (GHSA-4w7w-66w2-5vf9)   |
| MEDIUM   | esbuild  | 0.21.5 -> 0.25.12   | Dev-server CORS bypass (GHSA-67mh-4wv8-2f99)     |

## Approach

- vitest direct: ^2 -> ^3. vitest@3 supports vite ^5/^6/^7; the override
  below pins it onto v6 transitively. Smaller migration than vitest@4
  (which would force a major-major jump from v2). The test surface uses
  only describe/it/expect/beforeEach/vi.fn -- no v3 breaking changes
  exercised by this CLI's 101 tests.
- npm `overrides`:
  - `vite: ^6.4.2` -- forces vitest@3's transitive vite up from v5 to v6
    (clears the vite advisory and pulls esbuild 0.25.x as a side effect).
  - `postcss: ^8.5.10` -- forces both tsup's and vite's transitive postcss
    onto a fixed line (8.5.14 ends up resolved). Without the override,
    tsup pins postcss@8.5.8 indirectly via postcss-load-config.

esbuild needs no explicit override -- vite@6.4.2 already pulls
esbuild@0.25.12, well past the 0.24.2 advisory ceiling.

## Scope

- `cli/package.json` + `cli/package-lock.json` only.
- No src changes -- pure build-tool dependency update.
- Independent of #114 (jwx v4) and #115 (Go-side deps); both are Go-only.

## Test plan

- [x] `npm install` -- clean, 0 vulnerabilities.
- [x] `npm test` -- 101/101 passing (~590ms).
- [x] `npm run typecheck` -- clean.
- [x] `npm run build` (tsup) -- ESM + d.ts artifacts produced.
- [x] `npm run lint` (eslint) -- clean.
- [x] `npm audit` -- 0 vulnerabilities found.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants