2024-02-29 08:05:29 -08:00
|
|
|
use serde_derive::Deserialize;
|
2024-03-01 08:07:49 -08:00
|
|
|
use services_mango_lib::env_helper::string_or_env;
|
2024-02-29 08:05:29 -08:00
|
|
|
use services_mango_lib::postgres_configuration::PostgresConfiguration;
|
|
|
|
use std::collections::HashSet;
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Deserialize)]
|
|
|
|
pub struct Configuration {
|
|
|
|
pub postgres: Option<PostgresConfiguration>,
|
2024-03-01 08:07:49 -08:00
|
|
|
#[serde(deserialize_with = "string_or_env")]
|
2024-02-29 08:05:29 -08:00
|
|
|
pub rpc_http_url: String,
|
2024-03-01 08:07:49 -08:00
|
|
|
#[serde(deserialize_with = "string_or_env")]
|
2024-02-29 08:05:29 -08:00
|
|
|
pub rpc_ws_url: String,
|
2024-03-01 08:07:49 -08:00
|
|
|
#[serde(deserialize_with = "string_or_env")]
|
2024-02-29 08:05:29 -08:00
|
|
|
pub mango_group: String,
|
|
|
|
pub computing_configuration: ComputingConfiguration,
|
|
|
|
pub logging_configuration: LoggingConfiguration,
|
|
|
|
pub persistence_configuration: PersistenceConfiguration,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Deserialize)]
|
|
|
|
pub struct ComputingConfiguration {
|
|
|
|
pub recompute_interval_ms: u64,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Deserialize)]
|
|
|
|
pub struct LoggingConfiguration {
|
|
|
|
pub log_health_to_stdout: bool,
|
|
|
|
pub log_health_for_accounts: Option<HashSet<String>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Clone, Debug, Deserialize)]
|
|
|
|
pub struct PersistenceConfiguration {
|
|
|
|
pub enabled: bool,
|
|
|
|
pub history_time_to_live_secs: i64,
|
|
|
|
pub persist_max_periodicity_secs: i64,
|
|
|
|
pub max_failure_duration_secs: i64,
|
|
|
|
pub max_retry_count: u64,
|
|
|
|
pub snapshot_queue_length: usize,
|
|
|
|
}
|