pub struct HaConfig {
pub backend: HaBackend,
pub endpoints: Vec<String>,
pub password: Option<String>,
pub tls: bool,
pub prefix: String,
pub leader: LeaderConfig,
pub rate_limit: DistributedRateLimitConfig,
pub audit_replication: AuditReplicationConfig,
}Expand description
Configuration for high availability mode.
Fields§
§backend: HaBackendBackend: “redis” or “etcd”
endpoints: Vec<String>Connection URL(s).
- Redis: “redis://localhost:6379” or “redis+sentinel://host:26379/mymaster”
- Etcd: “http://localhost:2379” (comma-separated for cluster)
password: Option<String>Password for backend authentication
tls: boolTLS enabled
prefix: StringKey prefix for all HA keys (default: “audex:”)
leader: LeaderConfigLeader election configuration
rate_limit: DistributedRateLimitConfigDistributed rate limiting configuration
audit_replication: AuditReplicationConfigAudit replication configuration
Implementations§
Source§impl HaConfig
impl HaConfig
Sourcepub fn resolve_password(&self) -> Option<String>
pub fn resolve_password(&self) -> Option<String>
Return the backend password, preferring the AUDEX_HA_PASSWORD environment
variable over the config file value.
§Security note (R3-L15)
Storing a plaintext password in the config file is discouraged. Set the
AUDEX_HA_PASSWORD environment variable instead; it takes precedence over
the password field in the config so that secrets can be injected at
runtime (e.g. via a secrets manager or container environment) without
persisting them on disk.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for HaConfig
impl<'de> Deserialize<'de> for HaConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for HaConfig
impl RefUnwindSafe for HaConfig
impl Send for HaConfig
impl Sync for HaConfig
impl Unpin for HaConfig
impl UnsafeUnpin for HaConfig
impl UnwindSafe for HaConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<D> DeserializeWith<JsonFormat> for Dwhere
D: DeserializeOwned,
impl<D> DeserializeWith<JsonFormat> for Dwhere
D: DeserializeOwned,
Source§fn deserialize_with(body: ResponseBody) -> Result<D, Error>
fn deserialize_with(body: ResponseBody) -> Result<D, Error>
Deserialize the response body using the specified format. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.