Patch software: Software title > Add software: add App Store (VPP) app
Goal
| User story |
|---|
| As a UI/UX designer, |
| I want to update the Add App Store app flow to align with the Fleet-maintained app flow |
| so that I can ensure a consistent user experience. |
Key result
UI/UX improvement every sprint
Original requests
Context
- Product Designer: @eugkuo
- Note: This was separated out of #25499
Changes
Product
- [ ] UI changes: Figma link
- [ ] CLI (fleetctl) usage changes: No changes
- [ ] YAML changes: No changes
- [ ] REST API changes: No changes
- [ ] Fleet's agent (fleetd) changes: No changes
- [ ] GitOps mode changes: No changes
- [ ] Activity changes: No changes
- [ ] Permissions changes: No changes
- [ ] Changes to paid features or tiers: No changes
- [ ] Transparency changes: No changes
- [ ] First draft of test plan added
- [ ] Other reference documentation changes: No changes
- [ ] Once shipped, requester has been notified
- [ ] Once shipped, dogfooding issue has been filed
Engineering
- [ ] Test plan is finalized
- [ ] Contributor API changes: TODO
- [ ] Feature guide changes: TODO
- [ ] Database schema migrations: TODO
- [ ] Load testing: TODO
ℹ️ Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".
QA
Risk assessment
- Requires load testing: TODO
- Risk level: Low / High TODO
- Risk description: TODO
Test plan
App store apps
- Install an app on a host manually (not through Fleet) that has an App Store app installer associated to it on Fleet
- Navigate to the software list page
- Find the app and click through to the detail page. There should not be an installer package associated with the app.
- Select Add software
- Ensure that a modal appears with the VPP app shown.
- Ensure that there's a label indicating it is a VPP app.
- For App Store apps, ensure we’re always seeing the latest App Store app version according to Fleet.
Fleet-maintained apps
- Install an app on a host manually (not through Fleet) that has a no App Store app installer associated to it on Fleet, but has a Fleet-maintained app associated with it on Fleet.
- Navigate to the software list page
- Find the app and click through to the detail page. There should not be an installer package associated with the app.
- Select Add software
- Ensure that a modal appears with the Fleet-maintained app shown.
- Ensure that there's a label indicating it is a Fleet-maintained app.
App store apps
- Install an app on a host manually (not through Fleet) that has an App Store app installer associated with it on Fleet and a Fleet-maintained app installer associated with it on Fleet.
- Navigate to the software list page
- Find the app and click through to the detail page. There should not be an installer package associated with the app.
- Select Add software
- Ensure that a modal appears with the VPP app shown.
- Ensure that there's a label indicating it is a VPP app.
- For App Store apps, ensure we’re always seeing the latest App Store app version according to Fleet.
Testing notes
Confirmation
- [ ] Engineer: Added comment to user story confirming successful completion of test plan.
- [ ] QA: Added comment to user story confirming successful completion of test plan.
@mostlikelee (tagging you as there's no ESP ATM) & @noahtalerman
I've added a figma design to this ticket and a test plan. I don't believe there are other product changes that are necessary, but LMK if that's incorrect.
@noahtalerman Discussed de-prioritizing this with @iansltx and pushing it to the next design sprint as more "stuff" (API things?) will be settled and this should be smoother.
Sorry, was being rather inarticulate when providing that suggestion.
Looking at our existing API changes for patching, it actually makes sense to walk through the API for this now, and potentially even pull the API changes on this ticket into the patching story as the additional level of effort is marginal.
See this comment for suggested API tweaks. Using that structure rather than a flat FMA ID gives us the ability to e.g. add Microsoft Store data structures later without having stray keys at the top level, and if we wanted we could implement patching with just the FMA ID in that structure and add app store ID as the sole backend component of this ticket.
Updates from 1 Apr 2025 design review:
- Added dev note: First Fleet checks if there’s a App Store app. Shows that in Add software. If there’s no App Store app, Fleet shows a Fleet-maintained app. If there’s no Fleet-maintained app, then the user is bounced to the Add software > Custom package
- Added Indicator for App Store app v. Fleet maintained app
- Added the following to the test plan: "For App Store apps, we’re always seeing the latest App Store app version according to Fleet"
- Copy for success and fail
- These should exist as they are with no changes?
- Added dev note for not showing the “Patch” option in the actions dropdown
- Added dev note and example of error state.
@iansltx @noahtalerman
@eugkuo success/error messages should indeed exist from the VPP add main UI. Just need to dev note that we use them here too (may require some refactors if we haven't already pulled them over for patching), with similar "don't close the modal if error" semantics.
success/error messages should indeed exist from the VPP add main UI. Just need to dev note that we use them here too (may require some refactors if we haven't already pulled them over for patching), with similar "don't close the modal if error" semantics.
@iansltx Thanks for this. Thinking about this more do we want to append the architecture to the name when we know it? I think maybe yes?
cc @noahtalerman
@eugkuo we don't have info on architecture for VPP apps right now.
Updates from 2 Apr 2025 design review:
- Added screen to show the disabled Patch option in the Actions menu.
- Added responsive design for software details page.
FYI @iansltx @noahtalerman @RachelElysia
@iansltx Do we need API changes in this ticket now? Or are the API changes covered elsewhere? I just noticed there's still a TODO on that field. Thanks!
@eugkuo They're carved elsewhere, so can swap that to No Changes.
Closing in favor of #28051.
Update app flows align, Fleet's vision in design, Ease for users, divine.