diff --git a/relay-server/src/processing/logs/process.rs b/relay-server/src/processing/logs/process.rs index d5265b73a9..f4405f35e4 100644 --- a/relay-server/src/processing/logs/process.rs +++ b/relay-server/src/processing/logs/process.rs @@ -132,41 +132,13 @@ fn normalize_log(log: &mut Annotated, meta: &RequestMeta) -> Result<()> #[cfg(test)] mod tests { - use relay_pii::{DataScrubbingConfig, PiiConfig}; + use relay_pii::PiiConfig; use relay_protocol::assert_annotated_snapshot; - use relay_sampling::evaluation::ReservoirCounters; use crate::services::projects::project::ProjectInfo; use super::*; - fn make_context( - scrubbing_config: DataScrubbingConfig, - pii_config: Option, - ) -> Context<'static> { - let config = Box::leak(Box::new(relay_config::Config::default())); - let global_config = Box::leak(Box::new(relay_dynamic_config::GlobalConfig::default())); - let project_info = Box::leak(Box::new(ProjectInfo { - config: relay_dynamic_config::ProjectConfig { - pii_config, - datascrubbing_settings: scrubbing_config, - ..Default::default() - }, - ..Default::default() - })); - let rate_limits = Box::leak(Box::new(relay_quotas::RateLimits::default())); - let reservoir_counters = Box::leak(Box::new(ReservoirCounters::default())); - - Context { - config, - global_config, - project_info, - rate_limits, - sampling_project_info: None, - reservoir_counters, - } - } - #[test] fn test_scrub_log_base_fields() { let json = r#" @@ -182,12 +154,23 @@ mod tests { let mut data = Annotated::::from_json(json).unwrap(); - let mut scrubbing_config = relay_pii::DataScrubbingConfig::default(); - scrubbing_config.scrub_data = true; - scrubbing_config.scrub_defaults = true; + let mut datascrubbing_settings = relay_pii::DataScrubbingConfig::default(); + datascrubbing_settings.scrub_data = true; + datascrubbing_settings.scrub_defaults = true; + + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + datascrubbing_settings, + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; - let ctx = make_context(scrubbing_config, None); scrub_log(&mut data, ctx).unwrap(); + assert_annotated_snapshot!(data, @r#" { "timestamp": 1544719860.0, @@ -252,7 +235,17 @@ mod tests { })) .unwrap(); - let ctx = make_context(DataScrubbingConfig::default(), Some(deep_wildcard_config)); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + pii_config: Some(deep_wildcard_config), + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; + scrub_log(&mut data, ctx).unwrap(); assert_annotated_snapshot!(data, @r#" @@ -309,7 +302,17 @@ mod tests { })) .unwrap(); - let ctx = make_context(DataScrubbingConfig::default(), Some(config)); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + pii_config: Some(config), + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; + scrub_log(&mut data, ctx).unwrap(); assert_annotated_snapshot!(data, @r###" @@ -365,7 +368,17 @@ mod tests { })) .unwrap(); - let ctx = make_context(DataScrubbingConfig::default(), Some(config)); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + pii_config: Some(config), + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; + scrub_log(&mut data, ctx).unwrap(); assert_annotated_snapshot!(data, @r#" diff --git a/relay-server/src/processing/spans/process.rs b/relay-server/src/processing/spans/process.rs index 941c42e38e..a6797bab55 100644 --- a/relay-server/src/processing/spans/process.rs +++ b/relay-server/src/processing/spans/process.rs @@ -267,41 +267,13 @@ fn span_duration(span: &SpanV2) -> Option { #[cfg(test)] mod tests { use chrono::DateTime; - use relay_pii::{DataScrubbingConfig, PiiConfig}; + use relay_pii::PiiConfig; use relay_protocol::SerializableAnnotated; - use relay_sampling::evaluation::ReservoirCounters; use crate::services::projects::project::ProjectInfo; use super::*; - fn make_context( - scrubbing_config: DataScrubbingConfig, - pii_config: Option, - ) -> Context<'static> { - let config = Box::leak(Box::new(relay_config::Config::default())); - let global_config = Box::leak(Box::new(relay_dynamic_config::GlobalConfig::default())); - let project_info = Box::leak(Box::new(ProjectInfo { - config: relay_dynamic_config::ProjectConfig { - pii_config, - datascrubbing_settings: scrubbing_config, - ..Default::default() - }, - ..Default::default() - })); - let rate_limits = Box::leak(Box::new(relay_quotas::RateLimits::default())); - let reservoir_counters = Box::leak(Box::new(ReservoirCounters::default())); - - Context { - config, - global_config, - project_info, - rate_limits, - sampling_project_info: None, - reservoir_counters, - } - } - #[test] fn test_scrub_span_pii_default_rules_links() { // `user.name`, `sentry.release`, and `url.path` are marked as follows in `sentry-conventions`: @@ -337,17 +309,26 @@ mod tests { let mut data = Annotated::::from_json(json).unwrap(); - let mut scrubbing_config = relay_pii::DataScrubbingConfig::default(); - scrubbing_config.scrub_data = true; - scrubbing_config.scrub_defaults = true; - scrubbing_config.scrub_ip_addresses = true; - scrubbing_config.sensitive_fields = vec![ + let mut datascrubbing_settings = relay_pii::DataScrubbingConfig::default(); + datascrubbing_settings.scrub_data = true; + datascrubbing_settings.scrub_defaults = true; + datascrubbing_settings.scrub_ip_addresses = true; + datascrubbing_settings.sensitive_fields = vec![ "value".to_owned(), // Make sure the inner 'value' of the attribute object isn't scrubbed. "very_sensitive_data".to_owned(), ]; - scrubbing_config.exclude_fields = vec!["public_data".to_owned()]; + datascrubbing_settings.exclude_fields = vec!["public_data".to_owned()]; - let ctx = make_context(scrubbing_config, None); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + datascrubbing_settings, + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; scrub_span(&mut data, ctx).unwrap(); let link = data.value().unwrap().links.value().unwrap()[0] @@ -450,10 +431,10 @@ mod tests { let mut data = Annotated::::from_json(json).unwrap(); - let mut scrubbing_config = relay_pii::DataScrubbingConfig::default(); - scrubbing_config.scrub_data = true; - scrubbing_config.scrub_defaults = false; - scrubbing_config.scrub_ip_addresses = false; + let mut datascrubbing_settings = relay_pii::DataScrubbingConfig::default(); + datascrubbing_settings.scrub_data = true; + datascrubbing_settings.scrub_defaults = false; + datascrubbing_settings.scrub_ip_addresses = false; let config = serde_json::from_value::(serde_json::json!( { @@ -546,7 +527,17 @@ mod tests { )) .unwrap(); - let ctx = make_context(scrubbing_config, Some(config)); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + pii_config: Some(config), + datascrubbing_settings, + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; scrub_span(&mut data, ctx).unwrap(); let link = data.value().unwrap().links.value().unwrap()[0] .value() diff --git a/relay-server/src/processing/trace_attachments/process.rs b/relay-server/src/processing/trace_attachments/process.rs index 23ba567683..c4a70f10fb 100644 --- a/relay-server/src/processing/trace_attachments/process.rs +++ b/relay-server/src/processing/trace_attachments/process.rs @@ -169,9 +169,8 @@ pub fn scrub_attachment<'a>( #[cfg(test)] mod tests { use relay_event_schema::protocol::TraceAttachmentMeta; - use relay_pii::{DataScrubbingConfig, PiiConfig}; + use relay_pii::PiiConfig; use relay_protocol::SerializableAnnotated; - use relay_sampling::evaluation::ReservoirCounters; use uuid::Uuid; use crate::envelope::ParentId; @@ -179,33 +178,6 @@ mod tests { use super::*; - fn make_context( - scrubbing_config: DataScrubbingConfig, - pii_config: Option, - ) -> Context<'static> { - let config = Box::leak(Box::new(relay_config::Config::default())); - let global_config = Box::leak(Box::new(relay_dynamic_config::GlobalConfig::default())); - let project_info = Box::leak(Box::new(ProjectInfo { - config: relay_dynamic_config::ProjectConfig { - pii_config, - datascrubbing_settings: scrubbing_config, - ..Default::default() - }, - ..Default::default() - })); - let rate_limits = Box::leak(Box::new(relay_quotas::RateLimits::default())); - let reservoir_counters = Box::leak(Box::new(ReservoirCounters::default())); - - Context { - config, - global_config, - project_info, - rate_limits, - sampling_project_info: None, - reservoir_counters, - } - } - #[test] fn test_scrub_attachment_body() { let pii_config = serde_json::from_value::(serde_json::json!({ @@ -225,7 +197,17 @@ mod tests { body: Bytes::from("Some IP: 127.0.0.1"), }; - let ctx = make_context(DataScrubbingConfig::default(), Some(pii_config)); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + pii_config: Some(pii_config), + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; + scrub_attachment(&mut attachment, ctx).unwrap(); assert_eq!(attachment.body, "Some IP: *********"); @@ -262,7 +244,17 @@ mod tests { body: Bytes::from("Some attachment body"), }; - let ctx = make_context(DataScrubbingConfig::default(), Some(pii_config)); + let ctx = Context { + project_info: &ProjectInfo { + config: relay_dynamic_config::ProjectConfig { + pii_config: Some(pii_config), + ..Default::default() + }, + ..Default::default() + }, + ..Context::for_test() + }; + scrub_attachment(&mut attachment, ctx).unwrap(); let attrs = &attachment.meta.value().unwrap().attributes;