- Support for ETags:
replace,modifyanddeleteautomatically send anIf-Matchheader when the server advertises ETag support and the resource has ameta.version. :issue:`47`
deletenow takes a resource instance instead of a resource type and id. :issue:`13`modifynow takes a resource instance and a patch operation instead of a resource type, id and patch operation. :issue:`13`
- Werkzeug engine now correctly serializes list query parameters (
attributes,excludedAttributes).
- The
querymethod now accepts :class:`~scim2_models.ResponseParameters` in addition to :class:`~scim2_models.SearchRequest`. - The
search_requestparameter ofqueryis renamed toquery_parameters. The old name is deprecated and will be removed in 0.9.
- :class:`~scim2_client.SCIMResponseErrorObject` now exposes a :meth:`~scim2_client.SCIMResponseErrorObject.to_error` method returning the :class:`~scim2_models.Error` object from the server. :issue:`37`
- Skip
Content-Typeheader validation for 204 responses. :issue:`34`
schemasis no longer included in GET query parameters per RFC 7644 §3.4.2.
- Support for Python 3.14.
- Compatibility with scim2-models 0.6.
- Support for Python 3.9.
- Add support for PATCH operations with :meth:`~scim2_client.SCIMClient.modify`.
- Minor extension typing issue.
- Check response return codes after the error state. This helps providing more useful error messages.
Warning
This version comes with breaking changes:
- :class:`~scim2_client.engines.werkzeug.TestSCIMClient`
appis dropped.
- Add
clientandenviron:class:`~scim2_client.engines.werkzeug.TestSCIMClient` parameters.
- Add :paramref:`~scim2_client.SCIMClient.check_response_content_type` and :paramref:`~scim2_client.SCIMClient.check_response_status_codes` parameters.
- :class:`~scim2_client.client.BaseSyncSCIMClient.discover` has parameters to select which objects to discover.
- :class:`~scim2_client.engines.werkzeug.TestSCIMClient` can handle absolute URLs.
- Avoid to initialize :paramref:`~scim2_client.SCIMClient.resource_models` with configuration resources.
Warning
This version comes with breaking changes:
- :class:`~scim2_client.SCIMClient` takes a mandatory :paramref:`~scim2_client.SCIMClient.resource_types` parameter.
- Implement :meth:`~scim2_client.SCIMClient.register_naive_resource_types`.
- Implement :meth:`~scim2_client.BaseSyncSCIMClient.discover` methods.
- :class:`~scim2_client.engines.werkzeug.TestSCIMClient` raise a :class:`~scim2_client.UnexpectedContentFormat` exception when response is not JSON.
- Implement :class:`~scim2_client.SCIMClient` :paramref:`~scim2_client.SCIMClient.check_request_payload`, :paramref:`~scim2_client.SCIMClient.check_response_payload` and :paramref:`~scim2_client.SCIMClient.raise_scim_errors` paramibutes, to keep the same values for all the requests.
- Some variables were missing from the SCIM exception classes.
Warning
This version comes with breaking changes:
- httpx is no longer a direct dependency, it is shipped in the httpx packaging extra.
scim2_client.SCIMClienthas moved toscim2_client.engines.httpx.SyncSCIMClient.- The
resource_typesparameters has been renamedresource_models.
- The Unknown resource type request error keeps a reference to the faulty payload.
- New :class:`~scim2_client.engines.werkzeug.TestSCIMClient` request engine for application development purpose.
- New :class:`~scim2_client.engines.httpx.AsyncSCIMClient` request engine. :issue:`1`
- Separate httpx network code and SCIM code in separate file as a basis for async support (and other request engines).
- Mypy type checking and py.typed file :pr:`25`
- Python 3.13 support.
- :class:`~scim2_client.RequestPayloadValidationError` error message.
- Don't crash when servers don't return content type headers. :pr:`22,24`
- Replace
check_status_codeparameter byexpected_status_codes.
raise_scim_errorsis :data:`True` by default.
- Support for content-types with charset information. :issue:`18,19`
- Bump to scim2-models 0.2.0.
- Fix httpx dependency versions.
- Lower the httpx dependency to 0.24.0
- Support for scim2-models 0.1.8
- :class:`~scim2_client.SCIMResponseErrorObject` implementation.
- Implement :meth:`~scim2_client.SCIMClient.delete` check_response_payload attribute.
- :class:`~scim2_models.ServiceProviderConfig`, :class:`~scim2_models.ResourceType` and :class:`~scim2_models.Schema` are added to the default resource types list.
- Any custom URL can be used with all the :class:`~scim2_client.SCIMClient` methods.
- :class:`~scim2_client.ResponsePayloadValidationError` implementation.
- :class:`~scim2_client.RequestPayloadValidationError` implementation.
- :class:`~scim2_client.RequestNetworkError` implementation.
- Endpoint guessing for :class:`~scim2_models.ServiceProviderConfig`.
- :class:`~scim2_models.ServiceProviderConfig` cannot have ids and are not returned in :class:`~scim2_models.ListResponse`.
- :meth:`~scim2_client.SCIMClient.resource_endpoint` could not correctly guess endpoints for resources with extensions.
- :meth:`~scim2_client.SCIMClient.create` and :meth:`~scim2_client.SCIMClient.replace` can guess resource types by their payloads.
check_response_payloadandcheck_status_codeparameters for all methods.check_request_payloadparameter for all methods.
- Use of scim2-models request contexts to produce adequate payloads.
- Initial release