Add curated Windows open-query process names for 33 high-value Fleet-maintained apps - #50826
Add curated Windows open-query process names for 33 high-value Fleet-maintained apps#50826allenhouchins wants to merge 1 commit into
Conversation
The Windows 'app open' pre-install query (patch_when_closed gate) only
works when it names the app's real process image. For multi-word catalog
names the generated '<title>.exe' guess almost never does ('mozilla
firefox.exe' vs the real firefox.exe), so the gate silently never blocks.
Add windowsOpenQueryOverrides entries for the highest-value affected
apps: Firefox (all four channels), VLC, SQL Server Management Studio,
MySQL Workbench, Power BI, Visual Studio 2022 (all three editions),
GitHub Desktop, Docker Desktop, Adobe Acrobat Pro/Reader, Azure Data
Studio, MongoDB Compass, Epic Games Launcher, GOG Galaxy, eM Client,
Git Extensions, Google Drive, Tableau, Directory Opus, Cisco Jabber,
TeamViewer Host, Elgato Stream Deck, and Electron apps whose spaced
executable name matches their catalog name (Podman Desktop, Rancher
Desktop, Proton Drive, Standard Notes, Genesys Cloud, Mozilla VPN).
Where the exact image name is ambiguous the entry lists both candidate
names with IN (an entry that names a process that never runs is a no-op,
identical to having no gate, so the failure mode is benign).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
WalkthroughThe change adds curated Windows process-name mappings for 33 applications. The mappings support equality, Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Warning
- Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.
Pull request overview
This PR expands Fleet’s Windows “app open” (pre-install) query overrides so patch_when_closed can correctly detect when certain high-value Fleet-maintained apps are running, avoiding patching while the app is open.
Changes:
- Added curated
windowsOpenQueryOverridesentries for 33 additional Windows app titles inpkg/patch_policy. - Expanded
TestGenerateOpenQueryto assert correct override behavior for representative multi-word titles. - Added a user-visible changes entry (file contents excluded by policy).
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| pkg/patch_policy/patch_policy.go | Adds additional Windows process-name predicates keyed by maintained-app “name” so the open-query gate matches real executables. |
| pkg/patch_policy/patch_policy_test.go | Adds test coverage to ensure new overrides generate the expected SQL for multi-word titles. |
| changes/windows-open-query-overrides-high-value | User-visible changes entry (not reviewable here due to content exclusion policy). |
Files excluded by content exclusion policy (1)
- changes/windows-open-query-overrides-high-value
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #50826 +/- ##
==========================================
- Coverage 68.53% 68.53% -0.01%
==========================================
Files 3977 3977
Lines 256168 256168
Branches 13818 13818
==========================================
- Hits 175566 175563 -3
- Misses 64982 64986 +4
+ Partials 15620 15619 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Checklist for submitter
If some of the following don't apply, delete the relevant line.
changes/,orbit/changes/oree/fleetd-chrome/changes.See Changes files for more information.
Testing
Details
Follow-up to #50825. The Windows "app open" pre-install query (the
patch_when_closedgate) only works when it names the app's real process image name. For multi-word catalog names the generated<title>.exeguess almost never does —'mozilla firefox.exe'vs. the realfirefox.exe— so the gate silently never blocks and Fleet will patch the app while it's running.This PR adds 33 curated
windowsOpenQueryOverridesentries (51 → 84) so the gate actually works for the highest-value affected apps:firefox.exevlc.exessms.exemysqlworkbench.exepbidesktop.exedevenv.exegithubdesktop.exedocker desktop.exeacrobat.exeacrord32.exe,acrobat.exeazuredatastudio.exemongodbcompass.exe,mongodb compass.exeepicgameslauncher.exegalaxyclient.exemailclient.exegitextensions.exegoogledrivefs.exetableau.exedopus.execiscojabber.exeteamviewer.exestreamdeck.exe<catalog name>.exegenesys cloud.exe,genesyscloud.exeFailure-mode asymmetry, for review calibration: an override that names a process that never runs is a no-op — osquery reports "not open" and behavior is identical to having no gate (today's state). The only dangerous mistake is naming a process that belongs to a different, commonly-running app, which would block patching indefinitely; none of the names above are generic enough to collide. Where the exact image name is ambiguous, the entry lists both candidates with
IN.Persistent-agent apps (Google Drive, Docker Desktop, TeamViewer Host, Mozilla VPN) will report "open" whenever their resident process is running — that is the honest semantic for
patch_when_closed, and matches the existing precedent (OneDrivehas had aLIKE 'onedrive%'override).Independent of #50825 (either can merge first; overrides take precedence over the fallback in both worlds). The two branches touch adjacent lines in
patch_policy_test.go, so whichever merges second may need a trivial rebase. Like #50825, outputs are not regenerated here — the daily ingest run rewrites every unfrozen output, so these queries reachee/maintained-apps/outputs/on the next "Update Fleet-maintained apps" PR after this merges.Remaining ~150 affected apps (runtimes/redists/drivers with no user-facing process, plus lower-value or unverifiable apps) intentionally stay without a gate; entries can be added incrementally as process names are verified.
Summary by CodeRabbit
Bug Fixes
Tests