chore(deps): clear the open Dependabot alerts and configure version updates - #324
Open
jeroenrinzema wants to merge 7 commits into
Open
chore(deps): clear the open Dependabot alerts and configure version updates#324jeroenrinzema wants to merge 7 commits into
jeroenrinzema wants to merge 7 commits into
Conversation
Clears 27 of the 29 open Go advisories, including the three criticals in kin-openapi, pgx/v5 and grpc. github.com/docker/docker stays at 28.5.2+incompatible: the fix for GHSA-pxq6-2prw-chj9 landed in Docker 29, which moved to a versioned module path, so it is unreachable until testcontainers-go migrates.
Bumps the flagged direct dependencies to the lowest release carrying each fix, and refreshes the lockfile for the transitive ones. pnpm.overrides covers the six packages whose parents pin a vulnerable range; each is constrained to its current major so the override cannot pull in a breaking line. happy-dom moves from an auto-installed peer to an explicit devDependency, since overrides do not apply to peers pnpm resolves on its own. pnpm audit reports no known vulnerabilities; build, lint and the 83 unit tests pass.
mermaid and postcss move up directly; the rest of the flagged packages sit behind pinned parents (shadcn's MCP SDK, eslint, fumadocs, next), so they are pulled forward with pnpm.overrides. Overrides that appear at more than one major in the tree are keyed per major, and every entry is capped to its own major line. image-size stays vulnerable: GHSA-5p2g-fcmc-qvqq and GHSA-w3rx-r6r6-pgpr have no patched release at any version. It is reached only through fumadocs-core at build time, over images committed to this repository. pnpm audit is otherwise clean and the site builds, OG image generation included.
vite moves to 6.4.3 within its existing range; postcss, picomatch and @babel/core are transitive and pinned by their parents, so they go through npm overrides. picomatch is keyed per major because both 2.x and 4.x are in the tree. npm audit is clean and the single-file bundle builds to the same output.
Security updates were already enabled on the repository, but without this file Dependabot never proposed routine version bumps, so transitive dependencies drifted until an advisory forced the issue. Covers the Go module, the three npm workspaces, the workflows and their composite action, and the root Dockerfiles. Minor and patch updates are grouped per ecosystem to keep the PR volume reviewable; majors still arrive on their own.
This was referenced Sep 1, 2026
openfga v1.18.0 requires Go 1.25.7, which raises the root module's own directive. All twelve nested modules replace the root, and a module cannot depend on one that requires a newer Go than it declares, so `go generate` failed on the TinyGo build with "updates to go.mod needed". Verified against TinyGo 0.40.1, which itself builds on Go 1.25.7.
openfga v1.18.0 hands MigrationConfig.Timeout and PingTimeout straight to the connection backoff. Migrate left both at zero, which means an unbounded MaxElapsedTime and a ping context that expires the moment it is created, so RunMigrations spun in a tight retry loop instead of connecting. Locally internal/rbac hung until the test timeout and now passes in five seconds. On CI the loop also starved packages sharing the runner under -p 4, which is why internal/wasm and internal/wasm/integrations blew past their limits on a two-core machine while faster packages were unaffected. Uses the same defaults openfga's own migrate command applies.
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.
Clears the open Dependabot alerts across all four ecosystems and adds the
.github/dependabot.ymlthat was never there, which is why transitivedependencies drifted until an advisory forced the issue.
Supersedes #319, #320, #321 and #322.
Result
go.modgo build,go vet, short testsconsolepnpm auditclean; build, lint, 83/83 testsdocspnpm audit; site builds incl. OG imagesmodules/webhook/previewnpm auditclean; identical bundle outputThe Go figure was checked by comparing each alert's patched version against
the resolved module graph: 25 of 29 cleared.
The six that remain have no fix in existence
github.com/docker/docker(4 alerts) — the fix ships in Docker 29,which moved to a versioned module path. Unreachable until
testcontainers-gomigrates. Test-only, viainternal/container.image-size(2 alerts) — no patched release at any version(GHSA-5p2g-fcmc-qvqq, GHSA-w3rx-r6r6-pgpr). Build-time only, via
fumadocs-core, over images committed to this repository.Why this is not just the Dependabot PRs
109 of the 237 npm alerts sit behind parents that pin a vulnerable range —
shadcn's MCP SDK chain,eslint,fumadocs,next,monaco-editor.Reaching those needs
pnpm.overrides/npm overrides, which Dependabotdoes not write; 76 of the 89
docsalerts are in that bucket. The Go PRshad no such limitation and land the same targets as the Go commit here.
Approach
Direct dependencies move to the lowest release carrying each fix, not
@latest— a@latestpass pulled React Router to v8 anduuidto v14,and landed Clerk on 5.61.3, below the 5.61.6 its critical advisory
requires. Transitives are refreshed by name rather than with a blanket
pnpm update, which had rewritten nearly every range inconsole/package.json.Every override is capped to its own major. Packages present at more than
one major (
ajv,brace-expansion,minimatch,picomatch) are keyedper major — an uncapped
ajvoverride jumped to 8.x and broke ESLint.happy-dombecomes an explicit devDependency inconsole, since overridesdo not apply to peers pnpm resolves on its own.
dependabot.yml
Covers the Go module, the three npm workspaces, the workflows plus their
composite action, and the root Dockerfiles. Minor and patch updates are
grouped per ecosystem to keep PR volume reviewable; majors still arrive on
their own.
Two fixes the upgrade forced
godirective across the nested modules. openfga v1.18.0 requires Go1.25.7, which raises the root module's directive. All twelve nested modules
replacethe root, and a module cannot depend on one requiring a newer Gothan it declares, so
go generatefailed on the TinyGo build. Verifiedagainst TinyGo 0.40.1, which itself builds on Go 1.25.7.
rbac.Migrateconnection timeouts. openfga v1.18.0 feedsMigrationConfig.TimeoutandPingTimeoutstraight into the connectionbackoff. Both were left at zero, which means an unbounded
MaxElapsedTimeand a ping context that expires the moment it is created —
RunMigrationsspun in a tight retry loop instead of connecting.
internal/rbachung tothe test timeout; it now passes in eight seconds. The loop also pegged a
core, starving packages sharing the runner under
-p 4, which is whatpushed
internal/wasm(200s to 1269s) andinternal/wasm/integrations(29s to 1139s) past their limits on a two-core machine.
This second commit is a behaviour change in production code rather than a
dependency bump. It is here because the upgrade exposed it, but it warrants
review on its own terms.
Per-package timings are back to their
mainbaselines:internal/wasm203.7s,
internal/wasm/integrations30.1s,internal/rbac8.3s.