/DKHM-RFC-AutoRenew

RFC for proposed EPP extension for handling AutoRenew AutoExpire

MIT LicenseMIT

DK Hostmaster Logo


⚠️ TAKE NOTICE! ⚠️

This RFC is no longer being updated, the proposed changes have been implemented.

Please refer to the EPP Service Specification and the Registrar Portal Service Specification for details.


DKHM RFC for handling of Automatic Renewal or Expiration

Markdownlint Action Spellcheck Action

2020-11-23 Revision: 1.3

Table of Contents

Introduction

This is a draft and proposal for changes to the process for automatic renewal for domain names via the DK Hostmaster EPP portal/service. The specification briefly touches on the registrar portal service, which mimicks the EPP service for consistency.

The overall description of the concept of the registrar model offered by DK Hostmaster A/S provided as a general overview, where this RFC digs into the details of automatic renewal in the context of an implementation proposal.

About this Document

We have adopted the term RFC (Request For Comments), due to the recognition in the term and concept, so this document is a process supporting document, aiming to serve the purpose of obtaining a common understanding of the proposed implementation and to foster discussion on the details of the implementation. The final specification will be lifted into the DK Hostmaster EPP Service Specification implementation and this document will be closed for comments and the document no longer be updated and it will be archived.

This document is not the authoritative source for business and policy rules and possible discrepancies between this an any authoritative sources are regarded as errors in this document. This document is aimed at the technical specification and possible implementation and is an interpretation of authoritative sources and can therefor be erroneous.

License

This document is copyright by DK Hostmaster A/S and is licensed under the MIT License, please see the separate LICENSE file for details.

Document History

  • 1.3 2020-11-23

    • Addition of additional links to resources
    • Correction to links pointing to redundant resources
    • Minor rephrasing and clarifications
  • 1.2 2020-11-04

    • Corrected namespace in examples, the params part was not included
  • 1.1 2020-09-19

    • Addition of disclaimer
  • 1.0 2020-08-25

    • Initial revision

XML and XSD Examples

All example XML files are available in the DK Hostmaster EPP XSD repository.

The proposed extensions and XSD definitions are available in version 4.0 of the DK Hostmaster XSD, which is currently marked as a pre-release.

The referenced XSD version is not deployed at this time and is only available in the EPP XSD repository, it might be surpassed by a newer version upon deployment of the EPP service implementing the proposal, please refer to the revision of EPP Service Specification describing the implementation.

Description

DK Hostmaster introduces the concept of auto renewal. This is will be based on a single value assigned to a designated domain name.

The default is that auto renewal is enabled, meaning that domain names will be renewed unless requested not to.

The basic request to alter this behaviour is to use the update domain command. The command will support both enabling and disabling auto renewal.

info domain will be extended with information on the current status for auto renewal.

In addition to updating the auto renewal state using by updating the setting. The setting can be set both at the time of:

  • domain creation via create domain
  • transfer via transfer domain

The handling of automatic renewal for transfer is described in detail in this RFC, for additional details on the DK Hostmaster implementation for the transfer domain command, please refer to the separate RFC: "DKHM RFC for Transfer Domain EPP Command" for details.

And last but not least the auto renewal can be disabled by using the delete domain command, by providing a date prior to the expiry date, auto renewal will be implicitly disables. Please see the RFC: "DKHM RFC for Delete Domain EPP Command" for details.

  <extension>
    <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">false</dkhm:autoRenew>
  </extension>

The XSD for the extension look as follows:

  <!-- custom: autoRenew  -->
  <simpleType name="autoRenew">
    <restriction base="token">
        <enumeration value="true"/>
        <enumeration value="false"/>
    <restriction/>
  </simpleType>

Ref: dkhm-4.0.xsd

The complete command for disabling automatic renewal will look as follows (example lifted from RFC:5731 and modified):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <domain:update
       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>eksempel.dk</domain:name>
      </domain:update>
    </update>
    <extension>
      <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">false</dkhm:autoRenew>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

And the complete command for enabling automatic renewal will look as follows (example lifted from RFC:5731 and modified):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <domain:update
       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>eksempel.dk</domain:name>
      </domain:update>
    </update>
    <extension>
      <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">true</dkhm:autoRenew>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

The alteration of the value will be reflected in the info domain response using the same extension (example lifted from DK Hostmaster EPP service specification revision 3.8 and modified):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <result code="1000">
      <msg>Info result</msg>
    </result>
    <resData>
      <domain:infData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>dk-hostmaster.dk</domain:name>
        <domain:roid>DK_HOSTMASTER_DK-DK</domain:roid>
        <domain:status s="serverUpdateProhibited"/>
        <domain:status s="serverTransferProhibited"/>
        <domain:status s="serverDeleteProhibited"/>
        <domain:registrant>DKHM1-DK</domain:registrant>
        <domain:ns>
          <domain:hostObj>auth01.ns.dk-hostmaster.dk</domain:hostObj>
          <domain:hostObj>auth02.ns.dk-hostmaster.dk</domain:hostObj>
          <domain:hostObj>p.nic.dk</domain:hostObj>
        </domain:ns>
        <domain:host>auth01.ns.dk-hostmaster.dk</domain:host>
        <domain:host>auth02.ns.dk-hostmaster.dk</domain:host>
        <domain:host>venteliste1.dk-hostmaster.dk</domain:host>
        <domain:host>venteliste2.dk-hostmaster.dk</domain:host>
        <domain:host>blocked1.ns.dk-hostmaster.dk</domain:host>
        <domain:host>blocked2.ns.dk-hostmaster.dk</domain:host>
        <domain:clID>DKHM1-DK</domain:clID>
        <domain:crID>DKHM1-DK</domain:crID>
        <domain:crDate>1998-01-19T00:00:00.0Z</domain:crDate>
        <domain:exDate>2022-03-31T00:00:00.0Z</domain:exDate>
      </domain:infData>
    </resData>
    <extension>
        <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">true</dkhm:autoRenew>
    </extension>
    <trID>
      <clTRID>fee9352765ab62fefc69558d3f4e0eed</clTRID>
      <svTRID>CF056EB6-D2CA-11E9-8DAB-C853983F0358</svTRID>
    </trID>
  </response>
</epp>

As described the flag can be set at the time of transfer or creation.

A creation command would look as follows:

<?xml version="1.0" encoding="utf-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
    <command>
        <create>
            <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd">
                <domain:name>eksempel.dk</domain:name>
                <domain:period unit="y">1</domain:period>
                <domain:ns>
                    <domain:hostObj>ns1.dk-hostmaster.dk</domain:hostObj>
                    <domain:hostObj>ns2.dk-hostmaster.dk</domain:hostObj>
                </domain:ns>
                <domain:registrant>DKHM1-DK</domain:registrant>
                <domain:authInfo>
                    <domain:pw />
                </domain:authInfo>
            </domain:create>
        </create>
        <extension>
            <dkhm:orderconfirmationToken xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">testtoken</dkhm:orderconfirmationToken>
            <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">true</dkhm:autoRenew>
        </extension>
        <clTRID>92724843f12a3e958588679551aa988d</clTRID>
    </command>
</epp>

Do note the above example also includes the dkhm:orderconfirmationToken, which is not related to dkhm:autoRenew, but can co-exist as demonstrated by the example.

For transfer an example using the same extension would look as follows (example lifted from RFC:5731 and modified):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="request">
      <domain:transfer
       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>eksempel.dk</domain:name>
        <domain:authInfo>
          <domain:pw>DKHM1-DK-098f6bcd4621d373cade4e832627b4f6</domain:pw>
        </domain:authInfo>
      </domain:transfer>
    </transfer>
    <extension>
        <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">true</dkhm:autoRenew>
    </extension>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>

Since the support for the EPP command transfer domain is only a proposal, the above example relies on the outcome of the RFC. please refer to the separate RFC: "DKHM RFC for Transfer Domain EPP Command" for more details.

In order to minimise the use of extensions, the registrar will be allowed to define default values for autorenewal behaviour and these defaults will be used by the above commands, where the extensions are not used.

If a registrar specifies the default behaviour of own account to be that auto renewal should not happen and this setting is now overwritten by using the extension for the specific commands, auto renewal will be set to false.

Command\Default Auto Renew Expire
update N/A N/A
create true false
transfer true false

The update domain will only rely on the use of the extension for explicitly setting the auto renewal for the designated domain name. Whereas create domain and transfer domain will use the default setting, unless explicitly overwritten using the extension and of course specifying a value holding the opposite value of the default. Specifying the same value as the default using the extension will of course not have any effect.

Administration of these values for controlling the default behaviour will have to be done via the Registrar Portal, since account level commands are not offered by the EPP service.

XSD Definition

This XSD definition is for the proposed extension dkhm:autoRenew, which is used to communicate a the setting of auto renewal for a designated domain name.

  <!-- custom: autoRenew  -->
  <simpleType name="autoRenew">
    <restriction base="token">
        <enumeration value="true"/>
        <enumeration value="false"/>
    <restriction/>
  </simpleType>

Example (lifted from above):

  <extension>
    <dkhm:autoRenew xmlns:dkhm="urn:dkhm:params:xml:ns:dkhm-4.0">false</dkhm:autoRenew>
  </extension>

Ref: dkhm-4.0.xsd

The referenced XSD version is not deployed at this time and is only available in the EPP XSD repository, it might be surpassed by a newer version upon deployment of the EPP service implementing the proposal, please refer to the revision of EPP Service Specification describing the implementation.

References

  1. "New basis for collaboration between registrars and DK Hostmaster"
  2. DK Hostmaster EPP Service Specification
  3. DK Hostmaster EPP Service XSD Repository
  4. DKHM RFC for Delete Domain EPP Command
  5. DKHM RFC for Transfer
  6. RFC:5730 "Extensible Provisioning Protocol (EPP)"
  7. RFC:5731 "Extensible Provisioning Protocol (EPP) Domain Name Mapping"