Re: RFC 5733: street changes with contact:update

"Gould, James" <[email protected]> Fri, 15 Nov 2013 14:04:11 +0000
Newsgroups gmane.ietf.provreg
Message-ID <CEAB90ED.51E41%[email protected]>
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
[email protected]

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

From: James Mitchell <[email protected]<mailto:[email protected]>>
Date: Friday, November 15, 2013 7:43 AM
To: Seth Goldman <[email protected]<mailto:[email protected]>>, "Hollenbeck, Scott" <[email protected]<mailto:[email protected]>>
Cc: EPP Provreg <[email protected]<mailto:[email protected]>>
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 <[email protected]<mailto:[email protected]>>
Date: Friday, 15 November 2013 11:19 pm
To: "Hollenbeck, Scott" <[email protected]<mailto:[email protected]>>
Cc: IETF Provreg Mailing List <[email protected]<mailto:[email protected]>>
Subject: Re: [provreg] RFC 5733: street changes with contact:update




On Fri, Nov 15, 2013 at 6:46 AM, Hollenbeck, Scott <[email protected]<mailto:[email protected]>> wrote:
> -----Original Message-----
> From: Klaus Malorny [mailto:[email protected]<mailto:[email protected]>]
> 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
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/provreg

_______________________________________________
provreg mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/provreg
3CA91A0B-A6C1-43A5-AC92-8E23C9AD1B74[49].png (image/png, 4 KB) - not displayed