Apply the executable-match open query to every macOS FMA manifest - #52152
Merged
allenhouchins merged 1 commit intoAug 30, 2026
Conversation
Rewrite the "open" query in all darwin output manifests to the new template that matches only the app's own executable, and backfill the 14 frozen manifests that predate open queries entirely, deriving each bundle identifier from the app's input unique_identifier. Only the open lines change: a scripted rewrite instead of full regeneration keeps upstream version drift out, and the ingest job never rewrites frozen outputs anyway. Non-frozen manifests would converge on the next scheduled ingestion; this makes the cutover immediate and covers frozen apps.
allenhouchins
temporarily deployed
to
Docker Hub
August 29, 2026 20:10 — with
GitHub Actions
Inactive
4 tasks
allenhouchins
merged commit Aug 30, 2026
9098e0c
into
allenhouchins/1password-macos-fma-query-c60dc0
67 of 78 checks passed
allenhouchins
deleted the
allenhouchins/macos-fma-open-query-all-outputs
branch
August 30, 2026 02:10
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.
Related issue: NA — propagates #52133 to all manifests. Stacked on #52133; merge that first.
What changed
#52133 changes the generated macOS FMA "is app open" query to match only the app's own executable (resolved host-side via
apps.bundle_executable) instead of any process inside the app bundle, fixing apps with in-bundle login items or background helpers (1Password, Company Portal, XCreds, …) being permanently reported as open.This PR applies that template to every existing darwin output manifest instead of waiting for propagation:
"open"query swapped to the new template, bundle identifier preserved verbatim.abstract,avast-secure-browser,binance,comet,dbeaver-enterprise,dbeaverlite,dbeaverultimate,disk-drill,evernote,firealpaca,pritunl,visual-paradigm,vnc-viewer,whispering) had no"open"key at all; each gets one, with the bundle identifier verified equal to the input'sunique_identifierfor all 14.1password/darwin.jsonwas regenerated in Match only the app's own executable in macOS FMA open queries #52133.Total: 962/962 darwin version entries now carry the new query. Windows outputs are untouched (different template, unchanged).
Why a scripted rewrite instead of
go run ./cmd/maintained-apps"open"value (plus the trailing comma added to"patched"in the 14 backfills).Equivalence to the generator was verified directly: re-running
go run ./cmd/maintained-apps -slug <slug>/darwinforslackandintune-company-portalon top of this branch produced byte-identical files.Sequencing
Merge after #52133. If this merged first, the next scheduled ingestion would regenerate non-frozen manifests with the old template still on main and revert them. Once both are in, the bot's future regenerations produce the same query this PR writes (verified above), so nothing fights.
Reviewer note: existing deployments
software_installers.app_open_queryis snapshotted per installer row and refreshes on the FMA version/installer update path. This PR fixes new adds immediately; already-deployed rows pick the query up on their next version bump or re-save. For frozen apps the version never bumps, so deployed rows keep the old behavior until re-saved — same situation as before this PR, minus the fix for fresh installs. A data migration rewriting storedapp_open_queryvalues (precedent:20250121094600_UpdateFMAInstallScripts.go) remains a possible follow-up.Checklist for submitter
If some of the following don't apply, delete the relevant line.
Changes file added for user-visible changes in
changes/,orbit/changes/oree/fleetd-chrome/changes. Carried by Match only the app's own executable in macOS FMA open queries #52133 (changes/fix-macos-fma-open-query), which this PR propagates; a second entry would duplicate the release note.Input data is properly validated,
SELECT *is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters. Data-only change; bundle identifiers are preserved verbatim from the existing manifests / inputs.Testing
Added/updated automated tests Covered by Match only the app's own executable in macOS FMA open queries #52133's generator tests; this PR is the data those tests generate.
QA'd all new/changed functionality manually
Shape audit before/after: 962/962 darwin version entries match the new template exactly (regex-normalized over the bundle id), zero stragglers, zero missing keys.
Diff purity: zero changed lines other than
"open"values and the 14"patched"trailing commas.Backfill identifiers: all 14 equal the input's
unique_identifier(includingvnc-viewer, whose patched query carries a second legacy identifier — the open query uses the canonical one, matching what the generator would emit).Generator equivalence: regenerating
slack/darwinandintune-company-portal/darwinover this branch is a no-op.All JSON re-parsed after rewrite;
go test ./ee/maintained-apps/... ./cmd/maintained-apps/... ./pkg/patch_policy/...passes.Semantics of the query itself (real-host audit of 31 installed FMAs, SQLite state matrix, live before/after on Company Portal and XCreds) are QA'd in #52133.