Skip to content

Use only locked browser tooling in child workflow CI - #259

Merged
rmcdaniel merged 1 commit into
mainfrom
security/locked-child-browser-tooling
Oct 19, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
security/locked-child-browser-tooling

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Change

Install the child-workflow CI job's locked browser dependencies with lifecycle scripts disabled. Invoke the installed Playwright binary directly so a missing binary fails instead of triggering an on-demand package download.

This addresses the two githubactions:S6505 findings and githubactions:S8543 on the existing install step. Package versions, lockfile, browser version, workflow assertions and original timeouts remain unchanged. Sonar rules and thresholds stay unchanged.

Qualification

Focused Node 24.21.0 qualification passes in an isolated 1-CPU/2-GiB non-root container: npm ci --ignore-scripts installs 87 packages with zero audit findings; the installed Playwright package and CLI are both exactly 1.64.1 and match the lockfile. All six existing Node tests and the production Vite build pass. No package, lockfile or application source changed.

Exact head a0c693b0d0c5b372e272c06293746e4a0f6f566d passes the real child-workflow browser/SDK job39246940009. Complete logs prove the revised install commands ran, 87 locked packages installed with zero audit findings, and the selected Chromium/headless binaries downloaded successfully. The actual experiment finishes 11:54:28 UTC with all nine completion directions, typed failures, worker-loss/cancellation controls and 45 connected Waterline views (15 each through legacy, runtime and anonymous access). Hosted stack/network cleanup finishes 11:54:34. The temporary 321,342-byte log transport is removed after review.

All eighteen candidate checks pass, including Sonar workflow/App and the final timer regression. The direct PR API has zero unresolved issues and no ignored gate conditions; the posted Sonar report was reviewed. Local browser download/execution is not claimed. The separate poll-metadata change is fully delivered and the original accepted-update stall remains open.

Merged at 5ddbd3e5e5e929b43c9ff31e30eb099cb105941c, whole 874fd1be402f8a731495d87f1662bccdcb971835, identical to reviewed a0c693b and synthetic98f682fa. Parents are ba396cb/a0c693b0. The remote head is absent and the clean local branch/worktree are retired at12:10:26UTC. No package, development image or product version release is needed for this workflow-only change.

Exact main analysis 63b56764-3aef-42f0-bfc9-a0c2129c2ef6 names5ddbd3e5 and passes without ignored conditions: 0.0% new duplication under the unchanged3% limit and new ratingsA. All three original findings are independently verified CLOSED/FIXED through the API. No manual issue transition, suppression, exclusion, profile or threshold change was used.

Delivered: all seventeen independent main checks pass; the last timer job completes12:27:46UTC. Independent main child39249612484 logs prove the revised install commands, selected browser downloads, all nine distinct PHP/Python/Rust parent-child directions and 45 connected Waterline views through legacy/runtime/anonymous access. The experiment passes12:16:56 and hosted cleanup removes its network12:17:01. Temporary320578-byte main transport and the completed local reports are removed after readback. No package, application version or image publication is needed.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 19, 2026 11:57
@rmcdaniel
rmcdaniel merged commit 5ddbd3e into main Oct 19, 2026
18 checks passed
@rmcdaniel
rmcdaniel deleted the security/locked-child-browser-tooling branch October 19, 2026 12:07
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.

1 participant