Skip to content

Fix MS365 complex/string type#190

Open
gearnode wants to merge 4 commits intoelimity-com:masterfrom
getprobo:various-updates
Open

Fix MS365 complex/string type#190
gearnode wants to merge 4 commits intoelimity-com:masterfrom
getprobo:various-updates

Conversation

@gearnode
Copy link
Copy Markdown

@gearnode gearnode commented Mar 9, 2026

  • Update external dependencies
  • Update go version
  • Run go fix ./...
  • Fix MS365 incompatibility

I create different commit for each thing, ofc if you prefer i can only keep the latest one for the MS fix.

gearnode added 4 commits March 9, 2026 22:53
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
…enabled

MS365 sends a plain string for complex SCIM attributes like "manager"
(e.g. {"path": "...User:manager", "value": "some-id"}) instead of the
spec-compliant object form ({"value": {"value": "some-id"}}). When
SetAllowStringValues(true) is set, the string is now automatically
wrapped as {"value": s} before validation, matching the existing
behavior for booleans, integers, and decimals.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
@gearnode gearnode changed the title Various updates Fix MS365 complex/string type Mar 9, 2026
Copy link
Copy Markdown
Collaborator

@q-uint q-uint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution! The string-to-complex wrapping for AllowStringValues makes sense and is consistent with the existing pattern for booleans, integers, and decimals.

A few things before we can merge:

  • Please drop the first 3 commits (dependency update, Go version bump, and modernize). The Go version bump to 1.26.1 and the use of slices.Contains/min builtins break compatibility with Go 1.16, which is what CI and go.mod currently target. The interface{} -> any rename is also unrelated churn.

  • The SetAllowStringValues doc comment is stale, it mentions booleans, integers, and decimals but should now also mention complex attributes.

  • Minor: indentation is off in schema_test.go: the complexMultiValued block lost a level of indentation.

With just the last commit (plus those two small fixes), this is good to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants