django_scim2_server package

Subpackages

Submodules

django_scim2_server.adapters module

django_scim2_server.apps module

class django_scim2_server.apps.Scim2ServerAppConfig(app_name, app_module)[source]

Bases: AppConfig

App config for Django SCIM2 Server.

name = 'django_scim2_server'
verbose_name = 'scim2 server'

django_scim2_server.auth module

Built-in authentication check callables for SCIM views.

django_scim2_server.auth.is_authenticated(request: HttpRequest) bool[source]

Allow access to any authenticated user.

django_scim2_server.auth.is_superuser(request: HttpRequest) bool[source]

Allow access only to authenticated superusers (default).

django_scim2_server.conf module

These are the available settings.

All attributes prefixed SCIM2_SERVER_* can be overridden from your Django project’s settings module by defining a setting with the same name.

class django_scim2_server.conf.AppSettings(SCIM2_SERVER_USER_MODEL: str = 'auth.User', SCIM2_SERVER_GROUP_MODEL: str = 'auth.Group', SCIM2_SERVER_USER_ADAPTER: str = 'django_scim2_server.adapters.DefaultUserAdapter', SCIM2_SERVER_GROUP_ADAPTER: str = 'django_scim2_server.adapters.DefaultGroupAdapter', SCIM2_SERVER_AUTH_CHECK: str = 'django_scim2_server.auth.is_superuser')[source]

Bases: object

Access this instance as .conf.app_settings.

SCIM2_SERVER_AUTH_CHECK: str = 'django_scim2_server.auth.is_superuser'

Dotted path to a callable (HttpRequest) -> bool for access control.

SCIM2_SERVER_GROUP_ADAPTER: str = 'django_scim2_server.adapters.DefaultGroupAdapter'

Dotted path to the group adapter class.

SCIM2_SERVER_GROUP_MODEL: str = 'auth.Group'

Target group model (app_label.ModelName).

SCIM2_SERVER_USER_ADAPTER: str = 'django_scim2_server.adapters.DefaultUserAdapter'

Dotted path to the user adapter class.

SCIM2_SERVER_USER_MODEL: str = 'auth.User'

Target user model (app_label.ModelName).

django_scim2_server.constants module

SCIM 2.0 constants: schema URNs, content types, and discovery payloads.

django_scim2_server.exceptions module

SCIM 2.0 error types and response helpers.

exception django_scim2_server.exceptions.BadRequestError(detail: str = 'Bad request')[source]

Bases: SCIMError

Malformed or invalid request.

exception django_scim2_server.exceptions.ConflictError(detail: str = 'Conflict')[source]

Bases: SCIMError

Resource conflict (e.g. uniqueness violation).

exception django_scim2_server.exceptions.InvalidFilterError(detail: str = 'Invalid filter')[source]

Bases: SCIMError

Invalid SCIM filter expression.

exception django_scim2_server.exceptions.InvalidValueError(detail: str = 'Invalid value')[source]

Bases: SCIMError

Invalid value in request body.

exception django_scim2_server.exceptions.NotFoundError(detail: str = 'Resource not found')[source]

Bases: SCIMError

Resource not found.

exception django_scim2_server.exceptions.SCIMError(detail: str, status: int = 400, scim_type: str = '')[source]

Bases: Exception

Base exception for SCIM errors.

django_scim2_server.exceptions.scim_error_response(error: SCIMError) JsonResponse[source]

Build a SCIM-compliant error JsonResponse.

django_scim2_server.filters module

SCIM 2.0 filter expression parser.

django_scim2_server.filters.parse_filter(expression: str, filter_map: dict[str, str]) Q[source]

Parse a SCIM filter expression and return a Django Q object.

django_scim2_server.models module

django_scim2_server.patch module

django_scim2_server.urls module

URL configuration for SCIM 2.0 endpoints.

django_scim2_server.views module

SCIM 2.0 views: discovery endpoints and CRUD for Users and Groups.

class django_scim2_server.views.GroupDetailView(**kwargs)[source]

Bases: SCIMView

GET/PUT/PATCH/DELETE /Groups/<scim_id>.

delete(request: HttpRequest, scim_id: str, **kwargs: Any) HttpResponse[source]

Delete a group.

get(request: HttpRequest, scim_id: str, **kwargs: Any) JsonResponse[source]

Return a single group.

patch(request: HttpRequest, scim_id: str, **kwargs: Any) JsonResponse[source]

Partially update a group via SCIM PatchOp.

put(request: HttpRequest, scim_id: str, **kwargs: Any) JsonResponse[source]

Replace a group.

class django_scim2_server.views.GroupListView(**kwargs)[source]

Bases: SCIMView

GET /Groups (list+filter) and POST /Groups (create).

get(request: HttpRequest) JsonResponse[source]

List groups with optional filtering and pagination.

post(request: HttpRequest) JsonResponse[source]

Create a new group.

class django_scim2_server.views.ResourceTypesView(**kwargs)[source]

Bases: SCIMView

GET /ResourceTypes - available SCIM resource types.

get(request: HttpRequest) JsonResponse[source]

Return the list of resource types.

class django_scim2_server.views.SCIMView(**kwargs)[source]

Bases: View

Base view for SCIM endpoints.

dispatch(request: HttpRequest, *args: Any, **kwargs: Any) HttpResponse[source]

Dispatch with SCIM error handling and content type.

parse_body(request: HttpRequest) dict[str, Any][source]

Parse JSON body from request.

scim_response(data: BaseModel | dict[str, Any], status: int = 200) JsonResponse[source]

Return a JsonResponse with SCIM content type.

class django_scim2_server.views.SchemasView(**kwargs)[source]

Bases: SCIMView

GET /Schemas - SCIM schema definitions.

get(request: HttpRequest) JsonResponse[source]

Return the list of schemas.

class django_scim2_server.views.ServiceProviderConfigView(**kwargs)[source]

Bases: SCIMView

GET /ServiceProviderConfig - SCIM service provider configuration.

get(request: HttpRequest) JsonResponse[source]

Return the service provider configuration.

class django_scim2_server.views.UserDetailView(**kwargs)[source]

Bases: SCIMView

GET/PUT/PATCH/DELETE /Users/<scim_id>.

delete(request: HttpRequest, scim_id: str, **kwargs: Any) HttpResponse[source]

Delete (deactivate) a user.

get(request: HttpRequest, scim_id: str, **kwargs: Any) JsonResponse[source]

Return a single user.

patch(request: HttpRequest, scim_id: str, **kwargs: Any) JsonResponse[source]

Partially update a user via SCIM PatchOp.

put(request: HttpRequest, scim_id: str, **kwargs: Any) JsonResponse[source]

Replace a user.

class django_scim2_server.views.UserListView(**kwargs)[source]

Bases: SCIMView

GET /Users (list+filter) and POST /Users (create).

get(request: HttpRequest) JsonResponse[source]

List users with optional filtering and pagination.

post(request: HttpRequest) JsonResponse[source]

Create a new user.