Änderungen von Dokument Paperless NGX
Zuletzt geändert von Daniel Herrmann am 2026/02/22 11:41
Von 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
Auf 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
Zusammenfassung
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -62,16 +62,17 @@ 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 === 66 66 67 - DerProzess zurErzeugungeinesQR Codes funktioniert wie folgt:66 +=== Barcode erzeugen === 68 68 68 +Der Prozess zur Erzeugung eines QR Codes ist wie folgt: 69 + 69 69 * **Payload (Daten) festlegen**. Einige Werte sind verpflichtend, andere können nach Bedarf optional hinzugefügt werden. 70 -* **JWT**erzeugen und signieren. der JWT besteht aus drei Teilen:71 +* JWT erzeugen und signieren. der JWT besteht aus drei Teilen: 71 71 ** **Header**: **alg** (Algorithmus) und **typ** (JWT) sind verpflichtend. Zusätzlich fügen wir einen Timestamp, eine eindeutige ID und eine Gültigkeitsdauer hinzu. 72 72 ** **Body**: beinhaltet die eigentlichen Daten. 73 73 ** **Signature**: Mit Hilfe eines Secrets und wird die Signatur erzeugt und automatisch angehängt. 74 -* **QRcode erzeugen**: ein JWT ist per Definition URL safe und kann daher einfach in ein QR code umgewandelt werden.75 +* PDF417 code erzeugen: ein JWT ist per Definition URL safe und kann daher einfach in ein QR code umgewandelt werden. 75 75 76 76 === Header === 77 77 ... ... @@ -171,6 +171,7 @@ 171 171 {{success}} 172 172 **Algorithmus** 173 173 175 + 174 174 Von den meisten Libraries werden symmetrische und asymmetrische Signaturen unterstützt. Die Verwendung eines symmetrischen Algorithmus ist für uns einfacher. 175 175 176 176 Für diesen Anwendungsfall nutzen wir **HS256** (HMAC mit SHA-256 Algorithmus). ... ... @@ -269,25 +269,23 @@ 269 269 270 270 Unsere bevorzugte Library ist **pyjwt**. Diese ist auch in **paperless nativ vorhanden**, sodass wir uns für die Implementierung mittels **pyjwt** entschieden haben. 271 271 272 -=== QRCode ===274 +=== PDF417 Code === 273 273 274 -Als Format für den Code wurde einStandard QR Code ausgewählt, da dieser mehr Platz und Fehlerkorrektur bietet.Es wurdeebenfallsmitPDF417 Codes experimentiert,jedochfunktioniertdieErkennungmitPythonLibrariesnursehrschlecht. EinQRCode sieht beispielsweise so aus:276 +Als Format für den Code wurde PDF417 ausgewählt, da dieser mehr Platz und Fehlerkorrektur bietet. Weiterhin gibt es eine einfach zu nutzende Library für Python (Erzeugung) und PDF417 wird von ZXING unterstützt, welches in Paperless eingebettet ist. Ein solcher Barcode sieht beispielsweise so aus: 275 275 276 -[[image:Screenshot 2026-02-22 at 11.36.43.png||height="150"]] 277 277 278 - === Post Consumption Script===279 +[[image:barcode.jpg||height="250"]] 279 279 280 -D ieeigentlicheZuordnungder Meta-Datenerfolgtübereinso genanntes Post ConsumptionScript. Diesesbefindetsichebenfallsim MakerspaceGitlab: [[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]]281 +Daraus kann dann eine Base64 basierte Repräsentation berechnet werden, die einfach in Docuseal hochgeladen werden kann. 281 281 282 - DasScriptmacht dreiDinge:283 +=== Referenz-Implementierung === 283 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. 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]] 290 290 287 +=== Post Consumption Script === 288 + 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 + 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,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -217.5 KB - Inhalt