• v0.7.0 cd803a3dfe

    feat: stille Datenverlust-Pfade geschlossen, gemeinsame Shell-Lib (v0.7.0)

    techadmin released this 2026-09-23 00:59:17 +02:00 | 2 commits to main since this release

    Vor dem Rollout durchgesehen und die verbliebenen Stellen geschlossen, an
    denen etwas schiefgehen konnte, ohne dass es irgendwo sichtbar wurde.

    Datenverlust:

    • veraPDF: das in [verapdf].binary konfigurierte Programm wird im Preflight
      geprueft. Bisher galt bei falschem Pfad JEDE Datei als "nicht konform" —
      Ergebnis nach error/, Original geloescht (Default delete). run_verapdf()
      trennt jetzt ausserdem ein echtes FAIL-Urteil von einer Stoerung
      (VeraPdfUnavailable: nicht startbar, abgestuerzt, kein PASS/FAIL in der
      Ausgabe). Bei Stoerung wandern Original UND Ergebnis nach error/, das
      Original wird nicht entsorgt.
    • Gleichnamige Dateien wurden in outgoing/, error/ und beim Ordner-Upload
      mit abweichendem target kommentarlos ueberschrieben. Jetzt Zeitstempel
      daneben, mit Warnung; ProcessResult.output traegt den echten Pfad.

    Robustheit:

    • Kaputtes oder nicht lesbares TOML beim Start: Exit 2 statt Traceback.
    • RestartPreventExitStatus=2 in der Unit — Exit 2 (Config/Preflight) laeuft
      nicht mehr endlos neu, die Instanz bleibt sichtbar failed stehen.
    • Toter watchdog-Observer wird erkannt: Exit 3, systemd setzt den Watch neu
      auf. Vorher blieb die Unit "active" und verarbeitete nichts mehr.
    • Relative Pfade in [paths]/archive_dir/target sind ein Config-Fehler statt
      still unter /opt zu landen.
    • Fehler beim Archivieren entwertet den Durchlauf nicht mehr: Upload und
      Mail laufen, Sichtbarkeit ueber log.error + "OK mit Warnung"-Mail.
    • Nicht-PDFs in incoming/ werden beim Start-Scan gesammelt gemeldet.
    • Logging explizit nach stdout (die Doku versprach das schon).

    Struktur:

    • Neue lib/common.sh, von install.sh und update.sh gesourct. Die doppelte
      venv_is_healthy() gibt es nur noch einmal, in der gruendlichen Fassung —
      die schlanke in install.sh haette eine nach einem Distro-Sprung kaputte
      venv als gesund durchgewunken (nachgewiesen).
    • install.sh warnt in Containern, wenn systemd-journald nicht laeuft.

    Doku: Dateisystem-Festlegung (ext4/xfs/zfs, kein CIFS/NFS wegen inotify),
    Debian 13 in LXC auf Proxmox scheitert an journald (243/CREDENTIALS,
    AppArmor blockiert sd-mkdcreds) inkl. Abhilfe, echte Speicher-Messwerte,
    Exit-Code-Tabelle.

    254 Tests gruen (vorher 152).

    Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

    Downloads