I’ve been playing around with the idea of a UI module that takes some of the mystery out of:
1 - What a repository contains
2 - Data validation status of files in the repository
As far as 1 is concerned, I would like to be able to browse the files in a repository in the UI. I would also like to be able to expand the file lists of individual backups to view what was backed up (helpful when manually culling old backups). I’d especially love to be able to see data similar to the output of the compare function, that lets me analyze which files/folders were added/removed/changed in the backup run. This would be great for troubleshooting why certain backup sets take longer than expected (imagine a backup job that needlessly includes a web browser’s cache folder). This is a nice-to-have feature, but it could be extended to include quite a lot of information & functionality to make backup sets more transparent.
Now for the more important one: #2 - data validation. It would be great if one could see a listing of all the files in a repository with a validation status for each. This status (red/green light) would indicate which files have been hash checked by the random spot-check that is done by default on a few files during every backup. The status of each would be tracked (timestamp of last download and hashcheck) and the random files would be chosen such that the oldest files are checked first in future spot checks. This will give a very nice quick overview of the expected data reliability of the repository.
Furthermore, the above could later be extended with server-side hash checks during upload on providers that support it. For example, Backblaze B2 reports the SHA1 hash of each file when the upload completes, which can be compared to the expected hash and stored in the abovementioned validation status tracking (table). Of course in the case of B2 this would mean computing SHA1 for each upload in addition to SHA256, but the benefits are definitely worth it, as this effectively makes random spot checks redundant.
I’m happy to tackle development of this module if nobody has started anything similar yet. Please let me know if such work has been started or discussed, and also please discuss any enhancements/criticisms/opinions anyone might have…