From e980ff617ae95b4cb33e4bb310b5da6451a42708 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Fri, 20 Jun 2025 01:32:58 -0400 Subject: [PATCH 1/2] send analytics flag to analytics server --- src/utils/update.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/utils/update.rs b/src/utils/update.rs index f6fe8680f..aa6bb2826 100644 --- a/src/utils/update.rs +++ b/src/utils/update.rs @@ -20,8 +20,9 @@ use std::time::Duration; use anyhow::anyhow; use chrono::{DateTime, Utc}; +use http::header; -use crate::about; +use crate::{about, parseable::PARSEABLE}; use super::uid; @@ -32,11 +33,19 @@ pub struct LatestRelease { } pub async fn get_latest(deployment_id: &uid::Uid) -> Result { + let send_analytics = PARSEABLE.options.send_analytics.to_string(); + let mut headers = header::HeaderMap::new(); + headers.insert( + "P_SEND_ANONYMOUS_USAGE_DATA", + header::HeaderValue::from_str(send_analytics.as_str()).expect("valid header value"), + ); let agent = reqwest::ClientBuilder::new() .user_agent(about::user_agent(deployment_id)) + .default_headers(headers) .timeout(Duration::from_secs(8)) .build() .expect("client can be built on this system"); + let json: serde_json::Value = agent .get("https://download.parseable.io/latest-version") .send() From 1eddaa721a8f845b6829f78ab0f67889f402a68a Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Fri, 20 Jun 2025 08:21:54 -0700 Subject: [PATCH 2/2] remove additional header, send_analytics in user_agent --- src/about.rs | 7 ++++--- src/utils/update.rs | 11 ++--------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/about.rs b/src/about.rs index 01294e3a5..f2f4593b5 100644 --- a/src/about.rs +++ b/src/about.rs @@ -71,14 +71,15 @@ pub fn get_latest_release() -> &'static Option { } // User Agent for Download API call -// Format: Parseable/// (; ) -pub fn user_agent(uid: &Ulid) -> String { +// Format: Parseable//// (; ) +pub fn user_agent(uid: &Ulid, send_analytics: bool) -> String { analytics::refresh_sys_info(); format!( - "Parseable/{}/{}/{} ({:?}; {})", + "Parseable/{}/{}/{}/{} ({:?}; {})", uid, current().released_version, current().commit_hash, + send_analytics, System::name().unwrap_or_default(), platform() ) diff --git a/src/utils/update.rs b/src/utils/update.rs index aa6bb2826..b0020ae58 100644 --- a/src/utils/update.rs +++ b/src/utils/update.rs @@ -20,7 +20,6 @@ use std::time::Duration; use anyhow::anyhow; use chrono::{DateTime, Utc}; -use http::header; use crate::{about, parseable::PARSEABLE}; @@ -33,15 +32,9 @@ pub struct LatestRelease { } pub async fn get_latest(deployment_id: &uid::Uid) -> Result { - let send_analytics = PARSEABLE.options.send_analytics.to_string(); - let mut headers = header::HeaderMap::new(); - headers.insert( - "P_SEND_ANONYMOUS_USAGE_DATA", - header::HeaderValue::from_str(send_analytics.as_str()).expect("valid header value"), - ); + let send_analytics = PARSEABLE.options.send_analytics; let agent = reqwest::ClientBuilder::new() - .user_agent(about::user_agent(deployment_id)) - .default_headers(headers) + .user_agent(about::user_agent(deployment_id, send_analytics)) .timeout(Duration::from_secs(8)) .build() .expect("client can be built on this system");