Repository navigation
Update portal demo dependencies and fix the CodeQL alerts - #8
Merged
Merged
Conversation
Brings in Dependabot PRs #1 to #4: - lucide-react 1.51.0 → 1.52.0 - @types/supertest 6.0.3 → 7.2.1 - vite 7.3.6 → 8.3.1 and @vitejs/plugin-react 5.2.0 → 6.1.1, which needs vite 8. Vite 8 builds with Rolldown, so the vendor chunk moves from rollupOptions' manualChunks to rolldownOptions' codeSplitting groups. The output is the same. Leaves @types/node on 24.x instead of PR #5's 26.x: the demo runs on Node 24, and dependabot.yml now ignores its major versions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ARnk1jhjwpyA9h4PmTsabQ
- #7, #8, #9 (js/missing-rate-limiting): the portal limits each client address to 3,000 requests a minute with express-rate-limit 8.7.1, mounted first in createApp so it covers every route and the SPA fallback. The limit leaves about three times the demo's own peak traffic (panel polling, page refreshes, scenario runners). trust proxy stays off, so a client can't choose its own key. Two tests check the RateLimit-Policy header and the 429 answer. - #1 to #5 (js/bad-tag-filter): the tests that extract inline scripts match <script> case-insensitively. - #6 (js/incomplete-multi-character-sanitization): the test helper that reads button labels captures the text after the icon instead of stripping tags with replace. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ARnk1jhjwpyA9h4PmTsabQ
This was referenced Oct 13, 2026
Closed
This was referenced Oct 13, 2026
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.
Consolidates the open Dependabot PRs and fixes all nine open CodeQL alerts in
permit-portal-demo.Dependencies (Dependabot #1–#5)
@types/nodestays on 24.x..github/dependabot.ymlnow ignores its major versions.Vite 8 builds with Rolldown, so the vendor chunk moves from
rollupOptions.output.manualChunkstorolldownOptions.output.codeSplitting.groups. The build output is the same (vendor chunk 436 kB, no warnings). plugin-react 6 drops Babel, which removes the@babel/*packages from the lockfile.Dependabot should close #1–#4 once this is merged. #5 can be closed by hand.
CodeQL alerts
express-rate-limit8.7.1, mounted first increateApp: 3,000 requests a minute per client address, in front of every route and the SPA fallback. The demo's own peak (panel polling, page refreshes, scenario runners) is about 1,000 a minute.trust proxystays off, so a client can't choose its own key.<script>out of the app's own HTML match it case-insensitively.replace.Two new tests check the
RateLimit-Policyheader on every route and the429 { error: 'Too many requests' }answer. Both fail without the limiter.express-rate-limit8.7.1 is MIT and outside the range of its one advisory. Its new transitive dependency,ip-address10.7.4, and Rolldown's native packages are less than 7 days old; they pass the repo's 24-hour pnpm release-age policy.Checks run
pnpm install --frozen-lockfile,pnpm peers checkandpnpm audit --audit-level=moderate: clean.pnpm lint(oxlint, oxfmt, tsc): passes.pnpm test: 863 tests pass.pnpm run build:web: no warnings./healthzwith theRateLimit-Policyheader.X-Forwarded-Forheader.CodeQL wasn't run locally. This PR's CodeQL check should show #1–#9 as fixed.
🤖 Generated with Claude Code
https://claude.ai/code/session_01ARnk1jhjwpyA9h4PmTsabQ