Svdvd-349 [updated] File
| # | Task | Owner | Estimate | |---|------|-------|----------| | | Add UI button, tooltip, loading state | Frontend (React) | 2 d | | T‑2 | Implement useDownloadAll hook + error handling | Frontend | 1 d | | T‑3 | Write unit & e2e tests for frontend | QA/Frontend | 1 d | | T‑4 | Create backend endpoint, permission checks | Backend (Java) | 2 d | | T‑5 | Implement streaming ZIP with manifest generation | Backend | 2 d | | T‑6 | Add size‑limit guard & proper error codes | Backend | 0.5 d | | T‑7 | Update API documentation (OpenAPI) | Docs | 0.5 d | | T‑8 | Add audit‑log entry | Backend | 0.5 d | | T‑9 | Performance testing (large payload) | Performance Engineer | 1 d | | T‑10 | Review, security scan, merge | All | 1 d | | Total | | | ~11 person‑days |
| Risk | Impact | Mitigation | |------|--------|------------| | Large ZIP generation may consume CPU / memory. | Performance degradation on busy servers. | Use streaming, cap size at 500 MB, monitor via metrics, autoscale zip‑service if needed. | | Mobile browsers sometimes block programmatic downloads. | Users get “download blocked”. | Use a hidden <a> element with href set to object URL and download attribute; fallback to opening in new tab. | | Users may expect folder hierarchy that does not exist. | Confusion over flat file list. | Include manifest.txt with original ordering; optionally add a “Preserve folder hierarchy” flag in a future iteration. | | Permission edge‑cases (some attachments private). | 403 errors may be unexpected. | Disable button entirely if any attachment is not downloadable; show tooltip explaining why. | SVDVD-349
This blog post explores the technical specifications, performance capabilities, and practical applications of the | # | Task | Owner | Estimate
If "SVDVD-349" refers to something specific within a community, hobby, or another context you're involved in, the steps above can be adapted to fit that scenario. | | Mobile browsers sometimes block programmatic downloads
If SVDVD-349 refers to something else entirely, such as a product code for a different kind of media or product, the context would likely be very different. For example: