authentik.providers.scim.tasks

SCIM Provider tasks

 1"""SCIM Provider tasks"""
 2
 3from django.utils.translation import gettext_lazy as _
 4from dramatiq.actor import actor
 5
 6from authentik.lib.sync.outgoing.tasks import SyncTasks
 7from authentik.providers.scim.models import SCIMProvider
 8
 9sync_tasks = SyncTasks(SCIMProvider)
10
11
12@actor(description=_("Sync SCIM provider objects."))
13def scim_sync_objects(*args, **kwargs):
14    return sync_tasks.sync_objects(*args, **kwargs)
15
16
17@actor(description=_("Full sync for SCIM provider."))
18def scim_sync(provider_pk: int, *args, **kwargs):
19    """Run full sync for SCIM provider"""
20    return sync_tasks.sync(provider_pk, scim_sync_objects)
21
22
23@actor(description=_("Sync a direct object (user, group) for SCIM provider."))
24def scim_sync_direct(*args, **kwargs):
25    return sync_tasks.sync_signal_direct(*args, **kwargs)
26
27
28@actor(description=_("Dispatch syncs for a direct object (user, group) for SCIM providers."))
29def scim_sync_direct_dispatch(*args, **kwargs):
30    return sync_tasks.sync_signal_direct_dispatch(scim_sync_direct, *args, **kwargs)
31
32
33@actor(description=_("Delete an object (user, group) for SCIM provider."))
34def scim_sync_delete(*args, **kwargs):
35    return sync_tasks.sync_signal_delete(*args, **kwargs)
36
37
38@actor(description=_("Dispatch deletions for an object (user, group) for SCIM providers."))
39def scim_sync_delete_dispatch(*args, **kwargs):
40    return sync_tasks.sync_signal_delete_dispatch(scim_sync_delete, *args, **kwargs)
41
42
43@actor(description=_("Sync a related object (memberships) for SCIM provider."))
44def scim_sync_m2m(*args, **kwargs):
45    return sync_tasks.sync_signal_m2m(*args, **kwargs)
46
47
48@actor(description=_("Dispatch syncs for a related object (memberships) for SCIM providers."))
49def scim_sync_m2m_dispatch(*args, **kwargs):
50    return sync_tasks.sync_signal_m2m_dispatch(scim_sync_m2m, *args, **kwargs)
scim_sync = Actor(<function scim_sync>, queue_name='default', actor_name='scim_sync')

Run full sync for SCIM provider