Skip to content

Commit 0adbdc6

Browse files
committed
feat: SCIM implementation
Implementation of a subset of SCIM endpoint and capabilities as described in MSC4098.
1 parent 5b6a759 commit 0adbdc6

File tree

8 files changed

+1572
-1
lines changed

8 files changed

+1572
-1
lines changed

changelog.d/17144.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add support for MSC4098 (SCIM provisioning protocol).

docs/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
- [Users](admin_api/user_admin_api.md)
7171
- [Server Version](admin_api/version_api.md)
7272
- [Federation](usage/administration/admin_api/federation.md)
73+
- [SCIM provisioning](usage/administration/admin_api/scim_api.md)
7374
- [Manhole](manhole.md)
7475
- [Monitoring](metrics-howto.md)
7576
- [Reporting Homeserver Usage Statistics](usage/administration/monitoring/reporting_homeserver_usage_statistics.md)

docs/admin_api/scim_api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# SCIM API

synapse/app/homeserver.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
from synapse.rest.admin import AdminRestResource
6666
from synapse.rest.health import HealthResource
6767
from synapse.rest.key.v2 import KeyResource
68+
from synapse.rest.scim import SCIMResource
6869
from synapse.rest.synapse.client import build_synapse_client_resource_tree
6970
from synapse.rest.well_known import well_known_resource
7071
from synapse.server import HomeServer
@@ -179,6 +180,7 @@ def _configure_named_resource(
179180
CLIENT_API_PREFIX: client_resource,
180181
"/.well-known": well_known_resource(self),
181182
"/_synapse/admin": AdminRestResource(self),
183+
"/_matrix/client/unstable/coop.yaal/scim/": SCIMResource(self),
182184
**build_synapse_client_resource_tree(self),
183185
}
184186
)

synapse/rest/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from typing import TYPE_CHECKING, Callable
2222

2323
from synapse.http.server import HttpServer, JsonResource
24-
from synapse.rest import admin
24+
from synapse.rest import admin, scim
2525
from synapse.rest.client import (
2626
account,
2727
account_data,
@@ -145,6 +145,7 @@ def register_servlets(client_resource: HttpServer, hs: "HomeServer") -> None:
145145
password_policy.register_servlets(hs, client_resource)
146146
knock.register_servlets(hs, client_resource)
147147
appservice_ping.register_servlets(hs, client_resource)
148+
scim.register_servlets(hs, client_resource)
148149

149150
# moving to /_synapse/admin
150151
if is_main_process:

0 commit comments

Comments
 (0)