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:
42
README.md
42
README.md
@@ -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:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
44
src/cli.rs
44
src/cli.rs
@@ -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>,
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user