Add Paperless-ngx as an attachment source and a save destination

Connect it with an address and an API token and it appears beside the other
services; nothing else in the UI had to change, because the picker, the
destination chooser and the connect dialog are all driven by the provider
taxonomy and the driver interfaces.

TAGS ARE THE CONTAINER LAYER. A document archive has no directory tree —
Paperless replaced folders with tags and expects the rest to be found by
searching — so the picker's "descend into a container, pick a file" has
nothing to descend into. The root lists every tag as a folder with the newest
documents beneath it, and opening a tag lists that tag's documents.
Correspondents and document types would serve equally well and are
deliberately not offered: three sideways slices of one archive is a navigation
problem, and search already crosses all three.

Search is Paperless's own full-text index, so it reads the OCR layer as well
as the metadata and a scanned invoice is findable by a line item nobody typed.
That is the feature: there is no longer a reason to open Paperless, find a
document and download it before writing the mail.

Upload is asynchronous — post_document answers with a task id, not a document
id — so upload() returns it prefixed. Ids are opaque outside the driver, which
is what makes the prefix safe, and download() refuses a task id with a
sentence a person can act on rather than letting it 404 later.

ShareLink is not declared. Minting a Paperless share link is a permissioned
feature with its own expiry semantics, not something to do silently. The
taxonomy test that assumed only photo services lack share links had a false
premise; it now states the real rule rather than being relaxed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Paul LütznerandClaude Opus 5 committed 2026-09-14 21:51:58 +02:00
1 parent 38110256b9
commit 376cf4ae72
19 files changed
+1682 -51

No files matched your search

+1 -1
View File
@@ -45,7 +45,7 @@ provider doesn't.
- **A calendar beside the mail** — two-way sync with Google, Microsoft and CalDAV, drag-to-move
week grid, invitations answered in place, share and booking links.
- **Files where you keep them** — attach from and save to Drive, Photos, OneDrive, Dropbox,
Nextcloud and Immich.
Nextcloud, Immich and Paperless-ngx.
- **A language model, if you want one** — point plMail at an Ollama box on your own network and it
can search by meaning, draft replies, summarise a thread and sort mail into tabs. A long thread is
summarised from as much of it as fits, and says so; ask for the whole conversation and it runs as a