Subject: [apps-discuss] [Technical Errata Reported] RFC6902 (4596)

From: RFC Errata System <[email-masked]>
Date: Wed, 20 Jan 2016 21:22:33 -0800 (PST)

The following errata report has been submitted for RFC6902,
"JavaScript Object Notation (JSON) Patch".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6902&eid=4596

--------------------------------------
Type: Technical
Reported by: Missing 'Append' operation <[email-masked]>

Section: GLOBAL

Original Text
-------------
Its value MUST be one of "add", "remove", "replace", 
"move", "copy", or "test"; other values are errors. 

Corrected Text
--------------
Its value MUST be one of "add", "append", "remove", 
"replace", "move", "copy", or "test"; other values are errors. 

... and more text to add the 'append' op description.

Notes
-----
There is a key missing piece to this RFC.  You can do { "op": "add", "path": "/attr", "value": "val"}, which will add or modify the 'attr' attribute, if it exists or not.  However, you cannot add an item to a potentially non-existing array.  Updating an array that may or may not exists, forces the client to always call GET on the resource.   See this API spec:  https://orchestrate.io/docs/apiref#keyvalue-patch  which implements the op 'append', which would solve this problem.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6902 (draft-ietf-appsawg-json-patch-10)
--------------------------------------
Title               : JavaScript Object Notation (JSON) Patch
Publication Date    : April 2013
Author(s)           : P. Bryan, Ed., M. Nottingham, Ed.
Category            : PROPOSED STANDARD
Source              : Applications Area Working Group APP
Area                : Applications
Stream              : IETF
Verifying Party     : IESG