scim2-client 0.1.4__tar.gz → 0.1.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scim2_client-0.1.4 → scim2_client-0.1.6}/PKG-INFO +17 -2
- {scim2_client-0.1.4 → scim2_client-0.1.6}/README.md +15 -0
- {scim2_client-0.1.4 → scim2_client-0.1.6}/pyproject.toml +3 -2
- scim2_client-0.1.6/scim2_client/__init__.py +25 -0
- scim2_client-0.1.6/scim2_client/client.py +687 -0
- scim2_client-0.1.6/scim2_client/errors.py +125 -0
- scim2_client-0.1.4/scim2_client/__init__.py +0 -13
- scim2_client-0.1.4/scim2_client/client.py +0 -476
- scim2_client-0.1.4/scim2_client/errors.py +0 -43
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scim2-client
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: Pythonically build SCIM requests and parse SCIM responses
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: scim,scim2,provisioning,httpx,api
|
|
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
22
|
Requires-Dist: httpx (>=0.27.0,<0.28.0)
|
|
23
|
-
Requires-Dist: scim2-models (>=0.1.
|
|
23
|
+
Requires-Dist: scim2-models (>=0.1.5,<0.2.0)
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
|
|
26
26
|
# scim2-client
|
|
@@ -28,6 +28,16 @@ Description-Content-Type: text/markdown
|
|
|
28
28
|
A SCIM client Python library built upon [scim2-models](https://scim2-models.readthedocs.io) and [httpx](https://github.com/encode/httpx),
|
|
29
29
|
that pythonically build requests and parse responses,
|
|
30
30
|
following the [RFC7643](https://datatracker.ietf.org/doc/html/rfc7643.html) and [RFC7644](https://datatracker.ietf.org/doc/html/rfc7644.html) specifications.
|
|
31
|
+
|
|
32
|
+
It aims to be used in SCIM client applications, or in unit tests for SCIM server applications.
|
|
33
|
+
|
|
34
|
+
## What's SCIM anyway?
|
|
35
|
+
|
|
36
|
+
SCIM stands for System for Cross-domain Identity Management, and it is a provisioning protocol.
|
|
37
|
+
Provisioning is the action of managing a set of resources across different services, usually users and groups.
|
|
38
|
+
SCIM is often used between Identity Providers and applications in completion of standards like OAuth2 and OpenID Connect.
|
|
39
|
+
It allows users and groups creations, modifications and deletions to be synchronized between applications.
|
|
40
|
+
|
|
31
41
|
## Installation
|
|
32
42
|
|
|
33
43
|
```shell
|
|
@@ -71,3 +81,8 @@ assert isinstance(response, Error)
|
|
|
71
81
|
assert response.detail == "One or more of the attribute values are already in use or are reserved."
|
|
72
82
|
```
|
|
73
83
|
|
|
84
|
+
scim2-client belongs in a collection of SCIM tools developed by [Yaal Coop](https://yaal.coop),
|
|
85
|
+
with [scim2-models](https://github.com/yaal-coop/scim2-models),
|
|
86
|
+
[scim2-tester](https://github.com/yaal-coop/scim2-tester) and
|
|
87
|
+
[scim2-cli](https://github.com/yaal-coop/scim2-cli)
|
|
88
|
+
|
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
A SCIM client Python library built upon [scim2-models](https://scim2-models.readthedocs.io) and [httpx](https://github.com/encode/httpx),
|
|
4
4
|
that pythonically build requests and parse responses,
|
|
5
5
|
following the [RFC7643](https://datatracker.ietf.org/doc/html/rfc7643.html) and [RFC7644](https://datatracker.ietf.org/doc/html/rfc7644.html) specifications.
|
|
6
|
+
|
|
7
|
+
It aims to be used in SCIM client applications, or in unit tests for SCIM server applications.
|
|
8
|
+
|
|
9
|
+
## What's SCIM anyway?
|
|
10
|
+
|
|
11
|
+
SCIM stands for System for Cross-domain Identity Management, and it is a provisioning protocol.
|
|
12
|
+
Provisioning is the action of managing a set of resources across different services, usually users and groups.
|
|
13
|
+
SCIM is often used between Identity Providers and applications in completion of standards like OAuth2 and OpenID Connect.
|
|
14
|
+
It allows users and groups creations, modifications and deletions to be synchronized between applications.
|
|
15
|
+
|
|
6
16
|
## Installation
|
|
7
17
|
|
|
8
18
|
```shell
|
|
@@ -45,3 +55,8 @@ response = scim.create(user)
|
|
|
45
55
|
assert isinstance(response, Error)
|
|
46
56
|
assert response.detail == "One or more of the attribute values are already in use or are reserved."
|
|
47
57
|
```
|
|
58
|
+
|
|
59
|
+
scim2-client belongs in a collection of SCIM tools developed by [Yaal Coop](https://yaal.coop),
|
|
60
|
+
with [scim2-models](https://github.com/yaal-coop/scim2-models),
|
|
61
|
+
[scim2-tester](https://github.com/yaal-coop/scim2-tester) and
|
|
62
|
+
[scim2-cli](https://github.com/yaal-coop/scim2-cli)
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "scim2-client"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.6"
|
|
8
8
|
description = "Pythonically build SCIM requests and parse SCIM responses"
|
|
9
9
|
authors = ["Yaal Coop <contact@yaal.coop>"]
|
|
10
10
|
license = "MIT"
|
|
@@ -27,7 +27,7 @@ classifiers = [
|
|
|
27
27
|
[tool.poetry.dependencies]
|
|
28
28
|
python = "^3.9"
|
|
29
29
|
httpx = "^0.27.0"
|
|
30
|
-
scim2-models = "^0.1.
|
|
30
|
+
scim2-models = "^0.1.5"
|
|
31
31
|
|
|
32
32
|
[tool.poetry.group.doc]
|
|
33
33
|
optional = true
|
|
@@ -41,6 +41,7 @@ pytest-httpserver = "^1.0.10"
|
|
|
41
41
|
shibuya = "^2024.5.15"
|
|
42
42
|
sphinx = "^7.3.7"
|
|
43
43
|
myst-parser = "^3.0.1"
|
|
44
|
+
autodoc-pydantic = "^2.2.0"
|
|
44
45
|
|
|
45
46
|
[tool.coverage.run]
|
|
46
47
|
source = [
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from .client import SCIMClient
|
|
2
|
+
from .errors import RequestNetworkError
|
|
3
|
+
from .errors import RequestPayloadValidationError
|
|
4
|
+
from .errors import ResponsePayloadValidationError
|
|
5
|
+
from .errors import SCIMClientError
|
|
6
|
+
from .errors import SCIMRequestError
|
|
7
|
+
from .errors import SCIMResponseError
|
|
8
|
+
from .errors import SCIMResponseErrorObject
|
|
9
|
+
from .errors import UnexpectedContentFormat
|
|
10
|
+
from .errors import UnexpectedContentType
|
|
11
|
+
from .errors import UnexpectedStatusCode
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"SCIMClient",
|
|
15
|
+
"SCIMClientError",
|
|
16
|
+
"SCIMRequestError",
|
|
17
|
+
"SCIMResponseError",
|
|
18
|
+
"SCIMResponseErrorObject",
|
|
19
|
+
"UnexpectedContentFormat",
|
|
20
|
+
"UnexpectedContentType",
|
|
21
|
+
"UnexpectedStatusCode",
|
|
22
|
+
"RequestPayloadValidationError",
|
|
23
|
+
"RequestNetworkError",
|
|
24
|
+
"ResponsePayloadValidationError",
|
|
25
|
+
]
|