Subject: Re: [regext] [eppext] Fwd: New Version Notification for draft-brown-epp-reverse-00.txt

From: Patrick Mevzek <[email-masked]>
Date: Wed, 30 Mar 2016 01:27:54 +0200

Gavin Brown <[email-masked]> 2015-11-13 12:03
> Hi all,
> 
> I've just uploaded an I-D for a new EPP extension. From the Introduction:
> 
>    The Extensible Provisioning Protocol (EPP) provides a way for clients
>    to create and update objects in a central repository.  Usually, the
>    commands that a client sends to a server will have been initiated
>    upon request of a human being.  As a result, occasionally a command
>    is sent which contains an error. [...] The extension described in this
>    document attempts to provide an additional remedy for [cases where
>    the existing EPP command repertoire cannot be used] by providing a
>    way for a client to request that a previous command be reversed.  In
>    order to reverse a command, the client need only record the
>    <svTRID> returned by the server in its response to the command.
> 
> Before starting work on this extension, I looked around to see if there
> was anything similar already out there. Nominet have an extension which
> allows clients to cancel <renew> commands[1] but I wasn't able to find
> anything that implemented a general purpose "undo".
> 
> One thing on the roadmap is to add clarity about what should happen if
> the client tries to <reverse> a command that is still pending (ie the
> original command got a 1001 response). Otherwise I think most of the
> bases have been covered.
> 
> Comments and suggestions welcome as always!

Hello Gavin,

I've implemented your extension in my EPP toolkit.

I have some comments/questions that came to my mind while implementing
it, and while part of them are probably business rules rather than
protocol level stuff, there may be some need to add more details in
the specification, like what kind of error messages/codes to trigger
in such conditions and so on.

Sorry if some points have already been raised, I'm lagging behind on my
IETF email.

So my questions:

- cltrid is optional, what happens if it is provided but not matching
  the svtrid also provided?
- also this mandates the registry to keep track of all past cltrids
  (and svtrids) to be able to retrieve them in the future, with all
the command details; is that a sustainable hypothesis?
- your examples speak only about domain names, is the reverse command
  also useful for host and contact operations to undo?
If so, the specification should provide some examples
- should there be some text explaining that you can reverse only the
  "last" operation on an object (so maybe alleviating the above
problem of storing all cltrids/svtrids for objects by storing only the
last ones?) and not any of them?
- what happens if you reverse a transfer?
- what happens if you reverse session commands: login, logout, poll
  ack and retrieve?
- what happends if you reverse a delete, specifically about the RGP?

-- 
Patrick Mevzek

---

From: Gavin Brown <[email-masked]>
Date: Wed, 30 Mar 2016 15:18:22 +0100

>   the svtrid also provided?

I would expect that the server would reject the request if an incorrect
clTRID is supplied.

> the command details; is that a sustainable hypothesis?

I can't speak for other server operators, but it's sustainable for us
(although we purge log entries after a few months).

> If so, the specification should provide some examples

Yes, it's not tied to a particular object type. However, most
non-reversible commands relate to domains (<renew> in particular). I
will consider adding some more examples.

> last ones?) and not any of them?

That would be a matter of server policy and capability. It should be
possible to reverse an erroneous <renew> command, even if there has been
an <update> in the time since the <renew>, but I can imagine that some
servers might not be able to support this.

> - what happens if you reverse a transfer?

That would be a matter of server policy. Receiving a <reverse> request
for a completed transfer might trigger a transfer dispute process.

> - what happens if you reverse session commands: login, logout, poll

Those should obviously result in an error message. I will update the draft.

> - what happends if you reverse a delete, specifically about the RGP?

If a server doesn't implement the RGP extension, then this is a way to
restore a domain on a normal pendingDelete status.

I suppose that servers that do implement the RGP extension would reject
a request to reverse a <delete>, and would expect the client to use the
RGP restore command. Again, I will look into adding some text around this.

G.

-- 
Gavin Brown
Chief Technology Officer
CentralNic Group plc (LSE:CNIC)
Innovative, Reliable and Flexible Registry Services
for ccTLD, gTLD and private domain name registries
https://www.centralnic.com/

CentralNic Group plc is a company registered in England and Wales with
company number 8576358. Registered Offices: 35-39 Moorgate, London,
EC2R 6AR.