Update Fleet-maintained apps - #46680
Conversation
Generated automatically with cmd/maintained-apps.
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
Script Diff Resultsee/maintained-apps/outputs/1password/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/android-studio/darwin.json=== Install Script (no changes) ===
=== Uninstall // 237e23f1 -> aa386b1a ===
--- /tmp/old.p8bAtO 2026-06-02 21:03:15.174372327 +0000
+++ /tmp/new.lgMz1k 2026-06-02 21:03:15.174372327 +0000
@@ -57,9 +57,9 @@
sudo rmdir '~/Library/Android'
trash $LOGGED_IN_USER '~/.android'
trash $LOGGED_IN_USER '~/Library/Android/sdk'
-trash $LOGGED_IN_USER '~/Library/Application Support/Google/AndroidStudio2025.3'
-trash $LOGGED_IN_USER '~/Library/Caches/Google/AndroidStudio2025.3'
-trash $LOGGED_IN_USER '~/Library/Logs/Google/AndroidStudio2025.3'
+trash $LOGGED_IN_USER '~/Library/Application Support/Google/AndroidStudio2026.1'
+trash $LOGGED_IN_USER '~/Library/Caches/Google/AndroidStudio2026.1'
+trash $LOGGED_IN_USER '~/Library/Logs/Google/AndroidStudio2026.1'
trash $LOGGED_IN_USER '~/Library/Preferences/com.android.Emulator.plist'
trash $LOGGED_IN_USER '~/Library/Preferences/com.google.android.studio.plist'
trash $LOGGED_IN_USER '~/Library/Saved Application State/com.google.android.studio.savedState'ee/maintained-apps/outputs/android-studio/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/camtasia/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/claude/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cursor/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/figma/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/firefox/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/firefox/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/gitkraken/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/google-gemini/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/jetbrains-toolbox/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-outlook/darwin.json=== Install // 0e4e4b82 -> 6372af77 ===
--- /tmp/old.f2cLxs 2026-06-02 21:03:15.480372213 +0000
+++ /tmp/new.xqR80G 2026-06-02 21:03:15.480372213 +0000
@@ -117,6 +117,6 @@
EOF
-sudo installer -pkg "$TMPDIR"/Microsoft_Outlook_16.109.26052523_Installer.pkg -target / -applyChoiceChangesXML "$CHOICE_XML"
+sudo installer -pkg "$TMPDIR"/Microsoft_Outlook_16.109.26053122_Installer.pkg -target / -applyChoiceChangesXML "$CHOICE_XML"
relaunch_application 'com.microsoft.Outlook'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/miro/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/nordpass/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/whatsapp/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) === |
WalkthroughThis PR updates version metadata across 16 maintained-app JSON files in Fleet's enterprise module. Each file receives a version bump to its Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ee/maintained-apps/outputs/android-studio/darwin.json`:
- Line 19: The uninstall script is passing literal '~' because the rmdir calls
use single quotes (e.g. the lines calling sudo rmdir '~/AndroidStudioProjects'
and sudo rmdir '~/Library/Android'), so those paths never expand to the actual
user home; change those calls to use an expanded home path (either unquoted ~ or
explicitly /Users/$LOGGED_IN_USER) so the commands target the real directories
(you can also reuse the existing LOGGED_IN_USER variable or the trash() helper
for consistency).
In `@ee/maintained-apps/outputs/microsoft-outlook/darwin.json`:
- Around line 4-12: The JSON currently sets "version": "16.109" and the
"queries.patched" threshold to '16.109', but the installer
"Microsoft_Outlook_16.109.26053122_Installer.pkg" actually installs 16.109.2;
update the "version" field to "16.109.2" and change the comparisons used in
queries.patched (the string in the WHERE clause that compares
bundle_short_version) from '16.109' to '16.109.2' so hosts running
16.109.0/16.109.1 are not treated as compliant.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 962af6a2-8623-48eb-ab3c-513fb8b27e7a
📒 Files selected for processing (17)
ee/maintained-apps/outputs/1password/darwin.jsonee/maintained-apps/outputs/android-studio/darwin.jsonee/maintained-apps/outputs/android-studio/windows.jsonee/maintained-apps/outputs/camtasia/darwin.jsonee/maintained-apps/outputs/claude/windows.jsonee/maintained-apps/outputs/cursor/windows.jsonee/maintained-apps/outputs/figma/windows.jsonee/maintained-apps/outputs/firefox/darwin.jsonee/maintained-apps/outputs/firefox/windows.jsonee/maintained-apps/outputs/gitkraken/darwin.jsonee/maintained-apps/outputs/google-gemini/darwin.jsonee/maintained-apps/outputs/jetbrains-toolbox/darwin.jsonee/maintained-apps/outputs/jetbrains-toolbox/windows.jsonee/maintained-apps/outputs/microsoft-outlook/darwin.jsonee/maintained-apps/outputs/miro/darwin.jsonee/maintained-apps/outputs/nordpass/windows.jsonee/maintained-apps/outputs/whatsapp/darwin.json
| ], | ||
| "refs": { | ||
| "237e23f1": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Android Studio.app\"\nsudo rmdir '~/AndroidStudioProjects'\nsudo rmdir '~/Library/Android'\ntrash $LOGGED_IN_USER '~/.android'\ntrash $LOGGED_IN_USER '~/Library/Android/sdk'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Google/AndroidStudio2025.3'\ntrash $LOGGED_IN_USER '~/Library/Caches/Google/AndroidStudio2025.3'\ntrash $LOGGED_IN_USER '~/Library/Logs/Google/AndroidStudio2025.3'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.android.Emulator.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.google.android.studio.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.google.android.studio.savedState'\n", | ||
| "aa386b1a": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Android Studio.app\"\nsudo rmdir '~/AndroidStudioProjects'\nsudo rmdir '~/Library/Android'\ntrash $LOGGED_IN_USER '~/.android'\ntrash $LOGGED_IN_USER '~/Library/Android/sdk'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Caches/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Logs/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.android.Emulator.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.google.android.studio.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.google.android.studio.savedState'\n", |
There was a problem hiding this comment.
Fix the user-home paths in the new uninstall payload.
Line 19's new script calls sudo rmdir '~/AndroidStudioProjects' and sudo rmdir '~/Library/Android'. Because ~ is single-quoted, it is passed literally instead of resolving to /Users/$LOGGED_IN_USER, so this new uninstall_script_ref never removes those directories even when they are empty.
Proposed fix
-sudo rmdir '~/AndroidStudioProjects'
-sudo rmdir '~/Library/Android'
+sudo rmdir "/Users/$LOGGED_IN_USER/AndroidStudioProjects" 2>/dev/null || true
+sudo rmdir "/Users/$LOGGED_IN_USER/Library/Android" 2>/dev/null || true📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "aa386b1a": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Android Studio.app\"\nsudo rmdir '~/AndroidStudioProjects'\nsudo rmdir '~/Library/Android'\ntrash $LOGGED_IN_USER '~/.android'\ntrash $LOGGED_IN_USER '~/Library/Android/sdk'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Caches/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Logs/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.android.Emulator.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.google.android.studio.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.google.android.studio.savedState'\n", | |
| "aa386b1a": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Android Studio.app\"\nsudo rmdir \"/Users/$LOGGED_IN_USER/AndroidStudioProjects\" 2>/dev/null || true\nsudo rmdir \"/Users/$LOGGED_IN_USER/Library/Android\" 2>/dev/null || true\ntrash $LOGGED_IN_USER '~/.android'\ntrash $LOGGED_IN_USER '~/Library/Android/sdk'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Caches/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Logs/Google/AndroidStudio2026.1'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.android.Emulator.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.google.android.studio.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.google.android.studio.savedState'\n", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@ee/maintained-apps/outputs/android-studio/darwin.json` at line 19, The
uninstall script is passing literal '~' because the rmdir calls use single
quotes (e.g. the lines calling sudo rmdir '~/AndroidStudioProjects' and sudo
rmdir '~/Library/Android'), so those paths never expand to the actual user home;
change those calls to use an expanded home path (either unquoted ~ or explicitly
/Users/$LOGGED_IN_USER) so the commands target the real directories (you can
also reuse the existing LOGGED_IN_USER variable or the trash() helper for
consistency).
| "version": "16.109", | ||
| "queries": { | ||
| "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Outlook';", | ||
| "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Outlook' AND version_compare(bundle_short_version, '16.109.2') < 0);" | ||
| "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Outlook' AND version_compare(bundle_short_version, '16.109') < 0);" | ||
| }, | ||
| "installer_url": "https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Outlook_16.109.26052523_Installer.pkg", | ||
| "install_script_ref": "0e4e4b82", | ||
| "installer_url": "https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Outlook_16.109.26053122_Installer.pkg", | ||
| "install_script_ref": "6372af77", | ||
| "uninstall_script_ref": "f89a23ed", | ||
| "sha256": "f02cc11e6f7f107d161395a6eb2ed3e1d3c1ac191949a3934f427e55998b8108", | ||
| "sha256": "1c95d6c9b8310a97f0d13f612bd2ce94c0ec546abab0d978aed12cb6d3dfbe12", |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
What app version does the macOS package Microsoft_Outlook_16.109.26053122_Installer.pkginstall:16.109, 16.109.1, or 16.109.2?
💡 Result:
The macOS installer package Microsoft_Outlook_16.109.26053122_Installer.pkg installs version 16.109.2 of Microsoft Outlook [1]. While Microsoft Outlook version numbering typically follows the format Major.Minor.Build (where 16.109 is the major/minor release and 26053122 represents the specific build number), the installer in question corresponds to the 16.109.2 release [1]. Official Microsoft update history documentation lists 16.109.2 (26052523) as a release [1], and build numbers in filenames (such as 26053122) represent the specific compilation of that release version [1]. Thus, it installs the 16.109.2 version.
Citations:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="ee/maintained-apps/outputs/microsoft-outlook/darwin.json"
if [ -f "$FILE" ]; then
nl -ba "$FILE" | sed -n '1,120p'
else
echo "Missing file: $FILE" >&2
fiRepository: fleetdm/fleet
Length of output: 100
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="ee/maintained-apps/outputs/microsoft-outlook/darwin.json"
if [ ! -f "$FILE" ]; then
echo "Missing file: $FILE" >&2
exit 1
fi
python3 - <<'PY'
path = "ee/maintained-apps/outputs/microsoft-outlook/darwin.json"
with open(path, "r", encoding="utf-8") as f:
for i, line in enumerate(f, start=1):
if i <= 200:
print(f"{i:4d}: {line.rstrip()}")
else:
break
PYRepository: fleetdm/fleet
Length of output: 12021
Align Outlook’s tracked version with the shipped macOS installer (16.109.2)
ee/maintained-apps/outputs/microsoft-outlook/darwin.json tracks "version": "16.109" and queries.patched treats hosts as compliant when bundle_short_version >= 16.109, but Microsoft_Outlook_16.109.26053122_Installer.pkg installs Microsoft Outlook 16.109.2 and the install script downloads/applies that exact pkg. Update "version" and the queries.patched threshold to 16.109.2 so 16.109.0/16.109.1 aren’t incorrectly considered compliant.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@ee/maintained-apps/outputs/microsoft-outlook/darwin.json` around lines 4 -
12, The JSON currently sets "version": "16.109" and the "queries.patched"
threshold to '16.109', but the installer
"Microsoft_Outlook_16.109.26053122_Installer.pkg" actually installs 16.109.2;
update the "version" field to "16.109.2" and change the comparisons used in
queries.patched (the string in the WHERE clause that compares
bundle_short_version) from '16.109' to '16.109.2' so hosts running
16.109.0/16.109.1 are not treated as compliant.
|
Closing in favor of #46695. |
Automated ingestion of latest Fleet-maintained app data.
Summary by CodeRabbit
Chores