We are designing a standard Web Services connector for a target system where we need to aggregate all user accounts into ISC.
The target system exposes a REST API, but it cannot return in a single call the full flat list of all accounts together with the complete entitlement detail for each of them (the payload would be too large / the source doesn’t support that shape). Instead, the source can only expose:
- A list endpoint that returns a flat list of account keys (User IDs only, no detail).
- A “get single account” endpoint that, given one User ID, returns the full account detail (all attributes and entitlements/authorizations for that person).
Before finalizing the API contract we are asking the source-system team to expose, we want to validate with SailPoint whether this two-call cascade pattern is a supported and recommended approach for the Web Services connector’s account aggregation, or whether we should instead build a custom connector (SaaS Connectivity SDK) to implement this logic.
Example payloads
Call 1 – List Accounts (flat list of keys only)
{
"accounts": [
{ "userId": "AC10001" },
{ "userId": "AC10002" },
{ "userId": "AC10003" }
],
"nextPageToken": "eyJvZmZzZXQiOjEwMH0="
}
Call 2 – Get Single Account (full detail, called once per userId returned by Call 1)
{
"userId": "AC10001",
"firstName": "Mario",
"lastName": "Rossi",
"status": "ACTIVE",
"department": "IT Security",
"entitlements": [
{ "id": "ROLE_ADMIN", "type": "role" },
{ "id": "APP_ACCESS_CRM", "type": "application" },
{ "id": "GROUP_FINANCE_RO", "type": "group" }
]
}
What we would like to understand
- Is it considered best practice (or even supported out of the box) for a standard Web Services connector to build full account aggregation by:
- first paging through a “list” endpoint to collect all account keys, and
- then issuing one “Get Single Object” call per key to enrich each account with full entitlement detail?
- Historically the “Get Single Account” call in the Web Services connector framework is used for delta/provisioning confirmation scenarios, not as part of the main aggregation loop. Can it legitimately be reused inside the aggregation task itself, or is that outside its intended design?
- Are there known performance/rate-limit implications of this “N+1 calls” pattern (1 list call + N single-account calls) during a full aggregation, especially for larger populations (tens of thousands of accounts)? Any guidance on throttling, pagination size, or parallelization supported by the connector framework?
- If this pattern is not well supported by the standard Web Services connector, would you recommend implementing it instead via the SaaS Connectivity SDK (custom connector), where we have full control over the aggregation loop logic?
- Are there any reference implementations, community connectors, or documentation examples that follow this same “list then enrich” cascade pattern we could use as a model?
Any guidance, documentation pointers, or examples of similar implementations would be greatly appreciated.
Thank you in advance for your help.