48 lines
1.4 KiB
Java
48 lines
1.4 KiB
Java
|
|
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<String> 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<String> privateKeyPath();
|
||
|
|
|
||
|
|
/** Passphrase für den Private Key, falls verschlüsselt. */
|
||
|
|
Optional<String> privateKeyPassphrase();
|
||
|
|
}
|