feat: config crate with legacy env names

This commit is contained in:
2026-10-25 21:00:42 +01:00
parent ab4e4c3138
commit 8bdf55cfe1
20 changed files with 1025 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
use std::fmt;
use serde::Deserialize;
use crate::lenient;
#[derive(Clone, Deserialize)]
#[serde(default)]
pub struct AuthConfig {
pub jwt_secret: Option<String>,
#[serde(deserialize_with = "lenient::number")]
pub jwt_ttl_seconds: u64,
#[serde(deserialize_with = "lenient::number")]
pub refresh_ttl_seconds: u64,
}
impl Default for AuthConfig {
fn default() -> Self {
Self {
jwt_secret: None,
jwt_ttl_seconds: 900,
refresh_ttl_seconds: 2_592_000,
}
}
}
impl fmt::Debug for AuthConfig {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("AuthConfig")
.field(
"jwt_secret",
&self.jwt_secret.as_ref().map(|_| "<redacted>"),
)
.field("jwt_ttl_seconds", &self.jwt_ttl_seconds)
.field("refresh_ttl_seconds", &self.refresh_ttl_seconds)
.finish()
}
}