Subject: [regext] I-D Action: draft-ietf-regext-simple-registration-reporting-06.txt

From: [email-masked]
Date: Mon, 07 Mar 2022 15:14:29 -0800

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Registration Protocols Extensions WG of the IETF.

        Title           : Simple Registration Reporting
        Authors         : Joseph Yee
                          James Galvin
	Filename        : draft-ietf-regext-simple-registration-reporting-06.txt
	Pages           : 34
	Date            : 2022-03-07

Abstract:
   Domain name registries (the producer) and registrars (the consumer)
   report to each other by sharing bulk information through files.  This
   document creates two IANA registries to establish a standard
   reporting mechanism between domain name registries and registrars.
   The first IANA registry lists standard data elements and their syntax
   for inclusion in the files.  The second IANA registry lists standard
   reports based on the standard data elements.  Each report is a file
   formatted as a CSV file.  The advantage of this reporting mechanism
   is that a report, each file, can be imported by recipients without
   any prior knowledge of their contents, although reporting is enhanced
   with a minimum of knowledge about the files.  The mechanism for the
   distribution of and access of the files is a matter of local policy.

The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-regext-simple-registration-reporting/

There is also an HTML version available at:
https://www.ietf.org/archive/id/draft-ietf-regext-simple-registration-reporting-06.html

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-regext-simple-registration-reporting-06

Internet-Drafts are also available by rsync at rsync.ietf.org::internet-drafts

---

From: "Gould, James" <[email-masked]>
Date: Fri, 25 Mar 2022 14:42:58 +0000

Hi,

I did a detailed review of draft-ietf-regext-simple-registration-reporting-06 and below is my feedback:

  1.  Introduction
     *   I’m not sure whether there have been “a number of best practice reports that have evolved”, but I do agree that there have been “a number of best practices that have evolved”.
     *   Nit – “data element aforementioned data element registry” to “data element registry”.
  2.  Data Element Specification
     *   Nit – “printed report” could simply be “report”.  I don’t believe printed is relevant.
     *   There is no definition of the format used for the data element names (e.g., upper case, lower case, camel case, snake case).  The names are inconsistent, but they primarily support the use of upper-case leading words, with the use of underbars as a word separator.  My recommendation is to formally define the expected data element names and ensure that all the data element names follow the defined format.
     *   Overall
        *   We need to ensure that only elements that are standard elements (non-proprietary) are pre-defined.
        *   We need to ensure to use a consistent naming convention.
        *   We need to look to support a candidate list of registration elements that are in line with the elements defined and the naming conventions used in the relevant EPP RFCs.
  3.  General Data Elements
     *   Transaction_Type
        *   How do you deal with extensions to the commands outlined in RFC 5730, such as the restore request, restore response, or operations that are not defined in RFC 5730, such as auto renew?
     *   Object_Type
        *   Since EPP extension can define a new object, then the Object_Type also needs to be extensible, such as the definition of an Email Forwarding, Defensive Registration, or NameWatch objects for .NAME.
     *   DateTime
        *   Shouldn’t this be Date_Time to be consistent with the format of the other data elements?
     *   Term
        *   Why not use Period instead of Term to be consistent with the element used in EPP?
     *   Fee
        *   I would reference the use of “decimal” for the format, since referencing “balanceType” is unrelated to representing a fee.  The “balanceType” is a decimal value to support a positive (fee) or negative (credit) value, so referencing “decimal” is best.
     *   Status
        *   A status is an individual value.  How do you handle a report that has more than one status?  Does that mean adding multiple rows to the report, each with a different status value?  How do you handle representing additional statuses, such as the RGP statuses?
        *   My recommendation is to add a Statuses element that supports a list of statuses that is an encoded element in double quotes, such as “clientUpdateProhibited,clientRenewProhibited”.
     *   Registrar
        *   There is the chance that the free-form registrar name could include the delimiter, so the use of quoting will be needed.
     *   Period
        *   Why not call this Unit to be consistent with the EPP term?  The term is reflected using the pUnitType in RFC 5731.
  4.  Domain Price Data Elements
     *   Same feedback on the use of the unrelated “balanceType” in RFC 8748.  The recommendation is to simply refer to the type “decimal” to support positive and negative values.  The alternative for fees is to only support positive values with the “nonNegativeDecimal” type in RFC 8748, since I don’t believe the price values should be negative.
     *   I believe all the Price Data Element should include an indication that it’s a price or a fee, such as prefixing “Price_” for each of them.  So, it would be “Price_Domain_Create”, “Price_Domain_Renew”, “Price_Domain_Transfer”, “Price_Domain_Restore”, and “Price_Domain_Trade”.  All the elements should include the object, since there are additional EPP objects that support billable commands.
     *   I assume that other billable commands could be supported by defining new custom elements with the pattern “Price_”<Object>”_”<Command>, such as the “Price_Domain_Sync” element for the proprietary sync command defined in https://www.verisign.com/assets/consolidate-mapping.txt.
     *   Trade
        *   Where is a trade defined?  The concept of a trade seems like a proprietary feature that should be moved outside the draft.
  5.  Timestamp Data Elements
     *   Start_Date
        *   Why not call this Available_Date to match its meaning?  Where is this element used since it overlaps with the Purge_Date element for domains in RGP?
     *   RGP_Date
        *   RGP_Date is not descriptive enough.  I believe this should be Redemption_End_Date.
        *   Purge_Date

1.      This could be Pending_Delete_End_Date, which is when the purge occurs, and the domain becomes available.

     *   Where is Transfer_Date?
        *   I believe that all the dates in RFC 5731 should be supported at a minimum.
  1.  Registration Information Data Elements
     *   Registrar_ID
        *   You may want to separate Registrar_ID from IANA_ID or GURID to enable inclusion of both.
     *   Server_Registrant_ID
        *   Where is a server registrant ID defined?  RFC 5733 defines the use of client assigned identifiers.  This is a proprietary feature that should be moved outside the draft.
        *   My recommendation is to define a Registrant_ID element that should be defined by the client, per RFC 5733.
     *   Server_Contact_ID
        *   Where is the contact ID defined?  RFC 5733 defines the use of client assigned identifiers.  This is a proprietary feature that should be moved outside the draft.
        *   My recommendation is to define a Contact_ID element that should be defined by the client, per RFC 5733.
     *   In_Use
        *   How about using Linked, which matches the language used in RFC 5733?
     *   Nameserver_Host
        *   How about Host_Name to be in line with the naming in RFC 5732?
     *   Nameserver_IP
        *   How about Host_IP or Host_IPs to be in line with the naming in RFC 5732?
        *   How is the list of IPs handled in the report?
     *   Client_Contact_ID
        *   I recommend changing this to Contact_ID, which is assigned by the client (registrar), per RFC 5733.
  2.  Report Definition Specification
     *   “The remaining rows of the file are the unordered sets of data elements, one set per row, where each row is one transaction in the report.”
        *   The data elements are ordered based on the order defined in the header row.  Each row is a record and not a transaction in the report.
     *   I would not refer to them as “transaction rows”, but instead “record rows”.
     *   High-level, each report definition needs to include a description of the report that defines its purpose.  I assume the frequency of the report would be up to server policy.  As noted in a prior message on the list, I believe the draft needs to focus only on the framework and not the concrete reports.  The first step is to have the capability to formally define the existing reports in a consistent manner and have the reports follow some predefined requirements.
     *   Domain Transaction
        *   I would only include the Registrar_ID in place of including the verbose Registrar for all the transactions, since there could be a very large set of transactions and the Registrar Name can be derived from the Registrar_ID when needed.
        *   Would it be good to include the domain ROID to uniquely identify the domain name instance?
        *   The Transaction_Type values will need to support a broader set of types.  We need to take a closer look on how to handle extensibility of Transaction_Type values, since transactions that the registrar does not recognize can be ignored, but at least they have the information available.
        *   The Period, Term, Fee, and Currency will only apply to certain Transaction_Types.
        *   I’m not exactly sure what the purpose is for the Description for an automated report that can have many transaction records.  I recommend removing the Description unless there is a driving use case for it.
        *   Additional element to consider:

1.      Session_ID, Updated_By (could match to Registrar_ID where the Updated_By is more fine-grained to an individual user), ROID (Instance of a domain name), Parent_Transaction_ID if there is a composite transaction.

     *   Premium Name
        *   What is the purpose of the Status element?
        *   What is the purpose of the Description element?  My recommendation is to remove this element unless there is a concrete reason for it.
        *   Can the Start_Date be described?
     *   Domain RGP
        *   I assume that is all domain names in RGP.  Are domain names that are pendingRestore included in this report or only domain names in the RGP redemptionPeriod or pendingDelete?  A description of the purpose of the report and what domain names are included would help.
        *   As noted previously, the RGP_Date should be named to something like Redemption_End_Date and Purge_Date should be named to something like Pending_Delete_End_Date.
     *   Reserved Domain
        *   How does a reserved domain name have a Status since it should be reserved?  Is the Status meant to indicate whether the reserved domain exists or not, which could happen if an existing domain name is added to the reserved list?
     *   Domain Inventory
        *   Is this the entire inventory of domain names replicated to all registrars or is it a registrar-specific report for domains under management?  Based on the elements shown, it looks more like a report used to assist with name spinning than a report to support reconciliation of domain data in the registrar database with the registry database.  The name spinning use case would include the same inventory report to all registrars, and the reconciliation use case would need to include more attributes to fully support syncing the data.
     *   Contact Inventory
        *   There is a need for a description of the purpose of the report, since it’s unclear whether this is generated per registrar and if so, which contacts are included.  Is it all the contacts that is sponsored by the registrar of the report or is it all contacts linked to domain names sponsored by the registrar of the report?
        *   It’s not clear whether this report is generated per registrar and if it is why would the Registrar_ID element be needed.
        *   I don’t get the purpose of the Server_Contact_ID, since that doesn’t match RFC 5733.
        *   I don’t get Domain since a contact can be linked to many domain names.  My recommendation is to remove the Domain element for the many-to-many relationship between domains and contacts.
        *   What is the purpose of the Contact_Type unless this is meant to represent the linkage of the domains to the contacts?
        *   Is the Registrar_ID associated with the Domain or the Contact.  I would assume the Contact, but I’m not sure.
     *   Host Inventory
        *   I recommend changing the Nameserer_Host to Host_Name, and the Nameserver_IP to Host_IPs.  The IPs can be a list, so the element should be defined to support a list, with the assumption that they are included in double quotes as in “192.0.2.2,192.0.2.29,1080:0:0:0:8:800:200C:417A”.

--

JG

James Gould

Fellow Engineer

[email-masked] <applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/[email-masked]>

703-948-3271

12061 Bluemont Way

Reston, VA 20190

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

On 3/7/22, 6:14 PM, "regext on behalf of [email-masked]" <[email-masked] on behalf of [email-masked]> wrote:

            Authors         : Joseph Yee

                              James Galvin

                Pages           : 34

                Date            : 2022-03-07

    Abstract:

    https://secure-web.cisco.com/1tuLsav6fXdwNwkI2hRgrcTAmGb46y63uhOddhrLcnDRGZ04vkpVWG6XoEjQ8_x2s_P_iQdnjHFea6CHfHkUea9osOV_kHBtQMFGIxT45AwpWJh9IA-C4bv530agFP_80lDJgaDI3nUgVmG3hvcyjKL6BfO3xU7UdsNlCTPpck9A7fEvmanTd-eu4x0g-N0r03uLNUmz0F-PgkmjOmwJokxKJYjvUEOokgBsMlZfUnF45hnDd16y5xfYS3qoPA_JL/https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-ietf-regext-simple-registration-reporting%2F

    https://secure-web.cisco.com/1cxkfGzIwwaxtrPBc-dKkzTbrcM43rhKbUcgKnf4ju60UpDfHrfFurvadAKy0HYgtE8JPliw0q9wk-4yhfizxiU0C9ax9YTm50fwsT_HLO7i6Ziivb8mMUatBWzHgKF1KmXqVhYBeqkq8qWurYZJiexEGtpN8U5rG3agQe9aMpX3tdJcv6v8OAHLFqMSnwQhFiUz9gqtdugbT5HzzZZT6PSNHPgUuTkpB7ip3gjdPHXcizW_RFsz70xqT-k5jkQ4r/https%3A%2F%2Fwww.ietf.org%2Farchive%2Fid%2Fdraft-ietf-regext-simple-registration-reporting-06.html

    https://secure-web.cisco.com/1teV5_jYUfeW36P3uKs-wspFDm4tcZ3UcJREdHCcRKa1FyVsVaWoYz8HQ7TpgpTwJEWNlZHTuqMjOuY4PBr8qrbjZgiwD3-W0TydVlriSfv0cfMT0sE9tAAbmyTuZW5GL6R5NSxkF1xkAFOaTaBc08zroZa5Hb7fW8Zr1A_LsAfWvP8gU5LrKQp_MXoPiSZnq06QFiklpvqkq-EJNSExS4aYBCuMWha3oqkK64W48o98SVZpmMKuIXorVAWTbCZIm/https%3A%2F%2Fwww.ietf.org%2Frfcdiff%3Furl2%3Ddraft-ietf-regext-simple-registration-reporting-06

    _______________________________________________

    regext mailing list

    [email-masked]

    https://secure-web.cisco.com/1TWl_oSRF_6eFhgvki-ekeEEj_SaNZQscbHffcoWm5-7LPs33AxYAh6Dw1XyY-mzQLxkWiJF5mjSqCa6f0rTnKSmyYg_ytTWYAWt9Vwlfk0bfDfb0cCqdkm_bLYOWePsWzHqIB3SJEppnIYca5RbTb0Dweh83zA8VNM4wkq_aF5TsgAYjKpRf8VAPCCADGpsQ5eCHsgTIefjUQJIEXgUNIf11pBPngYHc-8DQ4tYshc7RyzLoVu7QiG0FzsKuni69/https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fregext