Hallo zusammen,
es gibt das vermutlich bisher größte Update in der Entwicklung von paperless-ngx:
paperless-ngx 3.0 wurde gestern Abend auf GitHub veröffentlicht (zunächst noch in der beta-Version Release Candidate (rc) 1.
Die Liste an neuen Features, aber auch breaking changes ist lang, ich habe euch hier die wichtigsten Änderungen zusammengefasst (weiter unten auch der offizielle Changelog).
Wichtig: Alle wichtigen neuen Features werden auch in unseren umfangreichen Kurs zu paperless-ngx (paperless-ngx Masterclass) eingepflegt!
Neue Features (Auswahl)
Integrierte KI-Funktionen
Vermutlich mit eine der größten Neuerungen: Auf Wunsch (opt-in!) kann man jetzt paperless-ngx mit einem KI-Anbieter eurer Wahl (meine dringende Empfehlung: eure lokale KI! verbinden und Titel vorschlagen, Tags etc. vergeben, mit euren Dokumenten chatten und auch semantisch suchen (was das genau bedeutet, zeige ich bald bei YouTube).
Abgrenzung zu externen Tools wie paperless-ai oder auch meinem n8n-Workflow: Man muss es in paperless-ngx manuell antriggern, es passiert nicht automatisch.
Wer noch keine lokale KI am Laufen hat, dem lege ich unseren ausführlichen Kurs dazu wärmstens ans Herz: Videokurs: Eigenen KI-Server (LLM) selbst hosten und betreiben (KI-Mas — Digitalisierung mit Kopf
Datei-Versionen
Ab dieser Version unterstützt paperless-ngx endlich die Versionierung von Dokumenten. wie das genau aussieht, prüfen wir selbst noch genauer und bauen es natürlich in die Masterclass ein.
Share Link Bundles
Es ist nun möglich, mehr als nur ein Dokument per teilbarem Link zu versenden. Praktisch fürs Teilen mit dem Steuerberater etc, kein manuelles erstellen eines ZIP etc. mehr nötig
Schnellere Suche
Die Suche wurde massiv verbessert, da nun ein anderes Backend zum Einsatz kommt. Die genauen Performance-Vorteile werden wir uns natürlich noch genauer ansehen, aber erste Tests waren sehr positiv.
Parser Plugin-System
Ein Feature, das man so auf den ersten Blick vermutlich gar nicht beachten würde, das aber in meinen Augen mit den größten Einfluss haben wird. Es wird zukünftig möglich sein, Plugins zu bauen, mit denen man eigene Dokumenten-Parser implementieren kann.
Vermutlich wird es dadurch bald auch für andere Dateitypen Parser geben, ich hoffe vor allem auf x-Rechnung.
Gespeicherte Ansichten teilen
Bisher konnte man gespeicherte Ansichten nur selbst erstellen, in einer Firma mit 30 Mitarbeitern muss man also 30 mal eine Ansicht erstellen (oder über die API automatisieren, was wir bei Kunden gemacht haben). Jetzt sind diese Ansichten teilbar, was diesen Prozess deutlich vereinfacht.
Breaking Changes
Leider ergeben sich mit v3 auch einige Breaking Changes, also Änderungen, die mit vorigen Versionen nicht mehr kompatibel sind. Wir erstellen gerade eine genaue Liste, diese werde ich hier einpflegen.
Sobald das YouTube-Video zur Version 3 fertig ist, werde ich es hier noch integrieren.
Demo: Gleich ausprobieren
Ich habe unsere paperless-ngx-Demo auf die neuste Beta-Version gezogen, ihr könnt die neue Version direkt ausprobieren:
Offizieller Changelog
Siehe Release Paperless-ngx v3.0.0-beta.rc1 · paperless-ngx/paperless-ngx · GitHub
paperless-ngx 3.0.0-beta.rc1
Breaking Changes
- Breaking: Remove the positional arguments from the pre/post consume scripts @stumpylog (#12573)
- Breaking: Decouple OCR control from archive file control @stumpylog (#12448)
- [BREAKING] Chore: drop support for api versions < 9 @shamoon (#12284)
- [BREAKING] Chore: Drop support for Python 3.10 @stumpylog (#12234)
- [BREAKING] Chore: Refactor advanced database settings to allow more user configuration @stumpylog (#12165)
- [BREAKING] Chore: Remove API v1 @stumpylog (#12166)
- [BREAKING] Chore: Remove pybzar as a barcode reader @stumpylog (#12065)
- [BREAKING] Chore: Remove support for document and thumbnail encryption @stumpylog (#11850)
- [BREAKING] Feature: Simplify and improve the consumer @stumpylog (#11753)
Notable Changes
- Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
- Feature: document parser plugin framework @stumpylog (#12294)
- Feature: document file versions @shamoon (#12061)
- Feature: sharelink bundles @shamoon (#11682)
Features / Enhancements
- Feature: Further reduce document importer memory usage @stumpylog (#12707)
- Tweakhancement: use fixed position instead of display none for printing @shamoon (#12706)
- Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
- Tweakhancement: localize some more task result messages @shamoon (#12672)
- Enhancement: chat message document links @shamoon (#12670)
- Tweakhancement: make upload notification open an anchor link @shamoon (#12659)
- Tweakhancement: tweak tasks UI, make open doc an anchor @shamoon (#12658)
- Enhancement: show small task summary in system status @shamoon (#12634)
- Enhancement: new Tasks UI @shamoon (#12614)
- Feature: Allow monitoring access to tasks summary @stumpylog (#12624)
- Tweak: remove stale index warning @shamoon (#12616)
- Enhancement: add highlighting to title + content searches @shamoon (#12593)
- Feature: Redesign the task system @stumpylog (#12584)
- Feature: Tune SQLite default settings for increased speed @stumpylog (#12580)
- Feature: Document fuzzy match improvements @stumpylog (#12579)
- Enhancement: validate and sanitize uploaded logos @shamoon (#12551)
- Enhancement: add view_global_statistics and view_system_status permissions @shamoon (#12530)
- Breaking: Decouple OCR control from archive file control @stumpylog (#12448)
- Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
- Enhancement: unify text search to use tantivy @shamoon (#12485)
- Feature: Consumer logging correlation @stumpylog (#12510)
- Security enhancement: allow opt-in blocking internal mail hosts @shamoon (#12502)
- Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
- Fixhancement: include trashed documents in document exporter/importer @JanKleine (#12425)
- Tweakhancement: show file extension in StoragePath test @shamoon (#12452)
- Feature: Transition all checksums to use SHA256 @stumpylog (#12432)
- Enhancement: auto-hide the search bar on mobile @shamoon (#12404)
- Security: prevent prototype pollution in frontend settings and list view @shamoon (#12438)
- Fixhancement: default mail-created correspondent matching to exact @shamoon (#12414)
- Change: sort custom fields alphabetically by default @shamoon (#12358)
- Feature: Add progress information to the classifier training for a better ux @stumpylog (#12331)
- Feature: document parser plugin framework @stumpylog (#12294)
- Enhancement: Make the StatusConsumer truly async @stumpylog (#12298)
- Feature: Migrate import/export to rich progress @stumpylog (#12260)
- Enhancement: Show more document details in merge dialog @svenstaro (#12271)
- Enhancement: saved view sharing @shamoon (#12142)
- Enhancement: “live” document updates @shamoon (#12141)
- Enhancement: Improve the retagger output using rich @stumpylog (#12194)
- Enhancement: Transition sanity check to rich and improve output @stumpylog (#12182)
- Enhancement: Switch all indexing to use rich @stumpylog (#12193)
- Feature: Switch progress bar library to rich @stumpylog (#12169)
- Enhancment: Formatted filename for single document downloads @JanKleine (#12095)
- Feature: document file versions @shamoon (#12061)
- Enhancement: prevent duplicate mail processing across rules @shamoon (#12159)
- Feature: move to trash action for workflows @JanKleine (#11176)
- Tweakhancement: reset to page 1 on reset filters @shamoon (#12143)
- Enhancement: consolidate management lists into document attributes section @shamoon (#12045)
- Enhancement: option to stop processing further mail rules @shamoon (#12053)
- Tweak: improve 2-digit year parsing @shamoon (#12044)
- Enhancement: pngx pdf viewer @shamoon (#12043)
- Fixhancement: improve ASN handling with PDF operations @shamoon (#11689)
- Upgrade: Bump @types/node from 25.2.0 to 25.2.1 in /src-ui @dependabot[bot] (#12008)
- Upgrade: Bump webpack from 5.103.0 to 5.105.0 in /src-ui @dependabot[bot] (#12007)
- Feature: Enable users to customize date parsing via plugins @stumpylog (#11931)
- Feature: password removal workflow action @shamoon (#11665)
- Enhancement: per-type object page sizing @shamoon (#11977)
- Enhancement: improve filter drop-down performance with virtual scrolling @shamoon (#11973)
- Tweakhancement: tweak bulk delete text @shamoon (#11967)
- Feature: support split documents based on tag barcodes @schober-ch (#11645)
- Enhancement: Add setting for default PDF Editor mode @JanKleine (#11927)
- Fixhancement: auto-queue llm index if needed @shamoon (#11891)
- Feature: sharelink bundles @shamoon (#11682)
- Enhancement: user control of doc details fields @shamoon (#11906)
- Enhancement: improve relative dates in date filter @JanKleine (#11899)
- Enhancement: allow duplicates with warnings, UI for discovery @shamoon (#11815)
- Enhancement: configurable SSO groups claim @Gabgobie (#11841)
- Enhancement: support select all for management lists @shamoon (#11889)
- Tweakhancement: display document id, with copy @shamoon (#11896)
- Enhancement: Add support for app oidc @paulgessinger (#11756)
- Enhancement: Add ‚any of‘ workflow trigger filters @shamoon (#11683)
- Enhancement: support doc_id placeholder in workflow templates @shamoon (#11847)
- [BREAKING] Feature: Simplify and improve the consumer @stumpylog (#11753)
Bug Fixes
- Fix: avoid unnecessary close_old_connections in Celery task dispatch @stumpylog (#12701)
- Fix: apply tag changes directly to document in db @shamoon (#12664)
- Fix: use only allauth login/logout endpoints @shamoon (#12639)
- Fix: Use FileResponse for file API responses @stumpylog (#12638)
- Fix: correctly scope mail account enumeration @shamoon (#12636)
- Fix: Changes bare metal webserver to use uvloop @stumpylog (#12626)
- Fixhancement: Exact custom field monetary exact searching @stumpylog (#12592)
- Fix: relative added date check visibility @shamoon (#12600)
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
- Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)
- Fix: do not submit permissions for non-owners @shamoon (#12571)
- Fix: prevent duplicate parent tag IDs @shamoon (#12522)
- Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
- Fix: dont defer tag change application in workflows @shamoon (#12478)
- Fix: limit share link viewset actions @shamoon (#12461)
- Fix: Respect workflow change_groups during consumption @stumpylog (#12431)
- Fix: add fallback ordering for documents by id after created @shamoon (#12440)
- Fix: validate date CF value in serializer @shamoon (#12410)
- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename @stumpylog (#12390)
- Fix: don’t try to usermod/groupmod when non-root + update docs (#12365) @stumpylog (#12391)
- Fix: avoid moving files if already moved @shamoon (#12389)
- Fix: remove pagination from document notes api spec @shamoon (#12388)
- Fix: fix file button hover color in dark mode @shamoon (#12367)
- Fix: Don’t try to update the user when running as non-root @stumpylog (#12365)
- Fixhancement: only offer basic auth for appropriate requests @shamoon (#12362)
- Fix: correct dropdown list active color in dark mode @shamoon (#12328)
- Fixhancement: clear descendant selections in dropdown when parent toggled @shamoon (#12326)
- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count @shamoon (#12302)
- Fix: prevent stale db filename during workflow actions @shamoon (#12289)
- Fix: support string coercion in filepath jinja templates @shamoon (#12244)
- Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk (#12239)
- Fix: apply ordering after annotating tag document count @shamoon (#12238)
- Fix: enforce path limit for db filename fields @shamoon (#12235)
- Fixhancement: show sequential + id version labels, fix padding @shamoon (#12196)
- Fixhancement: config option reset @shamoon (#12176)
- Fix: correct page count by separating display vs collection sizes for tags @shamoon (#12170)
- Fix: correct user dropdown button icon styling @shamoon (#12092)
- Fix: Handle an OOM kill of celery workers in the task handler @stumpylog (#12040)
- Performance fix: use subqueries to improve object retrieval in large installs @shamoon (#11950)
- Fix: re-run ASN check after barcode detection @shamoon (#11681)
- Fix: prevent infinite loading crash in mail component @shamoon (#11978)
- Fix: fix broken docker create_classifier command in 2.20.6 @shamoon (#11965)
- Fix: extract all ids for nested tags @shamoon (#11888)
- Fixhancement: change date calculation for ‚this year‘ to include future documents @shamoon (#11884)
- Fix: Running management scripts under rootless could fail @stumpylog (#11870)
- Fix: use correct field id for overrides @shamoon (#11869)
- Fix: ensure css color-scheme for dark mode @shamoon (#11855)
- Fix: fix tag list horizontal scroll, again @shamoon (#11839)
- Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon (#11811)
- Fix: use explicit order field for workflow actions @shamoon (#11781)
Documentation
- Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
- Fix: Don’t try to update the user when running as non-root @stumpylog (#12365)
- Chore: separate actions from bulk edit endpoint @shamoon (#12286)
- Enhancement: saved view sharing @shamoon (#12142)
- Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
Maintenance
- Chore(deps): Bump the actions group across 1 directory with 17 updates @dependabot[bot] (#12686)
- Chore(deps): Bump the actions group across 1 directory with 4 updates @dependabot[bot] (#12538)
- Chore(deps-dev): Bump @playwright/test from 1.58.2 to 1.59.0 in /src-ui @dependabot[bot] (#12537)
- Chore: address more zizmor flags @shamoon (#12529)
- Chore: Resolves some zizmor reported code scan findings @stumpylog (#12516)
- Chore(deps): Bump the actions group across 1 directory with 9 updates @dependabot[bot] (#12490)
- Chore(deps): Bump the actions group with 2 updates @dependabot[bot] (#12377)
- Chore(deps): Bump the actions group with 3 updates @dependabot[bot] (#12322)
- Chore: Don’t upload digets file as a zip @stumpylog (#12264)
- Chore(deps): Bump the actions group across 1 directory with 6 updates @dependabot[bot] (#12224)
- Chore(deps): Bump j178/prek-action from 1.1.0 to 1.1.1 in the actions group @dependabot[bot] (#12033)
- Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
- Chore: Enable mypy checking in CI @stumpylog (#11991)
- Chore(deps): Bump the actions group with 2 updates @dependabot[bot] (#11966)