gotosocial/internal
tobi a9b2d4ee35 [feature] Handle retractions of domain permission subscription entries (#4261)
# Description

> If this is a code change, please include a summary of what you've coded, and link to the issue(s) it closes/implements.
>
> If this is a documentation change, please briefly describe what you've changed and why.

This pull request adds logic for nicely handling retractions of entries from domain permission subscriptions.

See docs for how this works but basically retracted entries will either be removed (and possibly picked up by a lower-prio subscription), or orphaned (and then possibly adopted), depending on the config of the domain permission subscription.

closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4101

## Checklist

Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]`

If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want).

- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have not leveraged AI to create the proposed changes.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [x] I/we have commented the added code, particularly in hard-to-understand areas.
- [x] I/we have made any necessary changes to documentation.
- [x] I/we have added tests that cover new code.
- [ ] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4261
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-06-15 12:36:51 +02:00
..
admin [chore] Upgrade to Go 1.24 (#4187) 2025-05-22 12:26:11 +02:00
ap [chore] Update interactionPolicy sub-policy parsing in line with documented defaults (#4229) 2025-06-10 14:29:42 +02:00
api [feature] Handle retractions of domain permission subscription entries (#4261) 2025-06-15 12:36:51 +02:00
cache [performance] cache mute check results (#4202) 2025-05-31 17:30:57 +02:00
cleaner [chore] move s3 storage key prefixing into the storage library itself (#4246) 2025-06-06 16:35:39 +02:00
config [feature] configurable maximum thumbnail dimensions (#4258) 2025-06-10 15:43:31 +02:00
db [feature] Handle retractions of domain permission subscription entries (#4261) 2025-06-15 12:36:51 +02:00
email [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
federation [chore] migration to update statuses.thread_id to be notnull (#4160) 2025-05-26 15:33:42 +02:00
filter [chore] Update interactionPolicy sub-policy parsing in line with documented defaults (#4229) 2025-06-10 14:29:42 +02:00
gtscontext [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
gtserror [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
gtsmodel [feature] Handle retractions of domain permission subscription entries (#4261) 2025-06-15 12:36:51 +02:00
headerfilter [feature] request blocking by http headers (#2409) 2023-12-18 14:18:25 +00:00
httpclient [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
id [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
iotools [performance] update storage backend and make use of seek syscall when available (#2924) 2024-05-22 11:46:24 +02:00
language [feature] support nested configuration files, and setting ALL configuration variables by CLI and env (#4109) 2025-05-06 15:51:45 +00:00
log [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
media [performance] use faster pixel format matching function (#4271) 2025-06-14 12:27:53 +02:00
messages [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
middleware [bugfix] process account delete synchronously to prevent OOM (#4260) 2025-06-11 11:38:10 +02:00
oauth [bugfix] Assume default code challenge method of s256 (#4241) 2025-06-05 11:29:36 +02:00
observability [bugfix] broken nootel function signatures (#4142) 2025-05-06 13:26:20 +00:00
oidc [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
paging [bugfix] ensure timeline limit query is respected (#4141) 2025-05-06 13:30:23 +00:00
processing [feature] Handle retractions of domain permission subscription entries (#4261) 2025-06-15 12:36:51 +02:00
queue [performance] update go-structr and go-mutexes with memory usage improvements (#2909) 2024-05-13 08:05:46 +00:00
regexes feat: Relax URL matching (#3925) 2025-03-24 14:13:32 +01:00
router [feature] configurable maximum thumbnail dimensions (#4258) 2025-06-10 15:43:31 +02:00
scheduler [feature] add support for polls + receiving federated status edits (#2330) 2023-11-08 14:32:17 +00:00
state [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
storage [feature] configurable maximum thumbnail dimensions (#4258) 2025-06-10 15:43:31 +02:00
stream [feature] Conversations API (#3013) 2024-07-23 20:44:31 +01:00
subscriptions [feature] Handle retractions of domain permission subscription entries (#4261) 2025-06-15 12:36:51 +02:00
text [feature] enable footnote extension for markdown parser (#4251) 2025-06-09 16:00:25 +02:00
trans [chore] Upgrade to Go 1.24 (#4187) 2025-05-22 12:26:11 +02:00
transport [feature/internal/httpclient] add option to configure outgoing protocol (#4134) 2025-05-31 19:15:39 +02:00
typeutils [feature] Handle retractions of domain permission subscription entries (#4261) 2025-06-15 12:36:51 +02:00
uris [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
util [bugfix] process account delete synchronously to prevent OOM (#4260) 2025-06-11 11:38:10 +02:00
validate [feature] Configurable max profile fields (#4175) 2025-05-14 13:25:21 +00:00
web [feature] Allow exposing allows, implement /api/v1/domain_blocks and /api/v1/domain_allows (#4169) 2025-05-20 11:47:40 +02:00
webpush [performance] cache mute check results (#4202) 2025-05-31 17:30:57 +02:00
workers [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00