How paulinotech1/dmarc-aggregate-reader works
DMARC Desk is a private desktop viewer for local aggregate reports. The user chooses a folder; the app discovers supported files, parses them off the UI thread, then presents report summaries and filterable records. Users can sort and inspect records or export filtered results. The parser handles plain XML, ZIP and Gzip inputs and validates XML safety. The graph follows relationships visible in the excerpts and README; some UI wiring and export details are not fully shown.
Main entry points: dmarc_parser.py File discovery · app.py Search and table
Components 14
Desktop app
- Folder selection
app.py - Parse worker
app.py - Result queue
app.py
Report processing
- File discovery
dmarc_parser.py - Archive reading
dmarc_parser.py - XML parsing
dmarc_parser.py - Parsed records
dmarc_parser.py - DMARC record
dmarc_parser.py
Report inspection
- Summary cards
app.py - Search and table
app.py - Record details
app.py - Filtered CSV
app.py
Other components
- User
- Local reports
Connections 17
- User → Folder selection: chooses folder
app.py - Local reports → File discovery: scanned from folder
dmarc_parser.py - Folder selection → File discovery: discovers files
app.py - Folder selection → Parse worker: starts worker
app.py - Parse worker → File discovery: parses discovered files
app.py - Parse worker → Result queue: enqueues result
app.py - File discovery → Archive reading: reads supported formats
dmarc_parser.py - Archive reading → XML parsing: yields XML
dmarc_parser.py - File discovery → XML parsing: parses payloads
dmarc_parser.py - XML parsing → DMARC record: creates records
dmarc_parser.py - File discovery → Parsed records: collects rows and issues
dmarc_parser.py - Result queue → Summary cards: provides parse result
app.py - Result queue → Search and table: provides parsed rows
app.py - Search and table → Record details: opens selected record
app.py - Search and table → Filtered CSV: exports filtered rows
README.md - DMARC record → Summary cards: supplies metrics
app.py - DMARC record → Search and table: supplies displayed fields
app.py