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

kobotoolbox / kpi / 23544873927
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 25 Mar 2026 02:03PM UTC
Jobs 10
Files 907
Run time 2min
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

25 Mar 2026 01:58PM UTC coverage: 82.125% (+9.6%) from 72.498%
23544873927

push

github

web-flow
feat(sso): create additional metadata endpoints required by some keycloak scim extension DEV-1897 (#6846)

### 📣 Summary
Implemented SCIM 2.0 discovery metadata endpoints (/Schemas and
/ResourceTypes) to ensure full compliance and unblock integrations with
strict Enterprise Identity Providers (like Keycloak's outbound
provisioning).

### 📖 Description
Certain strict SCIM clients (like the scim-for-keycloak.de extension or
strict configurations of Azure AD) rigidly enforce RFC-7643 discovery
specifications. Before they attempt to provision any users or groups,
they automatically query the target server for its schemas and resource
types to understand exactly what attributes are supported. Previously,
our minimal SCIM implementation only exposed /Users, /Groups, and
/ServiceProviderConfig. The data from these metadata endpoints is static
and adapted to the current subset of data handled by the kobo scim app.

### 👀 Preview steps
1. Set up a IdP in the django admin 
2. Get the schemas and resource types:
```
curl -i -X GET "http://kf.kobo.local:8000/api/v2/scim/v2/nrc/Schemas" \
  -H "Authorization: Bearer <API_KEY>"

curl -i -X GET "http://kf.kobo.local:8000/api/v2/scim/v2/nrc/ResourceTypes" \
  -H "Authorization: Bearer <API_KEY>"
```
3. The responses should be JSON's showing the available schemas and
resources (users and groups)

7751 of 11938 branches covered (64.93%)

48 of 96 new or added lines in 5 files covered. (50.0%)

1 existing line in 1 file now uncovered.

29501 of 35922 relevant lines covered (82.13%)

5.8 hits per line

Uncovered Changes

Lines Coverage ∆ File
34
30.03
3.98% kobo/apps/kobo_scim/views.py
13
67.21
-15.71% kobo/apps/kobo_scim/serializers.py
1
83.33
kobo/apps/kobo_scim/schema_extensions/v2/authentication/extensions.py

Coverage Regressions

Lines Coverage ∆ File
1
30.03
3.98% kobo/apps/kobo_scim/views.py
Jobs
ID Job ID Ran Files Coverage
1 23544873927.1 25 Mar 2026 02:03PM UTC 903
54.41
2 23544873927.2 25 Mar 2026 02:03PM UTC 903
52.88
3 23544873927.3 25 Mar 2026 02:04PM UTC 905
54.1
4 23544873927.4 25 Mar 2026 02:05PM UTC 903
53.09
5 23544873927.5 25 Mar 2026 02:05PM UTC 905
55.66
6 23544873927.6 25 Mar 2026 02:05PM UTC 903
60.35
7 23544873927.7 25 Mar 2026 02:06PM UTC 905
66.02
8 23544873927.8 25 Mar 2026 02:07PM UTC 905
61.49
9 23544873927.9 25 Mar 2026 02:08PM UTC 905
54.45
10 23544873927.10 25 Mar 2026 02:31PM UTC 907
68.26
Source Files on build 23544873927
  • Tree
  • List 907
  • Changed 177
  • Source Changed 0
  • Coverage Changed 177
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 8928510e on github
  • Prev Build on release/2.026.12 (#23510188122)
  • Next Build on release/2.026.12 (#23546667414)
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