Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feat: Config refactor #39

Merged
merged 1 commit into from
Aug 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions config.sops.env
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ export PGPASSWORD=ENC[AES256_GCM,data:X3TtaVUJo59f,iv:+SWgwknL5Ny6pNONbAGGdmj9jy
export PGDATABASE=ENC[AES256_GCM,data:qC98S2R6YA5N,iv:+e/e5ahAcJe4Mt9H2IMNC07kpqa0JqnORd//HT2onnQ=,tag:9IH+Rc8e3tJZRBHfA4IJbA==,type:str]
export PGADMINUSER=ENC[AES256_GCM,data:YD/u2MO/qSo=,iv:d9rDi4XMs9h8qO5v9Kbc9sNFWM+sv11VjW0D71Mvk8w=,tag:FACLMqWWLTLPac6XwoVf5A==,type:str]
export PGADMINPASSWORD=ENC[AES256_GCM,data:wdsx7I8awH3slYrKKMLyPw==,iv:sTpaYEY+5JjBKiBHY28wnzRWxPQrJHrRp8MZ7SICDzA=,tag:xvULCDXaVkMUtFKx+aal/Q==,type:str]
export RUST_ARCH__DATABASE_URL=ENC[AES256_GCM,data:Df5Bf5vWKuPEMT4TyskWCb3xwDpH/8VgxGF2+NEAJEZl8Y6uTzKARA+oEDByK4xyhRtzj1iiRjiSt//HFU1W+CYP58xBYLbEB6TH5Q==,iv:LYKNfuCMI7dRUU7KfPrFCxhIImqY102iITijcRB9IOQ=,tag:g+bOKyM5HurD8tpvh2+cHg==,type:str]
export RUST_ARCH__DATABASE__DATABASE_URL=ENC[AES256_GCM,data:/zgTcMp5R7whLJ7hq/H5fta6rnuXI5zIiKpjG3ol0TYNcT0J8MMfq9H8L5B+UqO7/0FHO4uf8GaCSsVW3Yei6eOzQv3B8KC5jQ1hgQ==,iv:cBWZjo3P68rf3K/t6ienHSOuz7PMmYZqtjcVvtZqux8=,tag:a5IJaI9Ztias1mzZrwe8Tw==,type:str]
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0UjhLOXNkcEd1Y1RNWUhL\nUnk2eXFmR0hYS1I2VGFSeUtlKzZOTGZjMGg0Ck1iVlppV2JlRkpTLyswMjlHQ2dz\nemVxeGZhUERNakNqL3duNkU3OXdocmcKLS0tIEdSbVZHY1krLzFZZEZsSEZ1amoy\nL0M5OS9KYm10YlZZVEk0WVRvNFlUNTAKbTF0/0i5+fv78BZuU7H9kqMkdL3/pv64\nhnTznWuY2EIoflmrJYtj2WfhprE8aRgHjU+8FlnOb1ZJm7rG6Q7IGw==\n-----END AGE ENCRYPTED FILE-----\n
sops_age__list_0__map_recipient=age1p28u8xjm5sf7jdavc8xsqtw7lxgscefxs7a5dtqszr2885xeputsh9y64y
sops_lastmodified=2024-08-11T15:35:01Z
sops_mac=ENC[AES256_GCM,data:B9/bRUcG0YSUtpMRk5VEbrk093Ie4aEaYBUcj8xlnyjp6sI/Hwl6fITGWtP/NQkWwBCxNSgC3V/cjk4q9I7t5yKGDrUGJq8tZd/V901OferEJEG0XTqia+1uOopj3WA8kmbiwuHxSokc0xeab/FVtWEVH0tdJg3zhVSuXlH+Tzo=,iv:8eEKBvZabSsCfetIetF0xNwBTIK7ajqYIGdhO4xBkNk=,tag:BPZywwsv1CMaTlGsa+FqvA==,type:str]
sops_lastmodified=2024-08-13T17:45:48Z
sops_mac=ENC[AES256_GCM,data:7GNSdKlrz8daq6XJ0jPlXQZOEfADHOGAat5Ws+s77VlqiF406aBjgLl/O/22xFXJNiC6mF+eSRKwF+ZDeCrVEAmyVYhJNMuU9JaDcKZ1SwciaiILY51CfsZG+DxDGFKNZGqozuBF/ARDHLCFD+ivpak+gOc0+xWcmqRUPW8fPkQ=,iv:cBRxw0tg2n/1HlH4r0Mlt3UFPt6wnWuBEqs9VJu7c5I=,tag:jlnB0ZmaadbeoJ4KHKAw9g==,type:str]
sops_unencrypted_suffix=_unencrypted
sops_version=3.9.0
3 changes: 1 addition & 2 deletions crates/rust-arch/src/bin/rust-arch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ use tokio_graceful_shutdown::{SubsystemBuilder, Toplevel};
#[tokio::main]
async fn main() -> Result<()> {
let args: Args = clap::Parser::parse();

let config = RustArchConfig::load().context("Cannot load configuration")?;

match args.cmd {
Expand All @@ -25,7 +24,7 @@ async fn main() -> Result<()> {
let git_revision = env!("BUILD_GIT_HASH");
tracing::info!("RustArch {}-{}", crate_version, git_revision);

let arch_service = Arc::new(create_service(&config.database_url).await.context("Couldn't create service")?);
let arch_service = Arc::new(create_service(&config.database.database_url).await.context("Couldn't create service")?);

let server = Toplevel::new(|s| async move {
s.start(SubsystemBuilder::new("http_api", |h| start_server(3000, arch_service, h)));
Expand Down
7 changes: 6 additions & 1 deletion crates/rust-arch/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@ use serde::Deserialize;
use crate::error::Error;

#[derive(Debug, Deserialize)]
pub struct RustArchConfig {
pub struct RustArchDatabaseConfig {
/// (required) Fully qualified URL for accessing Postgres server.
/// e.g. postgres://user:password@host/database
pub database_url: String,
}

#[derive(Debug, Deserialize)]
pub struct RustArchConfig {
pub database: RustArchDatabaseConfig,
}

impl RustArchConfig {
pub fn load() -> Result<RustArchConfig, Error> {
let config = Config::builder()
Expand Down