====== SCIM module - save extended form value ======
{{tag> scim}}
[[devel:documentation:modules_scim | SCIM]] module was added in CzechIdM 8.1.0.
We want to create user (~IdM identity) with an extended attribute (~IdM form value).
Extended attributes are defined as extended schema, which can be added to resources implementing ''FormableResource'' interface (available resources with their schemas can be found from [[devel:documentation:modules_scim#api|schema endpoint]]).
===== What do you need before you start =====
* We need to install CzechIdM 8.1.0 (and higher). We have CzechIdM installed for this tutorial on server ''http://localhost:8080/idm''.
* We need to install [[devel:documentation:modules_scim|Scim module]] into CzechIdM.
* Create identity, which will have permission to create and read reports. We are using demo ''admin:admin'' identity.
Note: [[devel:documentation:modules_scim#swagger|Swagger]] can be used for try this examples.
===== 01 Read form definition =====
The first thing ee need to now, which extended attributes are available for given resources. We'll use ''FormDefinition'' resource => form definition can be found by type (~definition's entity type owner. IdM entity name has to be used, extended attributes are CzechIdM specific) and code (~definition name):
curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' 'http://localhost:8080/idm/api/v1/scim/FormDefinitions?filter=type%2520eq%2520%2522eu.bcvsolutions.idm.core.model.entity.IdmIdentity%2522%2520and%2520code%2520eq%2520%2522default%2522&sortOrder=ascending&startIndex=1&count=10'
===== 02 Save form values =====
Form definition response contains available attributes and their persistent type (~data type). We need to set value attribute by defined persistent type. In this example attribute ''extAttr'' has type ''SHORTTEXT'' and that is the reason, why ''shortTextValue'' attribute has to be filled:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:CzechIdM:1.0:Form"
],
"userName": "scimTwo",
"urn:ietf:params:scim:schemas:CzechIdM:1.0:Form": {
"forms" : [{
"code": "default",
"attributes": [{
"code": "extAttr",
"values": [{
"shortTextValue": "test"
}]
}
]
}
]}
}' 'http://localhost:8080/idm/api/v1/scim/Users'
Congratulations, as you can see from response, you saved the first extended attribute value.