Skip to content

Add macOS app filter to My device software#48637

Merged
allenhouchins merged 1 commit into
mainfrom
48636-fleet-desktop-software-should-have-the-same-applications-vs-full-inventory-filter-for-a-better-end-user-experience
Jul 13, 2026
Merged

Add macOS app filter to My device software#48637
allenhouchins merged 1 commit into
mainfrom
48636-fleet-desktop-software-should-have-the-same-applications-vs-full-inventory-filter-for-a-better-end-user-experience

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Jul 2, 2026

Copy link
Copy Markdown
Member

Expose the existing "Applications" / "Full inventory" software filter on the Fleet Desktop My device Software tab for macOS hosts. The filter now defaults to Applications for macOS, sends macos_applications to the device software API, and keeps that query param during pagination. Updated table tests cover rendering and URL behavior on My device and non-macOS hosts.

Related issue: Resolves #48636

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/ or ee/fleetd-chrome/changes.
    See Changes files for more information.

  • 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.

  • Timeouts are implemented and retries are limited to avoid infinite loops

  • If paths of existing endpoints are modified without backwards compatibility, checked the frontend/CLI for any necessary changes

Testing

For unreleased bug fixes in a release candidate, one of:

  • Confirmed that the fix is not expected to adversely impact load test results
  • Alerted the release DRI if additional load testing is needed

Database migrations

  • Checked schema for all modified table for columns that will auto-update timestamps during migration.
  • Confirmed that updating the timestamps is acceptable, and will not cause unwanted side effects.
  • Ensured the correct collation is explicitly set for character columns (COLLATE utf8mb4_unicode_ci).

New Fleet configuration settings

  • Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for GitOps-enabled settings:

  • Verified that the setting is exported via fleetctl generate-gitops
  • Verified the setting is documented in a separate PR to the GitOps documentation
  • Verified that the setting is cleared on the server if it is not supplied in a YAML file (or that it is documented as being optional)
  • Verified that any relevant UI is disabled when GitOps mode is enabled

fleetd/orbit/Fleet Desktop

  • Verified compatibility with the latest released version of Fleet (see Must rule)
  • If the change applies to only one platform, confirmed that runtime.GOOS is used as needed to isolate changes
  • Verified that fleetd runs on macOS, Linux and Windows
  • Verified auto-update works from the released version of component to the new version (see tools/tuf/test)

Summary by CodeRabbit

  • New Features

    • Added the Applications / Full inventory software filter to the My device > Software tab for macOS devices.
    • The selected filter is now preserved when navigating through software results.
  • Bug Fixes

    • Corrected software filtering behavior across device pages and platforms.
    • Prevented the macOS filter parameter from being added for non-macOS devices.

Expose the existing "Applications" / "Full inventory" software filter on the Fleet Desktop My device Software tab for macOS hosts. The filter now defaults to Applications for macOS, sends `macos_applications` to the device software API, and keeps that query param during pagination. Updated table tests cover rendering and URL behavior on My device and non-macOS hosts.
@codecov

codecov Bot commented Jul 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 25.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.99%. Comparing base (ea3fceb) to head (19ced02).
⚠️ Report is 208 commits behind head on main.

Files with missing lines Patch % Lines
...ages/hosts/details/cards/Software/HostSoftware.tsx 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #48637      +/-   ##
==========================================
- Coverage   67.99%   67.99%   -0.01%     
==========================================
  Files        3678     3678              
  Lines      233791   233789       -2     
  Branches    12451    12303     -148     
==========================================
- Hits       158968   158966       -2     
  Misses      60496    60496              
  Partials    14327    14327              
Flag Coverage Δ
frontend 58.96% <25.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 updates the host/device software table UI so macOS “My device > Software” supports the existing Applications vs Full inventory filter, defaulting macOS to Applications and preserving the macos_applications query param during pagination.

Changes:

  • Show the /Applications filter on the My device page for macOS hosts.
  • Default macosApplicationsFilter for macOS hosts (including My device) and pass macos_applications to the device software API query.
  • Expand/update table tests to cover rendering and URL pagination behavior for My device and non-macOS platforms.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tsx Removes My device gating so the Applications/Full inventory dropdown can render for macOS on My device and keeps macos_applications in pagination query params.
frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tests.tsx Adds/updates tests for rendering the filter on My device and ensuring macos_applications is preserved/omitted appropriately on pagination.
frontend/pages/hosts/details/cards/Software/HostSoftware.tsx Applies macOS defaulting for macosApplicationsFilter regardless of page context and forwards macos_applications into the device software query key/API params.
Files excluded by content exclusion policy (1)
  • changes/my-device-applications-filter

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 37b19eae-d8d2-4c93-9d78-0f795006d3ac

📥 Commits

Reviewing files that changed from the base of the PR and between ea3fceb and 19ced02.

📒 Files selected for processing (4)
  • changes/my-device-applications-filter
  • frontend/pages/hosts/details/cards/Software/HostSoftware.tsx
  • frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tests.tsx
  • frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tsx

Walkthrough

The macOS Applications filter is now available on the Fleet Desktop My device > Software tab. macOS filter state defaults to Applications when unspecified, is included in device software requests, and remains present during pagination. The filter is omitted for non-macOS platforms. Tests cover filter visibility and pagination query parameters.

Possibly related PRs

  • fleetdm/fleet#46223: Modified the same macOS /Applications filtering flow and query parameter behavior.
  • fleetdm/fleet#46913: Updated persistence of the macos_applications filter through query-parameter generation.
  • fleetdm/fleet#48145: Changed macOS filter propagation during My device Software pagination.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: exposing the macOS app filter on My device software.
Description check ✅ Passed The description is well structured and includes the related issue, summary, checklist, and testing context.
Linked Issues check ✅ Passed The changes satisfy #48636 by showing Applications by default on My device > Software and preserving the filter through pagination.
Out of Scope Changes check ✅ Passed The code changes stay focused on the macOS software filter behavior and its tests, with no obvious unrelated additions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 48636-fleet-desktop-software-should-have-the-same-applications-vs-full-inventory-filter-for-a-better-end-user-experience

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@juan-fdz-hawa juan-fdz-hawa self-assigned this Jul 13, 2026
@allenhouchins allenhouchins merged commit 29bef37 into main Jul 13, 2026
28 checks passed
@allenhouchins allenhouchins deleted the 48636-fleet-desktop-software-should-have-the-same-applications-vs-full-inventory-filter-for-a-better-end-user-experience branch July 13, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fleet Desktop > Software should have the same Applications vs Full inventory filter for a better end user experience

4 participants