Rule-based group provisioning #4044

Open
opened 2026-10-26 10:31:15 +01:00 by nik · 2 comments
Owner

Groups can be provisioned according to rules. Examples for rules are:

  • All members of all child groups
  • All members of another group that have a certain role there
  • All persons that match a certain pattern (e.g. younger than 18 years)

The rough plan for implementing this:

  1. Create a new generic django library that defines:
  • a JSON schema for defining querysets
  • a DJango model field to hold such a defined queryset (bonus points if a real QuerySet can be passed to it and be stored correctly)
  1. Add a new model in AlekSIS GroupProvisioningRule. It holds:
  • a target group that shall be provisioned
  • a definition of a Person queryset that yields all people to be added
  • a setting whether group members shall be only added, or replaced
  • a setting whether the action should be taken silently, or a data check result be created if a group is out of sync
Groups can be provisioned according to rules. Examples for rules are: * All members of all child groups * All members of another group that have a certain role there * All persons that match a certain pattern (e.g. younger than 18 years) The rough plan for implementing this: 1. Create a new generic django library that defines: * a JSON schema for defining querysets * a DJango model field to hold such a defined queryset (bonus points if a real QuerySet can be passed to it and be stored correctly) 2. Add a new model in AlekSIS `GroupProvisioningRule`. It holds: * a target group that shall be provisioned * a definition of a `Person` queryset that yields all people to be added * a setting whether group members shall be only added, or replaced * a setting whether the action should be taken silently, or a data check result be created if a group is out of sync
Owner

The plan sounds reasonable 👍

The plan sounds reasonable 👍
Member

@hansegucker seconded

@hansegucker seconded
yuha self-assigned this 2026-10-29 20:54:32 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
aleksis/AlekSIS-Core#4044
No description provided.