001package com.quorum.tessera.config.migration; 002 003import com.quorum.tessera.config.SslAuthenticationMode; 004import com.quorum.tessera.config.SslTrustMode; 005import picocli.CommandLine.Option; 006 007import java.util.List; 008 009public class LegacyOverridesMixin { 010 011 @Option( 012 names = "--workdir", 013 arity = "1", 014 description = 015 "Working directory to use (relative paths specified for other options are relative to the working directory)") 016 public String workdir; 017 018 @Option(names = "--url", arity = "1", description = "URL for this node (i.e. the address you want advertised)") 019 public String url; 020 021 @Option(names = "--port", arity = "1", description = "Port to listen on for the public API") 022 public Integer port; 023 024 @Option(names = "--socket", arity = "1", description = "Path to IPC socket file to create for private API access") 025 public String socket; 026 027 @Option( 028 names = "--othernodes", 029 split = ",", 030 description = "Comma-separated list of other node URLs to connect at startup") 031 public List<String> othernodes; 032 033 @Option( 034 names = "--publickeys", 035 split = ",", 036 description = "Comma-separated list of paths to public keys to advertise") 037 public List<String> publickeys; 038 039 @Option( 040 names = "--privatekeys", 041 split = ",", 042 description = 043 "Comma-separated list of paths to private keys (these must be given in the same corresponding order as --publickeys)") 044 public List<String> privatekeys; 045 046 @Option(names = "--passwords", arity = "1", description = "The file containing the passwords for the privatekeys") 047 public String passwords; 048 049 @Option( 050 names = "--alwayssendto", 051 split = ",", 052 description = "Comma-separated list of paths to public keys that are always included as recipients") 053 public List<String> alwayssendto; 054 055 @Option(names = "--storage", arity = "1", description = "Storage string specifying a storage engine and/or path") 056 public String storage; 057 058 @Option(names = "--tls", arity = "1", description = "TLS status (strict, off)") 059 public SslAuthenticationMode tls; 060 061 @Option(names = "--tlsservercert", arity = "1", description = "TLS certificate file to use for the public API") 062 public String tlsservercert; 063 064 @Option( 065 names = "--tlsserverchain", 066 split = ",", 067 description = "Comma separated list of TLS chain certificate files to use for the public API") 068 public List<String> tlsserverchain; 069 070 @Option(names = "--tlsserverkey", arity = "1", description = "TLS key file to use for the public API") 071 public String tlsserverkey; 072 073 @Option( 074 names = "--tlsservertrust", 075 arity = "1", 076 description = "TLS server trust mode (whitelist, ca-or-tofu, ca, tofu, insecure-no-validation)") 077 public SslTrustMode tlsservertrust; 078 079 @Option( 080 names = "--tlsknownclients", 081 arity = "1", 082 description = "TLS server known clients file for the ca-or-tofu, tofu and whitelist trust modes") 083 public String tlsknownclients; 084 085 @Option( 086 names = "--tlsclientcert", 087 arity = "1", 088 description = "TLS client certificate file to use for connections to other nodes") 089 public String tlsclientcert; 090 091 @Option( 092 names = "--tlsclientchain", 093 split = ",", 094 description = "Comma separated list of TLS chain certificate files to use for connections to other nodes") 095 public List<String> tlsclientchain; 096 097 @Option(names = "--tlsclientkey", arity = "1", description = "TLS key file to use for connections to other nodes") 098 public String tlsclientkey; 099 100 @Option( 101 names = "--tlsclienttrust", 102 arity = "1", 103 description = "TLS client trust mode (whitelist, ca-or-tofu, ca, tofu, insecure-no-validation)") 104 public SslTrustMode tlsclienttrust; 105 106 @Option( 107 names = "--tlsknownservers", 108 arity = "1", 109 description = "TLS client known servers file for the ca-or-tofu, tofu and whitelist trust modes") 110 public String tlsknownservers; 111 112 @Option(names = "--ipwhitelist", description = "If provided, Tessera will use the othernodes as a whitelist.") 113 public boolean whitelist; 114}