apache / apache/directory-scimple

Support the PATCH method with PatchOp operations in /Bulk

Open
#1,206 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
103
Forks
47
Avg merge
3d 15h
Merged PRs (30d)
16

Description

Hi,

The `/Bulk` endpoint currently supports `User` and `Group` SCIM resources with the method field set to `POST`. When the method field is set to `PATCH`, it is also possible to use `PatchOp` objects in the `data` field.

There's an example at https://scim.dev/playground/bulk.html

This is currently not implemented. Advertising support for `Bulk` without this implemented might be out of spec, so the `/ServiceProviderConfig` endpoint should probably return false by default for bulk support as long as this is not implemented.

I suppose one of the difficulties in supporting this is that the data field and the `setData()` and `getData()` methods in the `BulkOperation` class will somehow need to support `PatchOp` objects in addition to `ScimResource` objects. I started looking into this, possibly `getScimResource` and `getPatchOp` methods could be implemented in addition to a generic `getData()` method returning `Object` (as there's no proper union type in Java AFAIK). The data field could possibly be split into `scimResource` and `patchOp`... or not, maybe that's not necessary. I didn't go much further than this as I'm not quite sure how the code using `getData()` really works.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the BulkOperation class and trace callers of its data field, setData(), and getData() methods to understand how User and Group resources are handled. Check the /Bulk and /ServiceProviderConfig entry points. Done means PATCH operations accept PatchOp data correctly and bulk support is advertised as false by default until that support is available.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.