1
0
mirror of https://github.com/pcvolkmer/mv64e-rest-to-kafka-gateway synced 2025-09-13 09:12:51 +00:00

refactor: cleanup env var names

This commit is contained in:
2025-08-27 09:16:28 +02:00
parent 2c813491e7
commit 6a28bce9a5
2 changed files with 42 additions and 44 deletions

View File

@@ -19,39 +19,41 @@ Beim Start der Anwendung können Parameter angegeben werden.
Usage: mv64e-rest-to-kafka-gateway [OPTIONS] --token <TOKEN> Usage: mv64e-rest-to-kafka-gateway [OPTIONS] --token <TOKEN>
Options: Options:
--bootstrap-server <BOOTSTRAP_SERVER>
Kafka Bootstrap-Server(s) [env: KAFKA_BOOTSTRAP_SERVERS=] [default: kafka:9094]
--topic <TOPIC>
Kafka Topic [env: APP_KAFKA_TOPIC=] [default: etl-processor_input]
--token <TOKEN>
bcrypt hashed Security Token [env: APP_SECURITY_TOKEN=]
--listen <LISTEN> --listen <LISTEN>
Address and port for HTTP requests [env: APP_LISTEN=] [default: [::]:3000] Address and port for HTTP requests [env: LISTEN=] [default: [::]:3000]
--token <TOKEN>
bcrypt hashed Security Token [env: SECURITY_TOKEN=]
--bootstrap-server <BOOTSTRAP_SERVER>
Kafka Bootstrap Server [env: KAFKA_BOOTSTRAP_SERVERS=] [default: kafka:9094]
--topic <TOPIC>
Kafka Topic [env: KAFKA_TOPIC=] [default: etl-processor_input]
--ssl-ca-file <SSL_CA_FILE> --ssl-ca-file <SSL_CA_FILE>
CA file for SSL connection to Kafka [env: APP_SSL_CA_FILE=] CA file for SSL connection to Kafka [env: KAFKA_SSL_CA_FILE=]
--ssl-cert-file <SSL_CERT_FILE> --ssl-cert-file <SSL_CERT_FILE>
Certificate file for SSL connection to Kafka [env: APP_SSL_CERT_FILE=] Certificate file for SSL connection to Kafka [env: KAFKA_SSL_CERT_FILE=]
--ssl-key-file <SSL_KEY_FILE> --ssl-key-file <SSL_KEY_FILE>
Key file for SSL connection to Kafka [env: APP_SSL_KEY_FILE=] Key file for SSL connection to Kafka [env: KAFKA_SSL_KEY_FILE=]
--ssl-key-password <SSL_KEY_PASSWORD>
The SSL key password [env: KAFKA_SSL_KEY_PASSWORD=]
``` ```
Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren. Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren.
* `APP_KAFKA_SERVERS`: Zu verwendende Kafka-Bootstrap-Server als kommagetrennte Liste * `LISTEN`: Adresse und Port für eingehende HTTP-Requests. Standardwert: `[::]:3000` - Port `3000` auf allen
* `APP_KAFKA_TOPIC`: Zu verwendendes Topic zum Warten auf neue Anfragen. Standardwert: `etl-processor_input`
* `APP_SECURITY_TOKEN`: Verpflichtende Angabe es Tokens als *bcrypt*-Hash
* `APP_LISTEN`: Adresse und Port für eingehende HTTP-Requests. Standardwert: `[::]:3000` - Port `3000` auf allen
Adressen (IPv4 und IPv6) Adressen (IPv4 und IPv6)
* `SECURITY_TOKEN`: Verpflichtende Angabe es Tokens als *bcrypt*-Hash
* `KAFKA_BOOTSTRAP_SERVERS`: Zu verwendende Kafka-Bootstrap-Server als kommagetrennte Liste
* `KAFKA_TOPIC`: Zu verwendendes Topic zum Warten auf neue Anfragen. Standardwert: `etl-processor_input`
Optionale Umgebungsvariablen - wenn angegeben wird eine SSL-Verbindung zu Kafka aufgebaut. Optionale Umgebungsvariablen - wenn angegeben wird eine SSL-Verbindung zu Kafka aufgebaut.
* `APP_KAFKA_SSL_CA_FILE`: CA für SSL-Verbindungen * `KAFKA_SSL_CA_FILE`: CA für SSL-Verbindungen
* `APP_KAFKA_SSL_CERT_FILE`: SSL Certificate Datei * `KAFKA_SSL_CERT_FILE`: SSL Certificate Datei
* `APP_KAFKA_SSL_KEY_FILE`: SSL Key Datei * `KAFKA_SSL_KEY_FILE`: SSL Key Datei
* `APP_KAFKA_SSL_KEY_PASSWORD`: SSL KEY Passwort (wenn benötigt) * `KAFKA_SSL_KEY_PASSWORD`: SSL KEY Passwort (wenn benötigt)
Die Angabe eines Tokens ist verpflichtend und kann entweder über den Parameter `--token` erfolgen, oder über die Die Angabe eines Tokens ist verpflichtend und kann entweder über den Parameter `--token` erfolgen, oder über die
Umgebungsvariable `APP_SECURITY_TOKEN`. Umgebungsvariable `SECURITY_TOKEN`.
## HTTP-Requests ## HTTP-Requests
@@ -73,7 +75,7 @@ wird.
Requests müssen einen HTTP-Header `authorization` für HTTP-Basic enthalten. Hier ist es erforderlich, dass der Requests müssen einen HTTP-Header `authorization` für HTTP-Basic enthalten. Hier ist es erforderlich, dass der
Benutzername `token` gewählt wird. Benutzername `token` gewählt wird.
Es ist hierzu erforderlich, die erforderliche Umgebungsvariable `APP_SECURITY_TOKEN` zu setzen. Dies kann z.B. mit Es ist hierzu erforderlich, die erforderliche Umgebungsvariable `SECURITY_TOKEN` zu setzen. Dies kann z.B. mit
*htpasswd* erzeugt werden: *htpasswd* erzeugt werden:
``` ```

View File

@@ -4,10 +4,24 @@ use clap::Parser;
#[command(author, version, about)] #[command(author, version, about)]
#[command(arg_required_else_help(true))] #[command(arg_required_else_help(true))]
pub struct Cli { pub struct Cli {
#[arg(
long,
env = "LISTEN",
default_value = "[::]:3000",
help = "Address and port for HTTP requests"
)]
pub listen: String,
#[arg(
long,
alias = "security-token",
env = "SECURITY_TOKEN",
help = "bcrypt hashed Security Token"
)]
pub token: String,
#[arg( #[arg(
long, long,
alias = "kafka-servers", alias = "kafka-servers",
env = "APP_KAFKA_SERVERS", env = "KAFKA_BOOTSTRAP_SERVERS",
default_value = "kafka:9094", default_value = "kafka:9094",
help = "Kafka Bootstrap Server" help = "Kafka Bootstrap Server"
)] )]
@@ -15,47 +29,29 @@ pub struct Cli {
#[arg( #[arg(
long, long,
alias = "kafka-topic", alias = "kafka-topic",
env = "APP_KAFKA_TOPIC", env = "KAFKA_TOPIC",
default_value = "etl-processor_input", default_value = "etl-processor_input",
help = "Kafka Topic" help = "Kafka Topic"
)] )]
pub topic: String, pub topic: String,
#[arg( #[arg(
long, long,
alias = "security-token", env = "KAFKA_SSL_CA_FILE",
env = "APP_SECURITY_TOKEN",
help = "bcrypt hashed Security Token"
)]
pub token: String,
#[arg(
long,
env = "APP_LISTEN",
default_value = "[::]:3000",
help = "Address and port for HTTP requests"
)]
pub listen: String,
#[arg(
long,
env = "APP_KAFKA_SSL_CA_FILE",
help = "CA file for SSL connection to Kafka" help = "CA file for SSL connection to Kafka"
)] )]
pub ssl_ca_file: Option<String>, pub ssl_ca_file: Option<String>,
#[arg( #[arg(
long, long,
env = "APP_KAFKA_SSL_CERT_FILE", env = "KAFKA_SSL_CERT_FILE",
help = "Certificate file for SSL connection to Kafka" help = "Certificate file for SSL connection to Kafka"
)] )]
pub ssl_cert_file: Option<String>, pub ssl_cert_file: Option<String>,
#[arg( #[arg(
long, long,
env = "APP_KAFKA_SSL_KEY_FILE", env = "KAFKA_SSL_KEY_FILE",
help = "Key file for SSL connection to Kafka" help = "Key file for SSL connection to Kafka"
)] )]
pub ssl_key_file: Option<String>, pub ssl_key_file: Option<String>,
#[arg( #[arg(long, env = "KAFKA_SSL_KEY_PASSWORD", help = "The SSL key password")]
long,
env = "APP_KAFKA_SSL_KEY_PASSWORD",
help = "The SSL key password"
)]
pub ssl_key_password: Option<String>, pub ssl_key_password: Option<String>,
} }