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 'foo@bar.com']
being used interchangeably with emails.value eq foo@bar.com
.
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 like emails.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.