diff --git a/crates/directory/src/core/principal.rs b/crates/directory/src/core/principal.rs index a274f2a5..85b67fcf 100644 --- a/crates/directory/src/core/principal.rs +++ b/crates/directory/src/core/principal.rs @@ -7,15 +7,15 @@ use std::{collections::hash_map::Entry, fmt, str::FromStr}; use serde::{ + Deserializer, Serializer, de::{self, IgnoredAny, Visitor}, ser::SerializeMap, - Deserializer, Serializer, }; use store::U64_LEN; use crate::{ + Permission, Principal, ROLE_ADMIN, Type, backend::internal::{PrincipalField, PrincipalUpdate, PrincipalValue}, - Permission, Principal, Type, ROLE_ADMIN, }; impl Principal { @@ -369,7 +369,10 @@ impl Principal { pub fn update_external(&mut self, mut external: Principal) -> Vec { let mut updates = Vec::new(); - if let Some(name) = external.take_str(PrincipalField::Description) { + if let Some(name) = external + .take_str(PrincipalField::Description) + .filter(|s| !s.is_empty()) + { if self.get_str(PrincipalField::Description) != Some(name.as_str()) { updates.push(PrincipalUpdate::set( PrincipalField::Description, diff --git a/crates/trc/src/serializers/json.rs b/crates/trc/src/serializers/json.rs index 56b42637..c8801704 100644 --- a/crates/trc/src/serializers/json.rs +++ b/crates/trc/src/serializers/json.rs @@ -6,11 +6,11 @@ use crate::{Error, Event, EventDetails, Key, Value}; use ahash::AHashSet; -use base64::{engine::general_purpose::STANDARD, Engine}; +use base64::{Engine, engine::general_purpose::STANDARD}; use mail_parser::DateTime; use serde::{ - ser::{SerializeMap, SerializeSeq}, Serialize, Serializer, + ser::{SerializeMap, SerializeSeq}, }; struct Keys<'x> { @@ -135,7 +135,7 @@ impl Serialize for JsonEventSerializer> { let keys_len = self.inner.keys.len() + self.inner.span_keys.len(); let mut seen_keys = AHashSet::with_capacity(keys_len); let mut keys = serializer.serialize_map(Some(keys_len))?; - for (key, value) in self.inner.span_keys.iter().chain(self.inner.keys.iter()) { + for (key, value) in self.inner.keys.iter().chain(self.inner.span_keys.iter()) { if !matches!(value, Value::None) && (self.with_spans || !matches!(key, Key::SpanId)) && seen_keys.insert(*key)