Releases: python-scim/scim2-models
Releases · python-scim/scim2-models
0.6.3
[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
[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
[0.6.1] - 2026-01-25 -------------------- Added ^^^^^ - Allow ``Path`` objects in Pydantic validation methods.
0.6.0
[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
[0.5.2] - 2026-01-22 -------------------- Fixed ^^^^^ - Sub-attributes of requested complex attributes are now included in responses. :issue:`114`
0.5.1
[0.5.1] - 2025-11-07 -------------------- Added ^^^^^ - Support for Python 3.14. - Compile regexes. Removed ^^^^^^^ - Support for Python 3.9.
0.5.0
[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
[0.4.2] - 2025-08-05 -------------------- Fixed ^^^^^ - The library is 100% typed with mypy strict.
0.4.1
[0.4.1] - 2025-07-23 -------------------- Fixed ^^^^^ - Allow ``TypeVar`` as type parameters for :class:`~scim2_models.PatchOp`.
0.4.0
[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`