Fixity checks
box can be used to verify the integrity of the archived objects using checksums. That means the binary object's checksum is recalculated and compared with the checksum stored in the repository's technical metadata. There are two ways to check fixities: Manual checking or the automated system fixity task.
Manual fixity check
A manual fixity check for selected resources can be launched from the search view. After selecting one or multiple resources from the search result list, the Actions button can be used to launch a fixity task for the selected resources. This task is run in the background. Note that folder resources will be ignored, as they don't have a checksum.
The status of the fixity task and its results (including the PIDs of the resources where the fixity check reported a discrepancy between the calculated and stored checksums) can be monitored and downloaded from the in the tasks view.
Automated system fixity task
In addition to the manually executed fixity tasks, box can also be configured to continuously check all binaries in the archive. After the task has checked all the binaries in the repository, it will wait for a certain time (can be configured) before starting again from the beginning.
The system fixity task is also run in the background. As with the manual fixity check, the task view can be used to check whether the system fixity task is running and to view its results.
In order to set up the system fixity task, there are some configuration steps necessary:
- Make sure that the
fixity checkfeature in the feature menu is activated. - If necessary, tweak the settings in
config/fixity_check.yml: delay_between_two_system_checks: Time in seconds box waits to start again after all the binaries have been checkeddelay_for_retry_on_error: Time in seconds box waits before retrying a failed fixity check
If the system fixity task is waiting or not running, you can restart it from the maintenance menu by clicking on the Restart system fixity check job button. If you restart the task but don't have the fixity check feature activated, it will stop after the first batch of resources.
Technical details
Behind the scenes, box calls a Fedora REST-API (GET request to /path/to/some/resource/fcr:fixity), which recalculates the SHA-512 checksum of the selected binary in Fedora and compares it with the SHA-512 checksum stored in the internal Fedora metadata of the binary (i.e. 000repository-cosmos.docuteam.cloud/fcrepo/rest/institution1/rr_20230314162820218/i_20230314162820200/b_20230314162820900/content). The result of the comparison is then returned to box.