SRS Release 7.0 - 2015 ========================================== SRS 7.0 was released on Sunday 1st of November 2015 and included significant internal changes to our application, libraries, underlying operating system and deployment architecture. The changes in Release 7.0 reflect our efforts to maintain and ensure future stability and support for both the SRS application and the underlying operating system, libraries and systems we use to provision it. Changes in Release 7.0 ---------------------- Changes related to Perl Hashes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As of Perl 5.18 the "random ordering" of Perl hashes are no longer repeatable. This has resulted in many previously "unordered" structures (such as XML attributes and JSON objects) being returned in randomized orders on each execution instead of the same repeatable order. SRS Protocol ^^^^^^^^^^^^ As a result of fully randomized hashing inside Perl, XML attributes are now returned in a random order: SRS 6.x behaviour: .. code-block:: xml SRS 7.x behaviour examples: .. code-block:: xml .. code-block:: xml .. code-block:: xml The XML specification states that the order of attributes within a tag are not significant, so this is not likely to cause issues with XML parsing libraries. As such, the main risk is for simplistic systems which have implemented regex (or similar) pattern matching on XML attributes. Please note that as part of SRS Release 5.40 in February 2014 we switched from ordered attributes to the current state of unordered but repeatable attributes as we no longer needed this under the new database architecture. If you encountered problems at that time you may wish to carefully validate your systems against release 7.x in the SRS Test environment. EPP Server ^^^^^^^^^^ Ordering of ObjURI elements now varies, for example: SRS 6.x behaviour: .. code-block:: xml urn:ietf:params:xml:ns:domain-1.0 urn:ietf:params:xml:ns:contact-1.0 SRS 7.x behaviour examples: .. code-block:: xml urn:ietf:params:xml:ns:contact-1.0 urn:ietf:params:xml:ns:domain-1.0 Rest API ^^^^^^^^ Each JSON object attribute is now returned in a random order as per the following examples: SRS 7.x behaviour examples: .. code-block:: json [ { "code": "200", "status": "Active", "domain": "internetnz.net.nz" } ] .. code-block:: json [ { "status": "Active", "code": "200", "domain": "internetnz.net.nz" } ] .. code-block:: json [ { "code": "200", "domain": "internetnz.net.nz", "status": "Active" } ] As per RFC 4627 a JSON object is defined as 'an unordered collection of zero or more name/value pairs' and as such this should not cause any issues for standard JSON parsers. Other Changes ~~~~~~~~~~~~~ Whois Server ^^^^^^^^^^^^ Nameserver IP glue was previously returned before associated Nameserver and is now reported after: SRS 6.x behaviour: :: ns_ip4_01: 202.27.184.5 ns_name_01: terminator.xtra.co.nz SRS 7.x behaviour examples: :: ns_name_01: terminator.xtra.co.nz ns_ip4_01: 202.27.184.5 Connecting to the SRS Test environment -------------------------------------- SRS release 7.0 is available in the test environment to allow for registrar testing. SRS Protocol ~~~~~~~~~~~~ :: SRS URL: https://srstest.srs.net.nz/srs/registrar EPP Protocol ~~~~~~~~~~~~ :: EPP host: srstestepp.srs.net.nz EPP port: 700 Whois Server ~~~~~~~~~~~~ :: WHOISd host: srstest.srs.net.nz WHOISd port: 43 Example command: whois -h srstest.srs.net.nz internetnz.nz If you encounter any issues during your testing or need help with your connection to the SRS RPS instance please contact registry@internetnz.net.nz