Subject: [scim] Ticket #18 - New PATCH - What is your preference for PATCH?

From: Phil Hunt <[email-masked]>
Date: Fri, 14 Mar 2014 17:09:09 -0700

Thanks everyone for your feedback at IETF89.  

From the discussion, I took away that most people like RFC6902 but because I proposed not using JSON Pointer there were some concerns about not being compliant with 6902 in a normative sense (I am not sure if this is in fact an issue).

I see a few options that we can go with:

A. Profiled/ JSON Patch + SCIM style paths - As proposed with SCIM-API profiling 6902 but using SCIM attribute paths.  attribute[subfilter].subattr
"path" = "members"
"path" = "name.familyName"
"path" = "addresses[type eq \"work\"]"
"path"="members[value eq \
"2819c223-7f76-453a-919d-413861904646\"]"
"path"="members[value eq \"2819c223-7f76-453a-919d-413861904646\"].displayName"

B. JSON Patch Based - SCIM  Similar to A, except that we say it is based/inspired by 6902 and completely define the operations supported.

C1. 6901/6902 Profiled - Use 6901 Pointers (6902 pathes) as per following examples:
"path" = "members"
"path" = "name/familyName"
"path" = "addresses/[type eq \"work\"]"
"path" = "members/[value eq \
"2819c223-7f76-453a-919d-413861904646\"]"
"path" = "members/[value eq \"2819c223-7f76-453a-919d-413861904646\"]/displayName"

C2. 6901/6902 Based - Same as C1 except that we redefine all operations since we do not support arrays.

D.  Fully 6901/6902 Compliant - We allow both array indexing and filters per C.

"path" = "members/[value eq \"2819c223-7f76-453a-919d-413861904646\"]/displayName"
"path" = "members/1011234/displayName"

Note that "based" means that we fully redefine 6902 within the PATCH command.  "Profiled" means that we are depending on 6902 and optionally 6901 in a normative sense.

My preference is B as this seems to address the normative concerns around using 6902 while retaining a consistent path format that we use throughout the rest of scim (attribute.subattribute dotted notation).  It also seems more obvious that SCIM does not support indexed access or ordered arrays.

Which method do you prefer?

Phil

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