indieweb / indieweb/microsub

Add parameter to `unfollow` to delete entries from source

Open
#55 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
23
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Spec section on unfollowing (https://indieweb.org/Microsub-spec#Unfollowing) says:

> The Microsub server may remove all of this feed's items from the channel, or may leave them in place, at its discretion. If you are used to treating these channels as an IRC or Slack timeline, it would be more appropriate to leave the old items in the channel, just stop delivering new ones. However if you are more used to treating these channels as a Twitter or Facebook feed, then you may want the server to remove them from the channel.
>
> TODO: Should there be another parameter for the client to specify whether to remove previous entries or leave them?

By way of example, Aperture's implementation of unfollow [removes the source without removing its entries](https://github.com/aaronpk/Aperture/blob/c56e8e3e2604d3948eca274bfcdc8b726b1d19d5/aperture/app/Http/Controllers/MicrosubController.php#L603). But the [`remove_source` method it call supports a flag to delete the entries](https://github.com/aaronpk/Aperture/blob/c56e8e3e2604d3948eca274bfcdc8b726b1d19d5/aperture/app/Channel.php#L55).

I'm not sure what this parameter should actually be. Thumbing through the spec I see mentions of actions like `channels` and `timeline` using a `method` parameter. Examples include:

- `action=channels` supports `method` values of `order` and `delete`
- `delete` is used to delete the whole channel
- `action=timeline` supports `method` values of `mark_read`, `mark_unread`, and `remove`
- `remove` is used to remove one or more specified entries from a channel's timeline.

Given these examples, I propose that an unfollow request could have an extra `method` parameter with a value `remove` to both unfollow the source _and_ remove the associated entries.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Microsub specification's unfollowing section and compare its proposed behavior with the existing channels and timeline method parameters. Resolve the parameter name and semantics for optionally removing associated entries, then update the specification so the unfollow behavior is unambiguous.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.