in core/server/src/configs/config_provider.rs [208:244]
fn data(&self) -> Result<FigmentMap<Profile, Dict>, Error> {
let default_config = toml::to_string(&ServerConfig::default())
.expect("Cannot serialize default ServerConfig. Something's terribly wrong.");
let toml_value: TomlValue = toml::from_str(&default_config).unwrap();
let mut source_dict = Dict::new();
if let TomlValue::Table(table) = toml_value {
Self::walk_toml_table_to_dict("", table, &mut source_dict);
}
let mut new_dict = Dict::new();
for (key, mut value) in env::vars() {
let env_key = key.to_uppercase();
if !env_key.starts_with(self.prefix.as_str()) {
continue;
}
let keys: Vec<String> = env_key[self.prefix.len()..]
.split('_')
.map(|k| k.to_lowercase())
.collect();
let env_var_value = Self::try_parse_value(&value);
if SECRET_KEYS.contains(&env_key.as_str()) {
value = "******".to_string();
}
println!("{env_key} value changed to: {value} from environment variable");
Self::insert_overridden_values_from_env(
&source_dict,
&mut new_dict,
keys.clone(),
env_var_value.clone(),
);
}
let mut data = FigmentMap::new();
data.insert(Profile::default(), new_dict);
Ok(data)
}