Scan Run History & Folder Path Routing - User Guide
Two related additions to the watched-folder scanner: a per-pass run history and per-folder path routing.
Run history (scan_event)
Every time the watcher scans a folder it now records one row in scan_event capturing what happened that pass:
| Column | Meaning |
|---|---|
| detected | genuine ingest candidates seen on disk this pass |
| enqueued | new files staged for ingest |
| skipped_duplicate | files already staged (deduped by hash) |
| skipped_quiet | files still being written (inside the quiet window) |
| failed | files that errored this pass (e.g. a bad BagIt) |
| job_id | the ingest job opened for the pass, if any |
| status | completed, idle (nothing on disk), or failed |
| message | failure detail when status is failed |
The last 20 passes are shown on the Scan dashboard (/admin/scan) under Watched-folder run history, so an operator can see at a glance whether a hot folder is being picked up, how much it ingested, and why a pass failed - without reading logs.
Path routing (processed_path / failed_path)
Previously, successful files were always moved to the global archive dir (heratio.scan.archive_path) and failures to the global quarantine dir (heratio.scan.quarantine_path). You can now override these per folder on the folder edit form:
- Processed path - where successful files are archived. Blank = use the global archive path.
- Failed path - where failed files are quarantined. Blank = use the global quarantine path.
Both honour the existing On success / On failure disposition modes (move / leave / delete / quarantine); the path fields only change where "move"/"quarantine" sends files. A dated subfolder (/YYYY/MM) is still appended automatically.
Folders also now record created_by (the operator who registered them) for provenance.
Notes
auto_commitis unchanged - it continues to live on the folder's boundingest_session, not duplicated onto the folder.- The
scan_eventtable and the new columns install automatically on first boot after upgrade (idempotent).
Source: PSIS ahgScanPlugin parity (issue #1281).