Requirements
If you have feedback, please Suggest or prioritize a Requirement by April 25th!
Must Have
| Number | Category | Must have | Requirement Type | Possible System Dependancies |
|---|---|---|---|---|
| 1 | Core | Creates bags that meet the Bagit specification | Technical | |
| 2 | Core | Establish fixity for email by generating commonly used checksums | Functional | |
| 3 | Core | Check fixity by validating checksums | Functional | |
| 4 | Core | Create metadata in bag-info.txt to insure bags are fully actionable | Technical | |
| 5 | Core | Update metadata in bag-info.txt | Technical | |
| 6 | Core | Package attachments and establish fixity by generating checksums | Functional | |
| 7 | Core | Preserve email folder structure and ensure it is actionable | Functional | |
| 8 | Core-PDF | Optionally generate PDFs for each email body that displays basic header information | Functional | wkhtmltopdf, htmldoc, if not xhtml2pdf |
| 9 | Core-PDF | Easy process for exporting PDFs for each email in bulk | Functional | |
| 10 | Core-PDF | Easy process for exporting PDFs for individual emails | Functional | |
| 11 | Input | Input from MBOX/EML | Functional | |
| 12 | Input | Input from PST | Functional | libpff has Windows dependencies |
| 13 | Input | Input from IMAP | Functional | |
| 14 | Installation | All core functionality works on Windows/macOS/Common Linux distros | Technical | Python on Windows |
| 15 | Installation | Documentation of any manually-installed dependencies | Functional | |
| 45 | Core | Preserve the original input data, unless directed to exclude folders or messages | Technical | |
| 46 | Core | Preserve links as attachments | Technical | |
| 48 | Core | Creates mailbags that conform to the Mailbag specification | Technical |
Should Have
| Number | Category | Should have | Requirement Type | Possible System Dependancies |
|---|---|---|---|---|
| 16 | Core | A process for compressing Mailbags and managing compressed Mailbags | Functional | |
| 17 | Core | A process for external tools to use email source data, like RATOM or ePADD to use MBOX data within a Mailbag | Functional | |
| 18 | Core | Provide Beyond the Repository (BTR) compliant BagIt Profiles | Technical | |
| 19 | Core | Provide feedback to users about what the tool is doing and its pace of progress | Functional | |
| 20 | Core-WARC | Optionally generate WARC files that include embedded CSS and Images | Functional | wget if not warcio |
| 21 | Core-WARC | Optionally capture external links within WARC files | Functional | wget if not warcio |
| 22 | Core-WARC | Easy process for exporting or connecting with a tool to replay WARC files | Functional | |
| 23 | Reporting | Report and export attachments | Functional | |
| 24 | Reporting | Report the email folders included in a Mailbag and the number of included email in each folder and the account overall | Technical | |
| 25 | Dependency management | Modular/extendable dependencies that work out-of-the box, but can be overridden | Functional | |
| 26 | Dependency management | Dependancies configurable via YAML or simmilar | Technical | |
| 27 | Dependency management | Multiple conversion options/plugins for PDFs | Technical | wkhtmltopdf, htmldoc, if not xhtml2pdf |
| 28 | Dependency management | Multiple conversion options/plugins for WARCs | Technical | |
| 29 | Dependency management | Process for upgrading and managing dependencies | Functional | |
| 30 | Installation | Provide Docker image | Technical | |
| 31 | Installation | Provide an executable for multiple platforms | Technical | |
| 32 | Installation | Clear documentation for managing system privileges | Functional | |
| 47 | Core-WARC | Optionally capture attached links within WARC files | Functional | |
| 49 | Input | Input from MSG files | Functional |
Could Have
| Number | Category | Could have | Requirement Type | Possible System Dependancies |
|---|---|---|---|---|
| 33 | Core | Lists important email metadata separate from source data and filesystem (like a CSV or SQLite), as a tag file | Technical | |
| 34 | Core | Provide an estimated time to completion for users during long-running processes | Technical | |
| 35 | Core | Provide a method of keeping or excluding specific email folders while creating Mailbags | Functional | |
| 36 | Core-PDF | Generate PDFs using customizable CSS | Functional | wkhtmltopdf, htmldoc, if not xhtml2pdf |
| 37 | Core-WARC | Customizable scoping rules for WARC creation | Functional | wget |
| 38 | Reporting | Export reports of email headers or text of individual emails | Functional | |
| 39 | Dependency management | Common dependencies across major platforms | Technical | |
| 40 | Dependency management | Individual mini-specs for future system dependencies | Technical | |
| 41 | Installation | All core dependencies install via a single comand, such as using pip | Technical | |
| 42 | Installation | Able to install on Windows machine without admin privileges | Technical |
Won’t Have
| Number | Category | Won't have | Requirement Type |
|---|---|---|---|
| 43 | Input | Input from Office 365 APIs | Functional |
| 44 | Input | Input from Gmail APIs | Functional |