Subject: [scim] Multi-Valued Display Attribute's Mutability Characteristic

From: Shelley <[email-masked]>
Date: Wed, 4 Mar 2020 10:19:28 -0600

Multi-valued attributes' "display" sub-attribute is documented in Section
2.4 to be "immutable" by default:

   display [1]
      A human-readable name, primarily used for display purposes and
      having a mutability of "*immutable*".

However, nearly all of "display" subattributes in Section 8.7.1 (user
emails, phoneNumbers, ims, photos, entitlements, roles, x509Certificates)
specify a mutability of "readWrite", despite the fact that the description
indicates that they are "READ-ONLY" [2]:

          {
            "name" : "display",
            "type" : "string",
            "multiValued" : false,
            "description" : "A human-readable name, primarily used
for display purposes.  *READ-ONLY*.",
            "required" : false,
            "caseExact" : false,
            "mutability" : "*readWrite*",
            "returned" : "default",
            "uniqueness" : "none"
          },

Which of these is the expected mutability characteristic of the "display"
attribute in these cases?

   - the attribute's definition of "immutable" [1]
   - the "description" of "readOnly" [2]
   - the "mutability" of "readWrite" [2]

My understanding is that the "display" attribute is primarily intended for
use by Service Providers to optionally return a suitable human-readable
display name for the attribute, which has potentially been canonicalized
(whereas the "value" may remain the raw value provided by the client).
Given this, "readOnly" seems to be the most appropriate "mutability"
characteristic (assuming my understanding of "readOnly" is correct, such
that it means that the client cannot provide this value, but the service
provider may update and return a value). Alternatively, if either clients
or service providers are allowed to provide "display" values, "readWrite"
seems appropriate. In none of the cases for "display" does "immutable" seem
like the correct choice, though.

[1] https://tools.ietf.org/html/rfc7643#section-2.4
[2] https://tools.ietf.org/html/rfc7643#section-8.7.1