-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Overview
To provide the capability for Morango implementations to implement dynamic modification of a sync filter during the initialization stage operations of a sync. The capability allows for more complex partitioning strategies that do not fit within the statically defined structure of certificate scopes and definitions.
Scope
The implementation of this feature will assume the implementation of Morango is responsible for determining whether sync filters are permittable during a sync, and thus Morango will not verify that dynamically added sync filters are allowable by existing certificate scopes.
Strategy
Morango already allows a certain degree of flexibility by allowing a sync filter to be passed into the controller, which manages a sync. Although, it lacks the orchestration for coordinating changes the to filter after that point, such as a sync operation modifying it or receiving a modified filter from a server. Therefore the main task is to fill-in the orchestration gaps to allow for this customization by Morango implementations.
The approach this capability takes should mean that the behavior is essentially opt-in, and otherwise does not change the behavior of the sync unless this capability is leveraged by Morango implementations. (backwards compatible, no breaking changes)
Testing Requirements
Proof of concept was implemented in Kolibri, with minimal local changes to Morango learningequality/kolibri#14070