You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SUPPLY-001C: upgrade Firebase browser SDK to v11 - #203
Pins the Firebase browser SDK to 11.10.0 and @firebase/rules-unit-testing to 4.0.1. The root production audit falls from 19 findings (1 critical, 5 high) to 6 (0 critical, 3 high). A dedicated Jest environment supplies Node 20 native web APIs so the upgraded Rules helper reaches the loopback emulator; application behavior and provider settings do not change.
Security invariants
One supported compatibility boundary only; Firebase 12 and backend SDKs are excluded.
Auth, Firestore, Functions, and App Check application wiring is unchanged.
Rules tests use project demo-rules-test and loopback Firestore only.
No production secret, member/customer data, provider console, or live Firebase resource was used.
No forced audit upgrade or direct transitive override was added.
Evidence
Focused Firebase/Auth/App Check: 3 suites, 71/71.
Full frontend: 11 suites, 198/198.
Firestore Rules: 4 suites, 348/348.
Functions: 1,077/1,077 applicable unit tests; 32 emulator-only tests remain explicitly skipped in the ordinary unit command.
SPA callback safety: 11/11.
Workflow/release safety: 42/42.
Functions lint passed.
Frontend lint matched the reviewed baseline (125 configured errors and 7 warnings); no new, removed, moved, or changed finding.
Diagnostic production build passed without changing public/sitemap.xml.
Built-output server-module/credential signature scan returned no paths.
Root production audit: 19 total / 1 critical / 5 high -> 6 total / 0 critical / 3 high.
Dependency tree contains one Firebase 11.10.0 instance shared with Rules helper 4.0.1.
Root production protobufjs resolves to 7.6.5; Firebase root undici path is removed. Older protobufjs@7.2.4 and undici@6.25.0 remain only under dev tooling and are documented as residual.
Three independent reviewers APPROVED the exact head:
Dependency/lock/security: clean install and lock integrity; registry metadata and peer compatibility; audit/tree; clean base/head builds; source-map and credential/server-module scans.
Rules/emulator isolation: 348/348; stock Jest fails at discovery; missing emulator fails closed; allow/deny cases load committed Rules on the demo loopback project.
Documentation/deployment truth: numerical consistency, residual risks, links, scope, officer impact, and no false merge, website, Firebase, provider, or live claim.
The clean-build reviewer found and caused correction of stale-cache bundle figures before approval.
Residual risk
Six root and nine Functions production audit findings remain open. Firebase Admin/Functions, the unmaintained build chain, continuous scanning, and provider/live release proof remain separate SUPPLY/CI work. The Jest bridge is a test harness, not a production security boundary.
Officer impact: No visible or procedural change. This reduces a known website dependency risk while preserving the current pages and account flows.
Officer documentation: None — no public content, navigation, data collection, permissions, deployment step, external account, payment, refund, incident, backup, or recovery procedure changed. Engineering security and operations truth is updated in SECURITY.md, OPERATIONS_RUNBOOK.md, GITHUB_ISSUES.md, and GITHUB_ISSUE_SLICES.md.
Deployment evidence: Source and synthetic tests only. Website not published; runmprc.com not verified; Firebase not deployed; outside providers not configured; production behavior not tested.
Three independent exact-head reviews: APPROVED, no remaining findings.
Exact-head CI run 29299213783: Frontend lint/build/tests/SPA/release validation passed; Functions lint/tests passed; Firestore Rules 348/348 passed; commerce-journal emulator passed; artifact scrubber passed. Netlify PR preview 6a5593ef0b049300084d2224 is ready and its applicable redirect check passed; skipped header/page contexts are neutral.
This proves reviewed source, synthetic tests, hosted checks, and a temporary PR preview only. It does not prove a production website release, runmprc.com, Firebase deployment, outside-provider configuration, or production behavior.
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
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.
Closes #202
Outcome
Pins the Firebase browser SDK to 11.10.0 and
@firebase/rules-unit-testingto 4.0.1. The root production audit falls from 19 findings (1 critical, 5 high) to 6 (0 critical, 3 high). A dedicated Jest environment supplies Node 20 native web APIs so the upgraded Rules helper reaches the loopback emulator; application behavior and provider settings do not change.Security invariants
demo-rules-testand loopback Firestore only.Evidence
public/sitemap.xml.protobufjsresolves to 7.6.5; Firebase rootundicipath is removed. Olderprotobufjs@7.2.4andundici@6.25.0remain only under dev tooling and are documented as residual.main.fdd058b4.js252.12 kB ->main.56edbdb7.js260.41 kB CRA gzip report (+8.29 kB/about 3.3%); total build output 18,836 -> 19,016 KiB (+180 KiB/about 1.0%).30e560bd1492c1ba2f691ad0f7216a00bf59184f.caae31ff427e91325d34a6c901faf81ad1dc49df.df343d36a6dc7cb2bb4577dabf52d89b580bd67e3748b67e5caa6ea13034022e.Independent review
Three independent reviewers APPROVED the exact head:
The clean-build reviewer found and caused correction of stale-cache bundle figures before approval.
Residual risk
Six root and nine Functions production audit findings remain open. Firebase Admin/Functions, the unmaintained build chain, continuous scanning, and provider/live release proof remain separate SUPPLY/CI work. The Jest bridge is a test harness, not a production security boundary.
Officer impact: No visible or procedural change. This reduces a known website dependency risk while preserving the current pages and account flows.
Officer documentation: None — no public content, navigation, data collection, permissions, deployment step, external account, payment, refund, incident, backup, or recovery procedure changed. Engineering security and operations truth is updated in
SECURITY.md,OPERATIONS_RUNBOOK.md,GITHUB_ISSUES.md, andGITHUB_ISSUE_SLICES.md.Deployment evidence: Source and synthetic tests only. Website not published;
runmprc.comnot verified; Firebase not deployed; outside providers not configured; production behavior not tested.