I'm implementing a SCIM service provider at the moment and noticed some examples on the internet use the square-bracket form when filtering a multivalued list of complex values, while others use the dot notation form.
I see emails[value eq '[email protected]']
being used interchangeably with emails.value eq [email protected]
.
Obviously the square-bracket form allows for more filter conditions and the latter is more a shorthand.
Is the dot-notation form required to be supported when filtering a multivalued attribute on the properties of its complex children?
RFC 7644 section 3.4.2.2, Figure 2 (right above this section) has some examples of valid filters. Among those,
emails.value co "example.org"
is mentioned as a valid example. If you're building a SCIM service provider, then this is definitely a valid use case to consider supporting in your implementation.However, in my experience, when it comes to SCIM filters, I mainly see the dot operator being used to reference a sub-attribute of complex attributes like
name.familyName
. I haven't seen very many usages of dot operators for multi-valued attributes likeemails.value
in a filter. So I'm not sure how often this is really used in practice, but I would generally encourage SCIM clients to use the square bracket formation.