Subject: [scim] Clarification on PATCH regarding "replace" operations

From: Phil Hunt <[email-masked]>
Date: Wed, 28 Jan 2015 10:12:25 -0800

A reviewer has indicated that the SCIM API document is not clear on what should happen during a PATCH “replace” operation if the target attribute does not exist.

I note that in the SCIM API error response we do have the SCIM error “noTarget”. This error is intended to be returned if the “path” value contains a valuePath filter which specifies which specific value of a multi-valued attribute is being patched and no value match occurs.

Should we broaden use of “noTarget" to include a replace operation where no-existing value occurs?

Some have argued that it is more useful to allow a replace to automatically add.  I note that the PATCH “add” operation already does this by its rule that “if the target location exists, the value is replaced.”  Making replace do auto-add seems to be consistent with the “add” operation.

My proposal is to add clarification text to PATCH “replace" that says it is permissible to add a new attribute if there is none to replace.  This follows the be flexible in what you accept principle.  I will also add clarification in replace that a “noTarget” error is only returned if there is no match on a “valuePath” type of path (one which specifies a specific target record of a multi-valued attribute).

* Please let me know if this clarification represents a normative change to anyone, OR, if you object to the clarification.

Phil

@independentid
www.independentid.com
[email-masked]