package de.galabau.dateieingang.sftp; import io.smallrye.config.ConfigMapping; import java.util.Optional; /** SFTP-Konfiguration. Credentials kommen ausschließlich aus Umgebungsvariablen. */ @ConfigMapping(prefix = "galabau.sftp") public interface SftpConfig { /** SFTP-Hostname, z.B. {@code sftp.lieferant.de}. */ String host(); /** SFTP-Port, Standard: 22. */ int port(); /** SFTP-Benutzername. */ String username(); /** * SFTP-Passwort. Nur verwendet wenn kein Private Key konfiguriert ist. * Aus Env-Var {@code GALABAU_SFTP_PASSWORD}. */ String password(); /** * SHA256-Fingerprint des SFTP-Host-Keys, z.B. {@code SHA256:AbCdEf...}. * Ermitteln: {@code ssh-keyscan host | ssh-keygen -lf -} * Wenn nicht gesetzt: PromiscuousVerifier (nur Dev — gibt WARN aus). */ Optional hostKeyFingerprint(); /** Remote-Verzeichnis auf dem SFTP-Server, z.B. {@code /outgoing}. */ String remotePath(); /** Lokales Arbeitsverzeichnis für Downloads, z.B. {@code /tmp/sftp-work}. */ String localWorkDir(); /** * Pfad zur Private-Key-Datei für Public-Key-Auth (empfohlen für Produktion). * Wenn gesetzt, wird Passwort-Auth ignoriert. */ Optional privateKeyPath(); /** Passphrase für den Private Key, falls verschlüsselt. */ Optional privateKeyPassphrase(); }