When updating a user record via REST using a PUT replaces an entire object deleting any attributes that were not included in the JSON payload. So, using a PATCH operation is best for situations where you want to update a partial record.
Is it possible to use PUT but use the same format for the data payload as you would for a PUT? Ideally we would like to just send the user JSON object without having to specify the operation, field and value for each attribute that we are updating.
The only way you could accomplish what you are suggesting is by creating a custom endpoint and issuing a PUT request there, rather than directly on your given resource. Then you would have to add the logic to the endpoint to loop through all of the keys of your structure in order to build a set of patch operations that could ultimately be included in a call to openidm.patch(). Shouldn’t be too hard to implement, I don’t imagine.