From 0b2f349aec55098e5794ca136cdfed702dba8723 Mon Sep 17 00:00:00 2001 From: Firstyear Date: Tue, 17 Dec 2024 14:18:30 +1000 Subject: [PATCH] SCIM Sync Missing Annotation (#3300) A missing serde annotion in SCIM Sync caused groups to fail to sync unless they had a description. This resolves the failure by adding the correct annotation to skip None fields in groups. --- proto/src/scim_v1/synch.rs | 1 + tools/iam_migrations/freeipa/src/main.rs | 2 +- tools/iam_migrations/ldap/src/main.rs | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/proto/src/scim_v1/synch.rs b/proto/src/scim_v1/synch.rs index 37e014d29..24a3adb81 100644 --- a/proto/src/scim_v1/synch.rs +++ b/proto/src/scim_v1/synch.rs @@ -220,6 +220,7 @@ pub struct ScimExternalMember { pub external_id: String, } +#[skip_serializing_none] #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "snake_case")] pub struct ScimSyncGroup { diff --git a/tools/iam_migrations/freeipa/src/main.rs b/tools/iam_migrations/freeipa/src/main.rs index fe19bc8ac..24f621c45 100644 --- a/tools/iam_migrations/freeipa/src/main.rs +++ b/tools/iam_migrations/freeipa/src/main.rs @@ -942,7 +942,7 @@ fn ipa_to_scim_entry( .build(); let scim_entry_generic: ScimEntry = scim_sync_person.try_into().map_err(|json_err| { - error!(?json_err, "Unable to convert group to scim_sync_group"); + error!(?json_err, "Unable to convert person to scim_sync_person"); })?; Ok(Some(scim_entry_generic)) diff --git a/tools/iam_migrations/ldap/src/main.rs b/tools/iam_migrations/ldap/src/main.rs index b912d5240..05e939632 100644 --- a/tools/iam_migrations/ldap/src/main.rs +++ b/tools/iam_migrations/ldap/src/main.rs @@ -633,7 +633,7 @@ fn ldap_to_scim_entry( .build(); let scim_entry_generic: ScimEntry = scim_sync_person.try_into().map_err(|json_err| { - error!(?json_err, "Unable to convert group to scim_sync_group"); + error!(?json_err, "Unable to convert person to scim_sync_person"); })?; Ok(Some(scim_entry_generic))