assemblee-virtuelle / assemblee-virtuelle/semapps
Improve sync settings in controlled containers
- Dominant language
- TypeScript
- Stars
- 103
- Forks
- 14
- Avg merge
- 1m
- Merged PRs (30d)
- 2
Description
## Context
At the moment we have a single `excludeFromMirror` setting that can be used in the ControlledContainerMixin that tells the SynchronizerService not to send ActivityPub activities when resources are created / updated / deleted. This name is not clear, and will become even less clear when we stop providing mirroring features.
Also we can't prevent the AggregatorService to automatically add resources that are sent via ActivityPub activities.
Also in Pod provider config, activities are only sent on create/update/delete, but not when permissions are changed. This brings confusion.
Finally, we can't choose the recipients.
## Proposal
Rename `excludeFromMirror` to `sync.postActivitiesOnResourcesChange`
Add a new `sync.postActivitiesOnPermissionsChange`.
Add a new `sync.acceptActivities` setting and use it in the AggregatorService.
Add a new `sync.selectRecipients` setting, a function taking the resource as a parameter, as well as the list of users who can see the resource. The return value will be the users who will receive the activity.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing excludeFromMirror in ControlledContainerMixin and the related handling in SynchronizerService and AggregatorService; then inspect the Pod provider configuration and its tests, if present. Map how resource changes, permission changes, acceptance, and recipient selection are currently handled. Done means the proposed sync settings have consistent behavior and coverage for each described case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- authorization, backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100