• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 22509946657 / 2
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 28 Feb 2026 01:42AM UTC
Files 891
Run time 16s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Feb 2026 01:04AM UTC coverage: 82.027% (+2.3%) from 79.701%
22509946657.2

push

github

web-flow
feat(scim): get/list api endpoints for the scim integration DEV-1665 (#6741)

### đŸ“Ŗ Summary
As part of the SSO deprovisioning project, this PR implements basic SCIM
v2 User `GET` (list and retrieve) endpoints, allowing external IdPs to
query user accounts via the SCIM protocol.

Features included in this PR:
* SCIM API endpoints exposed at `/api/scim/v2/{idp_slug}/Users/` and
`/api/scim/v2/{idp_slug}/Users/{user_id}`
* Authentication via a `Bearer` token validated against the respective
`IdentityProvider.scim_api_key`.
* Pagination following the standard specifications 
* Supported filtering usernames and emails (e.g. `?filter=userName eq
"test@test.com"`) to locate linked accounts for deprovisioning queries.


### 👀 Preview steps


1. â„šī¸ Create an active `IdentityProvider` using the Django shell (or
admin)
2. â„šī¸ Ensure you have a couple of users existing in your local test
databae
3. Open your terminal and attempt to fetch the SCIM users list without
authentication:
```
   curl -X GET http://kf.kobo.local/api/scim/v2/test-idp/Users/
```
🔴 It should fail.
4. Provide the Bearer token configured for your IdP:
```
curl -H "Authorization: Bearer my-secret-token" \
     -X GET http://kf.kobo.local/api/scim/v2/test-idp/Users/
```
đŸŸĸ [on PR] Notice that the endpoint returns a 200 OK response. The
response should follow the SCIM ListResponse standard, detailing
totalResults, pagination bounds (startIndex, itemsPerPage), and an array
of Kobo users formatted with the SCIM specs.
5. Retrieve a specific user by copying a user ID from the previous list
and querying it directly:
```
curl -H "Authorization: Bearer my-secret-token" \
     -X GET http://kf.kobo.local/api/scim/v2/test-idp/Users/{user_id}/
đŸŸĸ [on PR] Notice that the endpoint returns a single user matching the urn:ietf:params:scim:schemas:core:2.0:User schema

7519 of 11573 branches covered (64.97%)

28675 of 34958 relevant lines covered (82.03%)

0.82 hits per line

Source Files on job 22509946657.2
  • Tree
  • List 891
  • Changed 40
  • Source Changed 0
  • Coverage Changed 40
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 22509946657
  • 239cbe6b on github
  • Prev Job for on main (#22361967232.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc