assemblee-virtuelle / assemblee-virtuelle/semapps

Improve sync settings in controlled containers

Open
#1,398 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.