pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2023-05-08T04:12:30Zhttps://git.pleroma.social/pleroma/pleroma/-/issues/1645add ldap search filter support2023-05-08T04:12:30Zmeskioadd ldap search filter supportIn some ldap setups it's not enough to know the base and uid attribute and is needed also to be able to apply search filters. You might have users that you don't want to have access to the pleroma instance, or in our case we disable user...In some ldap setups it's not enough to know the base and uid attribute and is needed also to be able to apply search filters. You might have users that you don't want to have access to the pleroma instance, or in our case we disable users with an ldap attribute.
Can we get an extra configuration param `filter` in the ldap authentication?https://git.pleroma.social/pleroma/pleroma/-/issues/1571Improve full text search results by unaccent and concatenating fields2023-05-08T04:11:35ZfeldImprove full text search results by unaccent and concatenating fieldsUnsure if this will work, but notes from the FOSDEM talk leads me to believe we can do better, although not exactly what we want due to inability to sort some results based on an additional field. (@lambadalambda wrote a blog post about ...Unsure if this will work, but notes from the FOSDEM talk leads me to believe we can do better, although not exactly what we want due to inability to sort some results based on an additional field. (@lambadalambda wrote a blog post about this here: https://blog.soykaf.com/post/postgresl-front-report/)
1. Postgres has an unaccent module. This should help normalize our queries and results a bit.
2. Concatenating fields:
if a full text search query was built off of concatenating our fields such as `name`, `nickname`, and `post_body` (not verbatim field names) we could then have:
account `@feld@bikeshed.party` makes post "cheese is good"
and then if we search for "feld cheese" it should produce a match and give us this exact post as the first result because we hit on both the account and the post body.Sergey SuprunenkoSergey Suprunenkohttps://git.pleroma.social/pleroma/pleroma/-/issues/1661Improve documentation for Pleroma Settings Store API2023-05-08T04:11:26ZfeldImprove documentation for Pleroma Settings Store APIFrom discussion in https://git.pleroma.social/pleroma/pleroma-meta/-/issues/34
We should improve these docs and then review the existing API implementation with the FE team so we can start utilizing it.
https://docs-develop.pleroma.soc...From discussion in https://git.pleroma.social/pleroma/pleroma-meta/-/issues/34
We should improve these docs and then review the existing API implementation with the FE team so we can start utilizing it.
https://docs-develop.pleroma.social/backend/API/differences_in_mastoapi_responses/#pleroma-settings-storeTechnical debt, polish, qualityminibikiniminibikinihttps://git.pleroma.social/pleroma/pleroma/-/issues/1137Add a pleroma_ctl task for generating web push keys2023-05-08T04:11:12Zrinpatchrin+pleroma@patch.cxAdd a pleroma_ctl task for generating web push keysSince OTP release users don't have `mix web_push.gen.keypair`, they now can only generate web push keys by re-running the config generator. We should add a separate task for thatSince OTP release users don't have `mix web_push.gen.keypair`, they now can only generate web push keys by re-running the config generator. We should add a separate task for thathttps://git.pleroma.social/pleroma/pleroma/-/issues/1685Media proxy path should not include /proxy by default2023-05-08T04:10:54ZMew MewMedia proxy path should not include /proxy by defaultI set up a CDN to cache mediaproxy files on my instance like follows: cdn.instance --> instance/proxy. However, setting the MediaProxy base URL to cdn.instance did not work, as the URLs Pleroma served were cdn.instance/proxy/[...] instea...I set up a CDN to cache mediaproxy files on my instance like follows: cdn.instance --> instance/proxy. However, setting the MediaProxy base URL to cdn.instance did not work, as the URLs Pleroma served were cdn.instance/proxy/[...] instead of cdn.instance/[...]. This behavior should be changed.https://git.pleroma.social/pleroma/pleroma/-/issues/1472Attempting to upgrade Pleroma OTP wiped my entire instance2023-05-08T04:10:42ZxxAttempting to upgrade Pleroma OTP wiped my entire instanceI ran the command,
> `su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"`
as instructed to by the instructions in the [OTP documentation](https://docs.pleroma.social/otp_en.html).
Now my `/opt/pleroma/` directory only contains the d...I ran the command,
> `su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"`
as instructed to by the instructions in the [OTP documentation](https://docs.pleroma.social/otp_en.html).
Now my `/opt/pleroma/` directory only contains the directory `./tmp/log/` which contains two files, `erlang.log.1` and `run_erl.log`.
`/opt/pleroma/tmp/log/erlang.log.1`:
```
=====
===== LOGGING STARTED Sat Nov 16 18:44:32 UTC 2019
=====
Protocol 'inet_tcp': the name pleroma@127.0.0.1 seems to be in use by another Erlang node
```
`/opt/pleroma/tmp/log/run_erl.log`:
```
run_erl [312] Sat Nov 16 18:44:32 2019
Args before exec of shell:
run_erl [312] Sat Nov 16 18:44:32 2019
argv[0] = sh
run_erl [312] Sat Nov 16 18:44:32 2019
argv[1] = -c
run_erl [312] Sat Nov 16 18:44:32 2019
argv[2] = /opt/pleroma/releases/1\.1\.5\-1\-g36f4382b/\.\./\.\./erts\-10\.3\.5\.2/bin/erl \-elixir ansi_enabled true \-noshell \-s elixir start_cli \-mode embedded \-setcookie SkNYNhFNq\-wdhVPR5a3xat_iORYLa\-1OTnVDoqK8sXXsUWsYyAnGPA\=\= \-name pleroma\@127\.0\.0\.1 \-config /opt/pleroma/tmp/pleroma\-1\.1\.5\-1\-g36f4382b\-20191116184432\-3567\.runtime \-boot /opt/pleroma/releases/1\.1\.5\-1\-g36f4382b/start \-boot_var RELEASE_LIB /opt/pleroma/lib \-args_file /opt/pleroma/releases/1\.1\.5\-1\-g36f4382b/vm\.args \-extra \-\-no\-halt
```https://git.pleroma.social/pleroma/pleroma/-/issues/1250Broken emoji filename breaks instance2023-05-08T04:10:31ZHaelwennBroken emoji filename breaks instanceReported on the fediverse:
https://robo.super-niche.club/objects/b3aaaea4-fe4a-4fbc-9c69-eb0a12ef8cb9
> One of the emotes has B) as the filename. Using it borks your instance and it no longer loads timelines.
---
I guess the emoji filt...Reported on the fediverse:
https://robo.super-niche.club/objects/b3aaaea4-fe4a-4fbc-9c69-eb0a12ef8cb9
> One of the emotes has B) as the filename. Using it borks your instance and it no longer loads timelines.
---
I guess the emoji filter fails the hard way.lainlainhttps://git.pleroma.social/pleroma/pleroma/-/issues/1157Halcyon can't log in anymore2023-05-08T04:10:20ZlainHalcyon can't log in anymore> There's a problem with the OAuth login at newer Pleroma instances using Halcyon.It always says "Unlisted redirect_uri" with force_login=False or redirects without a OAuth code without force_login=False.I wrote you a more detailed post ...> There's a problem with the OAuth login at newer Pleroma instances using Halcyon.It always says "Unlisted redirect_uri" with force_login=False or redirects without a OAuth code without force_login=False.I wrote you a more detailed post yesterday using my personal account.I checked the redirect_uri multiple times and it is definitely correct.
https://social.csswg.org/users/halcyon/statuses/102552503959769617https://git.pleroma.social/pleroma/pleroma/-/issues/1409Instance aggressively posting /inbox endpoint after receiving error 4032023-05-08T04:10:12ZGhost UserInstance aggressively posting /inbox endpoint after receiving error 403A Pleroma Instance is aggressively posting the `/inbox` of my service (every 2 seconds) after receiving error code 403 after being blocked.
**Nginx Log data:**
```
-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"...A Pleroma Instance is aggressively posting the `/inbox` of my service (every 2 seconds) after receiving error code 403 after being blocked.
**Nginx Log data:**
```
-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
199.19.224.159 - - [11/Nov/2019:21:15:37 +0000] "POST /inbox HTTP/1.1" 403 78 "-" "Pleroma 1.1.50-1753-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
199.19.224.159 - - [11/Nov/2019:21:15:41 +0000] "POST /inbox HTTP/1.1" 403 78 "-" "Pleroma 1.1.50-1753-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
199.19.224.159 - - [11/Nov/2019:21:15:44 +0000] "POST /inbox HTTP/1.1" 403 78 "-" "Pleroma 1.1.50-1753-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
199.19.224.159 - - [11/Nov/2019:21:15:47 +0000] "POST /inbox HTTP/1.1" 403 78 "-" "Pleroma 1.1.50-1753-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
199.19.224.159 - - [11/Nov/2019:21:15:48 +0000] "POST /inbox HTTP/1.1" 403 78 "-" "Pleroma 1.1.50-1753-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
199.19.224.159 - - [11/Nov/2019:21:15:50 +0000] "POST /inbox HTTP/1.1" 403 78 "-" "Pleroma 1.1.50-1753-g802d2498-develop; https://blob.cat <alexafediverse+blobcat@gmail.com>"
```
I noticed this issue after fail2ban reported that an IP Address had hit the nginxrepeatoffender jail which blocks an IP Address with iptables after receiving 500 HTTP 403/444 Statuses within 24 hours.lainlainhttps://git.pleroma.social/pleroma/pleroma/-/issues/1423Purge Question object cache after new votes come in instead of setting a ttl2023-05-08T04:10:02Zrinpatchrin+pleroma@patch.cxPurge Question object cache after new votes come in instead of setting a ttlCurrently our AP object cache has an indefinite ttl on regular objects and 60 second ttl on Question objects. We should have indefinite ttl on Question objects as well and just update the cache after new votesCurrently our AP object cache has an indefinite ttl on regular objects and 60 second ttl on Question objects. We should have indefinite ttl on Question objects as well and just update the cache after new voteshttps://git.pleroma.social/pleroma/pleroma/-/issues/1721App tokens can't be refreshed2023-05-08T04:09:51ZAlex GleasonApp tokens can't be refreshed[Pleroma supports refreshing tokens](https://docs-develop.pleroma.social/backend/API/differences_in_mastoapi_responses/#authentication).
However, it seems it can only work with user tokens. Submitting an app token for refresh:
![Screen...[Pleroma supports refreshing tokens](https://docs-develop.pleroma.social/backend/API/differences_in_mastoapi_responses/#authentication).
However, it seems it can only work with user tokens. Submitting an app token for refresh:
![Screenshot_from_2020-04-29_15-47-05](/uploads/477b39cb5a31a054f2e4e41e68e72c48/Screenshot_from_2020-04-29_15-47-05.png)
Looking at the code it seems to try pulling a user out of the token, which would be empty in the case of an app token.
```elixir
@doc "Renew access_token with refresh_token"
def token_exchange(
%Plug.Conn{} = conn,
%{"grant_type" => "refresh_token", "refresh_token" => token} = _params
) do
with {:ok, app} <- Token.Utils.fetch_app(conn),
# LOOK HERE
{:ok, %{user: user} = token} <- Token.get_by_refresh_token(app, token),
{:ok, token} <- RefreshToken.grant(token) do
response_attrs = %{created_at: Token.Utils.format_created_at(token)}
json(conn, Token.Response.build(user, token, response_attrs))
else
_error -> render_invalid_credentials_error(conn)
end
end
```
EDIT: To be clear I'm talking about access tokens here, not client credentials. If `clean_expired_tokens: true` in Pleroma config it will cause them to expire like any other token, so it would be good if there were a way to refresh them.https://git.pleroma.social/pleroma/pleroma/-/issues/852Move avatars and banners out of the uploads folder.2023-05-08T04:09:37ZnepfagMove avatars and banners out of the uploads folder.I really, really want to delete old attachments, but there's stuff in the uploads foldder that's still being used, namely avatars and banners. Can you please move them somewhere else?I really, really want to delete old attachments, but there's stuff in the uploads foldder that's still being used, namely avatars and banners. Can you please move them somewhere else?https://git.pleroma.social/pleroma/pleroma/-/issues/577Feature Request: Temporary account 'ban' / 'probation'2023-05-08T04:09:11ZThndrFeature Request: Temporary account 'ban' / 'probation'Add in a feature that allows certain moderator levels and the admin of an instance to be able to temporary 'ban' ('probate') an account for X minutes/hours/days/weeks.
When these accounts are temporarily prevented from posting it should...Add in a feature that allows certain moderator levels and the admin of an instance to be able to temporary 'ban' ('probate') an account for X minutes/hours/days/weeks.
When these accounts are temporarily prevented from posting it should alert them with a custom message set by the admin letting them know that they can't post for X amount of time.
Optionally allow a custom default avatar when the account is restricted in this manner to let people know on the local instance that the user is temporarily restricted
*(potential issue: could cause problem with avatar caching, but such an option is mostly for the benefit of local instance users and not the rest of the fediverse)*https://git.pleroma.social/pleroma/pleroma/-/issues/207PleromaFE notice HTML should include a AP json and Atom XML <link>2023-05-08T04:09:00ZKane YorkPleromaFE notice HTML should include a AP json and Atom XML <link>HTML pages should include a `application/activity+json` and `application/atom+xml` `<link rel=alternate>`, and the frontend JS should keep this element up to date when moving to other pages.
For example, the page returned by https://cat...HTML pages should include a `application/activity+json` and `application/atom+xml` `<link rel=alternate>`, and the frontend JS should keep this element up to date when moving to other pages.
For example, the page returned by https://cathoderay.tube/notice/45021 should include this HTML element:
(option A, if #206 is implemented)
<link href='https://cathoderay.tube/notice/45021' rel='alternate' type='application/atom+xml'>
<link href='https://cathoderay.tube/notice/45021' rel='alternate' type='application/activity+json'>
(option B)
<link href='https://cathoderay.tube/objects/f2feb28f-56d9-4000-a719-561831dfa487' rel='alternate' type='application/atom+xml'>
<link href='https://cathoderay.tube/objects/f2feb28f-56d9-4000-a719-561831dfa487' rel='alternate' type='application/activity+json'>
Upon navigation away from the status, the link should be removed. Upon navigation to a status page, the link should be updated to point to the currently viewed status.
Purpose: I want to create a browser extension that will be able to recognize that you are on a AP/OStatus-enabled page, and let you reply nearly-inline.lainlainhttps://git.pleroma.social/pleroma/pleroma/-/issues/495Cannot use websocket streaming with multiple instances2023-05-08T04:08:48Zh3potetoCannot use websocket streaming with multiple instancesI want to invest Pleroma server on multiple instances. But it seems that websocket streaming can not scale out.
Please let me know if you know the solution.
I already tried to use redis for `Phoenix.PubSub`: https://github.com/phoenixf...I want to invest Pleroma server on multiple instances. But it seems that websocket streaming can not scale out.
Please let me know if you know the solution.
I already tried to use redis for `Phoenix.PubSub`: https://github.com/phoenixframework/phoenix_pubsub_redis .
This method is for `Phoenix.Channel`, but now Pleroma does not use `Phoenix.Channel` for websocket streaming. It uses Cowboy handler. It was implemented in https://git.pleroma.social/pleroma/pleroma/merge_requests/560/diffs. And I read a related issue: https://git.pleroma.social/pleroma/pleroma/issues/451 . But I don't know why you don't use `Phoenix.Channel`.
Does this problem solve if upgrade to Phoenix 1.5? Or do you know how to scale out `Cowboy.Handler` ?
On one hand, chat is using `Phoenix.Channel` so it can scale out.https://git.pleroma.social/pleroma/pleroma/-/issues/848Simulating groups? subscribing to hashtags2023-05-08T04:08:26ZxxSimulating groups? subscribing to hashtagsLet's pretend there are several hashtags that I care about -- maybe they are for news topics or sex workers on Switter, chat about certain programmers, whatever.
When I am logged in as an end user I can do this :
1. goto //site/tag/wh...Let's pretend there are several hashtags that I care about -- maybe they are for news topics or sex workers on Switter, chat about certain programmers, whatever.
When I am logged in as an end user I can do this :
1. goto //site/tag/whateverthehashtag
2. click "load older statuses"
3. pull up a list of posts tagged with "whateverthehashtag" through Pleroma magic
In the same way I can switch between "timeline", "public", and "known network", or switch between "mentions" and "private messages", having some easy access to my "favorite" hashtags in some way would be very useful .
In Mastodon-FE perhaps a "topics" item could be inserted between "direct messages" and "public timeline"
attaching some array of user-specified hashtags to a user somehow seems like it would be fairly simple to program ; going from a given hashtag to a feed for that hashtag is already a solved problem. (given tag x, change to url //site/tag/x) ....https://git.pleroma.social/pleroma/pleroma/-/issues/997Add mechanisms for federating poll results (especially private polls)2023-05-08T04:08:09ZClaireAdd mechanisms for federating poll results (especially private polls)Unless I'm mistaken, there is currently no mechanism in Pleroma to send poll results over the federation.
This is an issue in particular for private polls, as only the authoring instance will be able to see the results.
Mastodon uses an...Unless I'm mistaken, there is currently no mechanism in Pleroma to send poll results over the federation.
This is an issue in particular for private polls, as only the authoring instance will be able to see the results.
Mastodon uses an `Update` activity to send updates to the `Question` activity to followers/voters when it gets new votes / when the poll expires. The use of such an `Update` activity alleviates the need for user-authenticated fetching of the `Question` object.lainlainhttps://git.pleroma.social/pleroma/pleroma/-/issues/750Get documentation in a better state2023-05-08T04:07:59Zrinpatchrin+pleroma@patch.cxGet documentation in a better state* [x] Move documentation from the wiki to the repo because it does not support different content for different branches, people can't MR into it, etc.
* [x] Set up auto deploy of repo docs on docs.pleroma.social (!965)
* [ ] Document ...* [x] Move documentation from the wiki to the repo because it does not support different content for different branches, people can't MR into it, etc.
* [x] Set up auto deploy of repo docs on docs.pleroma.social (!965)
* [ ] Document common troubleshooting steps (updating to the latest master/develop, rebuilding pleroma and deps, etc.)
* [ ] Document the process of filing an issue (describe to which repositories (pleroma, pleroma-fe, auto_linker, mastofe) certain types of problems most likely belong, instruct to collect as much info as possible (we've had many issues with 'Error fetching updates' or '502 error' titles lately, which isn't too helpful)
* [ ] Refactor How-tos to be either in one file, or maybe even integrated with config.md1.0https://git.pleroma.social/pleroma/pleroma/-/issues/1244Preload thread mutes/bookmarks in notification queries2023-05-08T04:07:49Zrinpatchrin+pleroma@patch.cxPreload thread mutes/bookmarks in notification queriesrinpatchrin+pleroma@patch.cxrinpatchrin+pleroma@patch.cxhttps://git.pleroma.social/pleroma/pleroma/-/issues/1301Report emails need a nice template2023-05-08T04:06:46ZfeldReport emails need a nice templateWe have a pretty good template for the digest emails, let's start with that.We have a pretty good template for the digest emails, let's start with that.