[weirds] AD Evaluation of draft-ietf-weirds-json-response-09

Pete Resnick <presnick@qti.qualcomm.com> Tue, 07 October 2014 05:00 UTC

Return-Path: <presnick@qti.qualcomm.com>
X-Original-To: weirds@ietfa.amsl.com
Delivered-To: weirds@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C934D1A9124 for <weirds@ietfa.amsl.com>; Mon, 6 Oct 2014 22:00:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.787
X-Spam-Level:
X-Spam-Status: No, score=-7.787 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.786, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IjL-e5-bHSnE for <weirds@ietfa.amsl.com>; Mon, 6 Oct 2014 22:00:28 -0700 (PDT)
Received: from wolverine02.qualcomm.com (wolverine02.qualcomm.com [199.106.114.251]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 442E11A1B17 for <weirds@ietf.org>; Mon, 6 Oct 2014 22:00:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1412658029; x=1444194029; h=message-id:date:from:mime-version:to:subject: content-transfer-encoding; bh=l7eMKoSzSvbUOZZmi+R7Qauy/LyZ0ZJ9tYi/sKbMdiE=; b=OEkQrfSh76C0ohRvyN2qcNfrTc0K4hqNRRWkReuckglxi0f5n8divtzL oIOKlF4E5woko2cpIMg/IiDAbeANg7mEDJv1T2dnm0/++eqY9D9K9kImM nkUKkt0PJOyUQTqQrw5nXEefFyklgcwpFE47yExaiHA6MH6qUL7c3MegL I=;
X-IronPort-AV: E=McAfee;i="5600,1067,7583"; a="164104907"
Received: from ironmsg03-l.qualcomm.com ([172.30.48.18]) by wolverine02.qualcomm.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Oct 2014 22:00:28 -0700
X-IronPort-AV: E=Sophos;i="5.04,667,1406617200"; d="scan'208";a="750170054"
Received: from nasanexhc12.na.qualcomm.com ([172.30.39.187]) by Ironmsg03-L.qualcomm.com with ESMTP/TLS/RC4-SHA; 06 Oct 2014 22:00:25 -0700
Received: from NASANEXM01F.na.qualcomm.com (10.46.201.192) by nasanexhc12.na.qualcomm.com (172.30.39.187) with Microsoft SMTP Server (TLS) id 14.3.181.6; Mon, 6 Oct 2014 22:00:24 -0700
Received: from resnick2.qualcomm.com (10.80.80.8) by NASANEXM01F.na.qualcomm.com (10.46.201.192) with Microsoft SMTP Server (TLS) id 15.0.913.22; Mon, 6 Oct 2014 22:00:05 -0700
Message-ID: <54337343.4050101@qti.qualcomm.com>
Date: Mon, 06 Oct 2014 23:59:47 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: "weirds@ietf.org" <weirds@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.80.80.8]
X-ClientProxiedBy: NASANEXM01E.na.qualcomm.com (10.46.201.191) To NASANEXM01F.na.qualcomm.com (10.46.201.192)
Archived-At: http://mailarchive.ietf.org/arch/msg/weirds/w16bQpAD7X29C2MN8_Efgl0al3s
Subject: [weirds] AD Evaluation of draft-ietf-weirds-json-response-09
X-BeenThere: weirds@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "WHOIS-based Extensible Internet Registration Data Service \(WEIRDS\)" <weirds.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/weirds>, <mailto:weirds-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/weirds/>
List-Post: <mailto:weirds@ietf.org>
List-Help: <mailto:weirds-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/weirds>, <mailto:weirds-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Oct 2014 05:00:31 -0000

Summary: Almost ready for Last Call, but definitely needs a rev first

None of these issues are complicated or showstoppers, but there are a 
number of them, along with a few questions. So I'd like to have the WG 
address these before I Last Call the document.

Throughout - Use of "client" and "server" in this document sometimes 
seems strained. Mostly you're talking about interpreters/parsers and 
producers/generators. You might want to review this throughout. I've 
made some specific comments below.

Also note that I have not reviewed all of the examples in detail. I hope 
the WG has done a good scrub.

1 - I would mention in the first paragraph that using-http defines a 
communications protocol for exchanging queries and responses.

It seems like maybe the Terminology section should come before 
everything else in this section, given that a lot of the terminology is 
used here.

In the second to last paragraph, either lowercase the MUST or make it 
"needs to". It's not an interoperability statement.

3.1 - I think if you take my suggestion in the intro, you don't need 
this section.

3.2 - You went a little MUST/SHOULD/MAY crazy in this section. I hope 
the following suggested replacements are helpful (and I replace "client" 
with "parser" and "server" with "generator" in my example):

Paragraph 1:

    Parsers of these JSON responses SHOULD ignore unrecognized JSON
    attributes in responses. Generators can insert values into the JSON
    responses which are not specified in this document, but that does not
    constitute an error in the response. Generators which insert such
    unspecified values into JSON responses SHOULD have names prefixed
    with a short identifier followed by an underscore followed by a
    meaningful name.  These short identifiers aid software implementers
    with identifying the specification of the JSON name, and failure to
    use one could cause an implementer to assume the generator is
    erroneously using a name from this specification.  This allowance
    does not apply to jCard ([RFC7095]) objects.  The full JSON name (the
    prefix plus the underscore plus the meaningful name) SHOULD adhere to
    the character and name limitations of the prefix registry described
    in [I-D.ietf-weirds-using-http].  Failure to use these limitations
    could result in slower adoption as these limitations have been given
    to aid some client programming models.

Next to last paragraph:

    Parsers processing JSON responses need to be prepared for values
    specified in this document to be absent from a response, as no JSON
    value listed is required to appear in a response.  In other words,
    generators are free to not included values based on their own
    policies.

4 - I don't think the reference to 1166 is necessary. Dotted-decimal 
notation is well-known enough. Simply strike, "described in [RFC1166]", 
and the reference.

5.1 - Oh, do I hate the word "conformance"! Of course, I will likely 
survive. I also wonder why you went with "rdap_level_0" instead of a 
numeric RFC number here. But again, I will live.

    When custom JSON values are inserted into responses,
    conformance to those custom specifications SHOULD use a string
    prefixed with the appropriate identifier from the IANA RDAP
    Extensions registry specified in [I-D.ietf-weirds-using-http].

So, I presume that "SHOULD" is there because collisions would be bad. If 
that is the case, I would simply say, "MUST use a string...in order to 
avoid collisions", because I can't think of a good reason not to. If 
slower adoption (noted later) is the only reason for the SHOULD, then 
it's bogus and ought to be removed.

5.2 -

    The
    "value", "rel", and "href" JSON values MUST be specified.  All other
    JSON values are optional.

I presume the "MUST be specified" is there because this is a requirement 
of 5988, not because it is a new requirement of this document. If so, 
change that to "are required by [RFC5988]". If this is a new requirement 
of this document, then there should be an explanation of why this is 
required, and the "optional" in the second sentence should be "OPTIONAL".

5.5 - If you're going to use a SHOULD, I should be able to figure out 
why this is a requirement and what exceptions there are to make it a 
SHOULD and not a MUST. Neither is clear. If this isn't a real 
requirement, then I would change "SHOULD be" it "is" and be done with it.

5.9 -

    This data structure, named "objectClassName", gives the object class
    name of a particular object as a string.  This aids clients in
    identifying the type of object being processed.  Servers MUST NOT
    omit this string so that clients can more easily identify the type of
    object.

"Aids" clients? "MUST NOT omit this string so that clients can more 
easily identify"? These seem like really weak reasons. How about simply 
the following?

    This data structure, named "objectClassName", gives the object class
    name of a particular object as a string.  This identifies the type of
    object being processed.  An objectClassName is REQUIRED in all RDAP
    response objects so that the type of the object can be interpreted.

6 -

    When present, clients MAY use the self link for caching data.

I don't understand that MAY. What option is trying to be conveyed here? 
Is this a using-http thing?

    Self links SHOULD contain a "type" element containing the
    "application/rdap+json" media type when referencing RDAP object
    instances as defined by this document.

Again, no explanation of why it SHOULD contain a "type" element, and no 
explanation of a reason for an exception. Please explain.

    Clients SHOULD NOT assume
    self links without this media type are represented as RDAP objects as
    defined by this document.

I'm not sure how to implement a "SHOULD NOT assume". Do you really mean 
something like the following?

    Clients MAY/SHOULD/MUST discard objects containing self links without
    a media type, as they might not be RDAP objects as defined by this
    document.

6.1 -

    For illustrative purposes, it does not include rdapConformance or
    notices data structures.

That sentence occurs a lot throughout the document. Are rdapConformance 
or notices required? If not, I would strike this sentence. If they are 
required, you had better say so back in section 5.

I would move the following:

    Entities may also have other entities embedded with them in an array.
    This can be used to model an organization with specific individuals
    fulfilling designated roles of responsibility.

    The following is an elided example of an entity with embedded
    entities.

and Figure 13 *below* the bulleted list. It confused me here.

    o  vcardArray -- a JSON vCard with the entity's contact information

s/a JSON vCard/one or more JSON vCards. It is an array, after all.

6.4/6.5 -

    o  country -- a string containing the name of the two-character
       country code of the network

Strike "the name of".

7 -

    A client MAY simply use the HTTP response code as the server is not
    required to include error data in the response body.  However, if a
    client wishes to parse the error data, it SHOULD first check that the
    Content-Type header contains the appropriate media type.

This paragraph seems more appropriate for the using-http document.

11.1 - Seems like a reference to rdap-sec might be useful here.

I find it weird (no pun intended) to have an individual be the 
contact/author for a standards registration. Shouldn't it be the IESG or 
the WG or something? Maybe I'll ask Barry.

11.2 -

    This registry should be governed by a designated expert or multiple
    designated experts.  Registration of values into this registry should
    be accomplished by providing the information above to the designated
    expert(s).

Probably simpler (and clearer) for IANA if you simply say, "This 
registry is to be operated under the "Expert Review" policy defined in 
RFC 5226." The IESG will make sure about the one or multiple experts, 
and IANA wil make sure that they get the appropriate information.

Just before 11.2.1, please add: "The following sections provide initial 
registrations into this registry."

I still find it strange to have an individual registrant for these 
registrations.

I did not review the individual registrations in detail.

13.1 -

    Servers
    and clients MAY optionally support other character encodings.

How does *that* work? How is a different encoding indicated? This seems 
like a discussion for the using-http document.

14 - I suspect you're going to be asked for more here. I don't have the 
expertise to give you advice in this area, but you might want to check 
with Alissa Cooper about who might.

pr

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478