Skip to content

Commit

Permalink
feat: SCIM implementation
Browse files Browse the repository at this point in the history
Implementation of a subset of SCIM endpoint and capabilities as
described in MSC4098.

Signed-off-by: Éloi Rivard <eloi@yaal.coop>
  • Loading branch information
azmeuk committed May 3, 2024
1 parent 5b6a759 commit dd52360
Show file tree
Hide file tree
Showing 8 changed files with 1,825 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.d/17144.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add support for MSC4098 (SCIM provisioning protocol).
1 change: 1 addition & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
- [Users](admin_api/user_admin_api.md)
- [Server Version](admin_api/version_api.md)
- [Federation](usage/administration/admin_api/federation.md)
- [SCIM provisioning](usage/administration/admin_api/scim_api.md)
- [Manhole](manhole.md)
- [Monitoring](metrics-howto.md)
- [Reporting Homeserver Usage Statistics](usage/administration/monitoring/reporting_homeserver_usage_statistics.md)
Expand Down
1 change: 1 addition & 0 deletions docs/admin_api/scim_api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# SCIM API
2 changes: 2 additions & 0 deletions synapse/app/homeserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
from synapse.rest.admin import AdminRestResource
from synapse.rest.health import HealthResource
from synapse.rest.key.v2 import KeyResource
from synapse.rest.scim import SCIMResource
from synapse.rest.synapse.client import build_synapse_client_resource_tree
from synapse.rest.well_known import well_known_resource
from synapse.server import HomeServer
Expand Down Expand Up @@ -179,6 +180,7 @@ def _configure_named_resource(
CLIENT_API_PREFIX: client_resource,
"/.well-known": well_known_resource(self),
"/_synapse/admin": AdminRestResource(self),
"/_matrix/client/unstable/coop.yaal/scim/": SCIMResource(self),
**build_synapse_client_resource_tree(self),
}
)
Expand Down
3 changes: 2 additions & 1 deletion synapse/rest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from typing import TYPE_CHECKING, Callable

from synapse.http.server import HttpServer, JsonResource
from synapse.rest import admin
from synapse.rest import admin, scim
from synapse.rest.client import (
account,
account_data,
Expand Down Expand Up @@ -145,6 +145,7 @@ def register_servlets(client_resource: HttpServer, hs: "HomeServer") -> None:
password_policy.register_servlets(hs, client_resource)
knock.register_servlets(hs, client_resource)
appservice_ping.register_servlets(hs, client_resource)
scim.register_servlets(hs, client_resource)

# moving to /_synapse/admin
if is_main_process:
Expand Down
Loading

0 comments on commit dd52360

Please sign in to comment.