Skip to content

nitnelave/figment_file_env_provider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Figment FileEnv Provider   ci.svg crates.io docs.rs

Figment provider for optionally file-based env config values.

use serde::Deserialize;
use figment::{Figment, providers::Env};
use figment_file_env_provider::FileEnv;

#[derive(Deserialize)]
struct Config {
  frobnicate: String,
  foo: u64,
}

let config: Config = Figment::new()
    .merge(FileEnv::from_env(Env::prefixed("APP_")))
    .extract()?;

Overview

This crate contains the FileEnv provider for Figment, to allow loading configuration values from either environment variables or files. This is especially useful for secret management in combination with containers.

For instance, to pass an API key to the configuration, you could use either the environment variable API_KEY=abc123deadbeef, or you could write that API key to a file /secrets/api_key and pass the env variable API_KEY_FILE=/secrets/api_key.

See the documentation for a detailed usage guide and more information.

Usage

Add the following to your Cargo.toml:

[dependencies]
figment = { version = "0.10", features = ["env"] }
figment_file_env_provider = { version = "0.2" }

License

Figment_file_env_provider is licensed under either of the MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT).

About

Rust crate for a Figment provider for optionally file-based env config values.

Topics

Resources

License

Stars

Watchers

Forks

Languages