Re: [provreg] RFC 5733: street changes with contact:update

"Gould, James" <JGould@verisign.com> Fri, 15 November 2013 14:04 UTC

Return-Path: <JGould@verisign.com>
X-Original-To: provreg@ietfa.amsl.com
Delivered-To: provreg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 39A7E11E81B8 for <provreg@ietfa.amsl.com>; Fri, 15 Nov 2013 06:04:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.598
X-Spam-Level:
X-Spam-Status: No, score=-5.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, EXTRA_MPART_TYPE=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C8lf5lTmKLRi for <provreg@ietfa.amsl.com>; Fri, 15 Nov 2013 06:04:18 -0800 (PST)
Received: from exprod6og114.obsmtp.com (exprod6og114.obsmtp.com [64.18.1.33]) by ietfa.amsl.com (Postfix) with ESMTP id E004D11E81B7 for <provreg@ietf.org>; Fri, 15 Nov 2013 06:04:13 -0800 (PST)
Received: from peregrine.verisign.com ([216.168.239.74]) (using TLSv1) by exprod6ob114.postini.com ([64.18.5.12]) with SMTP ID DSNKUoYp3WWUPuTqqiEzZiBc6/tesK5uLjxY@postini.com; Fri, 15 Nov 2013 06:04:18 PST
Received: from brn1wnexcas02.vcorp.ad.vrsn.com (brn1wnexcas02.vcorp.ad.vrsn.com [10.173.152.206]) by peregrine.verisign.com (8.13.6/8.13.4) with ESMTP id rAFE4Crl030823 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 15 Nov 2013 09:04:12 -0500
Received: from BRN1WNEXMBX01.vcorp.ad.vrsn.com ([::1]) by brn1wnexcas02.vcorp.ad.vrsn.com ([::1]) with mapi id 14.02.0342.003; Fri, 15 Nov 2013 09:04:11 -0500
From: "Gould, James" <JGould@verisign.com>
To: "james.mitchell@ausregistry.com.au" <james.mitchell@ausregistry.com.au>, Seth Goldman <sethamin@google.com>, "Hollenbeck, Scott" <shollenbeck@verisign.com>
Thread-Topic: [provreg] RFC 5733: street changes with contact:update
Thread-Index: AQHO4U+h+i6MWHhfnUGX00QbNW5705olR18AgAAF/QCAABgkAIAA7jwAgAAuOACAAAk7AIAABp8A///CqAA=
Date: Fri, 15 Nov 2013 14:04:11 +0000
Message-ID: <CEAB90ED.51E41%jgould@verisign.com>
In-Reply-To: <CEAC5D2B.1462B%james.mitchell@ausregistry.com.au>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.3.6.130613
x-originating-ip: [10.173.152.4]
Content-Type: multipart/related; boundary="_004_CEAB90ED51E41jgouldverisigncom_"; type="multipart/alternative"
MIME-Version: 1.0
Cc: IETF Provreg Mailing List <provreg@ietf.org>
Subject: Re: [provreg] RFC 5733: street changes with contact:update
X-BeenThere: provreg@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: EPP discussion list <provreg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/provreg>, <mailto:provreg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/provreg>
List-Post: <mailto:provreg@ietf.org>
List-Help: <mailto:provreg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/provreg>, <mailto:provreg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Nov 2013 14:04:23 -0000

I agree that it changes/modifies the elements specified, where I view the elements as being the direct child elements of <contact:chg>, which include:

  1.  <contact:postalInfo> with type attribute as being relevant
     *   For example, if a contact had both types of postalInfo, inclusion of only one of the types ("int" or "loc") under the <contact:chg> does not implicitly remove the other type.
     *   All sub-elements of the <contact:postalInfo> with type would be replaced including the two streets to one street example.
  2.  <contact:voice> to replace the voice
  3.  <contact:fax> to replace the fax
  4.  <contact:email> to replace the email
  5.  <contact:authInfo> to replace the authorization information
  6.  <contact:disclose> to replace the disclosure.

The questions are focused on <contact:postalInfo> since it's a complex entity with one to two instances ("int" or "loc").  I view the concept of change as being a replace of the instance whether it's a complex or simple instance.

--

JG

[cid:1A04AEB8-F54A-435E-8231-E78362210DD9]

James Gould
Principal Software Engineer
jgould@verisign.com

703-948-3271 (Office)
12061 Bluemont Way
Reston, VA 20190
VerisignInc.com

From: James Mitchell <james.mitchell@ausregistry.com.au<mailto:james.mitchell@ausregistry.com.au>>
Date: Friday, November 15, 2013 7:43 AM
To: Seth Goldman <sethamin@google.com<mailto:sethamin@google.com>>, "Hollenbeck, Scott" <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>>
Cc: EPP Provreg <provreg@ietf.org<mailto:provreg@ietf.org>>
Subject: Re: [provreg] RFC 5733: street changes with contact:update

Seth et al,

The info response would be invalid for contacts having a <postalInfo> with only an <org>. IMO the correct interpretation is that the command changes/modifies only the elements specified, however I’m not sure how one would interpret <chg><postalInfo type="int"><addr><street>A lane</street></addr></postalInfo></chg> - replace the “first” street element or all street elements?

FYI, for backwards compatibility our implementation performs a remove/replace for the direct children of the <chg> element only. The following examples hopefully illustrate the behaviour.

<chg><postalInfo type="loc"/><chg> -> remove the localised postal info
<chg><postalInfo type="int"><org>ACME</org></postalInfo><chg> -> fail, missing required values
<chg><postalInfo type="int"><name>ACME</name><addr><city>Melbourne</city><cc>AU</cc></addr></postalInfo><chg> -> success, previous int postal info replaced

Regards,
James Mitchell
Software Product Manager / ARI Registry Services

From: Seth Goldman <sethamin@google.com<mailto:sethamin@google.com>>
Date: Friday, 15 November 2013 11:19 pm
To: "Hollenbeck, Scott" <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>>
Cc: IETF Provreg Mailing List <provreg@ietf.org<mailto:provreg@ietf.org>>
Subject: Re: [provreg] RFC 5733: street changes with contact:update




On Fri, Nov 15, 2013 at 6:46 AM, Hollenbeck, Scott <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>> wrote:
> -----Original Message-----
> From: Klaus Malorny [mailto:Klaus.Malorny@knipp.de<mailto:Klaus.Malorny@knipp.de>]
> Sent: Friday, November 15, 2013 4:01 AM
> To: Hollenbeck, Scott; Seth Goldman
> Cc: IETF Provreg Mailing List
> Subject: Re: [provreg] RFC 5733: street changes with contact:update
>
> On 14.11.2013 19:48, Hollenbeck, Scott wrote:
> > I don’t know how one can make a case that sub-element replacement is
> acceptable.
> > Section 3.2.5 of RFC 5733 says this (emphasis mine):
> >
> > “The EPP <update> command provides a transform operation that allows
> a client to
> > modify the attributes of a contact _/object/_.”
> >
> > and this:
> >
> > “An OPTIONAL <contact:chg> element that contains _/object attribute
> values to be
> > changed/_.”
> >
> > The <update> is thus focused on _/changing/_ the attributes of the
> _/object/_.
> > In the example Klaus provided, the command received is “replace the
> existing
> > <contact:postalInfo> attribute with a new instance of
> <contact:postalInfo>”. The
> > server failed to replace the two <street> elements with the single
> element
> > provided in the <update>. It shouldn’t work that way.
> >
> > Scott
> >
>
> Hi Scot, Seth,
>
> up to now I regarded the name, the organization and the the whole
> address block
> as the replacable units, derived from the associated XML schema. It
> namely
> contains two datatypes, "postalInfoType" for the create command and
> "chgPostalInfoType" for the update command. The first contains the
> <name> and
> <addr> elements as mandatory elements, the latter contains them as
> optional
> elements. If one would consider the postalInfo itself as the replacable
> unit, it
> would not make sense to enforce the name and address on <create>, but
> would
> allow to remove them with a following <update> request.
>
> So simply asked: What does the following schema-wise legal request do?
>
> <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
>    <contact:id>C20131114-01</contact:id>
>    <contact:chg>
>      <contact:postalInfo type="int"/>
>    </contact:chg>
> </contact:update>
>
> Does it clear the international contact? Does it leave the
> international postal
> data simply unchanged (aside from being illegal in Scot's view to
> submit a
> command that is effectively non-modifying). Does the following command

Go back to what I was trying to say yesterday: <chg> means "replace existing with new". So yes, it would change the international postal info to "empty".

> <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
>    <contact:id>C20131114-01</contact:id>
>    <contact:chg>
>      <contact:postalInfo type="int">
>        <contact:org>ACME Solutions</contact:org>
>      </contact:postalInfo>
>    </contact:chg>
> </contact:update>
>
> modify the postal info so that it *solely* contains the organization
> and nothing
> else afterwards?

Assuming all other schema requirements are met, yes.

I believe Klaus's point is that under this interpretation, the schema allows you to update a postalInfo to a version that would not be allowed in a create.

I still think your interpretation of the replace semantics is correct. But the schema is inconsistent, so it's understandable to interpret it otherwise.


Scott
_______________________________________________
provreg mailing list
provreg@ietf.org<mailto:provreg@ietf.org>
https://www.ietf.org/mailman/listinfo/provreg