fleetdm / fleet

Open-source platform for IT, security, and infrastructure teams. (Linux, macOS, Chrome, Windows, cloud, data center)
https://fleetdm.com
Other
2.92k stars 406 forks source link

Add progress indicator for software file uploads #20308

Open lukeheath opened 1 month ago

lukeheath commented 1 month ago

Goal

User story
As an IT admin,
I want to see the upload progress for software packages without timeout
so that I can deploy large software (e.g. Microsoft Excel over 1GB) to my fleet.

Context

Changes

Product

Engineering

ℹ️  Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".

QA

Risk assessment

Manual testing steps

  1. Step 1
  2. Step 2
  3. Step 3

Testing notes

Confirmation

  1. [ ] Engineer (@____): Added comment to user story confirming successful completion of QA.
  2. [ ] QA (@____): Added comment to user story confirming successful completion of QA.
noahtalerman commented 1 month ago

Thanks for tracking this @lukeheath.

I spoke with @spokanemac and he mentioned this is happening because the file upload is timing out. Not notifying the user there is a file upload maximum, or telling them when it gets reached, is a bug that I'll file separately.

I don't think max file size is the issue. The expected max file size is 500 MB and, looking at the bug here, it looks like you uploaded a 204 MB package.

Rather, I think we're not showing the right error message when the user hits the 2 minute timeout.

I think it makes sense to fix that wrong error message bug and then follow up w/ this progress indicator improvement separately.

marko-lisica commented 1 month ago

Converting issue description to a story format and moving original issue description here:

Problem

When uploading large software files, the indeterminate loading spinner doesn't make clear how far along my progress is, or if the file upload has stalled. After waiting several minutes, mine closed and I got an error saying it couldn't complete.

image image

I spoke with @spokanemac and he mentioned this is happening because the file upload is timing out. Not notifying the user there is a file upload maximum, or telling them when it gets reached, is a bug that I'll file separately.

UPDATE: I think that it's not the file size maximum. The maximum is 500 MB (noahtalerman 2024-07-11)

What have you tried?

Upload Google Chrome universal installer.

Potential solutions

  1. Determinate loading indicator that shows actual file upload progress.

What is the expected workflow as a result of your proposal?

noahtalerman commented 1 month ago

Hey @georgekarrv heads up that it looks like we missed estimating this one before today's sprint kickoff.

I think we missed it because it didn't have the #g-mdm label?

I left it in the ready for spec column. Do you think we can estimate this one at the next standup and bring it into the current sprint if we have room?

cc @lukeheath

lukeheath commented 1 month ago

I started to self-assign before I realized the scope has grown quite a bit.

@ghernandez345 I put together a draft PR proposing this which may or may not be a helpful starting point: https://github.com/fleetdm/fleet/pull/19086. Up to you!

georgekarrv commented 1 month ago

Hey team! Please add your planning poker estimate with Zenhub @ghernandez345 @gillespi314

lukeheath commented 1 week ago

As we prepare for app library next sprint we're escalating this to P2 so that it can be prioritized over bugs. Some of the packages that will be uploaded are very large, and on a less-than-stellar connection can take several minutes to finish. If we just using a loading spinner without indicating process, it appears broken after a couple of minutes of spinning, even if it's still in progress.