Skip to content

Releases: python-scim/scim2-models

0.6.3

29 Jan 21:13
0.6.3
2da6d56

Choose a tag to compare

[0.6.3] - 2026-01-29

--------------------

Fixed
^^^^^
- Fix ``model_json_schema()`` generation for models containing :class:`~scim2_models.Reference` or :class:`~scim2_models.Path` fields. :issue:`125`
- Group ``displayName`` is required. :rfc:`7643` `erratum 5368 <https://www.rfc-editor.org/errata/eid5368>`_ :issue:`123` :pr:`128`
- :class:`~scim2_models.GroupMembership` ``$ref`` only references ``Group``. :rfc:`7643` `erratum 8471 <https://www.rfc-editor.org/errata/eid8471>`_
- :class:`~scim2_models.Manager` ``value`` is case-exact. :rfc:`7643` `erratum 8472 <https://www.rfc-editor.org/errata/eid8472>`_
- :class:`~scim2_models.ResourceType` ``name`` and ``endpoint`` have server uniqueness. :rfc:`7643` `erratum 8475 <https://www.rfc-editor.org/errata/eid8475>`_
- Complex attributes don't have ``uniqueness`` in schema representation. :rfc:`7643` `erratum 6004 <https://www.rfc-editor.org/errata/eid6004>`_

0.6.2

25 Jan 15:47
0.6.2
fb14864

Choose a tag to compare

[0.6.2] - 2026-01-25

--------------------

Added
^^^^^

- :meth:`SCIMException.from_error <scim2_models.SCIMException.from_error>` to create an exception from a SCIM :class:`~scim2_models.Error` object.

0.6.1

25 Jan 14:10
0.6.1
33dcb07

Choose a tag to compare

[0.6.1] - 2026-01-25

--------------------

Added
^^^^^
- Allow ``Path`` objects in Pydantic validation methods.

0.6.0

25 Jan 10:23
0.6.0
f27a83a

Choose a tag to compare

[0.6.0] - 2026-01-25

--------------------

Added
^^^^^
- Resources define their schema URN with a ``__schema__`` classvar instead of a ``schemas`` default value. :issue:`110`
- :class:`~scim2_models.External` and :class:`~scim2_models.URI` marker classes for reference types.

Changed
^^^^^^^
- Introduce a :class:`~scim2_models.Path` object to handle paths. :issue:`111`
- :class:`~scim2_models.Reference` type parameters simplified:

  - ``Reference[ExternalReference]`` → ``Reference[External]``
  - ``Reference[URIReference]`` → ``Reference[URI]``
  - ``Reference[Literal["User"]]`` → ``Reference["User"]``
  - ``Reference[Literal["User"] | Literal["Group"]]`` → ``Reference[Union["User", "Group"]]``

- :class:`~scim2_models.Reference` now validates URI format for ``External`` and ``URI`` types.
- :class:`~scim2_models.Reference` inherits from ``str`` directly instead of ``UserString``.

Fixed
^^^^^
- Only allow one primary complex attribute value to be true. :issue:`10`

Deprecated
^^^^^^^^^^
- Defining ``schemas`` with a default value is deprecated. Use ``__schema__ = URN("...")`` instead.
- ``Error.make_*_error()`` methods are deprecated. Use ``<Exception>.to_error()`` instead.
- ``Reference[Literal["X"]]`` syntax is deprecated. Use ``Reference["X"]`` instead. Will be removed in 0.7.0.
- ``ExternalReference`` alias is deprecated. Use :class:`~scim2_models.External` instead. Will be removed in 0.7.0.
- ``URIReference`` alias is deprecated. Use :class:`~scim2_models.URI` instead. Will be removed in 0.7.0.
- Validation that the base schema is present in ``schemas`` during SCIM context validation.
- Validation that extension schemas are known during SCIM context validation.
- Introduce SCIM exceptions hierarchy (:class:`~scim2_models.SCIMException` and subclasses) corresponding to RFC 7644 error types. :issue:`103`
- :meth:`Error.from_validation_error <scim2_models.Error.from_validation_error>` to convert Pydantic :class:`~pydantic.ValidationError` to SCIM :class:`~scim2_models.Error`.
- :meth:`PatchOp.patch <scim2_models.PatchOp.patch>` auto-excludes other ``primary`` values when setting one to ``True``. :issue:`116`

0.5.2

22 Jan 08:24
0.5.2
2902793

Choose a tag to compare

[0.5.2] - 2026-01-22

--------------------

Fixed
^^^^^
- Sub-attributes of requested complex attributes are now included in responses. :issue:`114`

0.5.1

07 Nov 13:05
0.5.1
814ec7f

Choose a tag to compare

[0.5.1] - 2025-11-07

--------------------

Added
^^^^^
- Support for Python 3.14.
- Compile regexes.

Removed
^^^^^^^
- Support for Python 3.9.

0.5.0

18 Aug 20:22
0.5.0
c03fc21

Choose a tag to compare

[0.5.0] - 2025-08-18

--------------------

Added
^^^^^
- Validation that forbid :class:`~scim2_models.PatchOp` with zero ``operations``.

Fixed
^^^^^
- Allow PATCH operations on resources and extensions root path.
- Multiple ComplexAttribute do not inherit from MultiValuedComplexAttribute by default. :issue:`72` :issue:`73`

0.4.2

05 Aug 21:21
0.4.2
b7be1d2

Choose a tag to compare

[0.4.2] - 2025-08-05

--------------------

Fixed
^^^^^
- The library is 100% typed with mypy strict.

0.4.1

23 Jul 14:27
0.4.1
6a2a26f

Choose a tag to compare

[0.4.1] - 2025-07-23

--------------------

Fixed
^^^^^
- Allow ``TypeVar`` as type parameters for :class:`~scim2_models.PatchOp`.

0.4.0

23 Jul 09:18
0.4.0
d84c564

Choose a tag to compare

[0.4.0] - 2025-07-23

--------------------

Added
^^^^^
- Proper path validation for :attr:`~scim2_models.SearchRequest.attributes`, :attr:`~scim2_models.SearchRequest.excluded_attributes` and :attr:`~scim2_models.SearchRequest.sort_by`.
- Implement :meth:`~scim2_models.PatchOp.patch`

Fixed
^^^^^
- When using ``model_dump``, ignore invalid ``attributes`` and ``excluded_attributes``
  as suggested by RFC7644.
- Don't normalize attributes typed with :data:`Any`. :issue:`20`