bjoernpoettkerandClaude Opus 5 b7b65c64ae
Build and Push Multi-Platform Images / build-and-push (push) Successful in 55s
fix: Berechtigungen der Tagesübersicht, WebDAV-Ausbau, Tests instand gesetzt
Die tägliche E-Mail-Zusammenfassung zeigte Nutzern Bereiche, für die sie
keine Berechtigung haben. Zwei unabhängige Ursachen:

- Das Backend prüfte weiterhin die Altgruppe PM_Belege. Die Umbenennung
  zu PM_Buchhaltung (ca1d371) war nur im Frontend angekommen, weshalb
  der Digest "Manuell bearbeiten" und "In Agrarmonitor" anbot, während
  die Oberfläche beide Bereiche sperrte.
- Der Cron-Versand wertet die Gruppen aus user_settings aus. Diese Spalte
  wurde nur beim Aufruf der Benutzereinstellungen gefüllt; entzogene
  Berechtigungen erreichten den Digest daher unter Umständen nie.

Behoben durch Angleichen des Gruppen-Mappings und den neuen
UserIdentitySyncService, der E-Mail, Benutzername und Gruppen bei jedem
authentifizierten Request aus dem Token spiegelt – ohne den Request zu
blockieren und ohne DB-Zugriff, solange sich das Token nicht ändert. Die
doppelte Identitätspflege im UserSettingsService entfällt.

WebDAV wird nicht eingesetzt und ist entfernt; Export-Ziele bieten nur
noch FTP. Damit verschwindet das ESM-Paket webdav, an dem zwei
Jest-Suites bereits beim Parsen scheiterten.

Veraltete Tests instand gesetzt: email.controller und settings.controller
mockten weniger Abhängigkeiten, als die Klassen inzwischen haben;
postprocessing.service.spec beschrieb noch das alte Regelmodell mit
Einzelfeldern statt FilterJson und ist gegen die heutige Filter-Engine
neu geschrieben (AND/OR, verschachtelte Gruppen, Fehlerprotokollierung).

Enthält außerdem den Arbeitsstand der E-Rechnungs-Mandantenzuordnung, da
sich beide Änderungen dieselben Dateien teilen (SettingsPage, package.json).

98 Tests in 12 Suites grün, Backend- und Frontend-Build sauber.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-01 00:06:50 +02:00

Paperless Manager

Eine Erweiterungsplattform für Paperless-NGX zur automatisierten Dokumentenverarbeitung von der Scanner-Eingangsbox bis zur regelbasierten Ablage.

Was ist Paperless Manager?

Paperless-NGX ist ein leistungsstarkes DMS, bietet aber wenig Automatisierung beim Erfassen und Verarbeiten eingehender Dokumente. Paperless Manager schließt diese Lücke:

  • Dokumente kommen per Scanner, E-Mail oder Dateiablage herein
  • Sie werden aufbereitet, gesplittet, per OCR erkannt und klassifiziert
  • Regelwerke entscheiden automatisch über Tags, Export und Weiterleitung
  • Etiketten werden direkt aus dem System heraus gedruckt

Der Paperless Manager läuft als eigenständige Anwendung neben Paperless-NGX und kommuniziert über dessen REST API.

Features

Scanner-Eingangsbox

  • Überwachung eines Scan-Verzeichnisses per Filesystem-Watcher
  • PDF-Vorschau, Seitenrotation und Splitting direkt im Browser
  • Barcode- und QR-Code-Erkennung zur automatischen Dokumententrennung
  • OCR über Ollama (llava Vision-Modell) für handschriftliche und gescannte Seiten
  • GoBD-konformes Archivieren der Originaldokumente

E-Mail-Import

  • IMAP-Anbindung zum automatischen Abruf von Postfächern
  • Extraktion von E-Mail-Anhängen (PDF, ZUGFeRD-Rechnungen)
  • Zuordnung von Absendern zu Paperless-Korrespondenten

Regelbasierte Nachbearbeitung

  • Konfigurierbare Filterregeln (Feld-Operatoren: eq, contains, in, …)
  • Aktionen: Tags setzen, Felder aktualisieren, E-Mail senden, WebDAV-Export
  • Priorisierbare Regelketten mit Stop-Bedingung

Etikettendruck-Agent

  • SVG-Vorlagen → PNG-Rendering via @resvg/resvg-js
  • SSE-basierte Job-Queue für angebundene Druckagenten
  • Automatische Job-Sperrung zur Vermeidung von Race Conditions

Authentifizierung & Berechtigungen

  • OIDC-Integration (z. B. Authentik) mit JWT-Validierung
  • API-Key-Unterstützung für maschinellen Zugriff
  • Granulares Berechtigungssystem auf Basis von OIDC-Gruppen

Technologie

Schicht Stack
Backend NestJS (TypeScript), TypeORM, MySQL 8
Frontend React 19, Ant Design, Vite
OCR Ollama (llava)
Deployment Docker Compose, Gitea Actions CI/CD
Auth OIDC (Authentik), JWT, API Keys

Deployment

cp .env.example .env
# .env anpassen (DB, Paperless-URL, OIDC, Ollama, …)

docker compose up -d

Backend läuft auf Port 3100, Frontend wird über nginx ausgeliefert.

Eine vollständige Beschreibung aller Umgebungsvariablen findet sich in .env.example.

Entwicklung

# Backend
cd paperless-backend
npm install
npm run start:dev

# Frontend
cd paperless-frontend
npm install
npm run dev        # Proxy auf localhost:3100
S
Description
No description provided
Readme
239 MiB
Languages
TypeScript 99.2%
CSS 0.4%
JavaScript 0.2%
HTML 0.1%
Dockerfile 0.1%