pub struct Config;Expand description
Server-wide configuration, loaded from the encrypted secrets.enc file at startup.
Implementations§
Source§impl Config
impl Config
Sourcepub fn load() -> Result<(), Box<dyn Error>>
pub fn load() -> Result<(), Box<dyn Error>>
Loads configuration from secrets.enc and initializes the global singleton.
On first run (no secrets.enc exists), walks the admin through the interactive setup
wizard, prompts for a passphrase, encrypts the config, saves it, then loads it.
On subsequent runs, prompts for the passphrase and decrypts the existing file.
Sourcepub fn reload() -> Result<(), Box<dyn Error>>
pub fn reload() -> Result<(), Box<dyn Error>>
Reloads configuration from secrets.enc without restarting the server.
Sourcepub fn load_with_passphrase(passphrase: &str) -> Result<(), Box<dyn Error>>
pub fn load_with_passphrase(passphrase: &str) -> Result<(), Box<dyn Error>>
Loads config with a known passphrase (used during setup and testing).
Sourcepub fn get() -> Guard<Arc<ConfigFields>>
pub fn get() -> Guard<Arc<ConfigFields>>
Returns a snapshot of the current configuration.
Sourcepub fn update(
config_key: &str,
config_value: &str,
) -> Result<(), Box<dyn Error>>
pub fn update( config_key: &str, config_value: &str, ) -> Result<(), Box<dyn Error>>
Updates a single config field by key.
§Arguments
config_key- The name of the field to update (e.g., “server_port”, “jwt_secret”)config_value- The new value as a string (will be parsed to the field’s type)
§Error
Returns an error if:
- The key is unknown
- The value cannot be parsed to the field’s type
- Config is not initialized
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].