Skip to content

Show display name for all software install/uninstall activities #51285

Description

@noahtalerman

Goal

User story
As an IT admin who has set a custom display name for a software title,
I want software-related activities to show that display name instead of the name pulled from the installer/App Store
so that I can recognize the software I renamed.

Changes

Product

  • UI changes: If there's a display name, show that name instead of the title name for all software install/uninstall activities on the dashboard and Host details page:
Image Image
  • In the above screenshots, the bold "1Password" should get replaced by a display name if one is set.

  • CLI (fleetctl) usage changes: No changes.

  • YAML changes: No changes.

  • REST API changes: Add a software_display_name field to the activities API endpoints that power the global activities (on the dashboard) and host activities (Host details page)

  • Fleet's agent (fleetd) changes: No changes.

  • Fleet server configuration changes: No changes.

  • Exposed, public API endpoint changes: No changes.

  • fleetdm.com changes: No changes.

  • GitOps mode UI changes: No changes.

  • GitOps generation changes: No changes.

  • Activity changes: [Activty changes] Document software_display_name field on install/uninstall/cancel activities #53437

  • Permissions changes: No changes.

  • Changes to paid features or tiers: Fleet Premium only (software is premium only)

  • My device and fleetdm.com/better changes: No changes.

  • Usage statistics: No changes.

  • Other reference documentation changes: No changes.

  • First draft of test plan added

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

Risk assessment

  • Risk level: Low
  • Risk description: Purely additive — a new struct field and a new LEFT JOIN against an existing, already-indexed table. Falls back to the existing raw-name behavior whenever no display name is set, so hosts/teams that never used the "Software name" override see no behavior change.

Test plan

Setup. For each case below, create two titles per package type:

  • (a) Title WITH a display name override set via Software > (select title) > Edit > Software name
  • (b) Title WITHOUT any override

Every case should show the display name for (a) and the raw title for (b). Verify on both the Dashboard activity feed and the Host details activity feed unless noted.

Install activities

  • Custom package install (verify succeeded / failed / pending, self-service, policy-triggered)
  • Script-only package install (sh_packages / ps1_packages)
  • FMA install (verify succeeded / failed / pending)
  • VPP app install (verify succeeded / failed / pending, self-service, via setup experience)
  • In-house .ipa install

Uninstall activities

  • Custom package uninstall (verify succeeded / failed / pending, self-service)
  • FMA uninstall

Cancel activities

  • Cancel pending install (custom package / FMA / VPP app)
  • Cancel pending uninstall (custom package / FMA)
  • Cancel setup experience (manual cancel and timeout)

Edit activities

  • Edit VPP app — display name change (activity shows the new display name)
  • Edit VPP app — non-display-name change (self-service / labels / configuration / icon) still records the current display name on the activity
  • Edit custom package or in-house app — icon change records the current display name on the activity

Delete activities

  • Deleted VPP app — activity shows the display name that was set at time of delete

Install detail modals (click Details on an activity)

  • Custom package install / uninstall modals
  • Script-only package modal
  • VPP app install modal
  • In-house .ipa install modal
  • AppStoreDetailsModal (opened from an "Edited VPP app" activity) — shows the current display name after any edit, including edits that didn't touch the display name

API endpoints

  • GET /api/latest/fleet/software/install/<install_uuid>/results returns software_display_name
  • GET /api/latest/fleet/hosts/<id>/activities/upcoming returns software_display_name for pending install / uninstall / VPP / in-house activities

Regression / edge cases

  • Renaming a title's display name AFTER an install activity is recorded does NOT change already-recorded activities (write-time freeze)
  • Clearing a display name — new activities show the raw title
  • Same title in Fleet A (override set) and Fleet B (no override) — Fleet A activities show the override, Fleet B activities show the raw title (per-fleet scoping)
  • Titles with no display name anywhere — all activities show the raw title (fallback still works)

Known gap (follow-up, not covered in the PR closing this story)

Testing notes

No special setup beyond a software title with a display name override configured under Software > (select title) > Edit > Software name.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

#g-auto-patchingProduct group focused on auto patching softwarecustomer-cisneros-wstoryA user story defining an entire feature

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions