Subject: Re: [regext] Request for Working Group Last Call for draft-ietf-regext-change-poll

From: Antoin Verschuren <[email-masked]>
Date: Wed, 13 Dec 2017 14:36:14 +0100

James,

Same for this one.
Jim and I were going to send out a formal WGLC on this document, but we didn’t see a reply to this extensive review yet.
What do you want us to do, wait for you to have treated Patrick’s comments, or consider them as part of WGLC (Which may have a deadline)?

Jim and Antoin

- --
- --
Antoin Verschuren

Tweevoren 6, 5672 SB Nuenen, NL
M: +31 6 37682392

Op 23 nov. 2017, om 06:42 heeft Patrick Mevzek <[email-masked]> het volgende geschreven:

> Hello James and Kal,
> 
> Here are my comments on the draft:
> 
> The abstract is almost longer than the introduction,
> and I believe it should be the opposite.
> 
> I prefer this sentence in the abstract:
> notifying clients of operations on client sponsored
>   objects that were not initiated by the client through EPP.
> 
> over this one in the introduction:
> to notify clients of operations they are not
>   directly involved in, on objects that the client sponsors.
> 
> I think the given clients are directly involved as they are
> the sponsors on the objects being operated. I think it is best
> to say something like in the abstract, which is that the goal
> of this extension is to notify clients of operations conducted
> on objects they sponsor and which were not initiated by them.
> (please rephrase that in proper English).
> 
> "Using this extension clients can more easily keep"
> A missing "," after extension?
> 
> "a poll message can be inserted"
> The whole purpose of the extension is to add these poll messages,
> so maybe being more affirmative like "one or more poll messages
> are inserted".
> 
> Also, RFC5730 speaks about the poll *command* but otherwise it is
> about *service messages*, so it is maybe better to align
> the terminology.
> 
> 2.1
> 
> For transfer, why is the op attribute optional, especially since
> it has no default value?
> RFC5730 defines 5 transfer sub-operations with no extension possible,
> so I believe here the op attribute should be mandatory
> 
> As for restore that has a sub operation case too, I think the same
> reasoning apply.
> 
> 2.2 Maybe a little rephrasing to be clearer, I suggest:
> "The <changePoll:who> element defines who executed the operation,
> for audit purposes."
> 
> Further below, you capitalize who as Who but I see no reason to
> do that.
> 
> Then you list 3 possible cases for the content of the who attributes,
> but since it is just a normalizedString, the consumer of such poll
> messages has no indication in which of these 3 cases we are, or others.
> Maybe it would be better to add an attribute to the who element,
> like "type" that remains free text but will allow the registry
> to explain what the who content is about with such values
> as "identifier" (and/or "roid" and/or "gurid" for example°),
> "name" or maybe better "individual", and "role", or "batch".
> 
> I found the whole section 2 to not be clear enough. You state that
> it is an extension to object mappings and then you discuss only two
> attributes, while others are discussed later in section 3.
> 
> 
> 3.1.2
> 
> Should be retitled about service messages and poll commands, as this
> sentence is wrong:
> This extension adds transaction detail of the operations to the EPP
>   <info> poll response,
> There is no <info> poll response, but just a poll response with
> a service message it has nothing to do with the info command.
> 
> you say "Object Mapping" with uppercases, and before you
> had "object mapping". Please double check the whole documenthe
> and apply some uniform formatting.
> 
> This sentence is not clear:
> "This extension adds transaction detail of the operations"
> Which operations? Why using the term "transaction"?
> Did you want instead to clearly speak about "transform
> operations" like you do elsewhere.
> 
> changePoll:date : please specify in what timezone it SHOULD
> or MUST be.
> RFC5731 section 2.4 says about date and times:
> Date and time attribute values MUST be represented in Universal
>   Coordinated Time (UTC) using the Gregorian calendar.
> Maybe you should do the same here for homogeneity?
> 
> changepoll:caseId has only two specified values for its type
> attribute (UDRP and URS) but if we go back to the abstract
> where you listed possible cases, you listed UDRP and URS,
> but also court directed actions, and bulk updates.
> So why not also add types "court" and "bulk" for example
> That would make the informal abstract and the formal technical
> specification more closely aligned.
> 
> 
> 
> I am not sure to understand the example for the autopurge.
> If the registry deletes a domain with an immediate purge I expect the
> domain not to exist anymore. But in your example you show the "after"
> state
> and there you have a domain:name and a domain:clID still... but the
> domain
> should not exist anymore.
> In my view you should have the before state with all domain:infDatq, and
> for the
> after state, there should be no domain data anymore.
> I agree it creates a problem as you loose the domain name itself
> in the message, but I still think there should be no domain
> data if it was purged.
> What do you think?
> 
> 
> 
> As a more generic note, you may include a non exhaustive list of
> cases to show when such messages could be produced:
> - for out of band contact eligibility tests by registry, contact
> data may change
> - when a domain name is transfered in-bailiwick hosts get transfered
> too, that could add service messages for them. But then which registrars
> should get the messages about the hosts? The one before or after the
> transfer? Both?
> - for out of band domain tests by registry, like technical ones
> related to resolution
> - for contacts being automatically purged by a registry after
> some time of non-use
> - etc.
> 
> 
> 
> 
> Implementation status: you can add Net::DRI as a client if you like,
> it implements all the draft.
> 
> --
>  Patrick Mevzek
>  [email-masked]
> 
> _______________________________________________
> regext mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/regext

---

From: "Gould, James" <[email-masked]>
Date: Fri, 15 Dec 2017 22:59:08 +0000

Patrick,

Sorry again about the long delay in my review of your feedback.  Thank you for doing the detailed review.  I include my responses to your feedback embedded below.

—
 
JG

James Gould
Distinguished Engineer
[email-masked]

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com <http://verisigninc.com/> 

On 11/23/17, 12:42 AM, "regext on behalf of Patrick Mevzek" <[email-masked] on behalf of [email-masked]> wrote:

    Hello James and Kal,

    

Ok, we’ll look at the abstract and introduction.  

Agreed, I’ll add the missing ‘,’.  

I would love to be more affirmative, but the definition of “client needs” and what the server can do in what iteration is a gap that may not meet the more affirmative language.  The goal is certainly that a poll message is inserted for all changes that the client needs to be notified of, but I don’t believe the draft can force the server policy.  

Since RFC 5730 explicitly refers to the poll command and that is understood terminology in the industry, I believe it’s best to stick to the poll command and response terminology.  

    2.1

How about changing the language in describing the “transfer” and “restore” and “custom” operations to require the setting of the “op” attribute as in: 

Transfer operation as defined in [RFC5730] that MUST set the "op" attribute with one of the possible transfer type values that include "request", "approve", "cancel", or "reject".
Restore operation as defined in [RFC3915] that MUST set the "op" attribute with one of the possible restore type values that include "request" or "report".
Custom operation that MUST set the "op" attribute with the custom operation name.

Agreed, I’ll make that change.

That is chaptalized since it referring to the term being defined.  It may be better to refer to the <changePoll:who> element instead if the first sentence leads with the <changePoll:who> element.  I’ll change it to reference the <changePoll:who> element instead of the capitalized Who.  

The main question is whether a client will need or want to know this?  This is somewhat similar to the domain:crID and domain:upID in RFC 5731, where the client may use the information for capturing but they will not drive logic on it.  We certainly do need to capture who made the change, but I’m not convinced that adding a “type” is needed by the client.   

Yes, this is a command response extension of any object mapping, and the Object Attributes section provides extra information on the general attributes used within the extension.  This is consistent with what has been done in other extensions like the RGP extension (RFC 3915) and the DNSSEC Extension (RFC 5910).  The more complex attributes are more fully defined in section 2 and referenced from section 3, and the rest of the attributes are defined under the commands in section 3.  
    
    3.1.2 

How about changing the sentence to “This extension adds operation detail of EPP Object Mapping operations [section 2.1] to an EPP poll response, as described in [RFC5730], that is an extension of the EPP Object Mapping info response.”?  The key point is that this is truly an extension of the object’s info response that is used in an EPP poll response.  

I will revise it to lowercase “object mapping” throughout the document.

I changed transaction to operation.

I believe that a “Dates and Times” section needs to be added to section 2 to address this generically.  

The reason why is because these are the only known external case identifiers that can be referenced.  The abstract includes sample use cases but not an exhaustive list.  The “custom” enumerated value with the “name” attribute can be used for new cases.  If “court” and “bulk” are common cases with external identifiers, then they can be added, but I don’t believe this is the case.      

I thought about this one, and yes this is a grey area.  I believe it’s more important to keep the use of the required “after” state here.  The use of the “before” state is optional and I don’t want to add complexity by adding support for it here.  In this case, the operation is identifying to the client that the specified record that is included was purged from the system.           

Thanks for additional cases that can be considered for inclusion.  I believe that there is a long list of possible cases, but I have a concern with attempting to focus too much on the cases that the extension can support instead of focusing on the elements of the extension itself.   The extension has been made generic enough to apply to a very large set of cases.        

Thanks again for the work on Net::DRI, and we can certainly add Net::DRI to the Implementation Status section.  Can you provide the following key values to add to the draft or you can also submit a pull request to the EPP-Allocation-Token-Specification GitHub project (https://github.com/james-f-gould/EPP-Allocation-Token-Specification.git) if you want to define it yourself?      

1. Organization
2. Description
3. Level of maturity
4. Coverage
5. Licensing
6. Contact
7. URL
 
    -- 
      Patrick Mevzek
      [email-masked]