fleet
fleet copied to clipboard
Add progress indicator for software file uploads
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
- Requestor(s): @lukeheath
- Product designer: @marko-lisica
Changes
Product
- [ ] UI changes: Figma link
- [ ] CLI changes: Figma link
- [ ] Other: Work with CS team to increase the server timeout limit to 15 minutes for all manged cloud customers and for best practice reference architecture.
- [ ] Reference documentation changes: No reference doc changes.
Engineering
- [ ] Usage documentation changes: No guide needed
- [ ] Database schema migrations: No migrations
- [ ] Load testing: No load testing needed
ℹ️ Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".
QA
Risk assessment
- Risk level: Low
- Risk description: Frontend only, low risk
Manual testing steps
- Step 1
- Step 2
- Step 3
Testing notes
Confirmation
- [ ] Engineer (@____): Added comment to user story confirming successful completion of QA.
- [ ] QA (@____): Added comment to user story confirming successful completion of QA.
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.
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.
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
- Determinate loading indicator that shows actual file upload progress.
What is the expected workflow as a result of your proposal?
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
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!
Hey team! Please add your planning poker estimate with Zenhub @ghernandez345 @gillespi314
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.
QA Notes:
- [x] Progress bar is now present
- [x] Closing browser windows throws warning and behaves as expected
*GitOps, removing the 2min timeout, and the new 3GB file size limit will be tested once ready (it was a late addition to the ticket)
QA Notes - increase file size upload limit & remove 2min timeout:
- 2.49GB MSOffice pkg upload completed successfully
- file over 3gb threw the expected error
- confirmed 2min timeout has been removed. I throttled my connection and uploaded a large file and it continued to upload for 53min before I finally killed it
I'm going to pass this ticket as good and continue testing the Gitops workflow here #22704
@PezHub @georgekarrv Please add manual testing steps to this story.
Manual testing steps have been added
Hey @zayhanlon, can CS team help us with updates specified in "Product" section?
Work with CS team to increase the server timeout limit to 15 minutes for all manged cloud customers and update best practice reference architecture.
It's also required for Fleet-maintained apps too. #20308
Hey @zayhanlon just giving you another ping!
I tracked this as a CS request here: https://github.com/fleetdm/fleet/issues/23286
We want to increase the server timeout limit to 15 mins for all managed cloud customers and Fleet's best practice reference architecture for self-hosted instance.
Why? So that users on slow Wi-Fi don't sit in front of a progress bar for 5 minutes just to see the software upload fail. My current understanding is that the timeout is 5 mins.
@noahtalerman @marko-lisica i'm sorry i missed this!
we took the new issue into our sprint today - it will be implemented during the next deploy (so when we schedule 4.59 sometime next week)
Waiting until we bump the server timeout limit to 15 mins to close this story. More context in a separate issue https://github.com/fleetdm/fleet/issues/20308#issuecomment-2441612506.
Hey @zayhanlon now that 4.59 is shipped, reminder to bump the server timeout limit for cloud customers and update the reference architecture docs: https://github.com/fleetdm/fleet/issues/23286
@noahtalerman thanks! we will take care of it on cloud deploy tomorrow
@zayhanlon, it looks like the cloud upgrade issue is still open but just checking, did the cloud deploy w/ the server timeout limit bump happen?
@noahtalerman yes it did! last thursday night
We bumped the timeout to 15 mins for managed cloud customers ✅
PR to update best practice Terraform is here: https://github.com/fleetdm/fleet/pull/23939
PR to update best practice Terraform is here: https://github.com/fleetdm/fleet/pull/23939
PR is merged.
Closing this story.
Progress bar, like moon, Guides through vast data seas, Fleet's upload journey blooms.