Skip to content

The "itemsPerPage" number might be incorrect for partial paginated results #154

@nick-behrens

Description

@nick-behrens

Description

RFC7644 describes the itemsPerPage value like this:

itemsPerPage The number of resources returned in a list response page. REQUIRED when partial results are returned due to
pagination.

Currently, the itemsPerPage amount is set to params.Count, and when a partial page is retrieved the itemsPerPage doesn't equal the number of resources returned in a list response page.

Examples

GET http://localhost:8080/api/v1/scim/v2/Users
{
    "Resources": [
        {
            <Redacted, but a single resource>
        }
    ],
    "itemsPerPage": 100,
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "startIndex": 0,
    "totalResults": 1
}

I recognize that consumers of the API could do the math (totalResults - startIndex) to figure out how many items are in the current page, but if I'm reading the spec correctly, itemsPerPage should be the number of resources retrieved and not the Count parameter.

It looks like there is a split on this depending on the SCIM implementer. Okta, AWS, and Salesforce all seem to follow itemsPerPage equaling the number of resources but Azure keeps with what is implemented here, setting the itemsPerPage to the count parameter.

I'm more than happy to contribute a PR if we want to change the itemsPerPage to equal the number of resources in the page! I have a branch for that here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions