From ec4d4d01150ae979896496651bc64e4148d94a06 Mon Sep 17 00:00:00 2001 From: tobi Date: Tue, 20 May 2025 11:47:40 +0200 Subject: [feature] Allow exposing allows, implement `/api/v1/domain_blocks` and `/api/v1/domain_allows` (#4169) - adds config flags `instance-expose-allowlist` and `instance-expose-allowlist-web` to allow instance admins to expose their allowlist via the web + api. - renames `instance-expose-suspended` and `instance-expose-suspended-web` to `instance-expose-blocklist` and `instance-expose-blocklist-web`. - deprecates the `suspended` filter on `/api/v1/instance/peers` endpoint and adds `blocked` and `allowed` filters - adds the `flat` query param to `/api/v1/instance/peers` to allow forcing return of a flat list of domains - implements `/api/v1/instance/domain_blocks` and `/api/v1/instance/domain_allows` endpoints with or without auth depending on config - rejigs the instance about page to include a general section on domain permissions, with block and allow subsections (and appropriate links) Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/3847 Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/4150 Prerequisite to https://codeberg.org/superseriousbusiness/gotosocial/issues/3711 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4169 Co-authored-by: tobi Co-committed-by: tobi --- docs/configuration/instance.md | 54 +++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 11 deletions(-) (limited to 'docs/configuration/instance.md') diff --git a/docs/configuration/instance.md b/docs/configuration/instance.md index 2a945eed2..1b8282a27 100644 --- a/docs/configuration/instance.md +++ b/docs/configuration/instance.md @@ -76,29 +76,61 @@ instance-federation-mode: "blocklist" # Default: false instance-federation-spam-filter: false -# Bool. Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=open in order -# to see a list of instances that this instance 'peers' with. Even if set to 'false', then authenticated -# users (members of the instance) will still be able to query the endpoint. +# Bool. Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=open +# in order to see a list of domains that this instance 'peers' with. +# +# Even if set to 'false', then authenticated users (members of the instance) +# will still be able to query these endpoints using an OAuth token. +# # Options: [true, false] # Default: false instance-expose-peers: false -# Bool. Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=suspended in order -# to see a list of instances that this instance blocks/suspends. Even if set to 'false', then authenticated -# users (members of the instance) will still be able to query the endpoint. +# Bool. Allow unauthenticated users to make queries to the following instance API +# endpoints in order to see a list of domains that this instance explicitly blocks, +# including the public reason for each block: # -# WARNING: Setting this variable to 'true' may result in your instance being scraped by blocklist scrapers. +# - /api/v1/instance/peers?filter=blocklist +# - /api/v1/instance/peers?filter=suspended (deprecated) +# - /api/v1/instance/domain_blocks +# +# Even if set to 'false', then authenticated users (members of the instance) +# will still be able to query these endpoints using an OAuth token. +# +# WARNING: Setting to 'true' may result in your instance being targeted by blocklist scrapers. # See: https://docs.gotosocial.org/en/latest/admin/domain_blocks/#block-announce-bots # # Options: [true, false] # Default: false -instance-expose-suspended: false +instance-expose-blocklist: false + +# Bool. Allow unauthenticated users to view /about/domain_blocks, +# which shows an HTML-rendered list of domains that this instance blocks, +# including the public reason for each block. +# Options: [true, false] +# Default: false +instance-expose-blocklist-web: false + +# Bool. Allow unauthenticated users to make queries to the following instance API +# endpoints in order to see a list of domains that this instance explicitly allows +# including the public reason for each allow: +# +# - /api/v1/instance/peers?filter=allowlist +# - /api/v1/instance/domain_allows +# +# Even if set to 'false', then authenticated users (members of the instance) +# will still be able to query these endpoints using an OAuth token. +# +# Options: [true, false] +# Default: false +instance-expose-allowlist: false -# Bool. Allow unauthenticated users to view /about/suspended, -# showing the HTML rendered list of instances that this instance blocks/suspends. +# Bool. Allow unauthenticated users to view /about/domain_allows, +# which shows an HTML-rendered list of domains that this instance allows, +# including the public reason for each allow. # Options: [true, false] # Default: false -instance-expose-suspended-web: false +instance-expose-blocklist-web: false # Bool. Allow unauthenticated users to make queries to /api/v1/timelines/public in order # to see a list of public posts on this server. Even if set to 'false', then authenticated -- cgit v1.2.3