Context
During the Paperless Kubernetes/Longhorn migration, we intentionally stopped relying on an NFS-mounted consume directory. The old workflow allowed dropping a directory tree into a watched folder and letting Paperless ingest files recursively. That is useful, but shared host mounts make the deployment node-coupled.
Paperflow already provides the better direction because it can upload through Paperless APIs instead of requiring Paperless and the drop location to share a filesystem. The missing feature is recursive directory ingestion.
Goal
Allow Paperflow to accept a directory path and recursively ingest supported files from that directory and its subdirectories into Paperless. This should preserve enough path context to make bulk folder drops understandable after upload.
Desired behavior
- Accept one or more directory paths as input.
- Walk directories recursively.
- Upload files through the existing Paperless API flow.
- Skip hidden/temp/system files by default.
- Avoid deleting source files unless an explicit destructive option is provided.
- Surface per-file success/failure summary.
- Make it practical to run as a user service, CLI command, or future Kubernetes job without mounting Paperless consume storage.
Kubernetes motivation
A recursive API-based ingestion path avoids needing RWX/NFS just to keep a drop folder working. This keeps Paperless node agnostic while retaining the convenience of dropping a folder tree for ingestion.
Open questions
- Should original relative path be mapped to Paperless tags, custom fields, correspondent hints, or just included in logs?
- Should recursive ingest be watch-based, one-shot, or both?
- Should duplicates be detected locally before upload, or left to Paperless?
Context
During the Paperless Kubernetes/Longhorn migration, we intentionally stopped relying on an NFS-mounted consume directory. The old workflow allowed dropping a directory tree into a watched folder and letting Paperless ingest files recursively. That is useful, but shared host mounts make the deployment node-coupled.
Paperflow already provides the better direction because it can upload through Paperless APIs instead of requiring Paperless and the drop location to share a filesystem. The missing feature is recursive directory ingestion.
Goal
Allow Paperflow to accept a directory path and recursively ingest supported files from that directory and its subdirectories into Paperless. This should preserve enough path context to make bulk folder drops understandable after upload.
Desired behavior
Kubernetes motivation
A recursive API-based ingestion path avoids needing RWX/NFS just to keep a drop folder working. This keeps Paperless node agnostic while retaining the convenience of dropping a folder tree for ingestion.
Open questions