Änderungen von Dokument Paperless NGX
Zuletzt geändert von Daniel Herrmann am 2026/02/22 11:41
Von Version
15.1
bearbeitet von Daniel Herrmann
am 2025/10/24 20:21
am 2025/10/24 20:21
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version
17.1
bearbeitet von Daniel Herrmann
am 2026/02/22 11:41
am 2026/02/22 11:41
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -62,17 +62,16 @@ 62 62 63 63 **Aus diesem Grund wird auf jedes Dokument einen spezieller QR Code aufgedruckt**. Der QR code wird vom Post-Consume Script verwendet um die Metadaten in Paperless zuzuordnen. Weiterhin können Daten übermittelt werden, die dann mittels Webhook an N8n übermittelt werden und dort im Workflow verwendet werden können. Der Aufbau orientiert sich an dem Aufbau eines **JSON Web Tokens (JWT).** 64 64 65 +=== Erzeugung des QR Codes === 65 65 66 - ===Barcodeerzeugen===67 +Der Prozess zur Erzeugung eines QR Codes funktioniert wie folgt: 67 67 68 -Der Prozess zur Erzeugung eines QR Codes ist wie folgt: 69 - 70 70 * **Payload (Daten) festlegen**. Einige Werte sind verpflichtend, andere können nach Bedarf optional hinzugefügt werden. 71 -* JWT erzeugen und signieren. der JWT besteht aus drei Teilen: 70 +* **JWT** erzeugen und signieren. der JWT besteht aus drei Teilen: 72 72 ** **Header**: **alg** (Algorithmus) und **typ** (JWT) sind verpflichtend. Zusätzlich fügen wir einen Timestamp, eine eindeutige ID und eine Gültigkeitsdauer hinzu. 73 73 ** **Body**: beinhaltet die eigentlichen Daten. 74 74 ** **Signature**: Mit Hilfe eines Secrets und wird die Signatur erzeugt und automatisch angehängt. 75 -* PDF417code erzeugen: ein JWT ist per Definition URL safe und kann daher einfach in ein QR code umgewandelt werden.74 +* **QR code erzeugen**: ein JWT ist per Definition URL safe und kann daher einfach in ein QR code umgewandelt werden. 76 76 77 77 === Header === 78 78 ... ... @@ -172,7 +172,6 @@ 172 172 {{success}} 173 173 **Algorithmus** 174 174 175 - 176 176 Von den meisten Libraries werden symmetrische und asymmetrische Signaturen unterstützt. Die Verwendung eines symmetrischen Algorithmus ist für uns einfacher. 177 177 178 178 Für diesen Anwendungsfall nutzen wir **HS256** (HMAC mit SHA-256 Algorithmus). ... ... @@ -271,23 +271,25 @@ 271 271 272 272 Unsere bevorzugte Library ist **pyjwt**. Diese ist auch in **paperless nativ vorhanden**, sodass wir uns für die Implementierung mittels **pyjwt** entschieden haben. 273 273 274 -=== PDF417Code ===272 +=== QR Code === 275 275 276 -Als Format für den Code wurde PDF417ausgewählt, da dieser mehr Platz und Fehlerkorrektur bietet.Weiterhingibt es eine einfachzunutzende Library für Python(Erzeugung)und PDF417 wirdvonZXINGunterstützt, welchesinPaperless eingebettet ist. EinsolcherBarcode sieht beispielsweise so aus:274 +Als Format für den Code wurde ein Standard QR Code ausgewählt, da dieser mehr Platz und Fehlerkorrektur bietet. Es wurde ebenfalls mit PDF417 Codes experimentiert, jedoch funktioniert die Erkennung mit Python Libraries nur sehr schlecht. Ein QR Code sieht beispielsweise so aus: 277 277 276 +[[image:Screenshot 2026-02-22 at 11.36.43.png||height="150"]] 278 278 279 -[[image:barcode.jpg||height="250"]] 280 - 281 -Daraus kann dann eine Base64 basierte Repräsentation berechnet werden, die einfach in Docuseal hochgeladen werden kann. 282 - 283 -=== Referenz-Implementierung === 284 - 285 -Eine Referenz-Implementierung befindet sich im Makerspace Gitlab: [[https:~~/~~/git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-pdf417-reference>>url:https://git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-pdf417-reference]] 286 - 287 287 === Post Consumption Script === 288 288 289 289 Die eigentliche Zuordnung der Meta-Daten erfolgt über ein so genanntes Post Consumption Script. Dieses befindet sich ebenfalls im Makerspace Gitlab: [[https:~~/~~/git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-post-consumption-script#>>url:https://git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-post-consumption-script]] 290 290 282 +Das Script macht drei Dinge: 283 + 284 +* Es scannt jedes neue Dokument nach eingebetteten QR Codes 285 +* Jeder gefundene Code wird versucht als JWT zu Parsen. Fehler werden ignoriert 286 +* Wird ein Code erfolgreich geparsed, wird die Signatur validiert. Wenn erfolgreich: 287 +** werden die Meta-Daten über die Paperless API zugewiesen 288 +** ein N8n Workflow "[[Paperless Document Consumed>>url:https://n8n.mksp-da.de/workflow/4HYqb15erC7Q9vYK/executions/27908]]" wird ausgeführt. Dieser erhält den Inhalt des QR Code als Parameter (inklusive eventuell übermittelter zusätzlicher Daten) und kann automatisch Aktionen ausführen - so wird beispielsweise der Signaturvorgang im Backend als "beendet" markiert. 289 +** Je nach Signatur-Typ löst das Backend dann automatisch Folgeaktionen aus. 290 + 291 291 == Paperless Berechtigungen == 292 292 293 293 Paperless NGX hat ein Berechtigungssystem, welches sich über fast alle Ressourcen erstreckt. Grundsätzlich gibt es **Benutzer** und **Gruppen**. Berechtigungen können dann global vergeben werden (Sichtbarkeit von Features) und zusätzlich auf Objektebene vergeben werden.
- Screenshot 2026-02-22 at 11.36.43.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.dherrman - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +217.5 KB - Inhalt