Thanks Elwyn for your thorough review. Much appreciated. 

Yes I agree with your comment re internationalization. I would think a best 
practice would be very helpful to move the industry.  I guess as a provisioning 
spec we are stuck having to deal with ossification since we have to map legacy 
anglo structures. 

I plan to update very soon pending ok from Kathleen and the group on some other 
issues. 

Thanks!

Phil

> On May 6, 2015, at 09:18, Elwyn Davies <[email protected]> wrote:
> 
> Hi, Phil.
> 
> Thanks for the response and the updated draft.
> 
> I'll bite my tongue and defer to past history and the WG consensus on the 
> internationalization issues.  IMO this area is something that needs to be 
> considered for other (new) specifications so that we don't remain ossified 
> and adhering to a US/UK English paradigm that doesn't really fit other 
> locales.  But, as I said, this draft goes ahead as is on that front.
> 
> There are some remaining minor comments on the updated draft inline below.  
> If you don't get around to generating a new draft before the telechat, I'll 
> send these as my telechat review.
> 
> Regards,
> Elwyn
> 
> 
>> On 20/04/2015 19:30, Phil Hunt wrote:
>> Elwyn,
>> 
>> Thanks for your careful and thorough review.  I have included my comments 
>> below.
>> 
>> Note, if I have not commented below, please assume I agree with your comment 
>> and will update the draft to include your feedback.
>> 
>> Discussion inline below...
>> 
>> Phil
>> 
>> [email protected]
>> 
>>> On Apr 17, 2015, at 2:26 PM, Elwyn Davies <[email protected]> wrote:
>>> 
>>> I am the assigned Gen-ART reviewer for this draft. For background on
>>> Gen-ART, please see the FAQ at
>>> 
>>> <http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.
>>> 
>>> Please resolve these comments along with any other Last Call comments
>>> you may receive.
>>> 
>>> Document: draft-ietf-scim-core-schema-17.txt
>>> Reviewer: Elwyn Davies
>>> Review Date: 2015/04/09
>>> IETF LC End Date: 2015/04/20
>>> IESG Telechat date: (if known) -
>>> 
>>> Summary: Not ready.  The 'major' issue identified is really political 
>>> rather than strictly technical although the proposed syntax does limit the 
>>> applicability (or at least the easy applicability) of the scheme. Making 
>>> the schemas more aware of practice outside the basic English speaking world 
>>> should be an aim of IETF work, IMO.  The minor issues are mostly  only just 
>>> more than editorial nits - and there are quite a few of these also.
>>> 
>>> Major issues:
>>> ===========
>>> s4.1.1, "name" attribute:  The definition of this attribute is culturally 
>>> insensitive.  The
>>> collection of name sub-attribute terms are North American/UK/Aussie/NZ 
>>> English -speaking biased.  The authors might wish to consider 
>>> http://www.w3.org/International/questions/qa-personal-names.
>> [PH] I am not sure I agree with your conclusion. SCIM is a provisioning 
>> protocol and not a rendering protocol. SCIM is concerned with conveying 
>> information between systems based on commonly used fields. Further for 
>> formatted name, there is no restriction on how the name may be structured. 
>> Essentially SCIM already follows the above reference. Note that we don’t use 
>> a regional identifier in name, but rather have it as a separate attribute 
>> “locale”. This enables a UI to render the name in the appropriate regional 
>> method.
>> 
>> The WG did have several international participants and no issues were raised.
>> 
>> I believe that what is being reflected is that while database structures and 
>> schemas tend to be “western” oriented, there are well trodden industry 
>> practices to map those fields to render user facing material in the proper 
>> localized forms.
>> 
>> In deference to your concern over the weekend, I re-raised the issue with 
>> Oracle developers and have been informed that there has been an 
>> internationalization review and the specification does not present any 
>> problems for us as international implementers.
>> 
>>> To a lesser extent this also applies to the definition of the addresses 
>>> attribute in s4.1.2.  The issue of the representation of postal addresses 
>>> incorporated in I-Ds and RFCs in the xml2rfc schema has been debated at 
>>> length on the rfc-interest mailing list.  The new (v3) vocabulary replaces 
>>> the specific sub-attributes with an ordered  list of "postalLine" elements 
>>> (see https://tools.ietf.org/html/draft-hoffman-xml2rfc-16#section-2.39). 
>>> Further, the use of country codes in RFCs has been dropped some time ago.  
>>> It might be better to represent the address in a less specific way and 
>>> leave display up to user interfaces that can consider the relevant locale.  
>>> My suggestion, FWIW, would be to have a country, possibly a code field plus 
>>> an ordered array of postalLines that can contain any of the additional 
>>> components and cater for any locale specific format.
>> [PH] The suggested workaround of following the format for XML2RFC using an 
>> array of “postalLine” values causes more problems in the current SCIM model:
>> 1.  SCIM does not support array references (e.g. postalLine/1, 
>> postalLine/2). In some cases, the order of elements may not be guaranteed by 
>> some impelementers (e.g. those building on top of LDAP)
>> 2.  SCIM’s objective is to provision. So the meaning associated with the 
>> field must be well known to map it to the receivers data system. A system 
>> line postalLine1, postalLine2 would require attribute parsing which is 
>> substantially more complex and unreliable given the wide variance.
>> 3.  In practice, international data is collected through a user-interface 
>> which then categorizes the input and maps them to the appropriate 
>> attributes.  If we introduce agnostic attribute naming in the protocol 
>> (postalAddress1, 2 etc) we actually lose knowledge of what the intended 
>> content is.  This means that it becomes impractical to say does 
>> postalAddress2 map to city, county, district, or mail stop of a target 
>> system.
>> 
>> IOW. In the XML2RFC, we depend on human editors to validate and align the 
>> data. As a protocol we do not have this luxury.
> As per my comment at the top, I withdraw these comments and defer to the WG 
> consensus.
>> 
>> 
>>> ======================================================
>>> 
>>> Minor issues:
>>> ===========
>>> Reference to SCIM Protocol document:  At a bare minimum a normative 
>>> reference to the SCIM protocol document (currently draft-ietf-scim-api-16) 
>>> is needed in s1.2 where the protocol is referred to in the first two 
>>> definitions.  In my opinion, this document would be improved by the 
>>> addition of a brief overview of the operation of the SCIM protocol and the 
>>> implications for the design of the schema.   For example, s2 talks about 
>>> 'replacement of a resource':  Knowing in advance that one of the operations 
>>> anticipated in the protocol is replacement makes this clearer.
> My feeling is still that a brief overview of the SCIM protocol would help. 
> Maybe something like inserted
> befoee the last para of s1:
>   The SCIM Protocol is an application-level protocol for provisioning and 
> managing identity data
>   specified through the SCIM schemas.  The protocol supports creation, 
> modification, retrieval,
>   and discovery of core identity resources such as Users and Groups, using a 
> subset of the HTML
>   methods (GET for retrieval of resources, POST for creation, searching and 
> bulk modification, PUT for
>   attribute replacement within resources, PATCH for partial update of 
> attributes, and DELETE for
>   removing resources).
> 
>> No objection. There has been a practical problem that XML2RFC won’t let you 
>> reference a draft version that does not exist. In practice we’ve had to 
>> publish API 2 days after core-schema in order to allow the validation to 
>> succeed.  I will amend the document and leave notes for the RFC editor to 
>> co-publish the specs since they reference each other.
> That will happen automatically - the documents form a RFC editor 'queue 
> cluster' because of the references.  This shouldn't be a big deal since they 
> are going through IESG at the same time.
> 
>>> s1.1, Use of OPTIONAL and REQUIRED:  These terms are overloaded in this 
>>> document.  The majority of uses are not specifying features of the protocol 
>>> as per RFC 2119 but indicating the necessity or otherwise of the presence 
>>> of particular attributes in resource types.  AFAICS the only RFC 2119 
>>> usages are one place in  s2.2.7 for OPTIONAL  and two adjacent places in 
>>> s10.3.1 for REQUIRED .   To avoid the overloading it would be easy to omit 
>>> OPTIONAL and REQUIRED from the RFC 2119 list, use the alternative RFC 2119 
>>> terminology (MAY in s2.2.7 and MUST in s10.3.1) and provide a separate note 
>>> on the usage of OPTIONAL and REQUIRED in s1.1.
>> [PH] In the context of a schema document, the use of OPTIONAL and REQUIRED 
>> is equivalent to protocol normative language and was intended.
>> 
>> Never-the-less, if you feel strongly, I can re-word to avoid RFC2119 
>> language entirely.
> This is a difficult one.  When used as qualifiers for attributes they have 
> implications for both implementers and end users.
> REQUIRED is not a big deal:  Implementers MUST implement it and users MUST 
> use it, so 2119 language is no problem.
> OPTIONAL is a bit more difficult. Does an implementer have to implement the 
> OPTIONAL attribute?  If the OPTIONAL attribute is implemented in a particular 
> implementation, MUST the end user supply a value? And vice versa.
>>> s2.1, Syntax of attribute names:  I am confused by the constraints 
>>> suggested here.
>>> (1)   "Attribute names SHOULD be camel-cased":  AFAICS this has no impact 
>>> on the specification or protocol.  My guess is that the specification has 
>>> adopted the convention normally used in JavaScript.  This is merely a 
>>> representation of the convention used in SCIM schemas and RFC 2119 language 
>>> is inappropriate.  I suggest replacing this with
>>> "This document uses the camel-casing convention for attribute names (e.g., 
>>> "camelCase").
>>> (2) "nameChar   = "-" / "_" / DIGIT / ALPHA": Given the close association 
>>> with JavaScript, it seems inappropriate to allow hyphen (-) as a character 
>>> in attribute names as this is illegal in JavaScript.
>>> (3) The definition should say whether attribute names are case sensitive.
>> [PH] I will clarify.  Attribute names should be case-insensitive.
> OK.  New text looks good.
>> 
>> 
>>> (4) Even though there is ABNF, it would be useful to note explicitly that 
>>> names are limited to a subset of ASCII rather than the much wider JSON 
>>> string or JavaScript variable character sets.
>> [PH] As the document references the core rules in RFC5234.  Are you 
>> suggesting we should restrict to A-Z / a-z rather than ALPHA?
> I think the revision is OK.
>>> s2.2.7, $ref:  In s2.2.7, $ref is defined as a sub-attribute name but does 
>>> not match the attribute name syntax discussed in the previous comment for 
>>> s2.1.  Does the attribute name syntax apply to sub -attributes?  Or are 
>>> they just JSON member names?
>> The ABNF should be
>> 
>> ATTRNAME   = ALPHA *(nameChar)
>> nameChar   = “$” / “-" / "_" / DIGIT / ALPHA
>> 
>> Note:  there is no requirement that javascript attribute names must be 
>> exactly the same as JSON payload attribute names. So while “-“ may be 
>> problematic in Javascript (they need to be escaped), I see no protocol 
>> impacts and suggest we not eliminate “-“ (hypen) from attribute names at 
>> this time.
> As I understand it, you can treat a JSON object as what would be a (declared) 
> structure or object in other languages and use the element names directly in 
> code to access the components of the JSON object.  This won't work if the 
> names contain "-".  Of course this won't upset the protocol but I am not sure 
> if there would be any way to escape the hyphen in the Javascript.  Maybe just 
> a note to warn people of the pitfall since Javascript seems to be the 
> language of choice in client side browser programming these days?
>>> s2.3, next to last para:  To ensure that the service provider knows what it 
>>> ought to do to canonicalize a given value, the schema specification needs 
>>> to specify what canonicalization means for each type of attribute.  Having 
>>> read further on, I see that this is done in most cases for relevant 
>>> attributes defined in this draft.   A note that this should be done 
>>> generally when defining new schemas is needed here.  This is particularly 
>>> important for strings that might have internationalization issues (c.f., 
>>> the discussion of string comparison in filtering in section 5 of 
>>> draft-ietf-scim-api-16.)
>>> 
>>> s7, canonicalValues:  The wording here
>>>>         When
>>>>         applicable service providers MUST specify the canonical types
>>>>         specified in the core schema specification; e.g., "work",
>>>>         "home".
>>> seems to imply that the possible canonicalValues mentioned in the 
>>> definitions of User, Group etc.  schemas earlier in the draft are actually 
>>> normative minimum requirements that could, at least in some cases, be 
>>> extended.  The wording used in the earlier sections is rather less 
>>> definitive and appears to indicate that the suggested values are examples 
>>> that a service provider might possible want to replace if they considered 
>>> alternative values better suited to their application, e.g.
>>>>   userType
>>>>      Used to identify the organization to user relationship. Typical
>>>>      values used might be "Contractor", "Employee", "Intern", "Temp",
>>>>      "External", and "Unknown" but any value may be used.
>>> and
>>>>   phoneNumbers
>>>>      Phone numbers for the user.   ...  The "display" sub-attribute
>>>>      MAY be used to return the canonicalized representation of the
>>>>      phone number value.  The sub-attribute "type" often has typical
>>>>      values of "work", "home", "mobile", "fax", "pager", and "other",
>>>>      and MAY allow more types to be defined by the SCIM clients.
>>> The wording used in the earlier sections seems to need 'tightening up' to 
>>> make it clear what minimum set of canonicalValues is required for 
>>> conformance, if indeed that is what is wanted.
>> [PH] Agreed. Suggestion:
>> 
>> A collection of suggested values for an attribute. For example often used 
>> with the “type” attribute to categorize a value such as “home” or “work”.  
>> The service provider MAY choose to ignore values it does not support.
> This helps.  The wording in s4.1.2 needs a little more work (see other email).
>>> s7, caseExact:  I think you may need to clarify what case insensitivity 
>>> means for languages other than unaccented English.  It may be sufficient to 
>>> provide a note and a pointer to the discussion of filtering and 
>>> normalization in the protocol draft.
> OK.
>>> 
>>> s10.3:  The registration procedure seems overly complex.  If, as stated, an 
>>> RFC is required in all cases, then the standard (RFC 7035) IETF Review 
>>> registration policy would seem to fill the bill and there is no need for a 
>>> designated expert.  Alternatively, Specification Required (with a 
>>> designated expert as is standard for this case) could be used if other 
>>> types of specification could be countenanced.  I suspect the requirement 
>>> for a standards track RFC as a way of modifying an existing value is going 
>>> to come back to bite us if the original specification was not standards 
>>> track.  I am not sure this attempt to provide a higher hurdle for 
>>> modifications is the best way to go about this - In general, IETF Review 
>>> would, I think, give enough pushback against inappropriate updates without 
>>> requiring standards track in all cases.  Overall, I recommend that the 
>>> authors consult your AD and IANA to determine how best to structure the 
>>> registration procedure.
>> [PH] The current document is probably following older IANA practices which I 
>> understand have recently been updated. Leif Johansson has suggested we can 
>> simplify by updating the document to reflect the new recommendations. I’ll 
>> let Leif comment more on this issue.
> OK.
>>> ===========================================================
>>> 
>>> Nits/editorial comments:
>>> =====================
>>> Global: s/e.g. /e.g., /
>>> 
>>> The term 'endpoint': The term '(network) endpoint' has a particular 
>>> technical meaning in W3C/HTTP jargon although it the usage in (e.g.) 
>>> http://www.w3.org/TR/wsdl.html seems rather self-referential.  It would be 
>>> useful to provide a definition.  Perhaps something like:
>>> (Network) endpoint:  Also known as a 'port' (see 
>>> http://www.w3.org/TR/wsdl.html).  A  port has a 'port type' that identifies 
>>> a set of operations invoked by HTTP methods.  Each port is identified by a 
>>> URI  typically constructed from the base URI identifying the server 
>>> implementing the operation and a relative URI bound to the port type.  The 
>>> methods are associated with abstract data types, such as the schema 
>>> specified in this document.  HTTP messages carry data structured according 
>>> to the abstract data types.
>>> 
>>> Canonicalized URLs:   Presumably URLs should be canonicalized in line with 
>>> Section 6 of RFC 3986.  An appropriate global place to say this would be 
>>> s2.3 I believe.   However RFC 6986 offers a 'ladder' of canonicalizations 
>>> and it would be desirable to say what rung on this ladder should be used.  
>>> Presumably either 6.2.3 or 6.2.4.
>>> 
>>> s1, para 1, last sentence:  The phrase 'redundantly integrated' is not 
>>> felicitous.  Suggestion:
>>> 
>>> OLD:
>>>   Similarly, cloud services
>>>   providers seeking to inter-operate with multiple application
>>>   marketplaces or cloud identity providers must be redundantly
>>>   integrated.
>>> NEW:
>>>   Similarly, cloud services
>>>   providers seeking to inter-operate with multiple application
>>>   marketplaces or cloud identity providers would require pairwise
>>>   integration.
>>> END
>>> 
>>> s1, para 2: Worth adding a reference to [PortableContacts] since you have 
>>> it already and its not a 'well-known' item.
> OK
>>> I fear that LDAP is not a well-known abbreviation within the meaning of the 
>>> act, and needs expanding.
> This still needs expanding.
>>> Maybe add a ref to RFC 6350 for vCards.
>>> 
>>> s2, para 1, 1st sentence: s/contents of which/allowable contents of which/
>>> s2, para 1, 4th sentence: s/alidation/Validation/
>>> 
>>> s2, para 1, last sentence: s/the attributed defined schema/its 
>>> characteristics as defined in the relevant schema/
>>> 
>>> s2, para 2: s/extend schema/ extend a schema/ [or "extend schemas"]
>>> 
>>> s2.1, para 1: s/For each attribute, SCIM schema/For each attribute, a SCIM 
>>> schema/
>>> 
>>> s2.2:  The list of characteristics and their default values is not 
>>> associated with the data type of the attribute but is another set of 
>>> attributes of each attribute defined.  This would be clearer if the list of 
>>> defaults and examples was separated out into a new section (probably after 
>>> s2.2).  It would be helpful to point out explicitly that these defaults 
>>> apply to all the attributes defined in the draft - I found the tacit 
>>> assumption of default characteristics in later definitions of attributes 
>>> had me asking myself whether certain characteristics ought to have been 
>>> defined whereas they were actually covered by the defaults.
> Fine... but I think reversing the order of s2.2 and the (new) s2.3 would help 
> as some of the items defined in s2.3 are referred to in s2.2.
>>> 
>>> s2.2, 1st bullet: For consistency, s/required/REQUIRED/
>>> 
>>> s2.2, bullet 5:
>>> OLD:
>>> o  have no canonical values (e.g. type is "home" or "work"),
>>> NEW:
>>> o  have no canonical values (for example, the "type" sub-attribute in 
>>> Section 2.3),
>>> END
>>> 
>>> s2.2.6, Base 64 URL encoding:  Presumably the trailing padding characters 
>>> can be omitted here - this should be mentioned whether or not they are 
>>> needed.
> OK
>>> 
>>> s2.2.8: Presumably, in line with s2.3 and the JSON specification, the order 
>>> of component attributes is not significant.  If this is so, it should be 
>>> mentioned here:  Perhaps add:
>>>    The order of the component attributes is not significant. Servers and
>>>    clients MUST NOT require or expect attributes to be in
>>>    any specific order when an object is either generated or analyzed.
> OK
>>> 
>>> s2.3, 1st para:  I found this difficult to parse.  Suggest:
>>> OLD:
>>>   Multi-valued attributes contain a list of value or may contain sub-
>>>   attributes and MAY also be considered complex attributes.  The order
>>>   of values returned by the server SHOULD NOT be guaranteed.  The sub-
>>>   attributes below are considered normative and when specified SHOULD
>>>   be used as defined.
>>> NEW:
>>>    Multi-valued attributes contain a list of elements, using the JSON array 
>>> format
>>>    defined in Section 5 of [RFC7159].  Elements can be either
>>>    o   primitive values, or
>>>    o   objects with a set of sub-attributes and values, using the JSON 
>>> object format
>>>         defined in Section 4 of [RFC7159], in which case they MAY also be 
>>> considered
>>>         to be complex attributes.  As with complex attributes, the order of 
>>> sub-attributes
>>>         is not significant.  The pre-defined sub-attributes listed in this 
>>> section can be
>>>        used with multi-valued attribute objects but these sub-attributes 
>>> should only be used
>>>       with the meanings as defined here.
>>> 
>>> s2.3: Question: Can sub-attributes have sub-sub-attributes?  I don't think 
>>> I see any examples and maybe the definition in s1.2 effectively excludes 
>>> them.  Might be worth being explicit.
>> [PH] Agreed. I will add text that complex attributes may not have complex 
>> sub-attributes (sub-sub-attributes).
> Great.   Thinking again about this.. perhaps 'should only be used' ought to 
> be 'MUST only be used'?
>> 
>>> s2.3, "primary" sub-attribute: Should this be specified as assumed to be 
>>> "false" if not present in a relevant object?  I don't think this is covered 
>>> by the defaults anywhere.
>> Agreed.
>>> s2.3, $ref: I guess this ought always to be canonicalized  - this can be 
>>> noted in the following paragraph where canonicalization is discussed.  This 
>>> would be a good place to specify a reference for URL canonicalization as 
>>> mentioned above.
> The default method and level of canonicalization for URLs (especially for 
> $ref) still needs to be specified. I suspect (RFC 3986, section 6.2.x, where 
> the 'x' is between 1 and 4 according to what you consider appropriate.)
>>> 
>>> s2.3, last para: Suggest being a little more explicit about the scope of 
>>> this paragraph.  I suggest:
>>> OLD:
>>>   Service providers MAY return the same value more than once with
>>>   different types (e.g. the same e-mail address may used for work and
>>>   home), but SHOULD NOT return the same (type, value) combination more
>>>   than once per Attribute, as this complicates processing by the
>>>   Consumer.
>>> NEW:
>>>   Service providers MAY return element objects with the same "value" 
>>> sub-attribute
>>>   more than once with a  different "type" sub-attribute (e.g., the same 
>>> e-mail address
>>>   may used for work and home), but SHOULD NOT return the same (type, value)
>>>   combination more than once per Attribute, as this complicates processing 
>>> by the
>>>   consumer.
>>> END
>>> Note "Consumer" replaced by "consumer" - there is no definition of a 
>>> specific meaning for this term.
> OK
>>> 
>>> s3, Resource Type:  s/("meta.resourceType")/("meta.resourceType", see 
>>> Section 3.1)/
> OK
>>> 
>>> s3, Schemas Attribute:  I think s/the namespace of SCIM schema that 
>>> defines/the namespaces of the SCIM schemas that define/; s/All 
>>> representations of SCIM schema MUST include a non-zero value array/All 
>>> representations of SCIM schemas MUST include a non-empty array/
> OK
>>> 
>>> s3, name used in example:  I don't know if the RFC Editor has a policy on 
>>> suitable fictitious names equivalent to example.com for domains.  
>>> Apparently Jane Roe and Mary Major have been used in US legal practice  as 
>>> female alternatives to the ubiquitous Mr John Doe.  Probably good to check 
>>> with the RFC Editor.
> Pass...
>>> 
>>> s3.1, id, externalId, meta.version, meta.resourceType:  I suspect these 
>>> ought to be caseExact?
>>> 
>>> s3.1, externalId:  The concepts of "provisioning domain" and a "client's 
>>> tenant" need to be defined.  The externalId attribute is not explicitly 
>>> defined as REQUIRED or OPTIONAL.
> I noticed that making externalId OPTIONAL probably conflicts with the 'MUST 
> be included' statement in para 1 of s3.1.
> It might be clearer to say that they are all REQUIRED (or otherwise) assuming 
> that is what is meant by 'MUST be included'.
> It isn't clear whether this MUST statement applies to the sub-attributes in 
> 'meta' - and if it does there may be a conflict.
>>> 
>>> s3.1.1, meta.resource:  I got the impression from s3 that meta.resourceType 
>>> was REQUIRED rather than being optional as noted in the first para of 
>>> s3.1.1.
> OK
>>> 
>>> s3.1.1, meta.location: Should the value of this sub-attribute be the same 
>>> as Content-Location rather than Location?  Is it intended that the request 
>>> should be redirected (or that the resource was newly created?  If not it 
>>> seems Content-Location would be more appropriate.  A normative reference to 
>>> the relevant HTTP RFC (probably RFC 7231) ought to be included.
> OK
>>> 
>>> s3.1.1, meta.version:  Would one expect a weak or strong ETag?  A normative 
>>> reference to the relevant HTTP RFC (probably RFC 7232) ought to be included.
> OK
>>> 
>>> s3.2, last sentence: s/Section 6and/Section 6 and/ (missing space).
> OK
>>> 
>>> s3.3, 1st para:    s/used in LDAP/are used in LDAP/;
>>>                            s/Each "schemas" value indicates additive 
>>> schema/Each value in the "schemas" attribute  indicates an additive schema/;
>>>                            s/See Figure 5 for an example JSON 
>>> representation/See Figure 5 for an example of the JSON representation/
> OK
>>> 
>>> s3.3, para 2: s/"schemas" URI value/URI value in the "schemas" attribute/
> OK
>>> 
>>> s4.1.1, userName:  Having said that each User MUST have  include a 
>>> non-empty userName value, why is this attribute RECOMMENDED rather than 
>>> REQUIRED?  I guess it ought to be caseExact also.
> OK
>>> 
>>> s4.1.1, profileUrl: Needs a canonicalization mechanism specified.
> The default format definition.. but it still needs a canonicalization 
> mechanism (see comment above for s2.3, $ref)
>>> 
>>> s4.1.1, preferredLanguage:  There is potentially more than one preferred 
>>> language (as per Accept-Languages) so this presumably this ought to be a 
>>> Multi-valued attribute.  The Accept-Language header syntax also has an 
>>> optional, per language, weight to assist with selection.  Should this be 
>>> catered for here as well?  This would presumably mean that it should have 
>>> sub-attributes (e.g.) using "value" for the name and "weight" or some such.
> OK.. we have multiple values... so shouldn't this move to the Multi-valued 
> Attributes section (s4.1.2)?
>>>  Also s/localized User interface/localized user interface/
> This one got missed.
>>> s4.1.1, password:  I *hope* there is a discussion of the security 
>>> implications of this field later.  A pointer to this discussion would be 
>>> highly desirable.
> OK
>>> 
>>> s4.1.2, photos: A reference to the canonicalization mechanism is needed 
>>> (see previous comment).
> Still needed.
>>> 
>>> s4.1.2, entitlements, roles: There doesn't seem to be any good reason for 
>>> capitalizing 'NO' here: s/NO/no/, 2 places.
> OK
>>> 
>>> s4.2, para 2: s/by the service provider are considered/by the service 
>>> provider, and are considered/
> OK
>>> 
>>> s4.3, employeeNumber:  Maybe this might be better called an 
>>> "employeeIdentifier" since it can be alphanumeric.  Is there any reason why 
>>> this can't just be any old string?
> OK
>>> 
>>> s5, patch: A pointer to the SCIM protocol draft PATCH operation would be 
>>> helpful.
> OK
>>> 
>>> s5, bulk: A pointer to the SCIM protocol draft Bulk operations section 
>>> would be helpful.  I note that the capitalized form is not used in the 
>>> protocol draft: suggest s/BULK/Bulk/ (total of 2 places)
> The cross reference would probably be better on the top level item 'bulk' 
> rather than on the 'supported' sub-attribute.
>>> 
>>> s5, filter: A pointer to some appropriate part of the SCIM protocol draft  
>>> (maybe s3.4.2.2) would be helpful.
> OK
>>> 
>>> s6, endpoint:  (1)The endpoint is defined to be a relative URI.   It is 
>>> therefore inappropriate that the example here is "/Users".  I guess it 
>>> ought to be "Users".  There are a number of example of relative URIs 
>>> starting with / in the examples in Section 8 that also ought to be 
>>> corrected.
> There are a couple of examples of '"$ref": "/Groups...."' and '"$ref": 
> "/Users.."' in s8.3; '"endpoint":  "/Users"' and '"endpoint":  "/Groups"' in 
> s8.6;  and in the definition of endpoint in s1.2 there is "/Schemas" which 
> all ought to be relative URLs.
>>> 
>>> s6, endpoint: (2) Please bear with me, this is a bit long winded... I 
>>> initially thought that the 'endpoint' mechanism was a possible 
>>> contravention of BCP 190/RFC 7320:  Quoting s2.3 of RFC 7320:
>>>>    Scheme definitions define the presence, format, and semantics of a
>>>>    path component in URIs; all other specifications MUST NOT constrain,
>>>>    or define the structure or the semantics for any path component.
>>>> 
>>>>    ....
>>>> 
>>>>    For example, an application ought not specify a fixed URI path
>>>>    "/myapp", since this usurps the host's control of that space.
>>>> 
>>>>    Specifying a fixed path relative to another (e.g., {whatever}/myapp)
>>>>    is also bad practice (even if "whatever" is discovered as suggested
>>>>    in Section 3); while doing so might prevent collisions, it does not
>>>>    avoid the potential for operational difficulties (for example, an
>>>>    implementation that prefers to use query processing instead, because
>>>>    of implementation constraints).
>>> In Section 6, the definition of the endpoint attribute specifies that each 
>>> schema has to declare a relative URI or path component that gives access to 
>>> schema instances.  My initial thinking was that  the endpoint value was 
>>> standardized for Users and Groups in the draft.  My interpretation of s2.3 
>>> of RFC 7320 was that this technique is deprecated as bad practice.  After 
>>> sleeping on it, I think I understand that the endpoint value is *not* 
>>> standardized and potentially each service provider can use a different 
>>> endpoint name if they really have to (although I guess in this case it 
>>> would be good to go with the defaults.)  So I am happy that this isn't 
>>> flagrantly contravening BCP 190, although I am not sure about the query 
>>> processing bit at the end of the quoted section.  Conclusion: I think it 
>>> would be useful to add a note to the definition of endpoint to indicate 
>>> that it is at the choice of the service delivering the resources and is not 
>>> a fixed value, maybe saying that this is intended to avoid infringing BCP 
>>> 190.
> Phil's note indicated that he agreed with this but a note hasn't been added.
>>> 
>>> s7, mutability:
>>> OLD:
>>> mutability  A single keyword indicating what types of
>>>                    modifications an attribute MAY accept as follows:
>>> This 'MAY' is not about the 'protocol'.. Suggest:
>>> NEW:
>>> mutability  A single keyword indicating the circumstances under
>>>                    which the value of the attribute can be (re)defined:
>>> END
> OK
>>> 
>>> s9: s/personally identifiable information/personally identifying 
>>> information/g
> There is an instance in s9.3 para 2 still.
>>> 
>>> s9, 1st bullet: s/mulitple/multiple/
> Ok.. but, I suggested providing a definition for 'tenant' back in s3.1.  The 
> updated draft removed 'tenant' from s3.1 rather than providing a definition, 
> so the original comment now applies to the first bullet of s9.3.
>>> 
>>> s9: para 1:  It would be sensible to also forbid the carrying of passwords 
>>> in requests that are not encrypted.
> (handed off to api draft - fine)
>>> 
>>> s9:  It would be worth emphasizing that privacy issues should be considered 
>>> whenever resource extensions are defined.
> OK
>>> 
>>> s10.1:  This is a request for a new entry in the  'URN Sub-namespace for 
>>> Registered Protocol Parameter Identifiers' ...
>>> OLD:
>>>   IANA has created a registry for new IETF URN sub-namespaces,
>>>   "urn:ietf:params:scim:", per [RFC3553].  The registration request is
>>>   as follows:
>>> 
>>>   Per [RFC3553], IANA has registered a new URN sub-namespace,
>>>   "urn:ietf:params:scim".
>>> NEW:
>>>   IANA is requested to add an entry to the 'IETF URN Sub-namespace for 
>>> Registered Protocol Parameter Identifiers'
>>>   registry and create a sub-namespace for the Registered Parameter 
>>> Identifier as per [RFC3553]:
>>>   "urn:ietf:params:scim:".
>>>   The registration request is as follows:
>>> END
>>> 
>>> s10.2:   This section is lacking a specification of exactly what is 
>>> recorded in the new SCIM registry - the template tells how to apply and 
>>> considerations to be used in granting the request.  See Section 8.4 of RFC 
>>> 7035, for example, to see what is needed here.
> IANA updates in progress - fine.
>>> 
>>> 
>>> s11.1: Needs a reference to the SCIM protocol document.
> OK
>>> 
>>> s11.2, [Olson-TZ] is  incomplete - I suspect it needs a reference to the 
>>> IANA TZ database http://www.iana.org/time-zones
> Adding the URL would be helpful (<ref... 
> target="http://www.iana.org/time-zones";> if using xml2rfc)
> 
> 

_______________________________________________
Gen-art mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/gen-art

Reply via email to