# TODO.md ## TODO - Add access control before calling this publish-ready for general users. - Current app assumes a trusted LAN/reverse-proxy environment. - Decide between built-in login/API sessions or documented reverse-proxy auth. - Protect job creation, job deletion, backup deletion, and settings updates. - Move long-running destructive deletes to background jobs with progress. - Deleting a backup/job currently waits inside the API request while rclone deletes remote objects. - Add delete operation records, progress/error reporting, and UI polling so large job deletes do not hit proxy/browser timeouts. - Strengthen remote upload verification. - Current verification checks that the remote object exists. - Also compare remote size from `rclone lsjson` with the local archive size before deleting the local archive. - If supported by the remote, optionally record/check hashes. - Add backup history pagination and search. - Current UI/API can grow noisy as backup records accumulate. - Add `limit`, `offset`/cursor, guest filter, state filter, and date range filter. - Add a remote/orphan inspection view. - Show remote backup folders/files that are not represented in SQLite. - Show SQLite records whose remote object is missing. - Keep cleanup manual/explicit; do not auto-delete unknown remote objects. - Add retention preview/dry-run in the UI. - For each job, show which completed backups would be deleted by the current retention rule. - Useful before changing retention from days to latest or lowering retention values. - Add migration regression tests. - Test fresh DB creation. - Test upgrading older schemas. - Test bad stored timezone repair, including `/UTC`. - Replace FastAPI `@app.on_event("startup")` with lifespan handling. - Tests currently pass but FastAPI emits deprecation warnings. - Add CI/runtime compatibility coverage for supported Python versions. - CI currently validates one Python version. - Add a small matrix for the supported versions used by common Proxmox/Debian installs. - Add clearer setup diagnostics. - Surface `pvesh` access errors, missing storage, bad rclone path, missing remote, and remote path test failures separately. - Add a setup “test connection” action before saving completed setup. - Add restore/export planning. - Decide whether the app should support downloading remote archives back locally or only manage backup creation/deletion. - If implemented, restore must be explicit and should not auto-overwrite local files. ## In Progress ## Completed - Make timezones configureable - show a "in xx:xx:xx" counting down to the next backup a bit more - when deleting a backup that is already deleted, nuke its metadata row entirely - add a better ui for viewing the details of a backup - see the id of a backup job in the editor of them - add backup job counts to the guests list - no "im progress" thing for deleting a backup nor deleting a job and its still hanging on deleting more stuff