deprecating jcard in rdap why and how
play

Deprecating jCard in RDAP: why and how Mario Loffredo - - PowerPoint PPT Presentation

9 th ROW - Registration Operations Workshop - June 16 th , 2020 Deprecating jCard in RDAP: why and how Mario Loffredo - IIT-CNR/Registro.it Gavin Brown CentralNIC Registry Why to deprecate jCard in RDAP ? jCard is the most frequent


  1. 9 th ROW - Registration Operations Workshop - June 16 th , 2020 Deprecating jCard in RDAP: why and how Mario Loffredo - IIT-CNR/Registro.it Gavin Brown – CentralNIC Registry

  2. Why to deprecate jCard in RDAP ?  jCard is the most frequent concern by RDAP developers ("RDAP Pilot Report", April 2019): • considered unintuitive • very complicated to implements for both clients and servers • incompatible with best practices for RESTful APIs  JSContact specification provides a simpler and more efficient representation for contacts

  3. JSContact overview  A contact card representation alternative to vCard • JSON-based • vCard content supported, but no direct mapping • highly structured • topmost objects are JSCard and JSCardGroup  Described by: • Stepanek R., Loffredo M.:“ JSContact: A JSON representation of contact data ”, https://datatracker.ietf.org/doc/draft-ietf-jmap-jscontact/ • Loffredo M., Stepanek R.:“ JSContact: Converting from and to vCard ”, https://datatracker.ietf.org/doc/draft-loffredo-jmap-jscontact-vcard/

  4. JSCard features  JSCard can represent the same information as jCard  JSCard is more efficient than jCard: • requires no extra work in serialization/deserialization • provides a means to represent internationalised and unstructured contact information • is able to represent redacted contacts • Is simple to process: • is object-oriented rather than array-oriented • includes no jagged arrays • prefers maps rather than arrays in implementing collections  jCard-2-JSCard mapping examples are available at https://github.com/mario-loffredo/jcard-deprecation/

  5. Transition procedure Only jCard provided 1. • jCard provided as default contact card • no other format available jCard sunset 2. • jCard provided as default contact card • JSCard requested by query parameter jscard=1 • "jscard" returned instead of "vcardArray« jCard deprecation 3. • JSCard provided as default contact card • jCard requested by query parameter jcard=1 • "vcardArray" returned instead of "jscard" jCard deprecated 4. • JSCard provided as default contact card Note: "jscard" value must be added to rdapConformance whenever “ jscard ” is returned

  6. Transition – jCard sunset notices JSCard not requested JSCard requested "notices": [ "notices": [ { { "title": "jCard sunset end", "title": "jCard sunset end", "description": ["2020-07-01T00:00:00Z"], "description": ["2020-07-01T00:00:00Z"], "links": [ "links": [ { { "value": "http://example.net/entity/XXXX", "value": "rel": "deprecation", "http://example.net/entity/XXXX?jscard=1", "type": "text/html", "rel": "deprecation", "href": "type": "text/html", "http://www.example.com/jcard_deprecation.html" "href": }, "http://www.example.com/jcard_deprecation.html" { } "value": "http://example.net/entity/XXXX", ] "rel": "alternate", } "type": "application/rdap+json", ] "href": "http://example.net/entity/XXXX?jscard=1" } ] } ]

  7. Transition – jCard deprecation notices jCard not requested jCard requested "notices": [ "notices": [ { { "title": "jCard deprecation end", "title": "jCard deprecation end", "description": ["2021-01-01T00:00:00Z"], "description": ["2021-01-01T00:00:00Z"], "links": [ "links": [ { { "value": "http://example.net/entity/XXXX", "value": "rel": "deprecation", "http://example.net/entity/XXXX?jcard=1", "type": "text/html", "rel": "deprecation", "href": "type": "text/html", "http://www.example.com/jcard_deprecation.html" "href": }, "http://www.example.com/jcard_deprecation.html" { }, "value": "http://example.net/entity/XXXX", { "rel": "alternate", "value": "type": "application/rdap+json", "http://example.net/entity/XXXX?jcard=1", "href": "rel": "alternate", "http://example.net/entity/XXXX?jcard=1" "type": "application/rdap+json", } "href": " http://example.net/entity/XXXX" ] } } ] ] } ]

  8. Transition – Stages length  The length of stages 2 and 3 is not fixed  REST API best practices suggest that a convenient time could be anywhere between 3 - 8 months  RDAP providers are recommended to monitor the server log to figure out whether times need to be changed

  9. Transition - Goals  Only one contact representation would be included in the response  The response would always be compliant to RFC7483  Clients would be informed about the transition timeline  The backward compatibility would be guaranteed throughout the transition  Servers and clients could execute their transitions independently

  10. Documentation  Loffredo M., Brown G.:"Using JSContact in Registration Data Access Protocol (RDAP) JSON Responses”, https://datatracker.ietf.org/doc/draft-loffredo- regext-rdap-jcard-deprecation/  GitHub project: https://github.com/mario- loffredo/jcard-deprecation/  Feedback appreciated!!

  11. Questions

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend