diff --git a/.env b/.env index bbbe3a5..131d6d5 100644 --- a/.env +++ b/.env @@ -1,5 +1,6 @@ SECRET_MAIN_KEY=Somesupersecretpassword!!!45345435 SECRET_KEY=AmIGoodEnoughForYou? +SERVICE_PASSPHRASE=T5OCHDHadAtuOWIqRAS7u8XHDDkzKT1Uvvw7mGMkNzKjVdlHA8xGdILf2adDHspO ROOT_DIRECTORY=/path/to/root POSTGRES_MAIN_USER=myuser POSTGRES_MAIN_PASSWORD=password diff --git a/.env.sample b/.env.sample index bbbe3a5..131d6d5 100644 --- a/.env.sample +++ b/.env.sample @@ -1,5 +1,6 @@ SECRET_MAIN_KEY=Somesupersecretpassword!!!45345435 SECRET_KEY=AmIGoodEnoughForYou? +SERVICE_PASSPHRASE=T5OCHDHadAtuOWIqRAS7u8XHDDkzKT1Uvvw7mGMkNzKjVdlHA8xGdILf2adDHspO ROOT_DIRECTORY=/path/to/root POSTGRES_MAIN_USER=myuser POSTGRES_MAIN_PASSWORD=password diff --git a/Cargo.lock b/Cargo.lock index 2873e77..d52baf3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -297,7 +297,7 @@ checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "icarus_envy" -version = "0.3.0" +version = "0.3.1" dependencies = [ "async-std", "const_format", diff --git a/Cargo.toml b/Cargo.toml index 3326aaf..0f08fad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_envy" -version = "0.3.0" +version = "0.3.1" edition = "2024" rust-version = "1.88" diff --git a/src/environment.rs b/src/environment.rs index 672c297..1b36c8e 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -8,6 +8,11 @@ pub async fn get_secret_main_key() -> String { std::env::var(crate::keys::SECRET_MAIN_KEY).expect(crate::keys::error::SECRET_MAIN_KEY) } +pub async fn get_service_passphrase() -> String { + dotenvy::dotenv().ok(); + std::env::var(crate::keys::SERVICE_PASSPHRASE).expect(crate::keys::error::SERVICE_LOGIN) +} + pub async fn get_secret_key() -> String { dotenvy::dotenv().ok(); std::env::var(crate::keys::SECRET_KEY).expect(crate::keys::error::SECRET_KEY) diff --git a/src/keys.rs b/src/keys.rs index cde5fab..2d88721 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -5,6 +5,9 @@ pub const DB_URL: &str = "DATABASE_URL"; // Used for the icarus app pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY"; +// Environment key for service logins +pub const SERVICE_PASSPHRASE: &str = "SERVICE_PASSPHRASE"; + // Environment key for secret key // Generic use of secret key that could be found in various apps pub const SECRET_KEY: &str = "SECRET_KEY"; @@ -20,8 +23,9 @@ pub mod error { pub const GENERAL_ERROR: &str = "must not be set in enviornment file"; pub const DB_URL: &str = concatcp!(super::DB_URL, " ", GENERAL_ERROR); - pub const SECRET_KEY: &str = concatcp!(super::SECRET_KEY, " ", GENERAL_ERROR); pub const SECRET_MAIN_KEY: &str = concatcp!(super::SECRET_MAIN_KEY, " ", GENERAL_ERROR); + pub const SERVICE_LOGIN: &str = concatcp!(super::SERVICE_PASSPHRASE, " ", GENERAL_ERROR); + pub const SECRET_KEY: &str = concatcp!(super::SECRET_KEY, " ", GENERAL_ERROR); pub const ROOT_DIRECTORY: &str = concatcp!(super::ROOT_DIRECTORY, " ", GENERAL_ERROR); pub const ICARUS_BASE_API_URL: &str = concatcp!(super::ICARUS_BASE_API_URL, " ", GENERAL_ERROR); } diff --git a/tests/test.rs b/tests/test.rs index b5d39bb..23aaebc 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -20,6 +20,16 @@ mod tests { ) } + #[test] + fn test_get_service_passphrase() { + let result = async_std::task::block_on(icarus_envy::environment::get_service_passphrase()); + assert_eq!( + result, "T5OCHDHadAtuOWIqRAS7u8XHDDkzKT1Uvvw7mGMkNzKjVdlHA8xGdILf2adDHspO", + "SERVICE_PASSPHRASE does not match {:?}", + result + ) + } + #[test] fn test_get_secret_key() { let result = async_std::task::block_on(icarus_envy::environment::get_secret_key());