Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

acctEntParams part is not working in REST connector

Gopi
Regular Contributor
Regular Contributor

Hi experts,

We are using the same API to get the membership details for two different Entitlement Types. The problem is that we see only one Entitlement type membership data in Saviynt, not both.

For Example the below response we are trying to get both job_id and user_role_id membership details.

Gopi_0-1724086217872.png

JOSN code:

"acctEntParams": {
"connection": "acctAuth",
"entTypes": {
"JobAdmin": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "job_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
},
"UserRoles": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "user_role_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
}
}
}

Let me know what I'm missing.

Regards,

Gopi.

10 REPLIES 10

rushikeshvartak
All-Star
All-Star

"listField": "",
"entIdPath": "job_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Gopi
Regular Contributor
Regular Contributor

@rushikeshvartak ,

I didn't get you on the above ping, could you please explain?

 

Change "entIdPath": "job_id", 

in your json


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Gopi
Regular Contributor
Regular Contributor

@rushikeshvartak ,

the mapping is already done in the code that I shared one is mapped with Job_ID, and the other one is with User_Role_ID. Problem is that we see inconsistency when we run recon. 

  • what is inconsistency ?
  • Also share full import JSON

Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Gopi
Regular Contributor
Regular Contributor

Hi @rushikeshvartak 

inconsistency is that recon bringing only one Entitlement type membership either JobAdmin or userRoles.

 

  • JOSN

{
"globalSettings": {
"dateFormat": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
},
"accountParams": {
"connection": "acctAuth",
"createUsers": false,
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"disableDeletedAccounts": true,
"http": {
"url": "https://abc.io/v1/users?page=1&per_page=10",
"httpMethod": "GET",
"httpHeaders": {
"contentType": "application/json",
"Authorization": "${access_token}",
"Accept": "application/json"
}
},
"listField": "",
"keyField": "accountID",
"statusConfig": {
"active": "false",
"inactive": "true"
},
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "#CONST#${(response.primary_email_address=='')?response.id:response.primary_email_address}~#~char",
"status": "disabled~#~char",
"displayName": "name~#~char",
"CREATED_ON": "created_at~#~date",
"updatedate": "updated_at~#~date",
"accounttype": "AccessLevel~#~char",
"customproperty1": "first_name~#~char",
"customproperty2": "last_name~#~char",
"customproperty3": "id~#~char",
"customproperty4": "employee_id~#~char",
"customproperty5": "site_admin~#~char",
"customproperty6": "disabled~#~char",
"customproperty7": "offices.name~#~listAsString",
"customproperty8": "offices.id~#~listAsString",
"customproperty9": "departments.name~#~listAsString",
"customproperty10": "departments.id~#~listAsString"
},
"pagination": {
"nextUrl": {
"nextUrlPath": "${if(headers?.link?.contains ('next')){headers?.link?.split(',')[0]?.replace('<', '')?.replace('>; rel=\"next\"','')?. trim()} else {null}}"
}
},
"unsuccessResponses": {
"statusCode": [
400,
403,
401,
404,
409,
405,
500
]
}
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"JobAdmin": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://abc.io/v1/jobs?page=1&per_page=500",
"httpHeaders": {
"contentType": "application/json",
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"displayname":"name~#~char",
"customproperty1": "id~#~char",
"customproperty2": "notes~#~char",
"customproperty3":"created_at~#~date",
"customproperty4":"updated_at~#~date",
"customproperty5":"confidential~#~char"
},
"disableDeletedEntitlements": true
}
}
},
"UserRoles": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://abc.io/v1/user_roles",
"httpHeaders": {
"contentType": "application/json",
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"displayname":"name~#~char",
"customproperty1": "id~#~char",
"customproperty2": "type~#~char"
},
"disableDeletedEntitlements": true
}
}
}
}
},
"acctEntParams": {
"connection": "acctAuth",
"entTypes": {
"JobAdmin": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "job_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
},
"UserRoles": {
"call": {
"call1": {
"processingType": "httpAcctToEnt",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://abc.io/v1/users/${id}/permissions/jobs",
"httpMethod": "GET"
},
"listField": "",
"entIdPath": "user_role_id",
"entKeyField": "entitlementID",
"acctKeyField": "accountID"
}
}
}
}
}
}

change "processingType": "httpAcctToEnt", to  SequentialAndIterative


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Gopi
Regular Contributor
Regular Contributor

hi @rushikeshvartak ,

after changing from "processingType": "httpAcctToEnt", to  SequentialAndIterative I don't see membership details  it totally got removed, previously when I kept httpAcctToEnt at least it brings one entitlement type membership.

Gopi
Regular Contributor
Regular Contributor

@rushikeshvartak ,

Any thoughts on this issue? Is Saviynt to expecting unique value for group Membership when it come to REST connector.

Regards,

Gopi.

Prepare json from scratch and validate 

https://docs.saviyntcloud.com/bundle/Dev-Handbook-REST-v24x/page/Content/Developers-Handbook.htm


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.