NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2886 most downloaded on PyPI
A partial implementation of the SCIM 2.0 provider specification for use with Django.
Last release 1 months ago
12 Aug 2026
Ships unpredictably
gaps range from 4 weeks to 3.1 years
Most releases are documented
notes for 50 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
77 releases · first in 2016
Drop Django 4.2 support by @nijave in #222
chore(deps-dev): bump flake8-isort from 6.1.2 to 7.0.0 by @dependabot[bot] in #227
chore(deps-dev): bump pytest-django from 4.11.1 to 4.13.0 by @dependabot[bot] in #226
chore(deps-dev): bump tox from 4.30.3 to 4.58.0 by @dependabot[bot] in #224
Full Changelog: 0.22.0...0.23.0
One column per quarter.
fix: bump python min version by @nijave in #217
Bump django-oauth-toolkit from 3.2.0 to 3.3.0 by @dependabot[bot] in #211
chore(deps): update sphinx requirement from <9,>=8 to >=8.1.3,<9 by @dependabot[bot] in #212
chore(deps): bump django-oauth-toolkit from 3.3.0 to 3.4.0 by @dependabot[bot] in #215
Raise SCIM error on IntegrityError in PutView (#209) by @CedricConday in #214
chore(deps-dev): bump pytest from 8.4.2 to 9.0.3 by @dependabot[bot] in #218
feat: move coverage to coveralls.io by @jamesjsanders in #206
Full Changelog: 0.21.0...0.22.0
IntegrityError in PutView rather than
returning a 500. (#209, #214)Bump coverage from 7.7.1 to 7.8.2 by @dependabot [bot] in #165
Full Changelog: 0.20.0...0.21.0
itemsPerPage in SCIM list responses to report the number of
resources actually returned rather than the requested count
(SCIM RFC 7644 section 3.4.2). (#208, #210)Allow sorting via get_queryset_post_processor.
pyproject.toml file updated in ce6b99c .
pyproject.toml file updated in ce6b99c.
Version bump -> 0.18.0
Version bump -> 0.18.0 (#95)
SCIMAuthCheckMiddleware is now applied as a decorator directly to
the SCIM view functions. Therefore, it no longer needs to be
configured as a middleware in Django's MIDDLEWARE setting. If you
want to customize it, you can do so using the
AUTH_CHECK_MIDDLEWARE key of the SCIM_SERVICE_PROVIDER setting..search.Version Bump => 0.17.3
Version Bump => 0.17.3
Version bump => 0.17.2
Version bump => 0.17.2
Version Bump => 0.17.1
Version Bump => 0.17.1
EXPOSE_SCIM_EXCEPTIONS.
This setting defaults to false for security but can be toggled on for
backwards compatibility.Version Bump => 0.17.0
Version Bump => 0.17.0
Re-release of package due to pyproject.toml bug.
Re-release of package due to PyPI release bug.
- Bug fixes
Consider nested fields in extra_filter_kwargs and extra_exclude_kwargs
Fix distribution issues with pyproject.toml file
Require SCIM IDs to be unique across all objects of a specific model. POTENTIALLY BREAKING CHANGE.
Drop compatibility with all Django versions before 2.0 POTENTIALLY BREAKING CHANGE.
Fix hard coded ATTR_MAP issue (#38). Thank you @horida.
Handle SCIMParesrError errors gracefully
Run PATCH handlers for each parsed path and value
Add ENTERPRISE_URN to list of schemas
Allow for customization of paths to be logged
Added validation methods to adapters
Upgrade dependency: scim2-filter-parser -> 0.2.3 to fix tokenization error
Refactor location of ATTR_MAP, placed in filters.py
Refactor ComplexAttrPaths to use custom class
Refactor ComplexAttrPaths to use custom class
This changes the API for PATCH handlers. Handlers will take a 3-tuple as before and now, additionally, a ComplexAttrPath object that contains information regarding the complex path. Handlers look for this object to determine if they need to perform extra handling to determine the attribute that needs to be updated
Upgrade dependency: scim2-filter-parser -> 0.2.1
Upgrade dependency: scim2-filter-parser -> 0.2.0
Retain capitalization in filter queries
Add AuthorizationError to exceptions
Improve PATCH paths passed into handlers.
Improve PATCH paths passed into handlers.
If you have custom handlers for patch calls defined in your adapters file (eg. def handle_add(path, value, operation): ...) then you will need to update your handlers to accept a 3-tuple in place of the current string held by path. A quick fix for this is to add the following line to the beginning of each handler:
path, subattr, uri = path
Thanks for your patience as we migrate to a better system for handling PATCH paths.
Include schemas in packaged version. Thanks @stefanfoulis!
Add logic to add extra SQL to filters
Replace PyPlus with scim2-filter-parser for better filter parsing
Return better errors for malformed or unsupported JSON bodies
Create a NotImplementedError for SCIM
Tone down the number of logged exceptions (if they are SCIMExceptions as those are somewhat expected)
Fix logging on requests. Log on more than 401s.
Increase logging level for failed SCIM view call
- Add badges to README
- Only log during SCIM calls
- Fix failing tests
Change where logging of requests is done (now in middleware)
This commit contains a BREAKING CHANGE.
Add tests for work on supporting complex SCIM filtering
Update PATCH handler to decipher path key
This commit contains a BREAKING CHANGE.
If you have overridden the "handle_<op_code>" methods on the User and Group adapters, those methods need to be updated to take path, and value in addition to operation.
New adapter signature:
def handle_<op_code (eg. add)>(self, path, value, operation): ...
Bug fix: https://github.com/15five/django-scim2/issues/13 Thank you @tomatsue
- Bug fix
Added back explicit support for python2.7 on Django 1.11
Added a group grammar for parsing group pushes
- Docs changes
Port to Python 3.6, drop support for anything less than Python 3.6
** BREAKING CHANGES **
** NON BREAKING CHANGES **
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →