diff --git a/services/backup/src/config.rs b/services/backup/src/config.rs --- a/services/backup/src/config.rs +++ b/services/backup/src/config.rs @@ -23,6 +23,9 @@ #[arg(env = "IDENTITY_SERVICE_ENDPOINT")] #[arg(long, default_value = "http://localhost:50054")] pub identity_endpoint: String, + #[arg(env = "REMOVE_OLD_BACKUPS")] + #[arg(long, default_value_t = false)] + pub remove_old_backups: bool, } /// Stores configuration parsed from command-line arguments diff --git a/services/backup/src/database/mod.rs b/services/backup/src/database/mod.rs --- a/services/backup/src/database/mod.rs +++ b/services/backup/src/database/mod.rs @@ -5,8 +5,9 @@ backup_item::{BackupItem, OrderedBackupItem}, log_item::LogItem, }; -use crate::constants::{ - backup_table, error_types, log_table, LOG_DEFAULT_PAGE_SIZE, +use crate::{ + constants::{backup_table, error_types, log_table, LOG_DEFAULT_PAGE_SIZE}, + CONFIG, }; use aws_sdk_dynamodb::{ operation::get_item::GetItemOutput, @@ -155,9 +156,13 @@ user_id: &str, blob_client: &BlobServiceClient, ) -> Result, Error> { - let items = self.query_ordered_backups_index(user_id, None).await?; let mut removed_backups = vec![]; + if !CONFIG.remove_old_backups { + return Ok(removed_backups); + } + + let items = self.query_ordered_backups_index(user_id, None).await?; let Some(latest) = items.iter().map(|item| item.created).max() else { return Ok(removed_backups); }; diff --git a/services/docker-compose.tests.yml b/services/docker-compose.tests.yml --- a/services/docker-compose.tests.yml +++ b/services/docker-compose.tests.yml @@ -54,6 +54,7 @@ environment: BLOB_SERVICE_URL: 'http://blob-server:50053' COMM_SERVICES_DISABLE_CSAT_VERIFICATION: 'true' + REMOVE_OLD_BACKUPS: 'true' IDENTITY_SERVICE_ENDPOINT: 'http://identity-server:50054' blob-server: