Files
patrick 750cb22b8d
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
SRC-14: workerruntime-test um pdfa.validate ergaenzen
2026-09-22 09:19:50 +02:00
..

veraPDF-Sidecar (SRC-14)

Prueft die PDF/A-Derivate aus SRC-06 gegen veraPDF, den Referenz-Validator fuer PDF/A. Zwei Teile: die offizielle veraPDF-CLI unter /opt/nexarch-verapdf (Java, unveraendert vom Hersteller) und ein duenner, selbst geschriebener HTTP-Wrapper verapdf-sidecar (Go, dms/cmd/verapdf-sidecar), der je Anfrage einen eigenen veraPDF-Lauf startet. Nur auf 127.0.0.1:8612 (DMS-Portbereich 8600-8699, deploy/ports.tsv; 8610 ist der KoSIT-Sidecar aus MET-07). Der DMS-Worker spricht ihn ueber NEXARCH_DMS_WORKER_VERAPDF_ADDR an. Ohne diese Variable ist das Ergebnis immer not_checked.

veraPDF hat keinen dokumentierten Daemon-Modus; jede Pruefung startet einen eigenen kurzlebigen Java-Prozess (ueblicherweise < 1 s). Das ist das vom Hersteller unterstuetzte Betriebsmodell, nicht ein Workaround.

Bestandteile (feste Versionen, Pruefsummen)

Datei Version Pruefsumme
Temurin JRE (Linux x64), wiederverwendet aus /opt/nexarch-kosit/jre 21.0.12.1 SHA-256 2413149700df0f7d440500a84a8f764c535f21e5a5e87d38328b64eec2c5b500 (siehe deploy/kosit/README.md)
verapdf-installer.zip veraPDF Greenfield 1.30.2, gebaut 2026-06-03 SHA-256 6cc6341cb1af644044054b81f00a6590a7918abb18f762243de115258bcad838, zusaetzlich per GPG-Signatur (.asc) gegen den Schluessel 13DD102B4DD69354D12DE5A83184863278B17FE7 (Carl Wilson, veraPDF-Techlead, keyserver.ubuntu.com) geprueft

Quellen: github.com/adoptium/temurin21-binaries, software.verapdf.org/releases/. Der Installer selbst ist ein IzPack-Assistent ohne separat verzeichnete SHA-256-Summe; der Hersteller sichert die Downloads per GPG-Signatur.

Installation

Der Installer laesst sich nicht ganz unbeaufsichtigt starten (kein auto-install.xml im Zip); die Konsolen-Antworten sind aber fest und reproduzierbar:

# JRE, Installer und Signatur laden, Signatur pruefen (siehe oben)
useradd --system --no-create-home --home-dir /opt/nexarch-verapdf --shell /usr/sbin/nologin nexarch-verapdf

# Nur die CLI installieren (keine GUI, keine Doku, keine Beispiel-Plugins):
export JAVA_HOME=/opt/nexarch-kosit/jre PATH=/opt/nexarch-kosit/jre/bin:$PATH
printf '1\n/opt/nexarch-verapdf\nO\n1\nN\nY\nN\nN\n1\n1\n1\n1\n1\n' \
  | java -jar verapdf-izpack-installer-1.30.2.jar -console

# Sidecar bauen und ablegen (aus diesem Branch):
cd dms && go build -o /opt/nexarch-verapdf/sidecar/verapdf-sidecar ./cmd/verapdf-sidecar

chown -R root:root /opt/nexarch-verapdf && chmod -R go-w /opt/nexarch-verapdf
cp deploy/verapdf/nexarch-dms-verapdf.service /etc/systemd/system/
systemctl daemon-reload && systemctl enable --now nexarch-dms-verapdf

Die Eingabefolge des Installers (Konsolenmodus, Sprache Deutsch): 1 = Hinweis bestaetigen, Zielpfad /opt/nexarch-verapdf, O = Verzeichnis anlegen, 1 = weiter, dann je Paket N/Y/N/N (GUI aus, CLI an, Dokumentation aus, Beispiel-Plugins aus), danach 1 mehrfach fuer Installation, Abschluss und die Frage nach einem automatischen Installationsskript.

Betrieb

  • Worker: NEXARCH_DMS_WORKER_VERAPDF_ADDR=http://127.0.0.1:8612, optional NEXARCH_DMS_WORKER_VERAPDF_FLAVOUR (Standard 2b) und NEXARCH_DMS_WORKER_VERAPDF_TIMEOUT_SECONDS.
  • Der Sidecar selbst braucht NEXARCH_VERAPDF_SIDECAR_BIN (Pfad zum verapdf-Startskript, Standard /opt/nexarch-verapdf/verapdf) und JAVA_HOME/PATH fuer die Java-Laufzeit (Environment-Zeilen in der Unit).
  • Der Dienst hat keine Zugriffskontrolle: nie an eine andere Adresse als Loopback binden.
  • Der Sidecar meldet einen fehlgeschlagenen oder zeitueberschrittenen Lauf als HTTP 502/504; der DMS-Client wertet das als not_checked, nie compliant.

Rueckbau

systemctl disable --now nexarch-dms-verapdf
rm /etc/systemd/system/nexarch-dms-verapdf.service && systemctl daemon-reload
rm -rf /opt/nexarch-verapdf
userdel nexarch-verapdf

Bereits abgelegte Ergebnisse (revision_pdfa_conformance) bleiben erhalten; ohne Sidecar entstehen neue Ergebnisse mit not_checked.