API Extension

Cymmetri framework to extend the out of box use cases and support custom requirements from the platform

Reference API calls

The following are the APIs calls.

Important Note:

RESTful API – Assigned application search user

Purpose: This API is used to create application hook

URL: http://<tenant_domain>/api/user/listByApplication

Method: POST

Example Request:

curl --location --request POST 'http://api.cymmetri.in/usersrvc/api/user/listByApplication' \

--header 'Content-Type: application/json' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoiZ2s0MCIsImV4cCI6MTY0NzAxNzEwNywidXNlcklkIjoiNjE3MDE1YTNjMDQ4MTc1NmI3OThhY2EyIiwiaWF0IjoxNjQ3MDExMTA3fQ.8j711_L--eQHHfen2GPI1qWCmUWRd4n6O44HCZhuRSo' \

--data-raw '{

"keyword":"shu",

"pageNumber": "0",

"pageSize": "10",

"filter": {

"applicationId": "617253cc2fb4b2125b237b75"

},

"sortDirection": "ASC",

"sortOn": [

"id"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"id": "619ce9a69139ca14885a4717",

"displayName": "John Snow",

"firstName": "John",

"lastName": "Snow",

"email": null,

"mobile": null,

"designation": "Developer",

"status": "ACTIVE",

"profilePic": null,

"login": "john.snow",

"initialLoginPending": true,

"startDate": null,

"endDate": null,

"provStatus": {

"617253cc2fb4b2125b237b75": "SUCCESS_UPDATE"

}

}

],

"pageable": {

"sort": [

{

"direction": "ASC",

"property": "id",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"last": true,

"totalPages": 1,

"totalElements": 1,

"sort": [

{

"direction": "ASC",

"property": "id",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"first": true,

"number": 0,

"numberOfElements": 1,

"size": 10,

"empty": false

},

"timestamp": "02-Mar-2022 01:58:57",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"data": null,

"success": false,

"errorCode": "PROVSRVC.APPLICATION_NOT_FOUND",

"message": null,

"timestamp": "02-Mar-2022 01:59:39"

}

RESTful API – Assigned application search group

Purpose: This API is used to get an application hook for the provided application id and type.

URL: http://<tenant_domain>/api/group/groupListByApplication

Method: POST

applicationId: Application id

Example Request:

curl --location --request POST 'http://localhost:9080/api/group/groupListByApplication' \

--header 'Tenant: gk16'

--data-raw '{

"filter": {

"applicationId": "617253cc2fb4b2125b237b75"

},

"keyword": "gold",

"pageNumber": 0,

"pageSize": 10,

"sortDirection": "ASC",

"sortOn": [

"name"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"offset": 0,

"pageSize": 10,

"totalElements": 1,

"totalPages": 1,

"elements": [

{

"id": "621cdbb7776c95564c0313ab",

"name": "Gold",

"type": "LocalGroup",

"description": "Gold group",

"ouId": "",

"ouName": null,

"parentGroupIds": null,

"directParentGroupId": null,

"userCount": 0,

"appCount": 1

}

],

"pageNumber": 0,

"sort": {

"orders": [

{

"direction": "ASC",

"property": "name"

}

],

"sorted": true

}

},

"timestamp": "03-Mar-2022 05:29:23",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"data": null,

"success": false,

"errorCode": "PROVSRVC.APPLICATION_NOT_FOUND",

"message": null,

"timestamp": "03-Mar-2022 05:29:49"

}

RESTful API – Application reconciliation pull filter search

Purpose: This API is used to list reconciliation pull for provided application id and keyword.

URL: https://<tenant_domain>/provsrvc/reconciliation/pull/search

Method: POST

applicationId: applicationId

keyword : keyword

Example Request:

curl --location --request POST 'https://mru18.cymmetri.in/provsrvc/reconciliation/pull/search' \

--header 'Tenant: mru18' \

--data-raw '{

"filter": {

"applicationId": "614b5d3489ad96554e89e2ab"

},

"keyword": "",

"pageNumber": 0,

"pageSize": 10,

"sortDirection": "DESC",

"sortOn": [

"updatedDateTime"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"id": "621cca3f9423002d41cbbed4",

"name": "AD-ADMIN-USERS",

"type": "USER",

"status": "ACTIVE",

"applicationId": "614b5d3489ad96554e89e2ab",

"targetSystemSearchQueryFilter": null,

"idmRepositoryField": "login",

"sourceAttributeName": "cn",

"reconType": "PULL",

"reconMode": "FILTERED_RECONCILIATION",

"reconConditions": {

"TARGET_DELETED_IDM_EXISTS": "IGNORE",

"TARGET_EXTSTS_IDM_EXISTS": "IGNORE",

"TARGET_EXTSTS_IDM_NOT_EXISTS": "PROVISION"

},

"lastRunDateTime": null,

"createdDateTime": "2022-02-28T13:12:31.07",

"updatedDateTime": "2022-03-02T12:45:31.069",

"version": 2

},

...

...

],

"pageable": {

"sort": [

{

"direction": "DESC",

"property": "updatedDateTime",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"last": true,

"totalPages": 1,

"totalElements": 3,

"first": true,

"sort": [

{

"direction": "DESC",

"property": "updatedDateTime",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"numberOfElements": 3,

"size": 10,

"number": 0,

"empty": false

},

"timestamp": "03-Mar-2022 08:41:03",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": false,

"data": null,

"timestamp": "03-Mar-2022 09:06:43",

"message": null,

"errorCode": "INVALID_ARGUMENTS"

}

Response 2#

{

"success": false,

"data": null,

"timestamp": "03-Mar-2022 09:06:43",

"message": null,

"errorCode": "PROVSRVC.UNKNOWN"

}

RESTful API – Application reconciliation push filter search

Purpose: This API is used to list reconciliation push for provided application id and keyword.

URL: http://<tenant_domain>/reconciliation/push/search

Method: POST

applicationId: Application Id.

keyword : keyword

Example Request:

curl --location --request POST 'https://mru18.cymmetri.in/provsrvc/reconciliation/pull/search' \

--header 'Tenant: mru18' \

--data-raw '{

"filter": {

"applicationId": "614b5d3489ad96554e89e2ab"

},

"keyword": "",

"pageNumber": 0,

"pageSize": 10,

"sortDirection": "DESC",

"sortOn": [

"updatedDateTime"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"id": "62207b1655a2d10f525dc2bf",

"name": "AD-Admin",

"type": "USER",

"status": "ACTIVE",

"applicationId": "614b5d3489ad96554e89e2ab",

"idmSearchQueryFilter": {

"location": null,

"reportingManager": null,

"department": null,

"designation": null,

"group": null,

"email": null,

"mobile": null,

"status": [],

"userType": null,

"locked": false

},

"idmRepositoryField": "login",

"sourceAttributeName": "cn",

"reconType": "PUSH",

"reconMode": "FILTERED_RECONCILIATION",

"reconConditions": {

"IDM_DELETED_TARGET_EXISTS": "IGNORE",

"IDM_EXTSTS_TARGET_EXISTS": "IGNORE",

"IDM_EXTSTS_TARGET_NOT_EXISTS": "PROVISION"

},

"lastRunDateTime": null,

"createdDateTime": "2022-03-03T08:23:50.963",

"updatedDateTime": "2022-03-03T08:23:50.963",

"version": 0

}

],

"pageable": {

"sort": [

{

"direction": "DESC",

"property": "updatedDateTime",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"last": true,

"totalPages": 1,

"totalElements": 3,

"first": true,

"sort": [

{

"direction": "DESC",

"property": "updatedDateTime",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"numberOfElements": 3,

"size": 10,

"number": 0,

"empty": false

},

"timestamp": "03-Mar-2022 08:40:09",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": false,

"data": null,

"timestamp": "03-Mar-2022 09:06:43",

"message": null,

"errorCode": "INVALID_ARGUMENTS"

}

Response 2#

{

"success": false,

"data": null,

"timestamp": "03-Mar-2022 09:06:43",

"message": null,

"errorCode": "PROVSRVC.UNKNOWN"

}

RESTful API – Application role filter search

Purpose: This API is used to list application roles with provided application id and keyword.

URL: http://<tenant_domain>/applicationRole/findAppRolesByApplicationId

Method: POST

application id: applicationId

keyword: keyword

Example Request:

curl --location --request POST 'https://mru18.cymmetri.in/provsrvc/applicationRole/findAppRolesByApplicationId' \

--header 'Tenant: mru18' \

--data-raw '{

"filter": {

"active": true,

"applicationId": "614b5d3489ad96554e89e2ab"

},

"keyword": "",

"pageNumber": 0,

"pageSize": 10,

"sortDirection": "ASC",

"sortOn": [

"id"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"id": "621f2996a36e574d3e7ab4a7",

"roleId": "ROLE_ID_101",

"roleName": "ADMIN",

"roleDescreption": "This role is for admin users.",

"applicationId": "614b5d3489ad96554e89e2ab",

"cosoType": "Admin",

"active": false,

"mappedBusinessRoles": [],

"createdDateTime": "2022-03-02T08:23:50.608",

"updatedDateTime": "2022-03-02T13:48:54.189",

"version": 3

},

...

...

],

"pageable": {

"sort": [

{

"direction": "ASC",

"property": "id",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"last": true,

"totalPages": 1,

"totalElements": 3,

"first": true,

"sort": [

{

"direction": "ASC",

"property": "id",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"numberOfElements": 3,

"size": 10,

"number": 0,

"empty": false

},

"timestamp": "03-Mar-2022 09:20:03",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": false,

"data": null,

"timestamp": "03-Mar-2022 09:06:43",

"message": null,

"errorCode": "INVALID_ARGUMENTS"

}

Response 2#

{

"success": false,

"data": null,

"timestamp": "03-Mar-2022 09:06:43",

"message": null,

"errorCode": "PROVSRVC.UNKNOWN"

}

RESTful API – Application Policy Map filter search

Purpose: This API is used to search PolicymapTenant.

URL: http://<tenant_domain>/policyMapTenant/findAll

Method: POST

tenantApplicationId: Tenant Application Id

objectType: Mapping Object Type

internal: Internal Attribute

external: External Application Attribute

Example Request:

curl --location --request POST 'api.cymmetri.in/provsrvc/policyMapTenant/findAll' \

--data-raw '{

"keyword": "lastName",

"pageNumber": 0,

"pageSize": 10,

"filter": {

"tenantApplicationId": "61dd1da8db654e41881b5273",

"objectType": "USER"

},

"sortDirection": "DESC",

"sortOn": [

"internal"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"id": "61dd1da8db654e41881b5281",

"internal": "lastName",

"external": "sn",

"mandatory": false,

"script": null,

"createdDateTime": "2022-01-11T06:03:20.202",

"updatedDateTime": "2022-01-11T06:03:20.202",

"version": 0,

"default_val": "",

"tenant_applicationId": "61dd1da8db654e41881b5273",

"object_type": "USER",

"isCustom": false,

"scriptEnable": false

}

],

"pageable": {

"sort": [

{

"direction": "DESC",

"property": "internal",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"last": true,

"totalPages": 1,

"totalElements": 1,

"first": true,

"sort": [

{

"direction": "DESC",

"property": "internal",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"numberOfElements": 1,

"size": 10,

"number": 0,

"empty": false

},

"timestamp": "03-Mar-2022 07:13:09",

"message": null,

"errorCode": null

}

RESTful API – App description in selfservice application list API

Purpose: This API is used to get paginated lists with filters.

URL: https://<tenant_domain>/selfservice/api/selfservice/applications

Method: POST

Example Request:

curl --location --request POST 'https://gk40.cymmetri.in/selfservice/api/selfservice/applications' \

--header 'Connection: keep-alive' \

--header 'Pragma: no-cache' \

--header 'Cache-Control: no-cache' \

--header 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"' \

--header 'Accept: application/json' \

--header 'content-type: application/json' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoiZ2s0MCIsImV4cCI6MTY0NzAxNDY2NywidXNlcklkIjoiNjE3MDE1YTNjMDQ4MTc1NmI3OThhY2EyIiwiaWF0IjoxNjQ3MDA4NjY3fQ.jP2BgjiOVUcdxhImVvdwy18puEylWSSOVHnWA_2hhJU' \

--header 'sec-ch-ua-mobile: ?0' \

--header 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36' \

--header 'sec-ch-ua-platform: "Linux"' \

--header 'Origin: https://gk40.cymmetri.in' \

--header 'Sec-Fetch-Site: same-origin' \

--header 'Sec-Fetch-Mode: cors' \

--header 'Sec-Fetch-Dest: empty' \

--header 'Referer: https://gk40.cymmetri.in/' \

--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \

--header 'Cookie: deviceId=6e4caedd-beaf-444c-9312-21b219bb3709; Correlation=B194B86832FB4683ABC43EA6077944E2; Correlation=1E83B306404E4E46A2F6BE7D5A79C3BC; RefreshToken=fc6b1bcc-1c00-4663-b6ef-441051fb2e57; sessionId=75bdbb27-cf85-4102-9ba7-0cc5a84f8fb4' \

--data-raw '{

"direction": "ASC",

"keyword": "",

"pageNumber": 0,

"pageSize": 16,

"sort": "NAME"

}'

Sample Response:

On success:

{

"success": true,

"data": {

"offset": 0,

"pageSize": 16,

"totalElements": 5,

"totalPages": 1,

"elements": [

{

"endDate": null,

"deprovNotification": false,

"enabled": true,

"tagLine": "Directory service developed by Microsoft",

"id": "617253cc2fb4b2125b237b75",

"name": "Active Directory",

"appUrl": "",

"icon": "iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAYAAAAZDlfxAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nO2dCXQU17nnv1tb.....truncated"

}

],

"pageNumber": 0,

"sort": {

"orders": [

{

"direction": "ASC",

"property": "NAME"

}

],

"sorted": true

}

},

"timestamp": "03-Mar-2022 05:41:09",

"message": null,

"errorCode": null

}

RESTful API – New Joiner List API

Purpose: This API is used to get list of selfservice dashboard new Joiner list of logged in users.

URL: http://<tenant_url>/usersrvc/api/user/getSubOrdinates

Method: POST

Example Request: Need to pass filter as createdFrom and createdTo date time difference for seven day.

curl --location --request POST 'http://api.cymmetri.in/usersrvc/api/user/getSubOrdinates' \

--header 'Content-Type: application/json' \

--header 'Tenant: gk17' \

--header 'UserId: 61e81227aa505f4393b93405' \

--data-raw '{

"filter": {

"createdFrom": "2022-01-04T10:26:56.030Z",

"createdTo": "2022-03-04T10:26:56.030Z"

},

"keyword": "",

"pageNumber": 0,

"pageSize": 10,

"sortDirection": "ASC",

"sortOn": [

"id"

]

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"login": "nilesh",

"displayName": "Nilesh Dhepe",

"userId": "61e947c37dce7c5e40134f1f",

"profilePic": null,

"qualitativeRisk": null,

"sodViolations": null

},

{

"login": "workflow.one",

"displayName": "Test Workflow",

"userId": "61ee658de3a8361263cab0d1",

"profilePic": null,

"qualitativeRisk": null,

"sodViolations": null

},

{

"login": "workflow.two",

"displayName": "Test Workflow",

"userId": "61f7b3b50d84c22f79e1debd",

"profilePic": null,

"qualitativeRisk": null,

"sodViolations": null

},

{

"login": "mrunal",

"displayName": "Mrunal Chaple",

"userId": "61f8cda757a8e27934066a91",

"profilePic": null,

"qualitativeRisk": null,

"sodViolations": null

},

{

"login": "manoj.b",

"displayName": "Manoj Barapatre",

"userId": "61f8d81883126a511188e2ae",

"profilePic": null,

"qualitativeRisk": null,

"sodViolations": null

},

{

"login": "man.ba",

"displayName": "Manoj Bara",

"userId": "61f9160ed9800d4dbbc1baed",

"profilePic": null,

"qualitativeRisk": null,

"sodViolations": null

}

],

"pageable": {

"sort": [

{

"direction": "ASC",

"property": "id",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"last": true,

"totalElements": 6,

"totalPages": 1,

"first": true,

"number": 0,

"sort": [

{

"direction": "ASC",

"property": "id",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"numberOfElements": 6,

"size": 10,

"empty": false

},

"timestamp": "04-Mar-2022 10:39:22",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": true,

"data": null,

"timestamp": "04-Mar-2022 10:39:22",

"message": null,

"errorCode": null

}

RESTful API – On board API - Get App incomplete config

Purpose: This API is used to get count of onboard application config incomplete.

URL: http://<tenant_url>/provsrvc/applicationTenant/getApplicationIncompleteConfig

Method: GET

Example Request:

curl --location --request GET 'http://api.cymmetri.in/provsrvc/applicationTenant/getApplicationIncompleteConfigCount' \

--header 'Tenant: gk17' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJnazE3IiwiZGVsZWdhdGVlIjpudWxsLCJkZWxlZ2F0ZWVJZCI6bnVsbCwiZmlyc3RMb2dpbiI6ZmFsc2UsInJvbGVzIjpbIk9SR19BRE1JTiIsIlVTRVIiXSwidGVuYW50SWQiOiJnazE3IiwiZXhwIjoxNjQ2NjQ2NjQ0LCJ1c2VySWQiOiI2MWU4MTIyN2FhNTA1ZjQzOTNiOTM0MDUiLCJpYXQiOjE2NDY2NDA2NDR9.snwC7XVRWM5S-gCP53fXXObh9aROFtZDtfOXQCUDPps'

Sample Response:

On success{

"success": true,

"data": 3,

"timestamp": "07-Mar-2022 08:11:48",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": true,

"data": 0,

"timestamp": "04-Mar-2022 10:39:22",

"message": null,

"errorCode": null

}

RESTful API – On board API - Get appCount, adminCount, UserCount

Purpose: This API is used to get count of application, admin and user.

URL: http://<tenant_url>/usersrvc/api/user/getOnboardCount

Method: GET

Example Request:

curl --location --request GET 'http://api.cymmetri.in/usersrvc/api/user/getOnboardCount' \

--header 'Content-Type: application/json' \

--header 'Tenant: n23' \

--header 'UserId: 6176c0b33c79f20dde6fd732' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJnazE3IiwiZGVsZWdhdGVlIjpudWxsLCJkZWxlZ2F0ZWVJZCI6bnVsbCwiZmlyc3RMb2dpbiI6ZmFsc2UsInJvbGVzIjpbIk9SR19BRE1JTiIsIlVTRVIiXSwidGVuYW50SWQiOiJnazE3IiwiZXhwIjoxNjQ2NjQ2NjQ0LCJ1c2VySWQiOiI2MWU4MTIyN2FhNTA1ZjQzOTNiOTM0MDUiLCJpYXQiOjE2NDY2NDA2NDR9.snwC7XVRWM5S-gCP53fXXObh9aROFtZDtfOXQCUDPps'

Sample Response:

On success:

{

"success": true,

"data": {

"appCount": 9,

"adminCount": 1,

"userCount": 25

},

"timestamp": "07-Mar-2022 08:11:27",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": true,

"data": {

"appCount": 0,

"adminCount": 0,

"userCount": 0

},

"timestamp": "07-Mar-2022 08:11:27",

"message": null,

"errorCode": null

}

RESTful API – System KPIs API

Purpose: This API is used to get the count of application,role,rule,workflow,password policy,active user,total user and unlogged user.

URL:https://<tenant_url>/usersrvc/api/user/getSystemKPICount

Method: GET

Example Request:

curl --location --request GET 'https://macos.cymmetri.in/usersrvc/api/user/getSystemKPICount' \

--header 'Accept: application/json' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoibWFjb3MiLCJleHAiOjE2NDcwMDg1MjUsInVzZXJJZCI6IjYxN2Y4YmIxZDE5MDViNjcyYzQ3N2QzMiIsImlhdCI6MTY0NzAwMjUyNX0.JzhcbfcQXxZoCYH5Mi_HmRCHZf_FVIr3OYrewl7vkjc'

Sample Response:

On success:

{

"success": true,

"data": {

"appCount": 80,

"roleCount": 5,

"activeUserCount": 128,

"totalUserCount": 131,

"unloggedUserCount": 106,

"passwordPolicyCount": 2,

"workflowCount": 3,

"ruleCount": 6

},

"timestamp": "11-Mar-2022 12:42:30",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": true,

"data": {

"appCount": 0,

"roleCount": 0,

"activeUserCount": 0,

"totalUserCount": 0,

"unloggedUserCount": 0,

"passwordPolicyCount": 0,

"workflowCount": 0,

"ruleCount": 0

},

"timestamp": "11-Mar-2022 12:42:30",

"message": null,

"errorCode": null

}

RESTful API – Request, Claims and My Request Count

Purpose: This API is used to get count of requests, claims and my requests.

URL: https://<tenant_url>/workflowsrvc/api/workflowtaskassignment/user/request/claims/count

Method: GET

Example Request:

curl --location --request GET 'https://gk40.cymmetri.in/workflowsrvc/api/workflowtaskassignment/user/request/claims/count' \

--header 'Tenant: gk40' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtcnUxOCIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoibXJ1MTgiLCJleHAiOjE2NDY2NzE2MTYsInVzZXJJZCI6IjYxNGI1Yjc1ODVmODU0NGYxY2RkOTcxNSIsImlhdCI6MTY0NjY2NTYxNn0.bViQdrikfQD1xdI6Waf_Sk6LOYQh-ilHVq4dMYfVt3E'

Sample Response:

On success:

{

"success": true,

"data": {

"requestCount": 12,

"clamisCount": 6,

"requestorCount": 0

},

"timestamp": "10-Mar-2022 07:07:48",

"message": null,

"errorCode": null

}

On failure:

Response 1#

{

"success": true,

"data": {

"requestCount": 0,

"clamisCount": 0,

"requestorCount": 0

},

"timestamp": "04-Mar-2022 10:39:22",

"message": null,

"errorCode": null

}

RESTful API – Applications assigned to user API search

Purpose: This API is used to search application assigned to user.

URL: https://<tenant_url>/usersrvc/api/user/listApplications

Method: POST

Example Request:

curl --location --request POST 'https://s3.cymmetri.in/usersrvc/api/user/listApplications' \

--data-raw '{

"pageNumber": 0,

"pageSize": 20,

"userId": "61d7f610dd92d761faa278f2",

"appName":"service"

}'

Sample Response:

On success:

{

"success": true,

"data": {

"offset": 0,

"pageSize": 12,

"totalElements": 1,

"totalPages": 1,

"elements": [

{

"appId": "6226051994c38e414989eccd",

"appName": "ServiceNow",

"tagLine": "Workflow Automation Platform",

"status": "",

"appType": "GROUP",

"groupId": "61dea46ef515150ebe517b0d",

"endDate": null,

"provisionEnable": true,

"assignRoles": null

}

],

"pageNumber": 0,

"sort": null

},

"timestamp": "11-Mar-2022 01:06:33",

"message": null,

"errorCode": null

}

RESTful API – List of assigned & unassigned application

Purpose: This API is used to get assigned and unassigned application.

URL: https://<tenant_url>/provsrvc/applicationTenant/applicationListByPage

Method: POST

Example Request:

curl --location --request POST 'https://s3.cymmetri.in/provsrvc/applicationTenant/applicationListByPage' \

--data-raw '{

"displayName": "",

"order": "DESC",

"pageNo": 0,

"size": 10,

"sortBy": "displayName",

"tag": "",

"userId":"61d7f610dd92d761faa278f2"

}'

Sample Response:

On success:

{

"success": true,

"data": {

"content": [

{

"id": "61dbfdf6b30690468b0d4a79",

"appName": "Google Workplace",

"icon": null,

"tagLine": "Integrated Collaboration & Productivity Apps from Google",

"status": "ACTIVE",

"provisionEnable": false,

"ssoEnable": true,

"assigned": true

},

{

"id": "61dd1da8db654e41881b5273",

"appName": "Active Directory",

"icon": null,

"tagLine": "Directory service developed by Microsoft",

"status": "ACTIVE",

"provisionEnable": true,

"ssoEnable": false,

"assigned": true

},

{

"id": "6225f81edd7111640e094f8d",

"appName": "Google Workplace5",

"icon": null,

"tagLine": "Integrated Collaboration & Productivity Apps from Google",

"status": "ACTIVE",

"provisionEnable": true,

"ssoEnable": false,

"assigned": true

}

],

"pageable": {

"sort": [

{

"direction": "DESC",

"property": "displayName",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"totalPages": 2,

"totalElements": 12,

"last": false,

"first": true,

"sort": [

{

"direction": "DESC",

"property": "displayName",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": false,

"descending": true

}

],

"numberOfElements": 10,

"size": 10,

"number": 0,

"empty": false

},

"timestamp": "11-Mar-2022 02:10:38",

"message": null,

"errorCode": null

}

RESTful API – Application Access expiring new API

Purpose: This API is used to get list of application of user with there expiry days

URL: https://<tenant_url>/selfservice/api/selfservice/applicationswithexpiry

Method: POST

Example Request:

curl --location --request POST 'https://as100.cymmetri.in/selfservice/api/selfservice/applicationswithexpiry' \ --header 'Connection: keep-alive' \ --header 'Pragma: no-cache' \ --header 'Cache-Control: no-cache' \ --header 'sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"' \ --header 'Accept: application/json' \ --header 'content-type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoiYXMxMDAiLCJleHAiOjE2NDcwMDk4NzgsInVzZXJJZCI6IjYyMTRkYjdiZDY2MWE1NzM4NmE3MWYxMCIsImlhdCI6MTY0NzAwMzg3OH0.LKZci0Yqeoyn4RHUIyYBFq7O5ATeDuCerZ0QdJ243gY' \ --header 'sec-ch-ua-mobile: ?0' \ --header 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36' \ --header 'sec-ch-ua-platform: "Linux"' \ --header 'Origin: https://as100.cymmetri.in' \ --header 'Sec-Fetch-Site: same-origin' \ --header 'Sec-Fetch-Mode: cors' \ --header 'Sec-Fetch-Dest: empty' \ --header 'Referer: https://as100.cymmetri.in/' \ --header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \ --header 'Cookie: deviceId=48ba110c-c93c-45ac-92dc-3c6e04e74473; app_73e5c5f8-276b-47bb-a6a5-b6f82a779d79=e689a8da-faa7-46f5-9c7a-2800abdd206a; Correlation=C43A4277E7AB46178F0000BE4DD72F0C; RefreshToken=1ac7eea6-28a6-4bb8-997f-d7381a3dd7d1; sessionId=3417319f-789a-4849-8faa-bf180f4bec14; device=cf7bbf2a-161c-11ec-b3ec-39287c680726' \ --data-raw '{ "keyword": "", "pageNumber": 0, "pageSize": 10, "filter": {}, "sortDirection": "DESC", "sortOn": [ "plannedStart" ] }'

Sample Response:

On success:

{

"success": true,

"data": {

"offset": 0,

"pageSize": 10,

"totalElements": 3,

"totalPages": 1,

"elements": [

{

"id": "62220c747dab08061e00ba7b",

"name": "Active Directory",

"icon": "iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAYAAAAZDlfxAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nO2dCXQU17nnv1tb71q7BUJIzW7Jxo5N6zlOsPD2COBlEsnbiZFf,

"period": 20,

"tagLine": "Directory service developed by Microsoft"

},

{

"id": "62260e904f6c552b8b489c20",

"name": "Google Workplace",

"icon": "iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAIAAACWbMCmAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nO2dd3wURf/Ht1xLcnfpvUB6uRRSKFKl9w6C+KgPj2B57D6gD/o8iOVBEaQIiCiIgoBKNSAgVXoPISG910u5S0+u7/xed3vZ27vsXW6T4A+fZ97/ZLM7uzs7+9mZ73xn5nsoAACBQOwDg+UEsR8oFwgLoFwgLIBygbAAygXCAigXCAugXCAsgHKBsADKBcICKBcIC6BcICyAcoGwAMoFwgIoFwgLoFwgLIBygbAAygXCAigXCAugXCAsgHKBsADKBcICKBcIC6BcICyAcoGwAMoFwgIoFwgLoFwgLIBygbAAygXCAigXCAugXCAsgHKBsADKBcICKBcIC6BcICyAcoGwAMoFwgIoFwgLoFwgLIBygbAAygXYQGUC4QFUC4QFkC5QFgA5QKxFwRB/g+Z9ki2AOTkrgAAAABJRU5ErkJggg==",

"period": 5,

"tagLine": "Integrated Collaboration & Productivity Apps from Google"

},

{

"id": "62260e994f6c552b8b489c28",

"name": "PowerShell",

"icon": "iVBORw0KGgoAAAANSUhEUgAAALoAAAC6CAYAAAAZDlfxAT/gAAAABJRU5ErkJggg==",

"period": 4,

"tagLine": "Command-line Shell from Microsoft"

}

],

"pageNumber": 0,

"sort": {

"orders": [

{

"direction": "DESC",

"property": "plannedStart"

}

],

"sorted": true

}

},

"timestamp": "11-Mar-2022 01:42:30",

"message": null,

"errorCode": null

}

RESTful API – Password Policy - maximum (optional)- minimum (required) password length

Purpose: This API is used to validate password against password policy

URL: https://<tenant_url>/authsrvc/passwordPolicy/pub/validate

Method: POST

Example Request:

curl 'https://as100.cymmetri.in/authsrvc/passwordPolicy/pub/validate' \

-H 'Connection: keep-alive' \

-H 'Pragma: no-cache' \

-H 'Cache-Control: no-cache' \

-H 'sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"' \

-H 'content-type: application/json' \

-H 'sec-ch-ua-mobile: ?0' \

-H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36' \

-H 'tenant: as100' \

-H 'sec-ch-ua-platform: "Linux"' \

-H 'Accept: */*' \

-H 'Origin: https://as100.cymmetri.in' \

-H 'Sec-Fetch-Site: same-origin' \

-H 'Sec-Fetch-Mode: cors' \

-H 'Sec-Fetch-Dest: empty' \

-H 'Referer: https://as100.cymmetri.in/' \

-H 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \

-H 'Cookie: deviceId=fa83c4b1-7c85-467d-9b46-ffbc70efad97; Correlation=9928D5133AED419CBC01591B56483953; app_73e5c5f8-276b-47bb-a6a5-b6f82a779d79=e689a8da-faa7-46f5-9c7a-2800abdd206a; device=cf7bbf2a-161c-11ec-b3ec-39287c680726' \

--data-raw '{"password":"U2FsdGVkX191zbRQpSQz+rdxyAacEqD1G5Mx5wKtPV5ElwKZu7/TFHFLuCNH+v63G8k7sTFDa5gNYG9SQ+0ix4eZdTvLcJbELGm2yjUWjx2a6jH3JnP/USl2efCC9nDvufmqUhSbIPA0Nc1PZUqM+PPk+TpCFSoKtKwBPWeBa/LYjlYt11u++aTuVGsd/rOaWJxqINPRHIk6Ax89LfhM8+H6VKc4+ybfearoCJgHWCPE/X566hiYZJEKcMGe7u0OpUzGUMlyguBtfYlWlT7tcdP6x/rXlqs8vNTLk/HboYLv10UkB0ifsQ64c7fSQ/ofZKjQlqehpP4+SzIi4OiqRQikP9MOkKZWl9YJdGXZs+mUuzfEs9UGINMYBk1hSCq6xGb9mfE0vyFeVAyY/6oGgQ==","login":"totp","userId":"6214def0a251e06721ed8594"}' \

--compressed

Sample Response:

On success:

{"success":true,"data":null,"timestamp":"11-Mar-2022 01:40:38","message":null,"errorCode":null}

On failure:

Response 1#

{"success":false,"data":null,"timestamp":"11-Mar-2022 01:39:40","message":null,"errorCode":"AUTHSRVC.PASSWORD_COMPOSITION_RULE_VIOLATION"}

RESTful API – New Application count API (7 days)

Purpose: This API is used to get count of application

URL: http://<tenant_url>/api/selfservice/newApplicationsCount

Method: GET

Example Request:

curl --location --request GET 'http://localhost:8080/api/selfservice/newApplicationsCount' \

--header 'Connection: keep-alive' \

--header 'Pragma: no-cache' \

--header 'Cache-Control: no-cache' \

--header 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"' \

--header 'Accept: application/json' \

--header 'content-type: application/json' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoiZ2s0MCIsImV4cCI6MTY0Njc0OTkzMiwidXNlcklkIjoiNjE3MDE1YTNjMDQ4MTc1NmI3OThhY2EyIiwiaWF0IjoxNjQ2NzQzOTMyfQ.puFKgrNoHZtRl6P4LxzFd9KQM_-EB-45DqqP4zywws8' \

--header 'sec-ch-ua-mobile: ?0' \

--header 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36' \

--header 'sec-ch-ua-platform: "Linux"' \

--header 'Sec-Fetch-Site: same-origin' \

--header 'Sec-Fetch-Mode: cors' \

--header 'Sec-Fetch-Dest: empty' \

--header 'Referer: https://gk40.cymmetri.in/' \

--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \

--header 'Cookie: deviceId=6e4caedd-beaf-444c-9312-21b219bb3709; Correlation=B194B86832FB4683ABC43EA6077944E2; app_73e5c5f8-276b-47bb-a6a5-b6f82a779d79=e689a8da-faa7-46f5-9c7a-2800abdd206a; device=41b5bf50-9def-11ec-8665-953ee8af105c; Correlation=1B9449F921B043B9B513E99D253894CE; RefreshToken=b8ada8a1-d089-4a39-b3e1-72c04ce202fe; sessionId=130e95df-69a5-4462-a8b5-c04b53e97e64' \

--header 'Tenant: gk40' \

--header 'userId: 617015a3c0481756b798aca2'

Sample Response:

On success:

{"success": true,"data": 1,"timestamp": "11-Mar-2022 02:13:39","message": null,"errorCode": null}

RESTful API – Campaigns/access review search by campaign name

Purpose: This API is used to get list of campaign

URL: https://<tenant_url>/igsrvc/api/ig/campaign/execution/history/list-summary/reviewer

Method: POST

Example Request:

curl --location --request POST 'https://gk40.cymmetri.in/igsrvc/api/ig/campaign/execution/history/list-summary/reviewer' \

--header 'Connection: keep-alive' \

--header 'Pragma: no-cache' \

--header 'Cache-Control: no-cache' \

--header 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"' \

--header 'Accept: application/json' \

--header 'content-type: application/json' \

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImRlbGVnYXRlZSI6bnVsbCwiZGVsZWdhdGVlSWQiOm51bGwsImZpcnN0TG9naW4iOmZhbHNlLCJyb2xlcyI6WyJPUkdfQURNSU4iLCJVU0VSIl0sInRlbmFudElkIjoiZ2s0MCIsImV4cCI6MTY0NzAxNDY2NywidXNlcklkIjoiNjE3MDE1YTNjMDQ4MTc1NmI3OThhY2EyIiwiaWF0IjoxNjQ3MDA4NjY3fQ.jP2BgjiOVUcdxhImVvdwy18puEylWSSOVHnWA_2hhJU' \

--header 'sec-ch-ua-mobile: ?0' \

--header 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36' \

--header 'sec-ch-ua-platform: "Linux"' \

--header 'Origin: https://gk40.cymmetri.in' \

--header 'Sec-Fetch-Site: same-origin' \

--header 'Sec-Fetch-Mode: cors' \

--header 'Sec-Fetch-Dest: empty' \

--header 'Referer: https://gk40.cymmetri.in/' \

--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \

--header 'Cookie: deviceId=6e4caedd-beaf-444c-9312-21b219bb3709; Correlation=B194B86832FB4683ABC43EA6077944E2; Correlation=C27A4466A21046309B58FD53AEF4A2C5; RefreshToken=4ec80313-bed3-44e5-9081-33eb9ba301f2; sessionId=32ceee83-781e-45d6-9c2c-2acc8741a944' \

--data-raw '{

"filter": {

"campaignName": "Campaign For"

},

"keyword": "",

"pageNumber": 0,

"pageSize": 10,

"sortDirection": "ASC",

"sortOn": [

"startDate"

]

}'

Sample Response:

On success:

{

"data": {

"content": [

{

"executionId": "61a865c69c60c83eb2d2cf0e",

"name": "Campaign For Bug_w8z89q",

"description": "",

"campaignId": "61a8657c9c60c83eb2d2cf0c",

"revision": 1,

"iteration": 1,

"status": "COMPLETED",

"remarks": "",

"startMode": "MANUAL",

"startDate": "2021-12-02",

"endMode": "MANUAL",

"endDate": "2021-12-02",

"plannedEnd": "2021-12-05",

"totalAssignments": 41,

"pendingAssignments": 41,

"approvedAssignments": 0,

"rejectedAssignments": 0

},

{

"executionId": "6225c00ab21ac3024d5a1d91",

"name": "Campaign For Bug_w8z89q",

"description": "",

"campaignId": "61a8657c9c60c83eb2d2cf0c",

"revision": 1,

"iteration": 2,

"status": "COMPLETED",

"remarks": "",

"startMode": "MANUAL",

"startDate": "2022-03-07",

"endMode": "AUTO",

"endDate": "2022-03-10",

"plannedEnd": "2022-03-10",

"totalAssignments": 40,

"pendingAssignments": 40,

"approvedAssignments": 0,

"rejectedAssignments": 0

}

],

"pageable": {

"sort": [

{

"direction": "ASC",

"property": "startDate",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"pageNumber": 0,

"pageSize": 10,

"offset": 0,

"paged": true,

"unpaged": false

},

"totalPages": 1,

"totalElements": 2,

"last": true,

"first": true,

"sort": [

{

"direction": "ASC",

"property": "startDate",

"ignoreCase": false,

"nullHandling": "NATIVE",

"ascending": true,

"descending": false

}

],

"numberOfElements": 2,

"size": 10,

"number": 0,

"empty": false

},

"errorCode": null,

"message": null,

"success": true,

"timestamp": "11-Mar-2022 02:38:11"

}

API Response Codes

API

Status

Error Code

Message

Create API

200

OK

500

Internal Server Error

401

Unauthorized

403

Forbidden

404

Not Found

Update API

200

OK

500

Internal Server Error

401

Unauthorized

403

Forbidden

404

Not Found

Last updated