FEP-db70: RemoveAll Collection Activity

This FEP defines a RemoveAll activity for batch-removing items from an ActivityPub collection. While ActivityPub defines Remove for removing a single item, there is no mechanism for removing multiple or all items at once. RemoveAll fills this gap.

It supports an optional FEP-34c1 filter to selectively remove items matching specific criteria (e.g. by type, by date, or by actor). Without a filter, all items are removed.RemoveAll is a generic collection operation — it can be used with any collection type.

Full text: //codeberg.org/fediverse/fep/src/branch/main/fep/db70/fep-db70.md

A Remove activity can already refer to multiple objects, so this isn’t true. The only thing it can’t do is remove implicit items that match some condition – and having everyone understand what that means is probably going to be incredibly difficult compared to the simpler explicit signaling.

You’re right that Remove can target multiple objects — the statement in the FEP needs to be corrected.

If the C2S Partial Update had been specified correctly, another option would have been to remove orderedItems or items property/predicate, effectively clearing the item references. I’m working on an “ActivityPub Patch” proposal that will be able to do this (based on the JSON Patch RFC) . It’s more general than collection management, but it doesn’t (currently) support filtered collection item reference removal.

I’ve grown a bit weary of all the voting and federation discussions. Not least because I get the feeling that no one is sticking to the specifications :wink:

At the moment, my focus is more on getting a system up and running. However, I do plan to share my ideas and the things I’ve implemented with the community as a FEP.

That said, I’m always open to discussions with you, for example. I consider your ideas and perspective to be relevant.

Besides, the objects I plan to federate haven’t been implemented by anyone else yet. Except perhaps those working on valueFlows. valueFlows will play a bigger role in changingGraph.

1 Like

Idk if this can help but on funkwhale we have actor.user.privacy_level if privacy_level change we send an update activity on the actor object with privacy_level in the audience attribute. The remote server then knows what to do (delete or update the activities related to the actor, depending on the value of audience )