pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2019-06-22T20:29:22Zhttps://git.pleroma.social/pleroma/pleroma/-/issues/987Release Tasks: Start only apps required for migrations when create/migrate/ro...2019-06-22T20:29:22Zrinpatchrin+pleroma@patch.cxRelease Tasks: Start only apps required for migrations when create/migrate/rollback is executedFor now all apps are started resulting in some of them producing errors, confusing the adminsFor now all apps are started resulting in some of them producing errors, confusing the admins1.0rinpatchrin+pleroma@patch.cxrinpatchrin+pleroma@patch.cxhttps://git.pleroma.social/pleroma/pleroma/-/issues/970Releases, final steps2020-05-07T09:23:30ZlainReleases, final stepsRin did most of the work we need in https://git.pleroma.social/pleroma/pleroma/merge_requests/1261, but we still need some changes to make this usable for end users.
- [x] Add a CI task that builds a tar'd artifact of the release, shou...Rin did most of the work we need in https://git.pleroma.social/pleroma/pleroma/merge_requests/1261, but we still need some changes to make this usable for end users.
- [x] Add a CI task that builds a tar'd artifact of the release, should only build on develop and master
- [ ] Document how an end user can go from that tar to a running instance.
- [x] Modify our configuration generator to mention releases.exs as a configuration option
- [ ] Figure out if we have any shared secrets that need to be indivdualized (the COOKIE files comes to mind)1.0https://git.pleroma.social/pleroma/pleroma/-/issues/901Thread mutes making a query per post2019-05-20T23:30:20Zrinpatchrin+pleroma@patch.cxThread mutes making a query per postCurrently to determine if a post is thread muted we do a [query on every post render](https://git.pleroma.social/pleroma/pleroma/blob/develop/lib/pleroma/web/mastodon_api/views/status_view.ex#L229), which I imagine is really costy. The s...Currently to determine if a post is thread muted we do a [query on every post render](https://git.pleroma.social/pleroma/pleroma/blob/develop/lib/pleroma/web/mastodon_api/views/status_view.ex#L229), which I imagine is really costy. The solution would be to preload the thread mute like it was done with bookmarks in !1121
cc @karenkonou1.0Aaron TinioAaron Tiniohttps://git.pleroma.social/pleroma/pleroma/-/issues/893Remove legacy PleromaFE configuration method2019-10-01T15:52:32ZfeldRemove legacy PleromaFE configuration methodRemove the deprecated `config :pleroma, :fe` which is not intended to be in the 1.0 releaseRemove the deprecated `config :pleroma, :fe` which is not intended to be in the 1.0 release1.0Sachin JoshiSachin Joshihttps://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/737Remove redundant pleroma extensions in /api/v1/accounts/:id2019-03-20T00:10:47ZfeldRemove redundant pleroma extensions in /api/v1/accounts/:idMastodon API endpoint /api/v1/accounts/:id has redundant data:
- `is_admin`
- `is_moderator`
These are supposed to be part of the `tags[]` array.
Express moderator and admin attribute as tags and remove these from the API before Plero...Mastodon API endpoint /api/v1/accounts/:id has redundant data:
- `is_admin`
- `is_moderator`
These are supposed to be part of the `tags[]` array.
Express moderator and admin attribute as tags and remove these from the API before Pleroma 1.01.0https://git.pleroma.social/pleroma/pleroma/-/issues/567Enable scope_options_enabled and formatting_options_enabled by default2020-07-02T11:48:36ZshibayashiEnable scope_options_enabled and formatting_options_enabled by defaultI wonder, why those two options are not enabled by default and what the reasons are against enabling them :)I wonder, why those two options are not enabled by default and what the reasons are against enabling them :)2.1https://git.pleroma.social/pleroma/pleroma/-/issues/521Pinned posts are only visible locally2021-04-16T09:53:53ZPastyPinned posts are only visible locallyRemote instances (both Mastodon and Pleroma) don't see the pinned posts of other Pleroma users.
(I'm assuming this is a bug because Mastodon fetches pins from other instances just fine)Remote instances (both Mastodon and Pleroma) don't see the pinned posts of other Pleroma users.
(I'm assuming this is a bug because Mastodon fetches pins from other instances just fine)2.3.0Alexander StrizhakovAlexander Strizhakovhttps://git.pleroma.social/pleroma/pleroma/-/issues/408User can register but can't login anymore once disconnected2018-12-05T08:38:05ZLeiaUser can register but can't login anymore once disconnectedHello,
I opened registrations on twinkaga.in today, with Pleroma updated to commit 88b05aea. Users can register and do everything on their account, but when disconnected, they can't relogin anymore. Here's the log of when they try to re...Hello,
I opened registrations on twinkaga.in today, with Pleroma updated to commit 88b05aea. Users can register and do everything on their account, but when disconnected, they can't relogin anymore. Here's the log of when they try to relogin.
```
Dec 04 16:12:23 blackmesa mix[6011]: 16:12:23.154 request_id=2lmijr49gvep0vnil80009ah [info] GET /nodeinfo/2.0.json
Dec 04 16:12:23 blackmesa mix[6011]: 16:12:23.156 request_id=2lmijr49gvep0vnil80009ah [info] Sent 200 in 1ms
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.415 request_id=2lmijr8g9qbh2k3s040009b1 [info] POST /api/v1/apps
Dec 04 16:12:25 blackmesa mix[6011]: #Ecto.Changeset<
Dec 04 16:12:25 blackmesa mix[6011]: action: nil,
Dec 04 16:12:25 blackmesa mix[6011]: changes: %{
Dec 04 16:12:25 blackmesa mix[6011]: client_id: "nt0Te5Cy6LJ_mnsKCx10jQO_BePdXLq3_ij6Ky6ipm0=",
Dec 04 16:12:25 blackmesa mix[6011]: client_name: "PleromaFE_0.46968103918748183",
Dec 04 16:12:25 blackmesa mix[6011]: client_secret: "[REDACTED]",
Dec 04 16:12:25 blackmesa mix[6011]: redirect_uris: "https://twinkaga.in/oauth-callback",
Dec 04 16:12:25 blackmesa mix[6011]: scopes: "read write follow"
Dec 04 16:12:25 blackmesa mix[6011]: },
Dec 04 16:12:25 blackmesa mix[6011]: errors: [],
Dec 04 16:12:25 blackmesa mix[6011]: data: #Pleroma.Web.OAuth.App<>,
Dec 04 16:12:25 blackmesa mix[6011]: valid?: true
Dec 04 16:12:25 blackmesa mix[6011]: >
Dec 04 16:12:25 blackmesa mix[6011]: {:ok,
Dec 04 16:12:25 blackmesa mix[6011]: %Pleroma.Web.OAuth.App{
Dec 04 16:12:25 blackmesa mix[6011]: __meta__: #Ecto.Schema.Metadata<:loaded, "apps">,
Dec 04 16:12:25 blackmesa mix[6011]: client_id: "nt0Te5Cy6LJ_mnsKCx10jQO_BePdXLq3_ij6Ky6ipm0=",
Dec 04 16:12:25 blackmesa mix[6011]: client_name: "PleromaFE_0.46968103918748183",
Dec 04 16:12:25 blackmesa mix[6011]: client_secret: "[REDACTED]",
Dec 04 16:12:25 blackmesa mix[6011]: id: 52,
Dec 04 16:12:25 blackmesa mix[6011]: inserted_at: ~N[2018-12-04 15:12:25.417070],
Dec 04 16:12:25 blackmesa mix[6011]: redirect_uris: "https://twinkaga.in/oauth-callback",
Dec 04 16:12:25 blackmesa mix[6011]: scopes: "read write follow",
Dec 04 16:12:25 blackmesa mix[6011]: updated_at: ~N[2018-12-04 15:12:25.417094],
Dec 04 16:12:25 blackmesa mix[6011]: website: nil
Dec 04 16:12:25 blackmesa mix[6011]: }}
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.419 request_id=2lmijr8g9qbh2k3s040009b1 [info] Sent 200 in 3ms
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.520 request_id=2lmijr8mhgb1tvqdmk0009bh [info] POST /oauth/token
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.523 request_id=2lmijr8mhgb1tvqdmk0009bh [info] Sent 400 in 3ms
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.661 request_id=2lmijr8uuuje25tek00009c1 [info] POST /api/account/verify_credentials.json
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.661 request_id=2lmijr8uuuje25tek00009c1 [info] Sent 403 in 106µs
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.663 request_id=2lmijr8v36g5d3f3dk0009ch [info] GET /api/statuses/friends_timeline.json
Dec 04 16:12:25 blackmesa mix[6011]: 16:12:25.663 request_id=2lmijr8v36g5d3f3dk0009ch [info] Sent 403 in 69µs
```
MastodonFE and PleromaFE have both this error.
I tried cleaning and recompiling deps, cleaning and recompiling Pleroma (mix clean, mix compile), I created uuid-ossp in Postgres (because when you make ecto.migrate, there was an error of insufficient privileges when creating the extension), but nothing really explains why it happens. It's the first time it's doing this error, I still can connect to my accounts.0.9.9kaniinikaniinihttps://git.pleroma.social/pleroma/pleroma/-/issues/407mastofe login after failed login doesn't work2019-01-28T10:49:06Zivesen doesn't like namesmastofe login after failed login doesn't workshould be self-explanatory based on the title
to reproduce:
- go to /web
- login with invalid username and/or password
- attempt to log in with valid credentials
from a users perspective it would seem the issue is that there's a redir...should be self-explanatory based on the title
to reproduce:
- go to /web
- login with invalid username and/or password
- attempt to log in with valid credentials
from a users perspective it would seem the issue is that there's a redirect to /oauth/authorize which doesn't work for logging in using mastofe.0.9.9https://git.pleroma.social/pleroma/pleroma/-/issues/343Delivering to the personal inbox should add the user to the list of receivers2018-10-25T05:30:55ZMichaelDelivering to the personal inbox should add the user to the list of receiversThere is a difference between the shared inbox and the personal inbox: While the shared inbox does the delivery upon "to" and "cc", the personal inbox additionally has to add the person to the list of receivers. See here: https://www.w3....There is a difference between the shared inbox and the personal inbox: While the shared inbox does the delivery upon "to" and "cc", the personal inbox additionally has to add the person to the list of receivers. See here: https://www.w3.org/TR/activitypub/#inbox
> In general, the owner of an inbox is likely to be able to access all of their inbox contents.
This is important to make the BCC transport work.1.0https://git.pleroma.social/pleroma/pleroma/-/issues/340Searching for accounts by URL is broken2018-10-25T04:38:49ZHaelwennSearching for accounts by URL is brokenBacktrace with a random mastodon account:
```
23:46:40.800 request_id=2lfs8t1b019arncqck0005f1 [info] GET /api/v2/search
23:46:40.855 request_id=2lfs8t1b019arncqck0005f1 [info] Fetching https://niu.moe/users/miwilc via AP
23:46:40.889 re...Backtrace with a random mastodon account:
```
23:46:40.800 request_id=2lfs8t1b019arncqck0005f1 [info] GET /api/v2/search
23:46:40.855 request_id=2lfs8t1b019arncqck0005f1 [info] Fetching https://niu.moe/users/miwilc via AP
23:46:40.889 request_id=2lfs8t1b019arncqck0005f1 [info] Sent 500 in 88ms
23:46:40.894 [error] #PID<0.3577.0> running Pleroma.Web.Endpoint (cowboy_protocol) terminated
Server: queer.hacktivis.me:80 (http)
Request: GET /api/v2/search?q=https:%2F%2Fniu.moe%2Fusers%2Fmiwilc&resolve=true
** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in Pleroma.Web.ActivityPub.Transmogrifier.get_actor/1
(pleroma) lib/pleroma/web/activity_pub/transmogrifier.ex:16: Pleroma.Web.ActivityPub.Transmogrifier.get_actor(%{"actor" => nil, "cc" => nil, "object" => %{"@context" => ["https://www.w3.org/ns/activitystreams", "https:/
/w3id.org/security/v1", %{"Emoji" => "toot:Emoji", "Hashtag" => "as:Hashtag", "PropertyValue" => "schema:PropertyValue", "atomUri" => "ostatus:atomUri", "conversation" => "ostatus:conversation", "featured" => %{"@id" => "toot:f
eatured", "@type" => "@id"}, "focalPoint" => %{"@container" => "@list", "@id" => "toot:focalPoint"}, "inReplyToAtomUri" => "ostatus:inReplyToAtomUri", "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers", "movedTo" =>
%{"@id" => "as:movedTo", "@type" => "@id"}, "ostatus" => "http://ostatus.org#", "schema" => "http://schema.org#", "sensitive" => "as:sensitive", "toot" => "http://joinmastodon.org/ns#", "value" => "schema:value"}], "attachment"
=> [%{"name" => "Keybase", "type" => "PropertyValue", "value" => "<a href=\"https://keybase.io/miwilc\" rel=\"me nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">keybase.io/miwilc
</span><span class=\"invisible\"></span></a>"}, %{"name" => "Email", "type" => "PropertyValue", "value" => "michael (at) wilcox (dot) pub"}, %{"name" => "pol", "type" => "PropertyValue", "value" => "centre-right"}], "endpoints"
=> %{"sharedInbox" => "https://niu.moe/inbox"}, "featured" => "https://niu.moe/users/miwilc/collections/featured", "followers" => "https://niu.moe/users/miwilc/followers", "following" => "https://niu.moe/users/miwilc/following
", "icon" => %{"mediaType" => "image/png", "type" => "Image", "url" => "https://cdn.niu.moe/accounts/avatars/000/049/578/original/c5409479f7d2fda1.png"}, "id" => "https://niu.moe/users/miwilc", "image" => %{"mediaType" => "imag
e/png", "type" => "Image", "url" => "https://cdn.niu.moe/accounts/headers/000/049/578/original/18facc335390a31c.png"}, "inbox" => "https://niu.moe/users/miwilc/inbox", "manuallyApprovesFollowers" => false, "name" => "Michael Wi
lcox", "outbox" => "https://niu.moe/users/miwilc/outbox", "preferredUsername" => "miwilc", "publicKey" => %{"id" => "https://niu.moe/users/miwilc#main-key", "owner" => "https://niu.moe/users/miwilc", "publicKeyPem" => "-----BEG
IN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlZZRRkfR1N+jf8Yi2waP\ndDhqb1fe9WQ+qOiMwiPpqpgpyod7PUwm1YCWiQ5R3ul05fD2U1SXqLWGZwicHMpF\nYQyVqEGEnn/gVVrXv0n04bRYwbRh9HvI+QDxQTipNuUjAoRPpB5KF3OSb+ACpGyq\niIgYA3HYA
A9fXWh5s/coa8YbQq+W5xSQDwCnEG8i5sFDpNJt4VM/hlpIoHUb7RiR\nYXLmLkNUW1PKJ02aISQ4bCXSO2Fcbt3K0tdrwvWN1rXzk1MPZczqy9UyyQawT+9s\n+YB+R98t/gfw7Jp43P0mzJ+sWadlspdgD260WQpgGJ3hlkDiFgDsPx0EXVCyKa+4\nVwIDAQAB\n-----END PUBLIC KEY-----\n"$
, "summary" => "<p>Councilor/Mod for niu</p><p>"highly misleading yet technically correct"</p><p>am on tilde.town, check me out: <a href=\"https://tilde.town/~miwilc/\" rel=\"nofollow noopener\" target=\"_blank\"><spa
n class=\"invisible\">https://</span><span class=\"\">tilde.town/~miwilc/</span><span class=\"invisible\"></span></a></p><p><a href=\"https://niu.moe/tags/vim\" class=\"mention hashtag\" rel=\"tag\">#<span>vim</span></a> <a hre
f=\"https://niu.moe/tags/infosec\" class=\"mention hashtag\" rel=\"tag\">#<span>infosec</span></a> <a href=\"https://niu.moe/tags/devops\" class=\"mention hashtag\" rel=\"tag\">#<span>devops</span></a></p>", "tag" => [], "type"
=> "Person", "url" => "https://niu.moe/@miwilc"}, "to" => nil, "type" => "Create"})
(pleroma) lib/pleroma/web/activity_pub/transmogrifier.ex:42: Pleroma.Web.ActivityPub.Transmogrifier.contain_origin/2
(pleroma) lib/pleroma/web/activity_pub/activity_pub.ex:755: Pleroma.Web.ActivityPub.ActivityPub.fetch_object_from_id/1
(pleroma) lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:665: Pleroma.Web.MastodonAPI.MastodonAPIController.status_search/1
(pleroma) lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:693: Pleroma.Web.MastodonAPI.MastodonAPIController.search2/2
(pleroma) lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1: Pleroma.Web.MastodonAPI.MastodonAPIController.action/2
(pleroma) lib/pleroma/web/mastodon_api/mastodon_api_controller.ex:1: Pleroma.Web.MastodonAPI.MastodonAPIController.phoenix_controller_pipeline/2
(pleroma) lib/pleroma/web/endpoint.ex:1: Pleroma.Web.Endpoint.instrument/4
```
Using webfinger works but it shouldn’t be the only way to get an account, specially as webfinger is optional.1.0https://git.pleroma.social/pleroma/pleroma/-/issues/336File descriptor exhaustion2018-11-15T11:08:41ZniaFile descriptor exhaustionUnder certain unknown circumstances Pleroma can leave way too many file descriptors open and easily exceed ulimits of 1024 or 2048.
Not much information about this yet, but it's probably useful to have a place to track / investigate thi...Under certain unknown circumstances Pleroma can leave way too many file descriptors open and easily exceed ulimits of 1024 or 2048.
Not much information about this yet, but it's probably useful to have a place to track / investigate this issue. lain tells me they've experienced this too.1.0https://git.pleroma.social/pleroma/pleroma/-/issues/233Properly handle missing views for activities2018-11-02T15:42:31ZDominik V. SalonenProperly handle missing views for activitiesEDIT:
The description below is of a bug that happens when an activity that isn't handled by the StatusView is encountered. This can happen if the activity is malformed / different than expected or just a wrong type.
Things we should do...EDIT:
The description below is of a bug that happens when an activity that isn't handled by the StatusView is encountered. This can happen if the activity is malformed / different than expected or just a wrong type.
Things we should do:
1. Don't crash in this case, but just omit the badly rendered message. Alternatively, add a catch-all that will return proper information in the status, like "could not render activity XYZ".
2. Log the error properly so we can debug it.
This kind of problem "fixes" itself after a while because the offending activities leave the TL.
---
After updating to [d386e8a8](https://git.pleroma.social/pleroma/pleroma/commit/d386e8a8253aecbd7a8f951f4624cc4943280125), running a `mix ecto.migrate` and then starting it with `mix phx.server`, my instance keeps throwing out en error. Due to this error, the Mastodon Web UI is not working, nor are any Mastodon apps on my phone:
```
08:43:08.161 [error] #PID<0.1059.0> running Pleroma.Web.Endpoint (cowboy_protocol) terminated
Server: weeaboo.space:80 (http)
Request: GET /api/v1/timelines/home
** (exit) an exception was raised:
** (Phoenix.Template.UndefinedError) Could not render "status.json" for Pleroma.Web.MastodonAPI.StatusView, please define a matching clause for render/2 or define a template at "lib/pleroma/web/templates/mastodon_api/status". No templates were compiled for this module.
```
(This error is truncated, the actual error follows with `Assigns:` and then a long JSON stream of URLs to ActivityPub stuff which changes each time. I'm guessing it's the timeline contents that it's trying to render.)
I can confirm that the file `lib/pleroma/web/templates/mastodon_api/status` does not exist on my server like the error suggests. Though it also isn't present in this repo, so I'm not sure if it's something that's supposed to be generated automatically.
The Mastodon UI just keeps spitting out "500 Internal Server Error" indefinitely and shows a blank home timeline. The above error reappears every time it spits out such an error:
![firefox_2018-07-10_07-52-05](/uploads/ce1509d3e13ddd8918e137fea3c6a476/firefox_2018-07-10_07-52-05.png)
## Troubleshooting steps tried:
- `mix deps.get`
- `mix clean` and `mix compile`
- Updating system packages
Neither fixed the issue.1.0HaelwennHaelwennhttps://git.pleroma.social/pleroma/pleroma/-/issues/213Blocks should stop any interaction2019-01-20T14:09:32ZlainBlocks should stop any interactionAccording to the spec (https://www.w3.org/TR/activitypub/#block-activity-outbox), blocks should stop the blocked person from interaction with the blocker's objects. This means it should not be possible for a blocked person to like, annou...According to the spec (https://www.w3.org/TR/activitypub/#block-activity-outbox), blocks should stop the blocked person from interaction with the blocker's objects. This means it should not be possible for a blocked person to like, announce or reply to a blocker's message.
This can't be enforced cross-server, but it should be followed locally. Any incoming activity that would be forbidden by this logic should be dropped
.1.0https://git.pleroma.social/pleroma/pleroma/-/issues/212webfinger calls cause 500 error and stacktrace2018-06-13T07:02:17Zken restivowebfinger calls cause 500 error and stacktraceOK....
```
curl -i https://hub.spaz.org/.well-known/nodeinfo
HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 13 Jun 2018 05:58:06 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 117
Connection: keep-alive
Vary...OK....
```
curl -i https://hub.spaz.org/.well-known/nodeinfo
HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 13 Jun 2018 05:58:06 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 117
Connection: keep-alive
Vary: Accept-Encoding
cache-control: max-age=0, private, must-revalidate
x-request-id: 2krq5ck2jb5dvlp7180001ih
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, PUT, DELETE, GET, PATCH, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type, Idempotency-Key
Access-Control-Expose-Headers: Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id
X-XSS-Protection: 1; mode=block
X-Permitted-Cross-Domain-Policies: none
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
X-Download-Options: noopen
```
```javascript
{"links":[{"href":"https://hub.spaz.org/nodeinfo/2.0.json","rel":"http://nodeinfo.diaspora.software/ns/schema/2.0"}]}
```
OK...
```
curl -i https://hub.spaz.org/nodeinfo/2.0.json
HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 13 Jun 2018 06:04:11 GMT
Content-Type: application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8
Content-Length: 297
Connection: keep-alive
cache-control: max-age=0, private, must-revalidate
x-request-id: 2krq61tble3o88tc9c0002bh
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, PUT, DELETE, GET, PATCH, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type, Idempotency-Key
Access-Control-Expose-Headers: Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id
X-XSS-Protection: 1; mode=block
X-Permitted-Cross-Domain-Policies: none
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
X-Download-Options: noopen
```
```javascript
{"metadata":{"nodeName":"spazloma"},"openRegistrations":true,"protocols":["ostatus","activitypub"],"services":{"inbound":[],"outbound":[]},"software":{"name":"pleroma","version":"Pleroma 0.9.0 ddc654d587eb74922f4c097088872edd9f337aa0"},"usage":{"localPosts":7,"users":{"total":2}},"version":"2.0"}
```
OK...
```
curl -i https://hub.spaz.org/.well-known/host-meta
HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 13 Jun 2018 05:45:34 GMT
Content-Type: application/xrd+xml; charset=utf-8
Content-Length: 214
Connection: keep-alive
cache-control: max-age=0, private, must-revalidate
x-request-id: 2krq40rt721rtpl1jo005pkh
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, PUT, DELETE, GET, PATCH, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type, Idempotency-Key
Access-Control-Expose-Headers: Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id
X-XSS-Protection: 1; mode=block
X-Permitted-Cross-Domain-Policies: none
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
X-Download-Options: noopen
```
```xml
<?xml version="1.0" encoding="UTF-8"?><XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"><Link rel="lrdd" template="https://hub.spaz.org/.well-known/webfinger?resource={uri}" type="application/xrd+xml" /></XRD>
```
KABOOM!
```
HTTP/1.1 500 Internal Server Error
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 13 Jun 2018 05:42:45 GMT
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, PUT, DELETE, GET, PATCH, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type, Idempotency-Key
Access-Control-Expose-Headers: Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id
```
Example stacktrace logs here:
```
Jun 13 05:43:57 spazlab mix[20016]: Server: hub.spaz.org:80 (http)
Jun 13 05:43:57 spazlab mix[20016]: Request: GET /.well-known/webfinger?resource=acct%3Amutantfest%40hub.spaz.org
Jun 13 05:43:57 spazlab mix[20016]: ** (exit) an exception was raised:
Jun 13 05:43:57 spazlab mix[20016]: ** (FunctionClauseError) no function clause matching in Plug.Conn.resp/3 Jun 13 05:43:57 spazlab mix[20016]: (plug) lib/plug/conn.ex:546: Plug.Conn.resp(%Plug.Conn{adapter: {Plug.Adapters.Cowboy.Conn, :...}, assigns: %{kind: :error, layout: false, reason: %UndefinedFunctionError{arity: 0, exports: nil, function: :info, module: nil, reason: nil}, stack: [{nil, :info, [], []}, {Pleroma.Web.WebFinger, :ensure_keys_present, 1, [file: 'lib/pleroma/web/web_finger/web_finger.ex', line: 134]}, {Pleroma.Web.WebFinger, :represent_user, 2, [file: 'lib/pleroma/web/web_finger/web_finger.ex', line: 103]}, {Pleroma.Web.WebFinger, :webfinger, 2, [file: 'lib/pleroma/web/web_finger/web_finger.ex', line: 52]}, {Pleroma.Web.WebFinger.WebFingerController, :webfinger, 2, [file: 'lib/pleroma/web/web_finger/web_finger_controller.ex', line: 17]}, {Pleroma.Web.WebFinger.WebFingerController, :action, 2, [file: 'lib/pleroma/web/web_finger/web_finger_controller.ex', line: 1]}, {Pleroma.Web.WebFinger.WebFingerController, :phoenix_controller_pipeline, 2, [file: 'lib/pleroma/web/web_finger/web_finger_controller.ex', line: 1]}, {Pleroma.Web.Endpoint, :instrument, 4, [file: 'lib/pleroma/web/endpoint.ex', line: 1]}]}, before_send: [#Function<1.25128794/1 in Plug.Logger.call/2>], body_params: %{}, cookies: %Plug.Conn.Unfetched{aspect: :cookies}, halted: false, host: "hub.spaz.org", method: "GET", owner: #PID<0.11625.1>, params: %{"resource" => "acct:mutantfest@hub.spaz.org"}, path_info: [".well-known", "webfinger"], path_params: %{}, peer: {{127, 0, 0, 1}, 39567}, port: 80, private: %{Pleroma.Web.Router => {[], %{}}, :phoenix_action => :webfinger, :phoenix_controller => Pleroma.Web.WebFinger.WebFingerController, :phoenix_endpoint => Pleroma.Web.Endpoint, :phoenix_format => "xrd+xml", :phoenix_layout => false, :phoenix_pipelines => [:well_known], :phoenix_router => Pleroma.Web.Router, :phoenix_template => "500.xrd+xml", :phoenix_view => Pleroma.Web.ErrorView, :plug_session_fetch => #Function<1.45862765/1 in Plug.Session.fetch_session/1>}, query_params: %{"resource" => "acct:mutantfest@hub.spaz.org"}, query_string: "resource=acct%3Amutantfest%40hub.spaz.org", remote_ip: {127, 0, 0, 1}, req_cookies: %Plug.Conn.Unfetched{aspect: :cookies}, req_headers: [{"connection", "upgrade"}, {"host", "hub.spaz.org"}, {"user-agent", "Friendica 'The Tazmans Flax-lily' 3.6-1256; https://friendica.tttproject.de"}, {"accept-encoding", "deflate, gzip"}, {"accept", "application/xrd+xml"}], request_path: "/.well-known/webfinger", resp_body: nil, resp_cookies: %{}, resp_headers: [{"content-type", "application/xrd+xml; charset=utf-8"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "2krq3r6t5ru5hcrrao005ovh"}], scheme: :http, script_name: [], secret_key_base: "vOqgRWGYHH6srsQYEsj4Iu7/B0Ex+20U9Y36WiuO/y7S0+NCC8LR3xm9BRH9VG9e", state: :unset, status: 500}, 500, %{errors: %{detail: "Internal server error"}})
Jun 13 05:43:57 spazlab mix[20016]: (plug) lib/plug/conn.ex:536: Plug.Conn.send_resp/3
Jun 13 05:43:57 spazlab mix[20016]: (phoenix) lib/phoenix/endpoint/render_errors.ex:60: Phoenix.Endpoint.RenderErrors.__catch__/5
Jun 13 05:43:57 spazlab mix[20016]: (plug) lib/plug/adapters/cowboy/handler.ex:16: Plug.Adapters.Cowboy.Handler.upgrade/4
Jun 13 05:43:57 spazlab mix[20016]: (cowboy) /home/pleroma/pleroma/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
5:54:21.576 request_id=2krq4vhs8i3kg0f44o00029h [info] GET /.well-known/webfinger
05:54:21.591 [error] #PID<0.530.0> running Pleroma.Web.Endpoint (cowboy_protocol) terminated
Server: hub.spaz.org:80 (http)
Request: GET /.well-known/webfinger?resource=acct%3Amanicshamanic%40hub.spaz.org
** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in Plug.Conn.resp/3
(plug) lib/plug/conn.ex:546: Plug.Conn.resp(%Plug.Conn{adapter: {Plug.Adapters.Cowboy.Conn, :...}, assigns: %{kind: :error, layout: false, reason: %UndefinedFunctionError{arity: 0, exports: nil, function: :info, module: nil, reason: nil}, stack: [{nil, :info, [], []}, {Pleroma.Web.WebFinger, :ensure_keys_present, 1, [file: 'lib/pleroma/web/web_finger/web_finger.ex', line: 134]}, {Pleroma.Web.WebFinger, :represent_user, 2, [file: 'lib/pleroma/web/web_finger/web_finger.ex', line: 103]}, {Pleroma.Web.WebFinger, :webfinger, 2, [file: 'lib/pleroma/web/web_finger/web_finger.ex', line: 52]}, {Pleroma.Web.WebFinger.WebFingerController, :webfinger, 2, [file: 'lib/pleroma/web/web_finger/web_finger_controller.ex', line: 17]}, {Pleroma.Web.WebFinger.WebFingerController, :action, 2, [file: 'lib/pleroma/web/web_finger/web_finger_controller.ex', line: 1]}, {Pleroma.Web.WebFinger.WebFingerController, :phoenix_controller_pipeline, 2, [file: 'lib/pleroma/web/web_finger/web_finger_controller.ex', line: 1]}, {Pleroma.Web.Endpoint, :instrument, 4, [file: 'lib/pleroma/web/endpoint.ex', line: 1]}]}, before_send: [#Function<1.25128794/1 in Plug.Logger.call/2>], body_params: %{}, cookies: %Plug.Conn.Unfetched{aspect: :cookies}, halted: false, host: "hub.spaz.org", method: "GET", owner: #PID<0.530.0>, params: %{"resource" => "acct:manicshamanic@hub.spaz.org"}, path_info: [".well-known", "webfinger"], path_params: %{}, peer: {{127, 0, 0, 1}, 39707}, port: 80, private: %{Pleroma.Web.Router => {[], %{}}, :phoenix_action => :webfinger, :phoenix_controller => Pleroma.Web.WebFinger.WebFingerController, :phoenix_endpoint => Pleroma.Web.Endpoint, :phoenix_format => "xrd+xml", :phoenix_layout => false, :phoenix_pipelines => [:well_known], :phoenix_router => Pleroma.Web.Router, :phoenix_template => "500.xrd+xml", :phoenix_view => Pleroma.Web.ErrorView, :plug_session_fetch => #Function<1.45862765/1 in Plug.Session.fetch_session/1>}, query_params: %{"resource" => "acct:manicshamanic@hub.spaz.org"}, query_string: "resource=acct%3Amanicshamanic%40hub.spaz.org", remote_ip: {127, 0, 0, 1}, req_cookies: %Plug.Conn.Unfetched{aspect: :cookies}, req_headers: [{"connection", "upgrade"}, {"host", "hub.spaz.org"}, {"user-agent", "Friendica 'The Tazmans Flax-lily' 3.6-1256; https://friendica.tttproject.de"}, {"accept-encoding", "deflate, gzip"}, {"accept", "application/xrd+xml"}], request_path: "/.well-known/webfinger", resp_body: nil, resp_cookies: %{}, resp_headers: [{"content-type", "application/xrd+xml; charset=utf-8"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "2krq4vhs8i3kg0f44o00029h"}], scheme: :http, script_name: [], secret_key_base: "vOqgRWGYHH6srsQYEsj4Iu7/B0Ex+20U9Y36WiuO/y7S0+NCC8LR3xm9BRH9VG9e", state: :unset, status: 500}, 500, %{errors: %{detail: "Internal server error"}})
(plug) lib/plug/conn.ex:536: Plug.Conn.send_resp/3
(phoenix) lib/phoenix/endpoint/render_errors.ex:60: Phoenix.Endpoint.RenderErrors.__catch__/5
(plug) lib/plug/adapters/cowboy/handler.ex:16: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) /home/pleroma/pleroma/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
```
This running latest develop branch code.1.0https://git.pleroma.social/pleroma/pleroma/-/issues/204Blocked people's posts occasionally appear on the TL when boosted2018-06-14T07:12:27ZKaren KonouBlocked people's posts occasionally appear on the TL when boostedOnly confirmed in mastofe, possibly related to streaming?
[edit: screenshot removed so that the issue can be made public]Only confirmed in mastofe, possibly related to streaming?
[edit: screenshot removed so that the issue can be made public]1.0kaniinikaniinihttps://git.pleroma.social/pleroma/pleroma/-/issues/199feed2toot fails to register2018-06-14T07:13:10Zdexfeed2toot fails to registerWhen trying to use [feed2toot](https://gitlab.com/chaica/feed2toot) one is requested to register it as a new app to the Mastodon/Pleroma Instance using `register_feed2toot_app` command.
This seems to suceed with registring the app:
`Ma...When trying to use [feed2toot](https://gitlab.com/chaica/feed2toot) one is requested to register it as a new app to the Mastodon/Pleroma Instance using `register_feed2toot_app` command.
This seems to suceed with registring the app:
`May 30 07:49:11 gaos mix[27831]: #Ecto.Changeset<
May 30 07:49:11 gaos mix[27831]: action: nil,
May 30 07:49:11 gaos mix[27831]: changes: %{
May 30 07:49:11 gaos mix[27831]: client_id: "<gobble gobble>",
May 30 07:49:11 gaos mix[27831]: client_name: "feed2toot",
May 30 07:49:11 gaos mix[27831]: client_secret: "<gobble gobble>",
May 30 07:49:11 gaos mix[27831]: redirect_uris: "urn:ietf:wg:oauth:2.0:oob",
May 30 07:49:11 gaos mix[27831]: scopes: "read write follow"
May 30 07:49:11 gaos mix[27831]: },
May 30 07:49:11 gaos mix[27831]: errors: [],
May 30 07:49:11 gaos mix[27831]: data: #Pleroma.Web.OAuth.App<>,
May 30 07:49:11 gaos mix[27831]: valid?: true
May 30 07:49:11 gaos mix[27831]: >
May 30 07:49:11 gaos mix[27831]: {:ok,
May 30 07:49:11 gaos mix[27831]: %Pleroma.Web.OAuth.App{
May 30 07:49:11 gaos mix[27831]: __meta__: #Ecto.Schema.Metadata<:loaded, "apps">,
May 30 07:49:11 gaos mix[27831]: client_id: "<gobble gobble>",
May 30 07:49:11 gaos mix[27831]: client_name: "feed2toot",
May 30 07:49:11 gaos mix[27831]: client_secret: "<gobble gobble>",
May 30 07:49:11 gaos mix[27831]: id: 21,
May 30 07:49:11 gaos mix[27831]: inserted_at: ~N[2018-05-30 07:49:11.335879],
May 30 07:49:11 gaos mix[27831]: redirect_uris: "urn:ietf:wg:oauth:2.0:oob",
May 30 07:49:11 gaos mix[27831]: scopes: "read write follow",
May 30 07:49:11 gaos mix[27831]: updated_at: ~N[2018-05-30 07:49:11.335894],
May 30 07:49:11 gaos mix[27831]: website: nil
May 30 07:49:11 gaos mix[27831]: }}
`
But then fails when trying to login.1.0kaniinikaniinihttps://git.pleroma.social/pleroma/pleroma/-/issues/194private account support2018-06-12T18:04:58Zkaniiniprivate account supportWhen all the prerequisites for #175 are finished, we can implement private accounts in Pleroma pretty easily. This bug is about that.
- [x] User.info["locked"] means the account is locked
- [x] Mastodon API denotes locked status
- [x] ...When all the prerequisites for #175 are finished, we can implement private accounts in Pleroma pretty easily. This bug is about that.
- [x] User.info["locked"] means the account is locked
- [x] Mastodon API denotes locked status
- [x] Learning locked status for remote accounts
- [x] Not immediately `Accept`ing the `Follow` activities
- [x] Mastodon API: `/api/v1/follow_requests` endpoint is hooked up properly
- [x] User.get_follow_requests() actually works
- [x] Mastodon API: `/api/v1/whatever` for accepting/rejecting the follow requests
- [x] Mastodon API: support for locking the account
- [x] Twitter API: support for locking the account
- [x] Twitter API: support for fetching pending follow requests
- [x] Twitter API: support for approving or rejecting a follow request
- [x] Handle Unfollow while the follow request is pending (update the follow request's disposition)
- [x] tests (both local and remote follower cases)
- [x] following a locked account should not update the followers collection before approval
- [x] approving a follow request should update the followers collection
- [x] rejecting a follow request should not update the followers collection
- [x] Mastodon API tests1.0kaniinikaniinihttps://git.pleroma.social/pleroma/pleroma/-/issues/182work around broken letsencrypt setups2018-05-21T03:29:38Zkaniiniwork around broken letsencrypt setupsa lot of people do not use the right cert file for letsencrypt, so it might be useful to include the intermediate and import it into our trust chain somehow.
this can be noted by seeing things like
```
19:35:15.267 [info] ['TLS', 32, '...a lot of people do not use the right cert file for letsencrypt, so it might be useful to include the intermediate and import it into our trust chain somehow.
this can be noted by seeing things like
```
19:35:15.267 [info] ['TLS', 32, 'client', 58, 32, 73, 110, 32, 115, 116, 97, 116, 101, 32, 'certify', 32, 'at ssl_handshake.erl:1609 generated CLIENT ALERT: Fatal - Bad Certificate', 10]
```
in the log1.0