JSON response to provide Registry Maintenance Notifications within an Extensible Provisioning Protocol (EPP) poll response
draft-sattler-epp-poll-maintenance-response-07

Internet Engineering Task Force                               T. Sattler
Internet-Draft                                            united-domains
Intended status: Experimental                           October 27, 2017
Expires: November 30, 2017

              Registry Maintenance Notifications through
 Extensible Provisioning Protocol (EPP) poll response with JSON payload
            draft-sattler-epp-poll-maintenance-response-00

Abstract
   This document describes the JSON payload of an Extensible
   Provisioning Protocol (EPP) poll response to provide Domain Name
   Registry Maintenance Notifications to Domain Name Registrars.

Status of This Memo
   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

Copyright Notice
   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Sattler                Expires November 30, 2017                [Page 1]


Internet-Draft         Maintenance JSON Response            October 2017

Table of Contents
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   x
     1.1.  Terminology and Definitions . . . . . . . . . . . . . . .   x
   2.  JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . .   x
   3.  Common Data Types . . . . . . . . . . . . . . . . . . . . . .   x
   4.  EPP poll response . . . . . . . . . . . . . . . . . . . . . .   x
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   x
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   x
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   x
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   x
   Appendix A.  Motivations for Using JSON . . . . . . . . . . . . .   x
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   x

1.  Introduction

   This document describes the JSON [RFC7159] payload of an Extensible
   Provisioning Protocol (EPP) [RFC5730] poll response to provide Domain
   Name Registry Maintenance Notifications to Domain Name Registrars.

1.1.  Terminology and Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119] when
   specified in their uppercase forms.

   The following list describes terminology and definitions used
   throughout this document:

   EPP:              Extensible Provisioning Protocol

   DNRY:             Domain Name Registry

   DNRR:             Domain Name Registrar

   JSON:             JavaScript Object Notation

   NTFY:             Domain Name Registry Maintenance Notification

Sattler                Expires November 30, 2017                [Page 2]


Internet-Draft         Maintenance JSON Response            October 2017

2.  JSON payload

   This is the JSON schema.

3.  Common Data Types

   JSON [RFC7159] defines the data types of a number, character string,
   boolean, array, object, and null.  This section describes the
   semantics and/or syntax reference for common, JSON character strings
   used in this document.

   notifications:    contains a single NTFY

   id:               unique id for each NTFY, SHOULD NOT be changed if
                     it gets postponed

   systems:          contains name, host and impact

   name:             name of affected system

   host:             affected maintained system (host or ip)

   impact:           impact level per affected sytem; values are either
                     'partial' or 'blackout'

   environment:      environment of affected maintained system

   start:            start of maintenance according ISO 8601 [RFC3339]
                     YYYY-MM-DDThh:mm:ssTZD

   end:              end of maintenance according ISO 8601 [RFC3339]
                     YYYY-MM-DDThh:mm:ssTZD

   reason:           free text why it is necessary, MAY be empty

   remark:           URI to detailed maintenance description, MAY be
                     empty

   tlds:             affected top-level domains punycode encoded
                     according [RFC3492]

   intervention:     contains connection and implementation

   connection:       true or false - indicates if DNRR needs to do
                     something that is connection related

   implementation:   true or false - indicates if DNRR needs to do
                     something that is implementation related


4.  EPP poll response

   According to EPP [RFC5730], the EPP poll response allows mixed
   content and also be returned without object information.

Sattler                Expires November 30, 2017                [Page 3]


Internet-Draft         Maintenance JSON Response            October 2017

   Example <poll> response with mixed message content and without
   object-specific information:

   S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   S:  <response>
   S:    <result code="1301">
   S:      <msg>Command completed successfully; ack to dequeue</msg>
   S:    </result>
   S:    <msgQ count="4" id="12346">
   S:      <qDate>2017-02-08T22:10:00.0Z</qDate>
   S:      <msg lang="en">
   S:       {"maintenance":[
   S:         {"notification":{
   S:           "system":["epp.registry.example"],
   S:           "environment":"production",
   S:           "start":"2017-04-30T06:00:00+00:00",
   S:           "reason":"planned maintenance",
   S:           "impact":["blackout"],
   S:           "remark":
   S:             "https://portal.registry.example/maintenance-desc",
   S:           "end":"2017-04-30T07:00:00+00:00",
   S:           "tlds":["example","test"],
   S:           "intervention":
   S:             ["connection":false,"implementation":false]
   S:         }},
   S:         {"notification":{
   S:           "system":["epp.registry.example",
   S:             "whois.registry.example",
   S:             "https://portal.registry.example"],
   S:           "environment":"production",
   S:           "start":"2017-06-15T04:30:00+00:00",
   S:           "reason":"planned maintenance",
   S:           "impact":["partial","partial","blackout"],
   S:           "remark":
   S:             "https://portal.registry.example/maintenance-desc",
   S:           "end":"2017-06-15T05:30:00+00:00",
   S:           "tlds":["example"],
   S:           "intervention":
   S:             ["connection":true,"implementation":false]
   S:         }}
   S:       ]}
   S:      </msg>
   S:    </msgQ>
   S:    <trID>
   S:      <clTRID>ABC-12346</clTRID>
   S:      <svTRID>54321-XYZ</svTRID>
   S:    </trID>
   S:  </response>
   S:</epp>

Sattler                Expires November 30, 2017                [Page 4]


Internet-Draft         Maintenance JSON Response            October 2017

5.  IANA Considerations

6.  Security Considerations

   This specification models information serialized in JSON format.  As
   JSON is a subset of JavaScript, implementations are advised to follow
   the security considerations outlined in Section 6 of [RFC7159] to
   prevent code injection.

   Implementers should be aware of the security considerations specified
   in [RFC5730].

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC3339]  Klyne, G., Ed. and C. Newman, "Date and Time on the
              Internet: Timestamps", RFC 3339, July 2002,
              <https://www.rfc-editor.org/info/rfc3339>.

   [RFC3492]  Costello A., "Punycode: A Bootstring encoding of Unicode
              for Internationalized Domain Names in Applications (IDNA)
              ", RFC 3492, March 2003,
              <https://www.rfc-editor.org/info/rfc3492>.

   [RFC5730]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
              STD 69, RFC 5730, August 2009,
              <https://www.rfc-editor.org/info/rfc5730>.

   [RFC7159]  Bray, T., "The JavaScript Object Notation (JSON) Data
              Interchange Format", RFC 7159, March 2014,
              <https://www.rfc-editor.org/info/rfc7159>.

Sattler                Expires November 30, 2017                [Page 5]

Internet-Draft         Maintenance JSON Response            October 2017

Appendix A.  Motivations for Using JSON

   This section addresses a common question regarding the use of JSON
   over other data formats, most notably XML.

   It is often pointed out that DNRY and DNRR support the EPP
   [RFC5730] standard, which is an XML serialised protocol.  The logic
   is that since EPP is a common protocol in the industry, it follows
   that XML would be a more natural choice.

   While that being true, the intent to use JSON is to use the already
   approved and reliable EPP command <poll> and its capabilities to
   transport mixed content without object information instead of
   creating a new EPP extension.

Author's Address

   Tobias Sattler
   united-domains AG
   Gautinger Str. 10
   82319 Starnberg
   DE

   Email: sattler@united-domains.de
   URI: https://www.united-domains.de