litellm/tests/test_litellm/proxy/management_endpoints/scim
Yassin Kortam 8d217a4d5f
fix(scim): parse membership id from filtered PATCH path when value omitted (#34181)
Okta commonly sends SCIM membership removals as a filtered path with no request
body value, e.g. Groups PATCH members[value eq "uid"] and Users PATCH
groups[value eq "tid"]. The patch handlers pulled ids only from op.value, so
these removes were a silent no-op and the member or team was never dropped

Add a linear-time filter parser reused by both the Groups members path and the
Users groups path so the id is taken from the [value eq "..."] filter when
op.value is absent, for add and remove ops. The eq operator is matched
case-insensitively, both quote styles are accepted, and the quoted value is
unescaped. The path-filter fallback only fires when the request body value is
omitted, so an explicit empty value no longer resurrects the filter id, and the
compared value must be quoted per the SCIM filter grammar
2026-07-22 22:15:37 +00:00
..
test_scim_key_deactivation.py fix(scim): preserve scim_active on PUT when client omits the field 2026-05-02 04:15:25 +00:00
test_scim_patch_user.py fix(scim): parse membership id from filtered PATCH path when value omitted (#34181) 2026-07-22 22:15:37 +00:00
test_scim_transformations.py fix(scim): harden PATCH multi-valued ops and fail-soft directory metadata reads 2026-07-16 14:23:40 -07:00
test_scim_v2_discovery.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_scim_v2_endpoints.py fix(scim): parse membership id from filtered PATCH path when value omitted (#34181) 2026-07-22 22:15:37 +00:00