gotosocial/internal
tobi dcfc9b7885 [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315)
This pull request implements two new properties on ActivityPub actors: `hidesToPublicFromUnauthedWeb` and `hidesCcPublicFromUnauthedWeb`.

As documented, these properties allow actors to signal their preference for whether or not their posts should be hidden from unauthenticated web views (ie., web pages like the GtS frontend, web apps like the Mastodon frontend, web APIs like the Mastodon public timeline API, etc). This allows remote accounts to *opt in* to having their unlisted visibility posts shown in (for example) the replies section of the web view of a GtS thread. In future, we can also use these properties to determine whether we should show boosts of a remote actor's post on a GtS profile, and that sort of thing.

In keeping with our stance around privacy by default, GtS assumes `true` for `hidesCcPublicFromUnauthedWeb` if the property is not set on a remote actor, ie., hide unlisted/unlocked posts by default. `hidesToPublicFromUnauthedWeb` is assumed to be `false` if the property is not set on a remote actor, ie., show public posts by default.

~~WIP as I still want to work on the documentation for this a bit.~~

New props are already in the namespace document: https://gotosocial.org/ns

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4315
Reviewed-by: kim <gruf@noreply.codeberg.org>
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-07-09 16:50:25 +02:00
..
admin [chore] Upgrade to Go 1.24 (#4187) 2025-05-22 12:26:11 +02:00
ap [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +02:00
api [chore] move status filtering from type converter (#4306) 2025-07-04 15:30:39 +02:00
cache [performance] add statusfilter cache to cache calculated status filtering results (#4303) 2025-07-01 16:00:04 +02:00
cleaner [chore] move s3 storage key prefixing into the storage library itself (#4246) 2025-06-06 16:35:39 +02:00
config [performance] add statusfilter cache to cache calculated status filtering results (#4303) 2025-07-01 16:00:04 +02:00
db [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +02:00
email [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
federation [bugfix] fix status.Local sometimes being nil (#4285) 2025-06-21 12:03:35 +02:00
filter [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +02:00
gtscontext [performance] use our own typed value context types for Value() key checking to improve performance (#4316) 2025-07-09 01:38:33 +02:00
gtserror [performance] filter model and database table improvements (#4277) 2025-06-24 17:24:34 +02:00
gtsmodel [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +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] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +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] Allow anchor href to work for footnotes, use ID prefix to avoid clashes (#4298) 2025-06-30 12:56:50 +02:00
trans [chore] Upgrade to Go 1.24 (#4187) 2025-05-22 12:26:11 +02:00
transport [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +02:00
typeutils [feature] Use hidesToPublicFromUnauthedWeb and hidesCcPublicFromUnauthedWeb properties for web visibility of statuses (#4315) 2025-07-09 16:50:25 +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 [chore] move status filtering from type converter (#4306) 2025-07-04 15:30:39 +02:00
workers [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00