Click HERE to see how Saviynt Intelligence is transforming the industry. |
07/22/2024 06:42 AM
Hello,
We are running into an issue where our SAV4SAV connector is deleting SAV4SAV accounts for active users. I have included our JSONs below. We aren't able to find in the logs as to why it is doing this either.
IMPORTACCOUNTJSON:
{
"acctEntParams": {
"entTypes": {
"Organization": {
"call": {
"call1": {
"callOrder": 0,
"processingType": "entToAcctMapping",
"stageNumber": 0
}
}
},
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"processingType": "entToAcctMapping",
"stageNumber": 0
}
}
},
"SAVRoles": {
"call": {
"call1": {
"acctKeyField": "accountID",
"callOrder": 0,
"processingType": "httpEntToAcct",
"pagination": {
"offset": {
"totalCountPath": 99999,
"batchParam": "limit",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "users",
"http": {
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}"
},
"httpMethod": "GET",
"url": "https://domain.saviyntcloud.com/ECMv6/api/userms/savroles/${id}/users"
},
"entKeyField": "entitlementID",
"acctIdPath": "username",
"connection": "userAuth",
"stageNumber": 1
}
}
},
"UserGroups": {
"call": {
"call1": {
"callOrder": 0,
"processingType": "entToAcctMapping",
"stageNumber": 0
}
}
}
}
},
"entitlementParams": {
"entTypes": {
"Organization": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": "completeResponseMap.totalcount",
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "organizations",
"http": {
"httpParams": "",
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://domain.saviyntcloud.com/ECM/api/v5/getOrganization"
},
"stageNumber": 0,
"colsToPropsMap": {
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"entitlementID": "organizationname~#~char",
"entitlement_value": "organizationname~#~char"
}
}
},
"acctEntMappings": {
"keyField": "accountID",
"idPath": "username",
"listField": "organizationowners",
"importAsAccount": false
},
"entTypeOrder": 1
},
"Roles": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": "completeResponseMap.totalCount",
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "Roledetails",
"http": {
"httpParams": "",
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "POST",
"url": "https://domain.saviyntcloud.com/ECM/api/v5/getRoles"
},
"stageNumber": 0,
"colsToPropsMap": {
"customproperty2": "role_name~#~char",
"customproperty1": "roleKey~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"entitlementID": "roleKey~#~char",
"entitlement_value": "role_name~#~char"
}
}
},
"acctEntMappings": {
"keyField": "accountID",
"idPath": "ownername",
"listField": "owner",
"importAsAccount": false
},
"entTypeOrder": 0
},
"SAVRoles": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"listField": "savroles",
"http": {
"successResponses": {
"statusCode": [
200,
201
]
},
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://domain.saviyntcloud.com/ECMv6/api/userms/savroles"
},
"stageNumber": 0,
"colsToPropsMap": {
"customproperty1": "CUSTOMPROPERTY1~#~char",
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char"
}
}
},
"entTypeOrder": 0
},
"UserGroups": {
"call": {
"call1": {
"keyField": "entitlementID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": "completeResponseMap.totalcount",
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "usergroups",
"http": {
"httpParams": "",
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "POST",
"url": "https://domain.saviyntcloud.com/ECM/api/v5/fetchUserGroup"
},
"stageNumber": 0,
"colsToPropsMap": {
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"entitlementID": "usergroupkey~#~char",
"entitlement_value": "user_groupname~#~char"
}
}
},
"acctEntMappings": {
"keyField": "accountID",
"idPath": "username",
"listField": "owners",
"importAsAccount": false
},
"entTypeOrder": 2
}
},
"processingType": "SequentialAndIterative",
"connection": "userAuth"
},
"accountParams": {
"call": {
"call1": {
"keyField": "accountID",
"callOrder": 0,
"pagination": {
"offset": {
"totalCountPath": 240000,
"batchParam": "max",
"batchSize": 500,
"offsetParam": "offset"
}
},
"listField": "results",
"http": {
"httpContentType": "application/json",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"url": "https://domain.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname,statuskey&sort=username&order=desc"
},
"stageNumber": 0,
"colsToPropsMap": {
"accountID": "username~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char",
"displayName": "displayname~#~char",
"name": "username~#~char",
"status": "active~#~char"
}
}
},
"processingType": "SequentialAndIterative",
"connection": "userAuth",
"statusAndThresholdConfig": {
"inactivateAccountsNotInFile": false,
"activeStatus": [
1
],
"deleteAccEntForActiveAccounts": false,
"statusColumn": "customproperty11",
"accountThresholdValue": 30000,
"correlateInactiveAccounts": true,
"deleteLinks": false
}
}
}
RemoveAccountJSON:
{
"call": [
{
"name": "call1",
"connection": "userAuth",
"url": "https://domain.saviyntcloud.com/ECM/api/v5/updateUser",
"httpMethod": "POST",
"httpParams": "{\"username\":\"${user.username}\",\"statuskey\":\"0\"}",
"httpHeaders": {
"Authorization": "${access_token}"
},
"httpContentType": "application/json",
"successResponses": [
{
"message": "User Updated Successfully"
}
]
}
]
}
Solved! Go to Solution.
07/22/2024 08:47 AM
07/22/2024 09:24 AM
Hey @rushikeshvartak Yes, it is deleting after running the import, and it is not creating tasks. We don't have anything for the status threshold config. We followed this guide HERE.
It was fine until a couple weeks ago when it started randomly deleting accounts for active users.
07/22/2024 09:27 AM
07/22/2024 10:57 AM
@rushikeshvartak That's the issue, we reviewed the logs at the day/time it happened, and there are no records for some reason. We tried job ID, accountID, userID. Checking the time when the job ran, and there is nothing. Not even a task is generated.
07/22/2024 11:25 AM
Import will not generate tasks. Please share logs towards job ending
07/22/2024 12:01 PM
Hey @rushikeshvartak this isn't the best place to share logs as it is a public forum. I ended up submitting a ticket on this issue. Thank you.