scimscim2

Square bracket or dot notation in SCIM filters for multivalued complex attributes?


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?


Solution

  • 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.