feat(targets): complete redis mysql postgres target wiring (#2842)

Signed-off-by: jaehanbyun <awbrg789@naver.com>
Signed-off-by: houseme <housemecn@gmail.com>
Signed-off-by: Gunther Xing <jiengup@gmail.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Co-authored-by: jaehanbyun <awbrg789@naver.com>
Co-authored-by: Gunther Xing <jiengup@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: cxymds <Cxymds@qq.com>
Co-authored-by: JaySon <tshent@qq.com>
Co-authored-by: 安正超 <anzhengchao@gmail.com>
This commit is contained in:
houseme
2026-05-07 18:00:59 +08:00
committed by GitHub
parent b159d656cc
commit 5431b9273d
41 changed files with 6787 additions and 237 deletions
+13
View File
@@ -18,14 +18,20 @@
mod kafka;
mod mqtt;
mod mysql;
mod nats;
mod postgres;
mod pulsar;
mod redis;
mod webhook;
pub use kafka::*;
pub use mqtt::*;
pub use mysql::*;
pub use nats::*;
pub use postgres::*;
pub use pulsar::*;
pub use redis::*;
pub use webhook::*;
use crate::DEFAULT_DELIMITER;
@@ -37,15 +43,22 @@ pub const AUDIT_ROUTE_PREFIX: &str = const_str::concat!(AUDIT_PREFIX, DEFAULT_DE
pub const AUDIT_WEBHOOK_SUB_SYS: &str = "audit_webhook";
pub const AUDIT_KAFKA_SUB_SYS: &str = "audit_kafka";
pub const AUDIT_MQTT_SUB_SYS: &str = "audit_mqtt";
pub const AUDIT_MYSQL_SUB_SYS: &str = "audit_mysql";
pub const AUDIT_NATS_SUB_SYS: &str = "audit_nats";
pub const AUDIT_POSTGRES_SUB_SYS: &str = "audit_postgres";
pub const AUDIT_PULSAR_SUB_SYS: &str = "audit_pulsar";
pub const AUDIT_REDIS_SUB_SYS: &str = "audit_redis";
pub const AUDIT_REDIS_DEFAULT_CHANNEL: &str = "rustfs_audit_channel";
pub const AUDIT_STORE_EXTENSION: &str = ".audit";
#[allow(dead_code)]
pub const AUDIT_SUB_SYSTEMS: &[&str] = &[
AUDIT_KAFKA_SUB_SYS,
AUDIT_MQTT_SUB_SYS,
AUDIT_MYSQL_SUB_SYS,
AUDIT_NATS_SUB_SYS,
AUDIT_POSTGRES_SUB_SYS,
AUDIT_PULSAR_SUB_SYS,
AUDIT_REDIS_SUB_SYS,
AUDIT_WEBHOOK_SUB_SYS,
];
+53
View File
@@ -0,0 +1,53 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/// A list of all valid configuration keys for an audit MySQL target.
pub const AUDIT_MYSQL_KEYS: &[&str] = &[
crate::ENABLE_KEY,
crate::MYSQL_DSN_STRING,
crate::MYSQL_TABLE,
crate::MYSQL_FORMAT,
crate::MYSQL_TLS_CA,
crate::MYSQL_TLS_CLIENT_CERT,
crate::MYSQL_TLS_CLIENT_KEY,
crate::MYSQL_QUEUE_DIR,
crate::MYSQL_QUEUE_LIMIT,
crate::MYSQL_MAX_OPEN_CONNECTIONS,
crate::COMMENT_KEY,
];
// MySQL environment variables for audit target.
pub const ENV_AUDIT_MYSQL_ENABLE: &str = "RUSTFS_AUDIT_MYSQL_ENABLE";
pub const ENV_AUDIT_MYSQL_DSN_STRING: &str = "RUSTFS_AUDIT_MYSQL_DSN_STRING";
pub const ENV_AUDIT_MYSQL_TABLE: &str = "RUSTFS_AUDIT_MYSQL_TABLE";
pub const ENV_AUDIT_MYSQL_FORMAT: &str = "RUSTFS_AUDIT_MYSQL_FORMAT";
pub const ENV_AUDIT_MYSQL_TLS_CA: &str = "RUSTFS_AUDIT_MYSQL_TLS_CA";
pub const ENV_AUDIT_MYSQL_TLS_CLIENT_CERT: &str = "RUSTFS_AUDIT_MYSQL_TLS_CLIENT_CERT";
pub const ENV_AUDIT_MYSQL_TLS_CLIENT_KEY: &str = "RUSTFS_AUDIT_MYSQL_TLS_CLIENT_KEY";
pub const ENV_AUDIT_MYSQL_QUEUE_DIR: &str = "RUSTFS_AUDIT_MYSQL_QUEUE_DIR";
pub const ENV_AUDIT_MYSQL_QUEUE_LIMIT: &str = "RUSTFS_AUDIT_MYSQL_QUEUE_LIMIT";
pub const ENV_AUDIT_MYSQL_MAX_OPEN_CONNECTIONS: &str = "RUSTFS_AUDIT_MYSQL_MAX_OPEN_CONNECTIONS";
pub const ENV_AUDIT_MYSQL_KEYS: &[&str; 10] = &[
ENV_AUDIT_MYSQL_ENABLE,
ENV_AUDIT_MYSQL_DSN_STRING,
ENV_AUDIT_MYSQL_TABLE,
ENV_AUDIT_MYSQL_FORMAT,
ENV_AUDIT_MYSQL_TLS_CA,
ENV_AUDIT_MYSQL_TLS_CLIENT_CERT,
ENV_AUDIT_MYSQL_TLS_CLIENT_KEY,
ENV_AUDIT_MYSQL_QUEUE_DIR,
ENV_AUDIT_MYSQL_QUEUE_LIMIT,
ENV_AUDIT_MYSQL_MAX_OPEN_CONNECTIONS,
];
+51
View File
@@ -0,0 +1,51 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
pub const AUDIT_POSTGRES_KEYS: &[&str] = &[
crate::ENABLE_KEY,
crate::POSTGRES_DSN_STRING,
crate::POSTGRES_TABLE,
crate::POSTGRES_FORMAT,
crate::POSTGRES_TLS_REQUIRED,
crate::POSTGRES_TLS_CA,
crate::POSTGRES_TLS_CLIENT_CERT,
crate::POSTGRES_TLS_CLIENT_KEY,
crate::POSTGRES_QUEUE_DIR,
crate::POSTGRES_QUEUE_LIMIT,
crate::COMMENT_KEY,
];
pub const ENV_AUDIT_POSTGRES_ENABLE: &str = "RUSTFS_AUDIT_POSTGRES_ENABLE";
pub const ENV_AUDIT_POSTGRES_DSN_STRING: &str = "RUSTFS_AUDIT_POSTGRES_DSN_STRING";
pub const ENV_AUDIT_POSTGRES_TABLE: &str = "RUSTFS_AUDIT_POSTGRES_TABLE";
pub const ENV_AUDIT_POSTGRES_FORMAT: &str = "RUSTFS_AUDIT_POSTGRES_FORMAT";
pub const ENV_AUDIT_POSTGRES_TLS_REQUIRED: &str = "RUSTFS_AUDIT_POSTGRES_TLS_REQUIRED";
pub const ENV_AUDIT_POSTGRES_TLS_CA: &str = "RUSTFS_AUDIT_POSTGRES_TLS_CA";
pub const ENV_AUDIT_POSTGRES_TLS_CLIENT_CERT: &str = "RUSTFS_AUDIT_POSTGRES_TLS_CLIENT_CERT";
pub const ENV_AUDIT_POSTGRES_TLS_CLIENT_KEY: &str = "RUSTFS_AUDIT_POSTGRES_TLS_CLIENT_KEY";
pub const ENV_AUDIT_POSTGRES_QUEUE_DIR: &str = "RUSTFS_AUDIT_POSTGRES_QUEUE_DIR";
pub const ENV_AUDIT_POSTGRES_QUEUE_LIMIT: &str = "RUSTFS_AUDIT_POSTGRES_QUEUE_LIMIT";
pub const ENV_AUDIT_POSTGRES_KEYS: &[&str; 10] = &[
ENV_AUDIT_POSTGRES_ENABLE,
ENV_AUDIT_POSTGRES_DSN_STRING,
ENV_AUDIT_POSTGRES_TABLE,
ENV_AUDIT_POSTGRES_FORMAT,
ENV_AUDIT_POSTGRES_TLS_REQUIRED,
ENV_AUDIT_POSTGRES_TLS_CA,
ENV_AUDIT_POSTGRES_TLS_CLIENT_CERT,
ENV_AUDIT_POSTGRES_TLS_CLIENT_KEY,
ENV_AUDIT_POSTGRES_QUEUE_DIR,
ENV_AUDIT_POSTGRES_QUEUE_LIMIT,
];
+81
View File
@@ -0,0 +1,81 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
pub const ENV_AUDIT_REDIS_ENABLE: &str = "RUSTFS_AUDIT_REDIS_ENABLE";
pub const ENV_AUDIT_REDIS_URL: &str = "RUSTFS_AUDIT_REDIS_URL";
pub const ENV_AUDIT_REDIS_CHANNEL: &str = "RUSTFS_AUDIT_REDIS_CHANNEL";
pub const ENV_AUDIT_REDIS_USERNAME: &str = "RUSTFS_AUDIT_REDIS_USERNAME";
pub const ENV_AUDIT_REDIS_PASSWORD: &str = "RUSTFS_AUDIT_REDIS_PASSWORD";
pub const ENV_AUDIT_REDIS_KEEP_ALIVE_INTERVAL: &str = "RUSTFS_AUDIT_REDIS_KEEP_ALIVE_INTERVAL";
pub const ENV_AUDIT_REDIS_QUEUE_DIR: &str = "RUSTFS_AUDIT_REDIS_QUEUE_DIR";
pub const ENV_AUDIT_REDIS_QUEUE_LIMIT: &str = "RUSTFS_AUDIT_REDIS_QUEUE_LIMIT";
pub const ENV_AUDIT_REDIS_MAX_RETRY_ATTEMPTS: &str = "RUSTFS_AUDIT_REDIS_MAX_RETRY_ATTEMPTS";
pub const ENV_AUDIT_REDIS_RECONNECT_RETRY_ATTEMPTS: &str = "RUSTFS_AUDIT_REDIS_RECONNECT_RETRY_ATTEMPTS";
pub const ENV_AUDIT_REDIS_MIN_RETRY_DELAY: &str = "RUSTFS_AUDIT_REDIS_MIN_RETRY_DELAY";
pub const ENV_AUDIT_REDIS_MAX_RETRY_DELAY: &str = "RUSTFS_AUDIT_REDIS_MAX_RETRY_DELAY";
pub const ENV_AUDIT_REDIS_CONNECTION_TIMEOUT: &str = "RUSTFS_AUDIT_REDIS_CONNECTION_TIMEOUT";
pub const ENV_AUDIT_REDIS_RESPONSE_TIMEOUT: &str = "RUSTFS_AUDIT_REDIS_RESPONSE_TIMEOUT";
pub const ENV_AUDIT_REDIS_PIPELINE_BUFFER_SIZE: &str = "RUSTFS_AUDIT_REDIS_PIPELINE_BUFFER_SIZE";
pub const ENV_AUDIT_REDIS_TLS_POLICY: &str = "RUSTFS_AUDIT_REDIS_TLS_POLICY";
pub const ENV_AUDIT_REDIS_TLS_CA: &str = "RUSTFS_AUDIT_REDIS_TLS_CA";
pub const ENV_AUDIT_REDIS_TLS_CLIENT_CERT: &str = "RUSTFS_AUDIT_REDIS_TLS_CLIENT_CERT";
pub const ENV_AUDIT_REDIS_TLS_CLIENT_KEY: &str = "RUSTFS_AUDIT_REDIS_TLS_CLIENT_KEY";
pub const ENV_AUDIT_REDIS_TLS_ALLOW_INSECURE: &str = "RUSTFS_AUDIT_REDIS_TLS_ALLOW_INSECURE";
pub const ENV_AUDIT_REDIS_KEYS: &[&str; 20] = &[
ENV_AUDIT_REDIS_ENABLE,
ENV_AUDIT_REDIS_URL,
ENV_AUDIT_REDIS_CHANNEL,
ENV_AUDIT_REDIS_USERNAME,
ENV_AUDIT_REDIS_PASSWORD,
ENV_AUDIT_REDIS_KEEP_ALIVE_INTERVAL,
ENV_AUDIT_REDIS_QUEUE_DIR,
ENV_AUDIT_REDIS_QUEUE_LIMIT,
ENV_AUDIT_REDIS_MAX_RETRY_ATTEMPTS,
ENV_AUDIT_REDIS_RECONNECT_RETRY_ATTEMPTS,
ENV_AUDIT_REDIS_MIN_RETRY_DELAY,
ENV_AUDIT_REDIS_MAX_RETRY_DELAY,
ENV_AUDIT_REDIS_CONNECTION_TIMEOUT,
ENV_AUDIT_REDIS_RESPONSE_TIMEOUT,
ENV_AUDIT_REDIS_PIPELINE_BUFFER_SIZE,
ENV_AUDIT_REDIS_TLS_POLICY,
ENV_AUDIT_REDIS_TLS_CA,
ENV_AUDIT_REDIS_TLS_CLIENT_CERT,
ENV_AUDIT_REDIS_TLS_CLIENT_KEY,
ENV_AUDIT_REDIS_TLS_ALLOW_INSECURE,
];
pub const AUDIT_REDIS_KEYS: &[&str] = &[
crate::ENABLE_KEY,
crate::REDIS_URL,
crate::REDIS_CHANNEL,
crate::REDIS_USERNAME,
crate::REDIS_PASSWORD,
crate::REDIS_KEEP_ALIVE_INTERVAL,
crate::REDIS_QUEUE_DIR,
crate::REDIS_QUEUE_LIMIT,
crate::REDIS_MAX_RETRY_ATTEMPTS,
crate::REDIS_RECONNECT_RETRY_ATTEMPTS,
crate::REDIS_MIN_RETRY_DELAY,
crate::REDIS_MAX_RETRY_DELAY,
crate::REDIS_CONNECTION_TIMEOUT,
crate::REDIS_RESPONSE_TIMEOUT,
crate::REDIS_PIPELINE_BUFFER_SIZE,
crate::REDIS_TLS_POLICY,
crate::REDIS_TLS_CA,
crate::REDIS_TLS_CLIENT_CERT,
crate::REDIS_TLS_CLIENT_KEY,
crate::REDIS_TLS_ALLOW_INSECURE,
crate::COMMENT_KEY,
];
+42
View File
@@ -74,6 +74,48 @@ pub const PULSAR_TLS_HOSTNAME_VERIFICATION: &str = "tls_hostname_verification";
pub const PULSAR_QUEUE_DIR: &str = "queue_dir";
pub const PULSAR_QUEUE_LIMIT: &str = "queue_limit";
pub const BASE_DSN_STRING: &str = "dsn_string";
pub const MYSQL_DSN_STRING: &str = BASE_DSN_STRING;
pub const MYSQL_TABLE: &str = "table";
pub const MYSQL_FORMAT: &str = "format";
pub const MYSQL_TLS_CA: &str = "tls_ca";
pub const MYSQL_TLS_CLIENT_CERT: &str = "tls_client_cert";
pub const MYSQL_TLS_CLIENT_KEY: &str = "tls_client_key";
pub const MYSQL_QUEUE_DIR: &str = "queue_dir";
pub const MYSQL_QUEUE_LIMIT: &str = "queue_limit";
pub const MYSQL_MAX_OPEN_CONNECTIONS: &str = "max_open_connections";
pub const REDIS_URL: &str = "url";
pub const REDIS_CHANNEL: &str = "channel";
pub const REDIS_USERNAME: &str = "username";
pub const REDIS_PASSWORD: &str = "password";
pub const REDIS_KEEP_ALIVE_INTERVAL: &str = "keep_alive_interval";
pub const REDIS_QUEUE_DIR: &str = "queue_dir";
pub const REDIS_QUEUE_LIMIT: &str = "queue_limit";
pub const REDIS_MAX_RETRY_ATTEMPTS: &str = "max_retry_attempts";
pub const REDIS_RECONNECT_RETRY_ATTEMPTS: &str = "reconnect_retry_attempts";
pub const REDIS_MIN_RETRY_DELAY: &str = "min_retry_delay";
pub const REDIS_MAX_RETRY_DELAY: &str = "max_retry_delay";
pub const REDIS_CONNECTION_TIMEOUT: &str = "connection_timeout";
pub const REDIS_RESPONSE_TIMEOUT: &str = "response_timeout";
pub const REDIS_PIPELINE_BUFFER_SIZE: &str = "pipeline_buffer_size";
pub const REDIS_TLS_POLICY: &str = "tls_policy";
pub const REDIS_TLS_CA: &str = "tls_ca";
pub const REDIS_TLS_CLIENT_CERT: &str = "tls_client_cert";
pub const REDIS_TLS_CLIENT_KEY: &str = "tls_client_key";
pub const REDIS_TLS_ALLOW_INSECURE: &str = "tls_allow_insecure";
pub const POSTGRES_DSN_STRING: &str = BASE_DSN_STRING;
pub const POSTGRES_TABLE: &str = "table";
pub const POSTGRES_FORMAT: &str = "format";
pub const POSTGRES_TLS_REQUIRED: &str = "tls_required";
pub const POSTGRES_TLS_CA: &str = "tls_ca";
pub const POSTGRES_TLS_CLIENT_CERT: &str = "tls_client_cert";
pub const POSTGRES_TLS_CLIENT_KEY: &str = "tls_client_key";
pub const POSTGRES_QUEUE_DIR: &str = "queue_dir";
pub const POSTGRES_QUEUE_LIMIT: &str = "queue_limit";
/// Environment variable controlling whether target queue files are Snappy-compressed.
/// Applies to both notify and audit target queue stores.
pub const ENV_TARGET_STORE_COMPRESS: &str = "RUSTFS_TARGET_STORE_COMPRESS";
+11 -4
View File
@@ -15,16 +15,22 @@
mod arn;
mod kafka;
mod mqtt;
mod mysql;
mod nats;
mod postgres;
mod pulsar;
mod redis;
mod store;
mod webhook;
pub use arn::*;
pub use kafka::*;
pub use mqtt::*;
pub use mysql::*;
pub use nats::*;
pub use postgres::*;
pub use pulsar::*;
pub use redis::*;
pub use store::*;
pub use webhook::*;
@@ -69,19 +75,20 @@ pub const ENV_NOTIFY_SEND_CONCURRENCY: &str = "RUSTFS_NOTIFY_SEND_CONCURRENCY";
/// Adjust this value based on your system's capabilities and expected load.
pub const DEFAULT_NOTIFY_SEND_CONCURRENCY: usize = 64;
#[allow(dead_code)]
pub const NOTIFY_SUB_SYSTEMS: &[&str] = &[
NOTIFY_KAFKA_SUB_SYS,
NOTIFY_MQTT_SUB_SYS,
NOTIFY_MYSQL_SUB_SYS,
NOTIFY_NATS_SUB_SYS,
NOTIFY_POSTGRES_SUB_SYS,
NOTIFY_PULSAR_SUB_SYS,
NOTIFY_REDIS_SUB_SYS,
NOTIFY_WEBHOOK_SUB_SYS,
];
pub const NOTIFY_KAFKA_SUB_SYS: &str = "notify_kafka";
pub const NOTIFY_MQTT_SUB_SYS: &str = "notify_mqtt";
#[allow(dead_code)]
pub const NOTIFY_MY_SQL_SUB_SYS: &str = "notify_mysql";
pub const NOTIFY_MYSQL_SUB_SYS: &str = "notify_mysql";
#[allow(dead_code)]
pub const NOTIFY_NATS_SUB_SYS: &str = "notify_nats";
#[allow(dead_code)]
@@ -90,9 +97,9 @@ pub const NOTIFY_NSQ_SUB_SYS: &str = "notify_nsq";
pub const NOTIFY_ES_SUB_SYS: &str = "notify_elasticsearch";
#[allow(dead_code)]
pub const NOTIFY_AMQP_SUB_SYS: &str = "notify_amqp";
#[allow(dead_code)]
pub const NOTIFY_POSTGRES_SUB_SYS: &str = "notify_postgres";
#[allow(dead_code)]
pub const NOTIFY_REDIS_SUB_SYS: &str = "notify_redis";
pub const NOTIFY_REDIS_DEFAULT_CHANNEL: &str = "rustfs_notify_channel";
pub const NOTIFY_PULSAR_SUB_SYS: &str = "notify_pulsar";
pub const NOTIFY_WEBHOOK_SUB_SYS: &str = "notify_webhook";
+53
View File
@@ -0,0 +1,53 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/// A list of all valid configuration keys for a MySQL target.
pub const NOTIFY_MYSQL_KEYS: &[&str] = &[
crate::ENABLE_KEY,
crate::MYSQL_DSN_STRING,
crate::MYSQL_TABLE,
crate::MYSQL_FORMAT,
crate::MYSQL_TLS_CA,
crate::MYSQL_TLS_CLIENT_CERT,
crate::MYSQL_TLS_CLIENT_KEY,
crate::MYSQL_QUEUE_DIR,
crate::MYSQL_QUEUE_LIMIT,
crate::MYSQL_MAX_OPEN_CONNECTIONS,
crate::COMMENT_KEY,
];
// MySQL Environment Variables
pub const ENV_NOTIFY_MYSQL_ENABLE: &str = "RUSTFS_NOTIFY_MYSQL_ENABLE";
pub const ENV_NOTIFY_MYSQL_DSN_STRING: &str = "RUSTFS_NOTIFY_MYSQL_DSN_STRING";
pub const ENV_NOTIFY_MYSQL_TABLE: &str = "RUSTFS_NOTIFY_MYSQL_TABLE";
pub const ENV_NOTIFY_MYSQL_FORMAT: &str = "RUSTFS_NOTIFY_MYSQL_FORMAT";
pub const ENV_NOTIFY_MYSQL_TLS_CA: &str = "RUSTFS_NOTIFY_MYSQL_TLS_CA";
pub const ENV_NOTIFY_MYSQL_TLS_CLIENT_CERT: &str = "RUSTFS_NOTIFY_MYSQL_TLS_CLIENT_CERT";
pub const ENV_NOTIFY_MYSQL_TLS_CLIENT_KEY: &str = "RUSTFS_NOTIFY_MYSQL_TLS_CLIENT_KEY";
pub const ENV_NOTIFY_MYSQL_QUEUE_DIR: &str = "RUSTFS_NOTIFY_MYSQL_QUEUE_DIR";
pub const ENV_NOTIFY_MYSQL_QUEUE_LIMIT: &str = "RUSTFS_NOTIFY_MYSQL_QUEUE_LIMIT";
pub const ENV_NOTIFY_MYSQL_MAX_OPEN_CONNECTIONS: &str = "RUSTFS_NOTIFY_MYSQL_MAX_OPEN_CONNECTIONS";
pub const ENV_NOTIFY_MYSQL_KEYS: &[&str; 10] = &[
ENV_NOTIFY_MYSQL_ENABLE,
ENV_NOTIFY_MYSQL_DSN_STRING,
ENV_NOTIFY_MYSQL_TABLE,
ENV_NOTIFY_MYSQL_FORMAT,
ENV_NOTIFY_MYSQL_TLS_CA,
ENV_NOTIFY_MYSQL_TLS_CLIENT_CERT,
ENV_NOTIFY_MYSQL_TLS_CLIENT_KEY,
ENV_NOTIFY_MYSQL_QUEUE_DIR,
ENV_NOTIFY_MYSQL_QUEUE_LIMIT,
ENV_NOTIFY_MYSQL_MAX_OPEN_CONNECTIONS,
];
+51
View File
@@ -0,0 +1,51 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
pub const NOTIFY_POSTGRES_KEYS: &[&str] = &[
crate::ENABLE_KEY,
crate::POSTGRES_DSN_STRING,
crate::POSTGRES_TABLE,
crate::POSTGRES_FORMAT,
crate::POSTGRES_TLS_REQUIRED,
crate::POSTGRES_TLS_CA,
crate::POSTGRES_TLS_CLIENT_CERT,
crate::POSTGRES_TLS_CLIENT_KEY,
crate::POSTGRES_QUEUE_DIR,
crate::POSTGRES_QUEUE_LIMIT,
crate::COMMENT_KEY,
];
pub const ENV_NOTIFY_POSTGRES_ENABLE: &str = "RUSTFS_NOTIFY_POSTGRES_ENABLE";
pub const ENV_NOTIFY_POSTGRES_DSN_STRING: &str = "RUSTFS_NOTIFY_POSTGRES_DSN_STRING";
pub const ENV_NOTIFY_POSTGRES_TABLE: &str = "RUSTFS_NOTIFY_POSTGRES_TABLE";
pub const ENV_NOTIFY_POSTGRES_FORMAT: &str = "RUSTFS_NOTIFY_POSTGRES_FORMAT";
pub const ENV_NOTIFY_POSTGRES_TLS_REQUIRED: &str = "RUSTFS_NOTIFY_POSTGRES_TLS_REQUIRED";
pub const ENV_NOTIFY_POSTGRES_TLS_CA: &str = "RUSTFS_NOTIFY_POSTGRES_TLS_CA";
pub const ENV_NOTIFY_POSTGRES_TLS_CLIENT_CERT: &str = "RUSTFS_NOTIFY_POSTGRES_TLS_CLIENT_CERT";
pub const ENV_NOTIFY_POSTGRES_TLS_CLIENT_KEY: &str = "RUSTFS_NOTIFY_POSTGRES_TLS_CLIENT_KEY";
pub const ENV_NOTIFY_POSTGRES_QUEUE_DIR: &str = "RUSTFS_NOTIFY_POSTGRES_QUEUE_DIR";
pub const ENV_NOTIFY_POSTGRES_QUEUE_LIMIT: &str = "RUSTFS_NOTIFY_POSTGRES_QUEUE_LIMIT";
pub const ENV_NOTIFY_POSTGRES_KEYS: &[&str; 10] = &[
ENV_NOTIFY_POSTGRES_ENABLE,
ENV_NOTIFY_POSTGRES_DSN_STRING,
ENV_NOTIFY_POSTGRES_TABLE,
ENV_NOTIFY_POSTGRES_FORMAT,
ENV_NOTIFY_POSTGRES_TLS_REQUIRED,
ENV_NOTIFY_POSTGRES_TLS_CA,
ENV_NOTIFY_POSTGRES_TLS_CLIENT_CERT,
ENV_NOTIFY_POSTGRES_TLS_CLIENT_KEY,
ENV_NOTIFY_POSTGRES_QUEUE_DIR,
ENV_NOTIFY_POSTGRES_QUEUE_LIMIT,
];
+82
View File
@@ -0,0 +1,82 @@
// Copyright 2024 RustFS Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/// A list of all valid configuration keys for a Redis target.
pub const NOTIFY_REDIS_KEYS: &[&str] = &[
crate::ENABLE_KEY,
crate::REDIS_URL,
crate::REDIS_CHANNEL,
crate::REDIS_USERNAME,
crate::REDIS_PASSWORD,
crate::REDIS_KEEP_ALIVE_INTERVAL,
crate::REDIS_QUEUE_DIR,
crate::REDIS_QUEUE_LIMIT,
crate::REDIS_MAX_RETRY_ATTEMPTS,
crate::REDIS_RECONNECT_RETRY_ATTEMPTS,
crate::REDIS_MIN_RETRY_DELAY,
crate::REDIS_MAX_RETRY_DELAY,
crate::REDIS_CONNECTION_TIMEOUT,
crate::REDIS_RESPONSE_TIMEOUT,
crate::REDIS_PIPELINE_BUFFER_SIZE,
crate::REDIS_TLS_POLICY,
crate::REDIS_TLS_CA,
crate::REDIS_TLS_CLIENT_CERT,
crate::REDIS_TLS_CLIENT_KEY,
crate::REDIS_TLS_ALLOW_INSECURE,
crate::COMMENT_KEY,
];
pub const ENV_NOTIFY_REDIS_ENABLE: &str = "RUSTFS_NOTIFY_REDIS_ENABLE";
pub const ENV_NOTIFY_REDIS_URL: &str = "RUSTFS_NOTIFY_REDIS_URL";
pub const ENV_NOTIFY_REDIS_CHANNEL: &str = "RUSTFS_NOTIFY_REDIS_CHANNEL";
pub const ENV_NOTIFY_REDIS_USERNAME: &str = "RUSTFS_NOTIFY_REDIS_USERNAME";
pub const ENV_NOTIFY_REDIS_PASSWORD: &str = "RUSTFS_NOTIFY_REDIS_PASSWORD";
pub const ENV_NOTIFY_REDIS_KEEP_ALIVE_INTERVAL: &str = "RUSTFS_NOTIFY_REDIS_KEEP_ALIVE_INTERVAL";
pub const ENV_NOTIFY_REDIS_QUEUE_DIR: &str = "RUSTFS_NOTIFY_REDIS_QUEUE_DIR";
pub const ENV_NOTIFY_REDIS_QUEUE_LIMIT: &str = "RUSTFS_NOTIFY_REDIS_QUEUE_LIMIT";
pub const ENV_NOTIFY_REDIS_MAX_RETRY_ATTEMPTS: &str = "RUSTFS_NOTIFY_REDIS_MAX_RETRY_ATTEMPTS";
pub const ENV_NOTIFY_REDIS_RECONNECT_RETRY_ATTEMPTS: &str = "RUSTFS_NOTIFY_REDIS_RECONNECT_RETRY_ATTEMPTS";
pub const ENV_NOTIFY_REDIS_MIN_RETRY_DELAY: &str = "RUSTFS_NOTIFY_REDIS_MIN_RETRY_DELAY";
pub const ENV_NOTIFY_REDIS_MAX_RETRY_DELAY: &str = "RUSTFS_NOTIFY_REDIS_MAX_RETRY_DELAY";
pub const ENV_NOTIFY_REDIS_CONNECTION_TIMEOUT: &str = "RUSTFS_NOTIFY_REDIS_CONNECTION_TIMEOUT";
pub const ENV_NOTIFY_REDIS_RESPONSE_TIMEOUT: &str = "RUSTFS_NOTIFY_REDIS_RESPONSE_TIMEOUT";
pub const ENV_NOTIFY_REDIS_PIPELINE_BUFFER_SIZE: &str = "RUSTFS_NOTIFY_REDIS_PIPELINE_BUFFER_SIZE";
pub const ENV_NOTIFY_REDIS_TLS_POLICY: &str = "RUSTFS_NOTIFY_REDIS_TLS_POLICY";
pub const ENV_NOTIFY_REDIS_TLS_CA: &str = "RUSTFS_NOTIFY_REDIS_TLS_CA";
pub const ENV_NOTIFY_REDIS_TLS_CLIENT_CERT: &str = "RUSTFS_NOTIFY_REDIS_TLS_CLIENT_CERT";
pub const ENV_NOTIFY_REDIS_TLS_CLIENT_KEY: &str = "RUSTFS_NOTIFY_REDIS_TLS_CLIENT_KEY";
pub const ENV_NOTIFY_REDIS_TLS_ALLOW_INSECURE: &str = "RUSTFS_NOTIFY_REDIS_TLS_ALLOW_INSECURE";
pub const ENV_NOTIFY_REDIS_KEYS: &[&str; 20] = &[
ENV_NOTIFY_REDIS_ENABLE,
ENV_NOTIFY_REDIS_URL,
ENV_NOTIFY_REDIS_CHANNEL,
ENV_NOTIFY_REDIS_USERNAME,
ENV_NOTIFY_REDIS_PASSWORD,
ENV_NOTIFY_REDIS_KEEP_ALIVE_INTERVAL,
ENV_NOTIFY_REDIS_QUEUE_DIR,
ENV_NOTIFY_REDIS_QUEUE_LIMIT,
ENV_NOTIFY_REDIS_MAX_RETRY_ATTEMPTS,
ENV_NOTIFY_REDIS_RECONNECT_RETRY_ATTEMPTS,
ENV_NOTIFY_REDIS_MIN_RETRY_DELAY,
ENV_NOTIFY_REDIS_MAX_RETRY_DELAY,
ENV_NOTIFY_REDIS_CONNECTION_TIMEOUT,
ENV_NOTIFY_REDIS_RESPONSE_TIMEOUT,
ENV_NOTIFY_REDIS_PIPELINE_BUFFER_SIZE,
ENV_NOTIFY_REDIS_TLS_POLICY,
ENV_NOTIFY_REDIS_TLS_CA,
ENV_NOTIFY_REDIS_TLS_CLIENT_CERT,
ENV_NOTIFY_REDIS_TLS_CLIENT_KEY,
ENV_NOTIFY_REDIS_TLS_ALLOW_INSECURE,
];