root

frodo

Yet another tool to validate BagIt formatted digital content according to RFC8493: The BagIt File Packaging Format (V1.0).

Written in Haskell, because I can™.

Roadmap

Validate packages

  • [ ] Validate BagIt packages with SHA1, MD5, SHA256, SHA512
  • [ ] Ensure bagit.txt, data/ and at least one manifest-<algorithm>.txt are present
  • [ ] Ensure bagit.txt conforms with the spec
  • [ ] Ensure tagmanifest checksums match if present
  • [ ] Ensure all files listed in manifests are present
  • [ ] Ensure payload checksums match
  • [ ] Ensure all payload files are listed in all manifests if Bagit-Version is 1.0
  • [ ] Quick validate based on Payload-Oxum if present
  • [ ] Attempt to validate incomplete packages (by ignoring missing files)
  • [ ] Complete packages using fetch.txt
  • [ ] Normalize filenames before validating
  • [ ] Permit other encodings than UTF-8 if specified in bagit.txt

Create/update packages

  • [ ] Create new BagIt package
  • [ ] Set metadata tags in bag-info.txt
  • [ ] Update package
  • [ ] Warn about problems with filename normalization

Misc

  • [ ] Skip files matching a pattern when validating
  • [ ] Parse and display tag file entries
  • [ ] Update tag file entries