fleetdm / fleet

Open device management
https://fleetdm.com
Other
5.22k stars 611 forks source link

Show appropriate self-service actions based on whether software is on the host #30214

Open zayhanlon opened 2 weeks ago

zayhanlon commented 2 weeks ago

User stories

iansltx commented 2 weeks ago

@zayhanlon I did a slight rename on this to reflect where this most needs to be implemented (in the My device UI under software Self-service).

@mostlikelee Thinking @RachelElysia would be a solid eng DRI for this, at least to kick things off, as this dovetails quite nicely with the work in #29728 on the IT admin side. We can also lean much more heavily on software inventory as the source of truth thanks to #30035, to the point of being able to massively de-emphasize Fleet-(un)installed status in the UI. Both of these building blocks will land in 4.71; I'm glad we're already building toward the right thing here.

With these changes, we maybe should drop "install status" entirely and limit actions to:

Action Show if
Install Title is not in inventory
Uninstall Title is in inventory
Update Title is in inventory and installed version != library version
Installing Install is in progress (only available action)
Uninstalling Uninstall is in progress (only available action)

Of note, the logic for "update" here is much simpler than for the self-service updates story, because otherwise the scope of this story would be a superset of that one. We can make the update action logic smarter as part of implementing the self-service update story, and temporarily deal with the fact that the current logic will be naive. The alternative would be to not present an Update button at all, so self-service software already in inventory would only be uninstallable, but that would be taking away functionality we currently have.


At this point we just need to decide how to indicate successful/failed (un)installs. Thinking that we actually display installs and uninstalls differently:

Successful installs: turn self-service software row subtle green if the install was recent (e.g. past hour).

Failed installs: (!) icon next to install action with tooltip. Clicking gets failure details.

Successful uninstalls: no indication other than the install action being available if the app is no longer in inventory

Failed uninstalls: (!) icon next to uninstall action with tooltip. Clicking gets failure details.

iansltx commented 1 week ago

Pulling off the product board because this is an original request rather than a story, and there's a story tracked.