diff --git a/clients/native/src/commands/run.rs b/clients/native/src/commands/run.rs index b4155101f7..93936a7d24 100644 --- a/clients/native/src/commands/run.rs +++ b/clients/native/src/commands/run.rs @@ -113,7 +113,7 @@ pub(crate) async fn execute(args: &Run) -> Result<(), Box Result<(), Box Result<(), NetworkRequesterError> { } }; + if !config.validate() { + return Err(NetworkRequesterError::ConfigValidationFailure); + } + let override_config_fields = OverrideConfig::from(args.clone()); config = override_config(config, override_config_fields); diff --git a/service-providers/network-requester/src/config/mod.rs b/service-providers/network-requester/src/config/mod.rs index 78ca9aae89..3adc1739fd 100644 --- a/service-providers/network-requester/src/config/mod.rs +++ b/service-providers/network-requester/src/config/mod.rs @@ -119,6 +119,11 @@ impl Config { cfg } + pub fn validate(&self) -> bool { + // no other sections have explicit requirements (yet) + self.base.validate() + } + // getters pub fn get_config_file_save_location(&self) -> PathBuf { self.config_directory().join(Self::config_file_name()) diff --git a/service-providers/network-requester/src/error.rs b/service-providers/network-requester/src/error.rs index 3831594846..2a6bd4d5d6 100644 --- a/service-providers/network-requester/src/error.rs +++ b/service-providers/network-requester/src/error.rs @@ -21,6 +21,10 @@ pub enum NetworkRequesterError { #[error("failed to load configuration file: {0}")] FailedToLoadConfig(String), + // TODO: add more details here + #[error("Failed to validate the loaded config")] + ConfigValidationFailure, + #[error("failed local version check, client and config mismatch")] FailedLocalVersionCheck,