pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2023-05-09T19:10:56Zhttps://git.pleroma.social/pleroma/pleroma/-/issues/3120Add support for OpenTelemetry2023-05-09T19:10:56ZDuponinAdd support for OpenTelemetry[OpenTelemetry](https://opentelemetry.io/) is a framework to add app telemetry, giving insights on what’s going on *in* the application.
This could be greatly useful to understand some weird behaviours, rather than looking at a blackbox ...[OpenTelemetry](https://opentelemetry.io/) is a framework to add app telemetry, giving insights on what’s going on *in* the application.
This could be greatly useful to understand some weird behaviours, rather than looking at a blackbox and guessing what might have happened.
Most instances won’t benefit, and won’t have any tool to ingest that data; it should be disabled by default.
However, it could be useful for big/busy federation instances.
Related topic are Applicatiom Performance Monitors (APM), this topic got discussed in context of Sentry, see https://git.pleroma.social/pleroma/pleroma/-/issues/574.https://git.pleroma.social/pleroma/pleroma/-/issues/3118Reply count is out of sync2023-05-04T12:27:51ZsevenReply count is out of sync![screenshot](/uploads/e397a7906ce4ca7ba7366e577f55d69a/screenshot.png)
Steps to reproduce
1. Go to https://fedi.absturztau.be/notice/9q0Awcpm0ewDzZVdtw
2. Observe that reply count of the status is 1 but the status has 5 replies actually.![screenshot](/uploads/e397a7906ce4ca7ba7366e577f55d69a/screenshot.png)
Steps to reproduce
1. Go to https://fedi.absturztau.be/notice/9q0Awcpm0ewDzZVdtw
2. Observe that reply count of the status is 1 but the status has 5 replies actually.https://git.pleroma.social/pleroma/pleroma/-/issues/3117Dangling follow request after quarantining some site2024-01-07T13:34:59ZtusooaDangling follow request after quarantining some site0. Quarantine misskey.io
1. Deny a follow request from that site
2. Failed0. Quarantine misskey.io
1. Deny a follow request from that site
2. Failedhttps://git.pleroma.social/pleroma/pleroma/-/issues/3115Allow user to resend activation email.2023-04-17T12:45:28ZGhost UserAllow user to resend activation email.Activation emails can get lost, resulting in a user not having access to their account and a good username being taken needlessly.
I propose the following improvements:
* [ ] Ability on Pleroma-FE for a user to have their activation e...Activation emails can get lost, resulting in a user not having access to their account and a good username being taken needlessly.
I propose the following improvements:
* [ ] Ability on Pleroma-FE for a user to have their activation email re-sent.https://git.pleroma.social/pleroma/pleroma/-/issues/3113/api/v1/accounts/ gets outdated data2023-04-15T11:10:37ZHJ/api/v1/accounts/ gets outdated dataI changed my avatar and description on sgsgb, and everything seems to be more or less fine except that `/api/v1/accounts/` shows previous data (old avatar and description)I changed my avatar and description on sgsgb, and everything seems to be more or less fine except that `/api/v1/accounts/` shows previous data (old avatar and description)https://git.pleroma.social/pleroma/pleroma/-/issues/3082"(DBConnection.EncodeError) Postgrex expected an integer" when running update...2023-05-07T23:07:38ZDynamic Operations Architect"(DBConnection.EncodeError) Postgrex expected an integer" when running update_users_following_followers_counts### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): Backend version 2.5.1 / Frontend version eec27700
* Elixir version (`elixir -v` for from so...### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): Backend version 2.5.1 / Frontend version eec27700
* Elixir version (`elixir -v` for from source installations, N/A for OTP): N/A
* OTP version: 23.3.4.18
* Operating system: Debian 11.6
* PostgreSQL version (`psql -V`): psql (PostgreSQL) 13.9 (Debian 13.9-0+deb11u1)
### Bug description
The following stacktrace appeared after round about 24 hours of running `su pleroma -s $SHELL -lc "./bin/pleroma_ctl database update_users_following_followers_counts"`
```
10:26:11.235 [debug] Fetching object https://mastodon.adtension.com/users/admin/following via AP
10:26:12.141 [debug] QUERY OK source="instances" db=0.6ms
SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["mastodon.adtension.com", ~N[2023-03-29 08:26:12.140334]]
10:26:12.141 [debug] Fetching object https://mastodon.adtension.com/users/admin/followers via AP
10:26:12.217 [debug] QUERY OK source="instances" db=0.6ms
SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["mastodon.adtension.com", ~N[2023-03-29 08:26:12.216349]]
10:26:12.220 [debug] QUERY ERROR db=1.5ms
UPDATE "users" SET "follower_count" = $1, "following_count" = $2, "hide_followers" = $3, "hide_follows" = $4, "updated_at" = $5 WHERE "id" = $6 [97000000000, 96997, true, true, ~N[2023-04-05 08:26:12], "AR2twWSuwfZ7vu2emm"]
10:26:12.220 [debug] QUERY OK source="users" db=0.1ms
SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner", u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0."is_admin", u0."show_role", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0."allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."accepts_chat_messages", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."birthday", u0."show_birthday", u0."language", u0."notification_settings", u0."blocks", u0."mutes", u0."muted_reblogs", u0."muted_notifications", u0."subscribers", u0."multi_factor_authentication_settings", u0."inserted_at", u0."updated_at" FROM "users" AS u0 []
10:26:12.223 [debug] QUERY OK db=2.6ms
rollback []
** (DBConnection.EncodeError) Postgrex expected an integer in -2147483648..2147483647, got 97000000000. Please make sure the value you are passing matches the definition in your table or in your query or convert the value accordingly.
lib/postgrex/type_module.ex:947: Postgrex.DefaultTypes.encode_params/3
lib/postgrex/query.ex:75: DBConnection.Query.Postgrex.Query.encode/3
lib/db_connection.ex:1255: DBConnection.encode/5
lib/db_connection.ex:1355: DBConnection.run_prepare_execute/5
lib/db_connection.ex:595: DBConnection.parsed_prepare_execute/5
lib/db_connection.ex:587: DBConnection.prepare_execute/4
lib/postgrex.ex:340: Postgrex.query/4
lib/ecto/adapters/sql.ex:947: Ecto.Adapters.SQL.struct/10
```https://git.pleroma.social/pleroma/pleroma/-/issues/3080[SUGGESTION] Improved Moderation Tools2023-04-03T22:10:51ZGhost User[SUGGESTION] Improved Moderation Tools**Improved permissions for Moderators**
- [x] Allow moderators access to the reports.
- [x] Allow moderators to deactivate accounts.
**Improved abuse handling**
- [ ] Implement a system to block email domains, similar to Mastodon, check...**Improved permissions for Moderators**
- [x] Allow moderators access to the reports.
- [x] Allow moderators to deactivate accounts.
**Improved abuse handling**
- [ ] Implement a system to block email domains, similar to Mastodon, check MX (useful for disposable blocking)
- [ ] Implement IP address blocking for account creation, optionally log IP addresses with a conf switch. Blocks should be configurable in the Admin-FE.
- [ ] Make chat messages reportable.https://git.pleroma.social/pleroma/pleroma/-/issues/3077Config endpoint should typecheck2023-04-03T00:46:23ZHJConfig endpoint should typecheck(original title: Frontend management breaks if you try to add custom frontend)
In AdminFE Frontends -> Available you supposedly could set/add a custom frontend definition, however it breaks frontends list entirely. Upon close inspection...(original title: Frontend management breaks if you try to add custom frontend)
In AdminFE Frontends -> Available you supposedly could set/add a custom frontend definition, however it breaks frontends list entirely. Upon close inspection it seems that AdminFE just overwrites an array of available frontends with just one frontend definition as-is. Hypothetically it is an AdminFE bug, but it's weird that backend just... allows it to happen.https://git.pleroma.social/pleroma/pleroma/-/issues/3076Backend reports frontend being installed even if no refs have been installed2023-05-08T00:33:31ZHJBackend reports frontend being installed even if no refs have been installedIf you manually remove (since no way to uninstall via API) a **frontend ref** the API will still say that frontend installed. It should check that there's at least one ref installed.If you manually remove (since no way to uninstall via API) a **frontend ref** the API will still say that frontend installed. It should check that there's at least one ref installed.https://git.pleroma.social/pleroma/pleroma/-/issues/3072Improve available frontends registry2023-05-08T00:34:14ZHJImprove available frontends registryTalking about this: https://git.pleroma.social/pleroma/pleroma/-/blob/develop/config/config.exs#L739
- First and foremost it should allow multiple refs, not just one, in case admin wants to install develop version
- refs should have t...Talking about this: https://git.pleroma.social/pleroma/pleroma/-/blob/develop/config/config.exs#L739
- First and foremost it should allow multiple refs, not just one, in case admin wants to install develop version
- refs should have their own meta information (i.e. version requirement, tags (stable/unstable/experimental), etc.)
- We should probably move this configuartion away from config.exs and instead have a separate repo (much like https://git.pleroma.social/pleroma/emoji-index ), where FE devs can contribute manifests for their FEs in a simpler (JSON/YAML) format for it to be aggregated.https://git.pleroma.social/pleroma/pleroma/-/issues/3070[Feature Request] Ability to disable search for unauthenticated users2023-03-22T03:16:03ZYour New SJW Waifu[Feature Request] Ability to disable search for unauthenticated usersWe have a way to limit timeless, activities, and accounts as well as set if only unauthenticated, everyone, or nobody is allowed to search external statuses but no way to completely disable search for unauthenticated users.
I'd very muc...We have a way to limit timeless, activities, and accounts as well as set if only unauthenticated, everyone, or nobody is allowed to search external statuses but no way to completely disable search for unauthenticated users.
I'd very much like the ability to completely disable search for unauthenticated users.https://git.pleroma.social/pleroma/pleroma/-/issues/3067Support for Age Verifcation API like id.me2023-05-26T14:19:20ZSkylar CaulfieldSupport for Age Verifcation API like id.me**Pitch**
Add support for id.me during the plemora sign up process and require api be configured for US hosts by default
**Motivation**
Multiple laws have been proposed across the United States requiring that social media platforms ve...**Pitch**
Add support for id.me during the plemora sign up process and require api be configured for US hosts by default
**Motivation**
Multiple laws have been proposed across the United States requiring that social media platforms verify if the user is 18, or the users has parental permissions, failure to verify via a third party provider this could result in serve liability fines.
Bills proposed are
https://www.arkleg.state.ar.us/Bills/FTPDocument?path=%2FBills%2F2023R%2FPublic%2FSB396.pdf
https://le.utah.gov/~2023/bills/static/SB0152.htmlhttps://git.pleroma.social/pleroma/pleroma/-/issues/3063Add application/activity+json alternate link2023-04-03T00:47:28ZSaagar JhaAdd application/activity+json alternate link[Some instant messaging platforms](https://gist.github.com/saagarjha/07e897fd72b370027ce280480761cf1e#file-metadataextractor-js-L115) use this link to check for whether a service supports ActivityPub. It would be nice if Pleroma included...[Some instant messaging platforms](https://gist.github.com/saagarjha/07e897fd72b370027ce280480761cf1e#file-metadataextractor-js-L115) use this link to check for whether a service supports ActivityPub. It would be nice if Pleroma included this in the document so that it could be used.https://git.pleroma.social/pleroma/pleroma/-/issues/3057Supporting the Ivory app2023-05-08T00:37:24ZfeldSupporting the Ivory appStep 1: they're blocking Pleroma because they detect our user IDs are not integers
Step 2: figure out why the `/api/v1/statuses` response is not working for themStep 1: they're blocking Pleroma because they detect our user IDs are not integers
Step 2: figure out why the `/api/v1/statuses` response is not working for themhttps://git.pleroma.social/pleroma/pleroma/-/issues/3054Cannot delete statuses sent by banned users2023-05-08T00:37:49ZtusooaCannot delete statuses sent by banned usersHere, Activity.get_by_id will return not found for activities by banned users.
```
def delete(activity_id, user) do
with {_, %Activity{data: %{"object" => _, "type" => "Create"}} = activity} <-
{:find_activity, Activity...Here, Activity.get_by_id will return not found for activities by banned users.
```
def delete(activity_id, user) do
with {_, %Activity{data: %{"object" => _, "type" => "Create"}} = activity} <-
{:find_activity, Activity.get_by_id(activity_id)},
{_, %Object{} = object, _} <-
{:find_object, Object.normalize(activity, fetch: false), activity},
true <- User.privileged?(user, :messages_delete) || user.ap_id == object.data["actor"],
{:ok, delete_data, _} <- Builder.delete(user, object.data["id"]),
{:ok, delete, _} <- Pipeline.common_pipeline(delete_data, local: true) do
if User.privileged?(user, :messages_delete) and user.ap_id != object.data["actor"] do
```https://git.pleroma.social/pleroma/pleroma/-/issues/3053if profile is too big, and you update it, it silently fails2023-05-21T12:35:34ZJeff Cliffif profile is too big, and you update it, it silently fails1) i've been adding more and more text to my profile, once i hit about 5000 characters, if you hit 'save changes' it just silently does nothing
what should happen
either profile should update or some kind of error message should show
wh...1) i've been adding more and more text to my profile, once i hit about 5000 characters, if you hit 'save changes' it just silently does nothing
what should happen
either profile should update or some kind of error message should show
what does happen
silently fails to update the profile
instance: shitposter.club
Backend version 2.4.53-9048-g0f77643d-shitposterclub
Frontend version c807254d
themusicgod1@eva1:~$ wc profile
69 691 4947 profilehttps://git.pleroma.social/pleroma/pleroma/-/issues/3052two factor account names use the email address of the user and not the site i...2023-05-08T00:38:24ZAlexander Lehmanntwo factor account names use the email address of the user and not the site identity<!--
### Precheck
* For support use https://git.pleroma.social/pleroma/pleroma-support or [community channels](https://git.pleroma.social/pleroma/pleroma#community-channels).
* Please do a quick search to ensure no similar bug has been ...<!--
### Precheck
* For support use https://git.pleroma.social/pleroma/pleroma-support or [community channels](https://git.pleroma.social/pleroma/pleroma#community-channels).
* Please do a quick search to ensure no similar bug has been reported before. If the bug has not been addressed after 2 weeks, it's fine to bump it.
* Try to ensure that the bug is actually related to the Pleroma backend. For example, if a bug happens in Pleroma-FE but not in Mastodon-FE or mobile clients, it's likely that the bug should be filed in [Pleroma-FE](https://git.pleroma.social/pleroma/pleroma-fe/issues/new) repository.
-->
### Environment
* Installation type (OTP or From Source):
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): BE 2.4.53-899-g0e1356ef-develop FE b13d8f7e
* Elixir version (`elixir -v` for from source installations, N/A for OTP):
* Operating system:
* PostgreSQL version (`psql -V`):
### Bug description
I have observed this on different public instances.
When turning on 2FA for the account the account description on the code app (I use Authy) uses the email address of the account
and not the userid on the instance like `@username@site.social`. This is a bit confusing when having joined multiple instances with
the same email address. The icon distinguishes the accounts, but the description message is `email@domain.com token is:`
Maybe the best solution would be to mention both like `@user@site.social, account email@domain`https://git.pleroma.social/pleroma/pleroma/-/issues/3051Moderation actions should be run in a transaction2023-05-08T00:38:59ZtusooaModeration actions should be run in a transactionFor example, here
```
def deactivate(%{assigns: %{user: admin}, body_params: %{nicknames: nicknames}} = conn, _) do
users = Enum.map(nicknames, &User.get_cached_by_nickname/1)
{:ok, updated_users} = User.set_activation(users, f...For example, here
```
def deactivate(%{assigns: %{user: admin}, body_params: %{nicknames: nicknames}} = conn, _) do
users = Enum.map(nicknames, &User.get_cached_by_nickname/1)
{:ok, updated_users} = User.set_activation(users, false)
ModerationLog.insert_log(%{
actor: admin,
subject: users,
action: "deactivate"
})
render(conn, "index.json", users: Keyword.values(updated_users))
end
```
The updating and inserting logs should happen in the same transaction, otherwise we might run into cases where the moderation action is done, but not logged.https://git.pleroma.social/pleroma/pleroma/-/issues/3049account lookup leaks information about banned users2023-05-08T00:39:45Ztusooaaccount lookup leaks information about banned usersWe have to acknowledge that the purpose of the lookup includes checking nickname availability (for registration),
so maybe the good thing to do is to return 404 for remote users while return redacted information for local users. Not sure...We have to acknowledge that the purpose of the lookup includes checking nickname availability (for registration),
so maybe the good thing to do is to return 404 for remote users while return redacted information for local users. Not sure how exactly Mastodon-FE uses this endpoint.https://git.pleroma.social/pleroma/pleroma/-/issues/3048Instance Ban2023-05-08T00:37:06ZtusooaInstance BanCurrently there is no such thing in Pleroma as instance ban.
Every user from a banned instance should behave as if they are deactivated individually. MRF Simple only deals with future posts, and everything before the Reject is still in ...Currently there is no such thing in Pleroma as instance ban.
Every user from a banned instance should behave as if they are deactivated individually. MRF Simple only deals with future posts, and everything before the Reject is still in place, available for display, which can be really annoying.