Compare commits

...

5885 Commits

Author SHA1 Message Date
a1batross 7cdd60f092 User: search: increase priority for deactivated users filter 2022-09-15 23:48:32 +02:00
a1batross d3ff4eb10d cleanup unused files 2022-09-15 23:29:51 +02:00
a1batross eabc14e845 Clean up mismerges 2022-09-15 23:28:41 +02:00
a1batross c7ae78eba9 User: search: exclude deactivated users from user search
This way we don't pollute search results with deactivated and deleted users
2022-09-15 23:23:34 +02:00
a1batross a6d03feade Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-09-13 14:47:43 +02:00
tusooa 90d4b7d604 Merge branch 'fix/user-factory-speed' into 'develop'
tests/Factory: improve user generation performance

See merge request pleroma/pleroma!3754
2022-09-12 00:53:14 +00:00
FloatingGhost 6bdf451ce8
Use set of pregenerated RSA keys
Randomness is a huge resource sink, so let's just use
a some that we made earlier
2022-09-11 21:33:20 +02:00
tusooa ac427de851 Merge branch 'fix/undo-boosts' into 'develop'
ObjectView: do not fetch an object for its ID

See merge request pleroma/pleroma!3753
2022-09-11 17:10:26 +00:00
Hélène 0b19625bfb
ObjectView: do not fetch an object for its ID
Non-Create/Listen activities had their associated object field
normalized and fetched, but only to use their `id` field, which is both
slow and redundant. This also failed on Undo activities, which delete
the associated object/activity in database.

Undo activities will now render properly and database loads should
improve ever so slightly.
2022-09-11 04:54:04 +02:00
Haelwenn 453a66f8c2 Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3748
2022-09-06 17:17:40 +00:00
weblate-extractor 3d32c92b37 Extract translatable strings 2022-09-06 16:45:08 +00:00
tusooa c0b265b404 Merge branch 'birthday-config-description' into 'develop'
Clarify `birthday_min_age` config description

See merge request pleroma/pleroma!3747
2022-09-06 12:40:02 +00:00
marcin mikołajczak c6bc523914 Clarify `birthday_min_age` config description
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-09-05 20:25:01 +02:00
Haelwenn b8d6cb5845 Merge branch 'from/upstream-develop/tusooa/2892-backup-scope' into 'develop'
Make backups require its own scope

Closes #2892

See merge request pleroma/pleroma!3721
2022-09-05 15:42:02 +00:00
Haelwenn 346c130ddc Merge branch 'fix/user-private-key-generation' into 'develop'
User: generate private keys on user creation

See merge request pleroma/pleroma!3737
2022-09-05 15:38:15 +00:00
tusooa f7c2073103 Merge branch 'bump/min-elixir-1.10' into 'develop'
Bump minimum Elixir version to 1.10

See merge request pleroma/pleroma!3741
2022-09-05 15:19:34 +00:00
tusooa 9874b4c985 Merge branch 'develop' into 'from/upstream-develop/tusooa/2892-backup-scope'
# Conflicts:
#   CHANGELOG.md
2022-09-05 15:00:19 +00:00
a1batross a42c39dc3c Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-09-05 14:21:02 +02:00
Hélène cfb1bc967f
Migrations: generate unset user keys
User keys are now generated on user creation instead of "when needed",
to prevent race conditions in federation and a few other issues. This
migration will generate keys missing for local users.
2022-09-05 03:51:35 +02:00
Hélène cd237d22f1
User: generate private keys on user creation
This fixes a race condition bug where keys could be regenerated
post-federation, causing activities and HTTP signatures from an user to
be dropped due to key differences.
2022-09-05 03:51:17 +02:00
tusooa f8afba95b2 Merge branch 'fix/gts-federation' into 'develop'
GoToSocial federation fixes

See merge request pleroma/pleroma!3725
2022-09-05 01:10:34 +00:00
tusooa 20347898e2 Merge branch 'fix/federation-context-issues' into 'develop'
Fix reply context fixing (Pleroma replies to Misskey threads) and removal of context objects

See merge request pleroma/pleroma!3717
2022-09-04 18:43:36 +00:00
Haelwenn c63cf954de Merge branch 'from/upstream-develop/tusooa/streaming-fix' into 'develop'
Streaming fix

Closes #2796

See merge request pleroma/pleroma!3738
2022-09-03 18:24:28 +00:00
tusooa 71839cb890 Merge branch 'changes/embed-metadata' into 'develop'
Metadata/Utils: use summary as description if set

Closes #2491

See merge request pleroma/pleroma!3733
2022-09-03 16:21:08 +00:00
Haelwenn (lanodan) Monnier 80a2528fd1 ci-base: Document building and pushing a new image 2022-09-03 18:19:58 +02:00
Hélène 4477c6baff
Metadata/Utils: use summary as description if set
When generating OpenGraph and TwitterCard metadata for a post, the
summary field will be used first if it is set to generate the post
description.
2022-09-03 17:17:48 +02:00
Haelwenn 257601d67d Merge branch 'ssh-bbs-improvements' into 'develop'
BBS: add functionnalities and readability

See merge request pleroma/pleroma!3675
2022-09-03 11:15:07 +00:00
Tusooa Zhu d19696cf60
Lint 2022-09-02 22:58:35 -04:00
Haelwenn 299255b9bb Merge branch 'from/upstream-develop/tusooa/assoc-object-id' into 'develop'
Add function to calculate associated object id

Closes #2307

See merge request pleroma/pleroma!3692
2022-09-03 02:50:40 +00:00
Haelwenn e40c221c31 Merge branch 'from/upstream-develop/tusooa/edits' into 'develop'
Editing

Closes #1429, #2859, and #2288

See merge request pleroma/pleroma!3678
2022-09-03 02:16:42 +00:00
Haelwenn 07ef72f493 Merge branch 'from/develop/tusooa/2807-remote-xact-post' into 'develop'
Remote interaction with posts

Closes #2807 and #978

See merge request pleroma/pleroma!3587
2022-09-03 02:03:48 +00:00
Haelwenn 0a05ebf789 Merge branch 'revert-01239456' into 'develop'
Revert "Merge branch 'rewrite/integration-test-websocket-client' into 'develop'"

See merge request pleroma/pleroma!3742
2022-09-02 23:58:02 +00:00
Haelwenn b439e91f57 Revert "Merge branch 'rewrite/integration-test-websocket-client' into 'develop'"
This reverts merge request !3649
2022-09-02 22:35:40 +00:00
Haelwenn e22a772240 Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!3735
2022-09-02 22:10:44 +00:00
Haelwenn (lanodan) Monnier 21ab7369ca Bump minimum Elixir version to 1.10
With the release of Elixir 1.14, Elixir 1.9 is now end-of-life.

Elixir 1.10 Release Notes:
https://github.com/elixir-lang/elixir/releases/tag/v1.10.0
2022-09-02 22:53:54 +02:00
Fristi 0d8c6b0488 Translated using Weblate (Dutch)
Currently translated at 63.8% (30 of 47 strings)

Translation: Pleroma/Pleroma Backend (domain posix_errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-posix_errors/nl/
2022-09-02 19:18:40 +00:00
Fristi 9af5da6666 Translated using Weblate (Dutch)
Currently translated at 100.0% (83 of 83 strings)

Translation: Pleroma/Pleroma Backend (domain static_pages)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-static_pages/nl/
2022-09-02 19:18:40 +00:00
Fristi 425fbce7be Translated using Weblate (Dutch)
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma Backend (domain errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-errors/nl/
2022-09-02 19:18:40 +00:00
Fristi a6195c7127 Added translation using Weblate (Dutch) 2022-09-02 19:18:40 +00:00
Fristi e949378476 Added translation using Weblate (Dutch) 2022-09-02 19:18:40 +00:00
Haelwenn 01239456a1 Merge branch 'rewrite/integration-test-websocket-client' into 'develop'
Rewrite integration-test websocket client with Mint.WebSocket, closes #2812

Closes #2812

See merge request pleroma/pleroma!3649
2022-09-02 19:18:22 +00:00
Tusooa Zhu c32e28e1b0
Fix SideEffectsTest 2022-09-01 07:33:58 -04:00
Tusooa Zhu 20a0dd6516
Exclude Announce instead of restricting to Create in visibility_tags 2022-08-31 22:14:54 -04:00
Tusooa Zhu ffd379456b
Do not stream out Announces to public timelines 2022-08-31 15:57:06 -04:00
a1batross d0223fb060 Revert "try to fix ruffle on chrome"
This reverts commit 200f1b0e89.
2022-08-31 00:28:43 +02:00
a1batross 6f23d0ec28 Merge remote-tracking branch 'origin/flash-support-csp' into emr_develop 2022-08-31 00:13:20 +02:00
a1batross 14c38dafa6 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-08-31 00:12:53 +02:00
Tusooa Zhu f9b86c3c22
Make local-only posts stream in local timeline 2022-08-27 19:34:56 -04:00
Tusooa Zhu 3afa1903ee
Do not stream out Create of ChatMessage 2022-08-27 17:51:41 -04:00
tusooa 497cd5d5da Merge branch 'fix/fedi-fe-build-url' into 'develop'
Fix fedi-fe build URL, addresses #2920

See merge request pleroma/pleroma!3736
2022-08-27 01:13:03 +00:00
tusooa a546e6f042 Merge branch 'feature/emoji-15-support' into 'develop'
emoji-test: update to latest 15.0 draft

See merge request pleroma/pleroma!3726
2022-08-27 00:59:22 +00:00
tusooa 780fb4514d Merge branch 'from/upstream-develop/tusooa/static-page-styles' into 'develop'
Improve static page style

See merge request pleroma/pleroma!3729
2022-08-27 00:58:18 +00:00
tusooa 84a573877a Merge branch 'fix_erratic_tests' into 'develop'
Fix flaky rate_limiter_test.exs test "it restricts based on config values"

See merge request pleroma/pleroma!3688
2022-08-25 18:39:38 +00:00
tusooa 6811237ffd Merge branch 'fix_flaky_transfer_task_test.exs' into 'develop'
Fix flaky/erratic test/pleroma/config/transfer_task_test.exs

See merge request pleroma/pleroma!3703
2022-08-25 18:38:18 +00:00
tusooa 6f10f93d62 Merge branch 'fix_erratic_participation_test' into 'develop'
fix flaky participation_test.exs

See merge request pleroma/pleroma!3689
2022-08-25 18:36:47 +00:00
Ilja dc72a523c4 fix flaky participation_test.exs 2022-08-25 18:36:46 +00:00
Sean King d67d191344
Fix fedi-fe build URL 2022-08-24 23:39:02 -06:00
tusooa 8ec985eea1 Merge branch 'fix_flaky_filter_controller_test.exs_200' into 'develop'
fix flaky test filter_controller_test.exs:200

See merge request pleroma/pleroma!3699
2022-08-24 15:24:57 +00:00
Ilja 5b2e3a303c fix flaky test filter_controller_test.exs:200 2022-08-24 15:24:57 +00:00
tusooa 59109f8f74 Merge branch 'fix_flaky_test_user_relationship_test.exs_81' into 'develop'
fix flaky test_user_relationship_test.exs:81

See merge request pleroma/pleroma!3697
2022-08-24 15:24:07 +00:00
Ilja 47e3a72b6e fix flaky test_user_relationship_test.exs:81 2022-08-24 15:24:07 +00:00
tusooa 85c1e1ff4d Merge branch 'fix/oauth-token-user-caching' into 'develop'
OAuthPlug: use user cache instead of joining

See merge request pleroma/pleroma!3734
2022-08-24 15:23:20 +00:00
tusooa 38d9ec41be Merge branch 'add/glitch-lily-fe' into 'develop'
Add glitch-lily as an installable frontend

See merge request pleroma/pleroma!3727
2022-08-24 12:18:02 +00:00
Hélène 439c1baf25
OAuthPlug: use user cache instead of joining
As this plug is called on every request, this should reduce load on the
database by not requiring to select on the users table every single
time, and to instead use the by-ID user cache whenever possible.
2022-08-24 03:40:05 +02:00
a1batross 32f8495289 Merge remote-tracking branch 'tusooa/from/upstream-develop/tusooa/edits' into emr_develop 2022-08-22 03:51:02 +02:00
a1batross be39ed35b8 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-08-22 03:50:38 +02:00
Tusooa Zhu c59a0bd12f
Add margin to forms and make inputs fill whole width 2022-08-20 21:52:20 -04:00
tusooa a022b9d733 Merge branch 'from/upstream-develop/tusooa/alpine-bump' into 'develop'
Use latest alpine version for docker image

See merge request pleroma/pleroma!3719
2022-08-21 01:25:25 +00:00
Tusooa Zhu c59ee1f172
Expose availability of GET /main/ostatus via instance 2022-08-20 21:19:31 -04:00
Tusooa Zhu 4ec9eeb3f8
Make remote interaction page translatable 2022-08-20 21:14:26 -04:00
Tusooa Zhu ec0e912c52
Add changelog 2022-08-20 21:14:25 -04:00
Tusooa Zhu 1218adacc5
Display status link in remote interaction form 2022-08-20 21:13:52 -04:00
Tusooa Zhu b7c75db0f7
Lint 2022-08-20 21:13:51 -04:00
Tusooa Zhu 779457d9a4
Add GET endpoints for remote subscription forms
There are two reasons for adding a GET endpoint:

0: Barely displaying the form does not change anything on the server.

1: It makes frontend development easier as they can now use a link,
instead of a form, to allow remote users to interact with local ones.
2022-08-20 21:13:51 -04:00
Tusooa Zhu a243a217a7
Fix form item name in status_interact.html 2022-08-20 21:13:51 -04:00
Tusooa Zhu 2701628786
Add remote interaction ui for posts 2022-08-20 21:13:51 -04:00
Tusooa Zhu f047088a93
Update thread visibility function 2022-08-20 21:06:12 -04:00
Tusooa Zhu 4e7ed563c0
Lint 2022-08-20 20:43:47 -04:00
Tusooa Zhu 3885ee182a
Switch to associated_object_id index 2022-08-20 20:43:46 -04:00
Tusooa Zhu 06678fb4ad
Add function to calculate associated object id 2022-08-20 20:43:40 -04:00
Sean King cc0f32c253
Add glitch-lily as an installable frontend 2022-08-19 22:54:56 -06:00
feld 6ccab516a3 Merge branch 'varnish-fix-changelog' into 'develop'
Document the changes for Varnish 7.0+ compatibility and RFC compliance

See merge request pleroma/pleroma!3723
2022-08-19 22:41:42 +00:00
Hélène 0cee3c6e93
emoji-test: update to latest 15.0 draft 2022-08-20 00:21:07 +02:00
Hélène 4661b56720
ArticleNotePageValidator: fix replies fixing
Some software, like GoToSocial, expose replies as ActivityPub
Collections, but do not expose any item array directly in the object,
causing validation to fail via the ObjectID validator. Now, Pleroma will
drop that field in this situation too.
2022-08-19 02:45:49 +02:00
Hélène 61254111e5
HttpSignaturePlug: accept standard (request-target)
The (request-target) used by Pleroma is non-standard, but many HTTP
signature implementations do it this way due to a misinterpretation of
the draft 06 of HTTP signatures: "path" was interpreted as not having
the query, though later examples show that it must be the absolute path
with the query part of the URL as well.

This behavior is kept to make sure most software (Pleroma itself,
Mastodon, and probably others) do not break, but Pleroma now accepts
signatures for a (request-target) containing the query, as expected by
many HTTP signature libraries, and clarified in the draft 11 of HTTP
signatures.

Additionally, the new draft renamed (request-target) to @request-target.
We now support both for incoming requests' signatures.
2022-08-18 17:01:34 +02:00
FloatingGhost f41d970a59
fix resolution of GTS user keys 2022-08-16 18:51:34 +02:00
Hélène 88c1c76d3e
Migrations: delete contexts with BaseMigrator
Due to the lengthiness of this task, the migration has been adapted into
a BaseMigrator migration, running in the background instead.
2022-08-15 01:47:09 +02:00
Hélène bb02ee99f5
CommonFixes: more predictable context generation
`context` fields for objects and activities can now be generated based
on the object/activity `inReplyTo` field or its ActivityPub ID, as a
fallback method in cases where `context` fields are missing for incoming
activities and objects.
2022-08-15 01:46:55 +02:00
Mark Felder 80c32ae00b Document the changes for Varnish 7.0+ compatibility and RFC compliance 2022-08-12 15:06:45 -04:00
Haelwenn 06f9324afe Merge branch 'from/upstream-develop/tusooa/2912-receiver-reject-mrf' into 'develop'
Treat MRF rejects as success in Oban worker

Closes #2912

See merge request pleroma/pleroma!3720
2022-08-12 01:37:40 +00:00
Haelwenn 837d4dc87f Merge branch 'fix_flaky_tests_where_we_sometimes_loose_db_connections' into 'develop'
Fix flaky tests with DB connections; Allow higher amount of restarts for Pleroma.Repo during testing

See merge request pleroma/pleroma!3696
2022-08-12 01:36:11 +00:00
Haelwenn 93f12c0d0d Merge branch 'from/upstream-develop/tusooa/sync-settings' into 'develop'
Synchronized settings for apps (frontends)

See merge request pleroma/pleroma!3698
2022-08-12 01:34:36 +00:00
Haelwenn 6ce3f76b5d Merge branch 'from/upstream-develop/floatingghost/follow-state' into 'develop'
Backport: bugfix/follow-state

Closes #2902

See merge request pleroma/pleroma!3718
2022-08-12 01:32:20 +00:00
feld 514caed573 Merge branch 'fix-varnish7-support' into 'develop'
Fix Varnish7 support

See merge request pleroma/pleroma!3722
2022-08-11 15:14:16 +00:00
Mark Felder 73b4d0d9a7 Fix the mocks to use uppercase as well 2022-08-10 21:46:56 +00:00
Mark Felder 243ed7d60f Update the recommended VCL configuration 2022-08-10 17:18:06 -04:00
Mark Felder cbdc13b767 Fix Varnish 7 support by ensuring Media Preview Proxy fetches headers with a capitalized HEAD verb 2022-08-10 17:09:58 -04:00
Hélène 3b6784b1de
CreateGenericValidator: fix reply context fixing
Incoming Pleroma replies to a Misskey thread were rejected due to a
broken context fix, which caused them to not be visible until a
non-Pleroma user interacted with the replies.

This fix properly sets the post-fix object context to its parent Create
activity as well, if it was changed.
2022-08-10 02:29:38 +02:00
Hélène c559c240d1
Migrations: delete context objects
These objects represent from 30 to 70% of the rows on the objects table,
based on numbers from a few live instances (single-user, small, large.)

As those pseudo-objects prevent creating objects with those actual IDs,
deleting them is a better solution. This could have happened if an
object used another object's ID as its context.
2022-08-10 02:29:38 +02:00
Hélène def0f5dc2e
StatusView: implement pleroma.context field
This field replaces the now deprecated conversation_id field, and now
exposes the ActivityPub object `context` directly via the MastoAPI
instead of relying on StatusNet-era data concepts.
2022-08-10 02:29:38 +02:00
Tusooa Zhu e06f2b9f5e
Add changelog 2022-08-09 18:17:07 -04:00
Tusooa Zhu 738ca484fd
Update api spec to reflect OAuth scope change 2022-08-09 18:15:25 -04:00
Hélène a9111bcaf2
StatusView: clear MSB on calculated conversation_id
This field seems to be a left-over from the StatusNet era.
If your application uses `pleroma.conversation_id`: this field is
deprecated.

It is currently stubbed instead by doing a CRC32 of the context, and
clearing the MSB to avoid overflow exceptions with signed integers on
the different clients using this field (Java/Kotlin code, mostly; see
Husky and probably other mobile clients.)

This should be removed in a future version of Pleroma. Pleroma-FE
currently depends on this field, as well.
2022-08-09 20:10:43 +02:00
Hélène 7f71e3d0fe
CommonFields: remove context_id 2022-08-09 20:10:43 +02:00
Hélène f3e061c964
Object: remove context_id field
30 to 70% of the objects in the object table are simple JSON objects
containing a single field, 'id', being the context's ID. The reason for
the creation of an object per context seems to be an old relic from the
StatusNet era, and has only been used nowadays as an helper for threads
in Pleroma-FE via the `pleroma.conversation_id` field in status views.
An object per context was created, and its numerical ID (table column)
was used and stored as 'context_id' in the object and activity along
with the full 'context' URI/string.

This commit removes this field and stops creation of objects for each
context, which will also allow incoming activities to use activity IDs
as contexts, something which was not possible before, or would have been
very broken under most circumstances.

The `pleroma.conversation_id` field has been reimplemented in a way to
maintain backwards-compatibility by calculating a CRC32 of the full
context URI/string in the object, instead of relying on the row ID for
the created context object.
2022-08-09 20:10:43 +02:00
Tusooa Zhu a7f01ffc1d
Make backups require its own scope 2022-08-09 00:34:04 -04:00
Tusooa Zhu d487e0160c
Treat containment failure as cancel in ReceiverWorker 2022-08-08 08:41:33 -04:00
Tusooa Zhu 88e0e6acd5
Fix FederatorTest 2022-08-06 00:42:10 -04:00
Tusooa Zhu a0166e92fa
Treat MRF rejects as success in Oban worker 2022-08-06 00:33:18 -04:00
Tusooa Zhu 5d900a5cd1
Use latest alpine version for docker image 2022-08-05 23:47:53 -04:00
floatingghost f2a9285ff0
bugfix/follow-state (#104)
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/104
2022-08-03 01:07:53 -04:00
Tusooa Zhu a4fa286d20
Use actor_types() to determine whether the Update is for user 2022-08-02 10:37:28 -04:00
Haelwenn b2ba307f4d Merge branch 'from/upstream-develop/tusooa/2871-fix-local-public' into 'develop'
local only fixes

Closes #2871

See merge request pleroma/pleroma!3660
2022-08-02 05:39:50 +00:00
Haelwenn 7299795eb4 Merge branch 'from/upstream-develop/tusooa/backup-without-email' into 'develop'
Allow users to create backups without providing email address

See merge request pleroma/pleroma!3665
2022-08-02 05:23:49 +00:00
Haelwenn f8540b0a9d Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!3716
2022-08-02 05:10:51 +00:00
a1batross b38819e6f4 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-08-01 17:02:51 +02:00
Yating Zhan 99d4823ab1 Translated using Weblate (Chinese (Simplified))
Currently translated at 18.9% (189 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-31 22:00:56 +00:00
tusooa cc533e6956 Translated using Weblate (Chinese (Simplified))
Currently translated at 18.9% (189 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-31 22:00:56 +00:00
Haelwenn 7de21ec991 Merge branch 'from/develop/tusooa/emit-move' into 'develop'
Implement moving account

See merge request pleroma/pleroma!3524
2022-07-31 22:00:40 +00:00
Haelwenn 5ef2dc317d Change test case wording 2022-07-31 21:34:23 +00:00
tusooa c80096522c Merge branch 'develop' into 'from/develop/tusooa/emit-move'
# Conflicts:
#   CHANGELOG.md
#   test/pleroma/user_test.exs
2022-07-31 21:32:49 +00:00
a1batross 3cbe72a98c Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-07-31 22:42:48 +02:00
Haelwenn b5266097a1 Merge branch 'mutes' into 'develop'
MastoAPI: Use `duration` param for mute expiration duration

See merge request pleroma/pleroma!3715
2022-07-31 19:41:25 +00:00
marcin mikołajczak 5d3d6a58f7 Use `duration` param for mute expiration duration
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-31 17:22:34 +02:00
Haelwenn 0814d0e0cb Merge branch 'fix/proper-emoji-qualification' into 'develop'
Emoji: implement full-qualifier using combinations

See merge request pleroma/pleroma!3709
2022-07-28 04:46:15 +00:00
Haelwenn 0f9f3d2897 Merge branch 'from/upstream-develop/tusooa/2384-pagination' into 'develop'
Make mutes and blocks behave the same as other lists

Closes #2384

See merge request pleroma/pleroma!3693
2022-07-28 04:37:10 +00:00
Haelwenn 18d6a58c7e Merge branch 'from/upstream-develop/tusooa/gettext-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3712
2022-07-28 04:33:17 +00:00
Hélène 7167de592e
Emoji: apply recommended tail call changes
Behavior matches previous code.

Co-authored-by: Tusooa Zhu <tusooa@kazv.moe>
2022-07-27 02:08:46 +02:00
Tusooa Zhu 4bdd8e349c
Extract translatable strings 2022-07-26 10:50:29 -04:00
tusooa 36d79468ec Merge branch 'authorized-fetch' into 'develop'
Add authorized_fetch_mode to description.exs

See merge request pleroma/pleroma!3710
2022-07-26 14:48:00 +00:00
a1batross e30b5beead Merge remote-tracking branch 'tusooa/from/upstream-develop/tusooa/edits' into emr_develop 2022-07-26 11:09:29 +02:00
a1batross 747244a9cf Merge remote-tracking branch 'origin/develop' into emr_develop 2022-07-26 11:09:18 +02:00
Hélène b99f5d6183
Emoji: split qualification variation into a module 2022-07-26 02:04:12 +02:00
marcin mikołajczak 5153eba3a8 Add authorized_fetch_mode to description.exs
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-25 19:53:51 +02:00
Hélène fb3f6e1975
EmojiReactValidator: use new qualification method 2022-07-25 16:49:23 +02:00
Hélène 01d396585e
Emoji: implement full-qualifier using combinations
This implements fully_qualify_emoji/1, which will return the
fully-qualified version of an emoji if it knows of one, or return the
emoji unmodified if not.
This code generates combinations per emoji: for each FE0F, all possible
combinations of the character being removed or staying will be
generated. This is made as an attempt to find all partially-qualified
and unqualified versions of a fully-qualified emoji.

I have found *no cases* for which this would be a problem, after
browsing the entire emoji list in emoji-test.txt. This is safe, and,
sadly, most likely the sanest too.
2022-07-25 16:20:12 +02:00
tusooa d39f803bdd Merge branch 'fix/emoji-react-qualification' into 'develop'
EmojiReactValidator: fix emoji qualification

See merge request pleroma/pleroma!3708
2022-07-24 21:36:43 +00:00
Hélène 388bbc4978
EmojiReactValidator: fix emoji qualification
Tries fully-qualifying emoji when receiving them, by adding the emoji
variation sequence to the received reaction emoji.

This issue arises when other instance software, such as Misskey, tries
reacting with emoji that have unqualified or minimally qualified
variants, like a red heart. Pleroma only accepts fully qualified emoji
in emoji reactions, and refused those emoji. Now, Pleroma will attempt
to properly qualify them first, and reject them if checks still fail.

This commit contains changes to tests proposed by lanodan.

Co-authored-by: Haelwenn <contact+git.pleroma.social@hacktivis.me>
2022-07-24 13:36:06 +02:00
Tusooa Zhu 997f08b350
Make AntiLinkSpamPolicy history-aware 2022-07-24 00:18:09 -04:00
Tusooa Zhu d877d2a4e7
Make HashtagPolicy history-aware 2022-07-24 00:02:39 -04:00
Tusooa Zhu 82c8fc1ede
Make NoEmptyPolicy work with Update 2022-07-23 23:24:25 -04:00
Tusooa Zhu 46a5c06853
Make NormalizeMarkup history-aware 2022-07-23 22:50:38 -04:00
Tusooa Zhu fc7ce5f93c
Make NoPlaceholderTextPolicy history-aware 2022-07-23 22:41:04 -04:00
Tusooa Zhu dce7e42928
Make MediaProxyWarmingPolicy history-aware 2022-07-23 22:34:03 -04:00
Tusooa Zhu 0a337063e1
Make ForceMentionsInContent history-aware 2022-07-23 22:23:57 -04:00
Tusooa Zhu cd19537f39
Make EnsureRePrepended history-aware 2022-07-23 17:48:39 -04:00
Tusooa Zhu eba9b0760f
Make MRF Keyword history-aware 2022-07-23 15:56:36 -04:00
tusooa 301ce5bc62 Merge branch 'mute-expiration' into 'develop'
MastoAPI: Show mutes expiration date

See merge request pleroma/pleroma!3682
2022-07-23 00:34:15 +00:00
Haelwenn 21e587ff1a Merge branch 'revert-454f892f' into 'develop'
Revert "Merge branch 'fix/emoji-react-qualification' into 'develop'"

See merge request pleroma/pleroma!3707
2022-07-22 23:56:52 +00:00
Haelwenn cfb21d011f Revert "Merge branch 'fix/emoji-react-qualification' into 'develop'"
This reverts merge request !3684
2022-07-22 23:19:49 +00:00
Haelwenn e077da27fe Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!3705
2022-07-22 22:46:37 +00:00
Haelwenn c057ec6878 Translated using Weblate (French)
Currently translated at 100.0% (34 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-default/fr/
2022-07-22 19:00:37 +00:00
Yating Zhan 4217ac4074 Translated using Weblate (Chinese (Simplified))
Currently translated at 13.0% (130 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa 1b091c7950 Translated using Weblate (Chinese (Simplified))
Currently translated at 13.0% (130 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
Yating Zhan 0ad115ddf0 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.0% (102 of 103 strings)

Translation: Pleroma/Pleroma Backend (domain errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-errors/zh_Hans/
2022-07-22 19:00:37 +00:00
Yating Zhan a543161ba9 Translated using Weblate (Chinese (Simplified))
Currently translated at 88.2% (30 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-default/zh_Hans/
2022-07-22 19:00:37 +00:00
Yating Zhan 2fffca8ef3 Translated using Weblate (Chinese (Simplified))
Currently translated at 82.9% (39 of 47 strings)

Translation: Pleroma/Pleroma Backend (domain posix_errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-posix_errors/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa 13e41ab8ba Translated using Weblate (Chinese (Simplified))
Currently translated at 82.9% (39 of 47 strings)

Translation: Pleroma/Pleroma Backend (domain posix_errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-posix_errors/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa ca8341a96c Translated using Weblate (Chinese (Simplified))
Currently translated at 11.8% (118 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
Yating Zhan 5ca95a4f1a Translated using Weblate (Chinese (Simplified))
Currently translated at 11.8% (118 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa aff4d5df1c Translated using Weblate (Chinese (Simplified))
Currently translated at 88.2% (30 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-default/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa 48bd45acec Translated using Weblate (Chinese (Simplified))
Currently translated at 99.0% (102 of 103 strings)

Translation: Pleroma/Pleroma Backend (domain errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-errors/zh_Hans/
2022-07-22 19:00:37 +00:00
Haelwenn 0b2243f17e Translated using Weblate (French)
Currently translated at 100.0% (47 of 47 strings)

Translation: Pleroma/Pleroma Backend (domain posix_errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-posix_errors/fr/
2022-07-22 19:00:37 +00:00
Haelwenn 9399fd4abd Translated using Weblate (French)
Currently translated at 100.0% (34 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-default/fr/
2022-07-22 19:00:37 +00:00
tusooa 54cf23f2f8 Translated using Weblate (Chinese (Simplified))
Currently translated at 3.3% (33 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa 8b55661ae6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (83 of 83 strings)

Translation: Pleroma/Pleroma Backend (domain static_pages)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-static_pages/zh_Hans/
2022-07-22 19:00:37 +00:00
Haelwenn 8c3684ee8c Added translation using Weblate (French) 2022-07-22 19:00:37 +00:00
Haelwenn bc488824f8 Added translation using Weblate (French) 2022-07-22 19:00:37 +00:00
Haelwenn 77ebde450e Translated using Weblate (French)
Currently translated at 32.3% (11 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-default/fr/
2022-07-22 19:00:37 +00:00
tusooa 21bd168226 Translated using Weblate (Chinese (Simplified))
Currently translated at 1.6% (16 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
Haelwenn 6da0b50645 Translated using Weblate (French)
Currently translated at 100.0% (83 of 83 strings)

Translation: Pleroma/Pleroma Backend (domain static_pages)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-static_pages/fr/
2022-07-22 19:00:37 +00:00
Haelwenn 37ea9e014a Added translation using Weblate (French) 2022-07-22 19:00:37 +00:00
Haelwenn 99ad602577 Added translation using Weblate (French) 2022-07-22 19:00:37 +00:00
tusooa cc40640f54 Translated using Weblate (Chinese (Simplified))
Currently translated at 0.5% (5 of 998 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2022-07-22 19:00:37 +00:00
tusooa ffe8459349 Added translation using Weblate (Chinese (Simplified)) 2022-07-22 19:00:37 +00:00
Haelwenn 3b2bac7a0f Merge branch 'fix-owncast' into 'develop'
Fix owncast

See merge request pleroma/pleroma!3706
2022-07-22 19:00:23 +00:00
Haelwenn (lanodan) Monnier eba1666575 AttachmentValidator: fix_media_type/1 fallback to application/octet-stream 2022-07-22 20:30:45 +02:00
FloatingGhost 09e0304b9c Add test for broken owncast federation 2022-07-22 20:30:45 +02:00
Haelwenn (lanodan) Monnier be98900904 ArticleNotePageValidator: Fix when attachments are a Map (ie. owncast) 2022-07-22 20:30:45 +02:00
tusooa c589b8445f Merge branch 'birthday_fix' into 'develop'
Allow to unset birthday

See merge request pleroma/pleroma!3702
2022-07-21 21:27:16 +00:00
Haelwenn 454f892f37 Merge branch 'fix/emoji-react-qualification' into 'develop'
EmojiReactValidator: fix emoji qualification

See merge request pleroma/pleroma!3684
2022-07-21 17:45:47 +00:00
Tusooa Zhu 4350a205a4
Merge remote-tracking branch 'upstream/develop' into HEAD 2022-07-21 13:44:16 -04:00
Haelwenn 1f18ab36b5 Merge branch 'resolve/notice-compatibility-routes-nginx' into 'develop'
Document way to do notice compatibility routes with Nginx reverse-proxy, fixes #2900

Closes #2900

See merge request pleroma/pleroma!3701
2022-07-20 16:57:05 +00:00
Haelwenn fff7571e0d Merge branch 'fix-cycles' into 'develop'
CI: Remove cache on cycles

See merge request pleroma/pleroma!3704
2022-07-20 16:52:15 +00:00
Haelwenn (lanodan) Monnier 65a5c713e9 CI: Remove cache on cycles
cycles uses a different system than the rest of the testing_cache, creating errors like libcrypto.so.1 being missing
2022-07-20 17:49:56 +02:00
Ilja ba31af021c Fix flaky/erratic tests in Pleroma.Config.TransferTaskTest
There were async calls happening, so they weren't always finished when assert happened.
2022-07-20 13:26:26 +02:00
Ilja 9a6280cdb9 Fix warnings ":logger is used by the current application but the current application does not depend on :logger"
During compilation, we had the following warning which is now fixed

```
==> restarter
Compiling 1 file (.ex)
warning: Logger.__do_log__/4 defined in application :logger is used by the current application but the current application does not depend on :logger. To fix this, you must do one of:

  1. If :logger is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :logger is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :logger, you may optionally skip this warning by adding [xref: [exclude: [Logger]]] to your "def project" in mix.exs

Invalid call found at 2 locations:
  lib/pleroma.ex:65: Restarter.Pleroma.handle_cast/2
  lib/pleroma.ex:78: Restarter.Pleroma.handle_cast/2

warning: Logger.__should_log__/2 defined in application :logger is used by the current application but the current application does not depend on :logger. To fix this, you must do one of:

  1. If :logger is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :logger is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :logger, you may optionally skip this warning by adding [xref: [exclude: [Logger]]] to your "def project" in mix.exs

Invalid call found at 2 locations:
  lib/pleroma.ex:65: Restarter.Pleroma.handle_cast/2
  lib/pleroma.ex:78: Restarter.Pleroma.handle_cast/2

warning: Logger.debug/1 defined in application :logger is used by the current application but the current application does not depend on :logger. To fix this, you must do one of:

  1. If :logger is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :logger is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :logger, you may optionally skip this warning by adding [xref: [exclude: [Logger]]] to your "def project" in mix.exs

Invalid call found at 2 locations:
  lib/pleroma.ex:65: Restarter.Pleroma.handle_cast/2
  lib/pleroma.ex:78: Restarter.Pleroma.handle_cast/2
```
2022-07-20 13:26:26 +02:00
a1batross 6b5484f039 Merge remote-tracking branch 'origin/develop' into emr_develop 2022-07-19 21:33:42 +02:00
a1batross 6c86ad31ec Merge remote-tracking branch 'tusooa/from/upstream-develop/tusooa/edits' into emr_develop 2022-07-19 21:33:00 +02:00
Sean King 3da1b2548d
Actually fix with forward slashes being restricted inside nickname 2022-07-18 21:30:57 -06:00
Sean King 2c7eed122e
Don't accept forward slash character for nicknames 2022-07-17 12:50:01 -06:00
marcin mikołajczak fb268c4378 Allow to unset birthday
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-17 19:46:29 +02:00
Haelwenn 3193f18cf3 Merge branch 'shrink-ci' into 'develop'
Shrink CI

See merge request pleroma/pleroma!3691
2022-07-17 17:34:47 +00:00
Haelwenn bb4860e222 Merge branch 'from/upstream-develop/tusooa/config-translatable' into 'develop'
Translatable config descriptions

Closes pleroma-meta#65

See merge request pleroma/pleroma!3695
2022-07-17 17:34:21 +00:00
Sean King 64e16e6a4b
Document way to do notice compatibility routes with Nginx reverse-proxy instead 2022-07-16 23:44:37 -06:00
tusooa 8aba7c08d1 Merge branch 'notification_types' into 'develop'
MastoAPI: Use `types` for filtering notifications

See merge request pleroma/pleroma!3648
2022-07-17 03:17:43 +00:00
tusooa eb4b7f6efa Merge branch 'docs__setting_up_a_gitlab_runner' into 'develop'
DOCS: Add some small piece about setting up a Gitlab-runner

See merge request pleroma/pleroma!3694
2022-07-17 02:36:28 +00:00
marcin mikołajczak 597f56b4c4 Use :utc_datetime
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-16 16:28:22 +02:00
Tusooa Zhu 8113dd31ee
Add api docs for settings endpoint 2022-07-16 01:27:16 -04:00
Tusooa Zhu 8371fd8ca2
Implement settings api 2022-07-16 01:20:25 -04:00
Tusooa Zhu 1d7e8d6e01
Pass in msgctxt for config translation strings 2022-07-14 17:41:33 -04:00
floatingghost 28626eafc1 Allow higher amount of restarts for Pleroma.Repo during testing
This was done by floatingghost as part of a bigger commit in Akkoma.
See <37ae047e16/lib/pleroma/application.ex (L83)>.

As explained in <https://ihatebeinga.live/objects/860d23e1-dc64-4b07-8b4d-020b9c56cff6>

> there are so many caches that clearing them all can nuke the supervisor, which by default will become an hero if it gets more than 3 restarts in <5 seconds

And further down the thread

> essentially we've got like 11 caches (37ae047e16/lib/pleroma/application.ex (L165))
> then in test we fetch them all (https://akkoma.dev/AkkomaGang/akkoma/src/branch/develop/test/support/data_case.ex#L50) and call clear on them
> so if this clear fails on any 3 of them, the pleroma supervisor itself will die

How it fails?

> idk maybe cachex dies, maybe :ets does a weird thing
> it doesn't log anything, it just consistently dies during cache clearing so i figured it had to be that

> honestly my best bet is locksmith and queuing
> https://github.com/whitfin/cachex/blob/master/lib/cachex/actions/clear.ex#L26
> clear is thrown into a locksmith transaction

> locksmith says
> >If the process is already in a transactional context, the provided function will be executed immediately. Otherwise the required keys will be locked until the provided function has finished executing.

> so if we get 2 clears too close together, maybe it locks, then doesn't like the next clear?
2022-07-14 13:50:44 +02:00
tusooa 3fb9171694 Merge branch 'from/upstream-develop/tusooa/zh-translation' into 'develop'
Translate static_pages.po (Simplified Chinese)

See merge request pleroma/pleroma!3655
2022-07-13 23:39:46 +00:00
Tusooa Zhu 074a94e90d
Extract translatable strings 2022-07-13 18:57:57 -04:00
Tusooa Zhu 7473868880
Fix compile error 2022-07-13 18:46:21 -04:00
Tusooa Zhu 20588517fc
Make admin api use translated config descriptions 2022-07-13 18:31:35 -04:00
Tusooa Zhu 36f6d92d98
Add tests for translator compiler 2022-07-13 18:31:01 -04:00
Tusooa Zhu b2a0718e83
Extract config descriptions for translation 2022-07-13 18:01:47 -04:00
Ilja 8ddea16b0d DOCS: Add some small piece about setting up a Gitlab-runner
This is based on me setting one up, but I kept it general with mostly linking to other documentation.
The idea is that to just provide some Pleroma-specific info, maybe give some pointers, and point to the right (external) docs.
2022-07-13 20:54:24 +02:00
tusooa fdc71f6051 Merge branch 'short-description' into 'develop'
Add short_description instance field

Closes #2865

See merge request pleroma/pleroma!3651
2022-07-13 04:42:24 +00:00
Tusooa Zhu eb2a1652bf
Add tests for short_description 2022-07-13 00:40:46 -04:00
Tusooa Zhu c1874bc8f9
Make mutes and blocks behave the same as other lists 2022-07-12 19:03:18 -04:00
Haelwenn (lanodan) Monnier 12d888e04e CI: cycles: Use current stable elixir image 2022-07-12 13:13:24 +02:00
Haelwenn (lanodan) Monnier 6e158bba2c CI: template for change policies based on build stage 2022-07-12 12:13:34 +02:00
Haelwenn (lanodan) Monnier e574408b33 CI: Run stages when .gitlab-ci.yml changes 2022-07-11 10:15:18 +02:00
Haelwenn (lanodan) Monnier 702a41ce23 CI: Run lint and cycles in alpine 2022-07-11 10:12:18 +02:00
Haelwenn (lanodan) Monnier 08c8814ef0 CI: Run postgres services in alpine 2022-07-11 09:29:18 +02:00
tusooa 311fda32f3 Merge branch 'fix/case-sensitivity-restricted-nicknames-blacklisted-domains' into 'develop'
Make checking blacklisted domains and restricted nicknames case-insensitive

Closes #2894 and #2888

See merge request pleroma/pleroma!3687
2022-07-11 04:04:36 +00:00
Tusooa Zhu 8bb2e52d2e
Make lint happy 2022-07-10 23:43:49 -04:00
Haelwenn 420da14b61 Merge branch 'from/upstream-develop/tusooa/2830-remote-fo-mp' into 'develop'
Pass remote follow avatar into media proxy

Closes #2830

See merge request pleroma/pleroma!3690
2022-07-10 16:19:16 +00:00
Sean King 3cf6c2b7ea
Use is_binary instead of is_bitstring for restricted nicknames tests 2022-07-09 23:39:35 -06:00
Tusooa Zhu 2efc0ffcf0
Pass remote follow avatar into media proxy 2022-07-10 00:12:53 -04:00
Tusooa Zhu 04ded94a50
Fix remote emoji in subject disappearing after edits 2022-07-09 18:00:42 -04:00
Ilja 26080b4b5c Fix rate_limiter_test.exs test "it restricts based on config values"
It used a timer to sleep.
But time also goes on when doing other things, so depending on hardware, the timings could be off.
I slightly changed the tests so we still test what we functionally want.
Instead of waiting until the cache expires I now have a function to expire the test and use that.

That means we're not testing any more if the cache really expires after a certain amount of time,
but that's the responsability of the dependency imo, so shouldn't be a problem.

I also changed `Pleroma.Web.Endpoint, :http, :ip` to `127.0.0.1` because that's the setting people typically have,
and I see no reason to do it differently.
Especially since it's an exernal ip, which may come over as weird or suspicious to people.
2022-07-09 07:19:18 +02:00
a1batross bfab5d210b Revert "activity_pub: fix case when featured collection misses orderedItems field"
This reverts commit 8dc92d962b.
2022-07-09 02:46:58 +02:00
a1batross 8cd92c7838 Revert "fix federation with I don't remember what (owncast probably)"
This reverts commit c15b43cce4.
2022-07-09 02:46:13 +02:00
marcin mikołajczak 0b16ce79f9 Add test for rendering mute expiration date
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-08 20:59:58 +02:00
Tusooa Zhu 11a6e88420
Test that Question updates are viable 2022-07-07 15:22:04 -04:00
Tusooa Zhu 069554e925
Guard against outdated Updates
It is possible for an earlier Update to be received by us later.
For this, we now
(1) only allows Updates to poll counts if there is no updated field,
    or the updated field is the same as the last updated date or
    creation date;
(2) does not allow updating anything if the updated field
    is older than the last updated date or creation date;
(3) allows updating updatable fields otherwise (normal updates);
(4) if only the updated field is changed, it does not create
    a new history item on its own.
2022-07-07 15:11:29 -04:00
Sean King 6e7b919637
Make validation functions for restricted nicknames and blacklisted domains; do restricted nickname validation in LDAP account registration 2022-07-06 20:15:49 -06:00
Tusooa Zhu f84ed44cea
Fix cannot get full history on object fetch 2022-07-06 01:19:53 -04:00
Sean King 0d4aceb9b0
Make checking blacklisted domains and restricted nicknames case-insenstive 2022-07-05 20:36:47 -06:00
a1batross fe2c177e21 Merge remote-tracking branch 'tusooa/from/upstream-develop/tusooa/edits' into emr_develop 2022-07-05 23:01:04 +02:00
a1batross eb7d296b0c Merge remote-tracking branch 'origin/develop' into emr_develop 2022-07-05 22:57:54 +02:00
Haelwenn 29f4ab640b Merge branch 'from/upstream-develop/tusooa/report-too-long' into 'develop'
Fix long report notes giving errors on creation

See merge request pleroma/pleroma!3679
2022-07-04 05:21:20 +00:00
Haelwenn 8c78fef56f EmojiReactValidator: apply lanodan's suggestions
These changes make the encoding for the fully-qualified heart emoji very visible in editors.
2022-07-04 00:25:54 +00:00
Tusooa Zhu 5ce118d970
Validate object data for incoming Update activities
In Create validator we do not validate the object data,
but that is because the object itself will go through the
pipeline again, which is not the case for Update. Thus,
we added validation for objects in Update activities.
2022-07-03 20:21:46 -04:00
Tusooa Zhu 4367489a3e
Pass history items through ObjectValidator for updatable object types 2022-07-03 20:02:52 -04:00
Tusooa Zhu 4edc867b87 Merge branch 'develop' into 'from/upstream-develop/tusooa/edits'
# Conflicts:
#   lib/pleroma/constants.ex
2022-07-03 22:24:57 +00:00
Haelwenn c50ade26ba Merge branch 'fix/eblurhash-binaries' into 'develop'
mix: update eblurhash to 1.2.2

See merge request pleroma/pleroma!3686
2022-07-03 22:02:17 +00:00
Haelwenn eefa981e0a Merge branch 'indexing-hotspots' into 'develop'
Add index hotspots

See merge request pleroma/pleroma!3664
2022-07-03 22:01:37 +00:00
Haelwenn de37583c49 Merge branch 'image_description_from_exif_data' into 'develop'
Use EXIF data of image for image description

See merge request pleroma/pleroma!3535
2022-07-03 21:14:25 +00:00
Haelwenn a15b45a589 Merge branch 'bugfix/mime-validation-no-list' into 'develop'
Bugfix: Validate mediaType only by it's format

See merge request pleroma/pleroma!3597
2022-07-03 21:04:41 +00:00
Haelwenn 6b937d1473 Merge branch 'from/upstream-develop/tusooa/server-announcements' into 'develop'
Server announcements (1st pass)

See merge request pleroma/pleroma!3643
2022-07-03 20:58:20 +00:00
Hélène c3a0944ce5
mix: update eblurhash to 1.2.2
Previous eblurhash versions bundled precompiled binaries which caused
issues on non-Darwin operating systems.
2022-07-02 14:52:28 +02:00
Ilja 56227ef7ba Descriptions from exif data with only whitespeces are considered empty
I noticed that pictures taken with Ubuntu-Touch have whitespace in one of the fields
This should just be ignored imo
2022-07-01 13:47:23 +02:00
Ilja 8c761942b1 update moduledoc 2022-07-01 12:15:02 +02:00
Ilja 4a9ed319b8 Change test pictures
The previous pictures were labeled as public domain, but are actually a collage of pictures under other licenses.

I now replaced them with a jpeg of simply a white pixel.
2022-07-01 12:15:02 +02:00
Ilja 7d234d097c Add option to docs about instance gen 2022-07-01 12:15:02 +02:00
Ilja 81afaee374 Better way of getting keys
I used keyword_list[:key], but if the key doesn't exist, it will return nil. I actually expect a list and further down the code I use that list.
I believe the key should always be present, but in case it's not, it's better to return an empty list instead of nil. That way the code wont fail further down the line.
2022-07-01 12:15:02 +02:00
Ilja 75ea766824 Migration failed when no value for Pleroma.Upload was set 2022-07-01 12:15:02 +02:00
Ilja cc5686bbd6 Migration for exiftool filter
Rename to Exiftool.StripLocation
2022-07-01 12:15:02 +02:00
Ilja d0d48a9e88 Add deprecation warnings 2022-07-01 12:15:02 +02:00
Ilja 8303af84ce Rename the Exiftool module
No migrations or checks yet
2022-07-01 12:15:02 +02:00
Ilja 551721e41a Rename the new module 2022-07-01 12:13:46 +02:00
Ilja cd316d7269 Use EXIF data of image to prefill image description
During attachment upload Pleroma returns a "description" field. Pleroma-fe has an MR to use that to pre-fill the image description field, <https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1399>

* This MR allows Pleroma to read the EXIF data during upload and return the description to the FE
    * If a description is already present (e.g. because a previous module added it), it will use that
    * Otherwise it will read from the EXIF data. First it will check -ImageDescription, if that's empty, it will check -iptc:Caption-Abstract
    * If no description is found, it will simply return nil, just like before
* When people set up a new instance, they will be asked if they want to read metadata and this module will be activated if so

This was taken from an MR i did on Pleroma and isn't finished yet.
2022-07-01 12:13:46 +02:00
Hélène 11f9f2ef27
EmojiReactValidator: fix emoji qualification
Tries fully-qualifying emoji when receiving them, by adding the emoji
variation sequence to the received reaction emoji.

This issue arises when other instance software, such as Misskey, tries
reacting with emoji that have unqualified or minimally qualified
variants, like a red heart. Pleroma only accepts fully qualified emoji
in emoji reactions, and refused those emoji. Now, Pleroma will attempt
to properly qualify them first, and reject them if checks still fail.
2022-06-28 21:33:57 +02:00
Tusooa Zhu 014096aeef
Make outbound transmogrifier aware of edit history 2022-06-25 11:20:46 -04:00
Tusooa Zhu 5321fd0012
Do not put meta[:object_data] for local Updates 2022-06-25 10:03:19 -04:00
Tusooa Zhu 9c6dae942d
Fix local updates causing emojis to be lost 2022-06-25 09:23:09 -04:00
Tusooa Zhu e98579b1da
Verify that formerRepresentation provided in Update is used 2022-06-25 01:17:09 -04:00
Tusooa Zhu 40953a8f5c
Reuse formerRepresentations from remote if possible 2022-06-25 01:03:46 -04:00
Tusooa Zhu 99a6f50316
Unify the logic of updating objects 2022-06-25 00:32:22 -04:00
Tusooa Zhu e0d6da4e7d
Fix CommonAPITest 2022-06-24 10:54:11 -04:00
Tusooa Zhu ee07383191
Use meta[:object_data] in SideEffects for Update 2022-06-24 10:28:58 -04:00
a1batross dc827616be Allow TLSv1.3 2022-06-24 16:26:54 +02:00
a1batross ab386eb6dc Merge remote-tracking branch 'tusooa/from/upstream-develop/tusooa/edits' into emr_develop 2022-06-24 16:26:33 +02:00
a1batross c15b43cce4 fix federation with I don't remember what (owncast probably) 2022-06-24 16:26:28 +02:00
Tusooa Zhu 01321c88b5
Convert incoming Updated object into Pleroma format 2022-06-24 10:25:22 -04:00
Tusooa Zhu 7726c399de
Convert incoming Updated object into Pleroma format 2022-06-24 10:11:46 -04:00
Tusooa Zhu 06da000c5d
Add editing to features 2022-06-21 12:32:44 -04:00
marcin mikołajczak b0f83aea29 Store mutes expiration date
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-06-16 20:38:37 +02:00
Tusooa Zhu 44613db853
Show original status at the first of history 2022-06-11 19:52:07 -04:00
Tusooa Zhu 95b3922328
Workaround with_index does not support function in Elixir 1.9 2022-06-11 17:02:29 -04:00
Tusooa Zhu 7451f0e81f
Send the correct update in streamer
get_create_by_ap_id_with_object() seems to fetch the old object.
Why this happens needs further investigation.
2022-06-11 12:02:16 -04:00
Tusooa Zhu 27f3d802f2
Expose history and source apis to anon users 2022-06-11 10:35:36 -04:00
Tusooa Zhu c3593639ad
Fix incorrectly cached content after editing 2022-06-09 11:39:51 -04:00
a1batross dea83d3cc1 Merge remote-tracking branch 'tusooa/from/upstream-develop/tusooa/edits' into emr_develop 2022-06-09 14:32:59 +02:00
Tusooa Zhu aafd7a687d
Return the corresponding object id in attachment view 2022-06-08 11:45:24 -04:00
Tusooa Zhu 237b220d71
Add object id to uploaded attachments 2022-06-08 11:05:48 -04:00
lain 75f912c63f Merge branch 'hackney_reenable_TLSv1.3' into 'develop'
hackney adapter helper: enable TLSv1.3

See merge request pleroma/pleroma!3661
2022-06-06 11:36:21 +00:00
Tusooa Zhu d2d3532e5f
Lint 2022-06-05 16:35:01 -04:00
Tusooa Zhu 532f6ae3ed
Return update notification in mastodon api 2022-06-05 16:34:42 -04:00
Tusooa Zhu 06a3998013
Create Update notifications 2022-06-05 15:02:25 -04:00
Tusooa Zhu 97eabb2047
Fix CommonAPITest 2022-06-04 13:15:07 -04:00
Tusooa Zhu fe2d4778ee
Expose content type of status sources 2022-06-04 12:57:30 -04:00
Tusooa Zhu 72ac940618
Fix SideEffectsTest 2022-06-03 21:50:49 -04:00
Tusooa Zhu 3249ac1f12
Show edited_at in MastodonAPI/show 2022-06-03 21:47:40 -04:00
Tusooa Zhu fdaa864083
Test that own edits are streamed 2022-06-03 21:17:16 -04:00
Tusooa Zhu 8bac8147d4
Stream out edits 2022-06-03 21:15:17 -04:00
Tusooa Zhu b096fbba1a
Fix long report notes giving errors on creation 2022-06-02 01:28:39 -04:00
Tusooa Zhu fa31ae50e6
Inject history when object is refetched 2022-06-01 19:49:04 -04:00
Tusooa Zhu 410e177b2a
Strip internal fields in formerRepresentation 2022-06-01 12:02:03 -04:00
Tusooa Zhu b613a9ec6b
Implement mastodon api for editing status 2022-05-31 14:32:28 -04:00
Pierre-Louis Bonicoli 6f23fc8e08
Add tlsv1.3 to suggestions 2022-05-31 00:51:48 +02:00
Pierre-Louis Bonicoli a158774364
hackney adapter helper & reverse proxy client: enable TLSv1.3
The list of TLS versions was added by
8bd2b6eb13 when hackney version was
pinned to 1.15.2. Later hackney version was upgraded
(166455c884) but the list of TLS
versions wasn't removed. From the hackney point of view, this list has
been replaced by the OTP defaults since 0.16.0
(734694ea4e24f267864c459a2f050e943adc6694).

It looks like the same issue already occurred before:
0cb7b0ea84.

A way to test this issue (where example.com is an ActivityPub site
which uses TLSv1.3 only):

   $ PLEROMA_CONFIG_PATH=/path/to/config.exs pleroma start_iex
   Erlang/OTP 22 [erts-10.7.2.16] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

   Erlang/OTP 22 [erts-10.7.2.16] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

   Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help)
   iex(pleroma@127.0.0.1)2> Pleroma.Object.Fetcher.fetch_and_contain_remote_object_from_id("https://example.com/@/Nick/")
   {:error,
    {:tls_alert,
     {:protocol_version,
      'TLS client: In state hello received SERVER ALERT: Fatal - Protocol Version\n'}}}

With this patch, the output is the expected one:

   iex(pleroma@127.0.0.1)3> Pleroma.Object.Fetcher.fetch_and_contain_remote_object_from_id("https://example.com/@/Nick/")
   {:error,
   {:ok,
    %{
      "@context" => [
        "https://www.w3.org/ns/activitystreams",
        "https://w3id.org/security/v1",
        %{
          "Emoji" => "toot:Emoji",
          "Hashtag" => "as:Hashtag",
          "atomUri" => "ostatus:atomUri",
          "conversation" => "ostatus:conversation",
          "featured" => "toot:featured",
          "focalPoint" => %{"@container" => "@list", "@id" => "toot:focalPoint"},
          "inReplyToAtomUri" => "ostatus:inReplyToAtomUri",
          "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers",
          "movedTo" => "as:movedTo",
          "ostatus" => "http://ostatus.org#",
          "sensitive" => "as:sensitive",
          "toot" => "http://joinmastodon.org/ns#"
        }
      ],
      "endpoints" => %{"sharedInbox" => "https://example.com/inbox"},
      "followers" => "https://example.com/@/Nick/followers",
      "following" => nil,
      "icon" => %{
        "type" => "Image",
        "url" => "https://example.com/static/media/[...].png"
      },
      "id" => "https://example.com/@/Nick/",
      "inbox" => "https://example.com/@/Nick/inbox",
      "liked" => nil,
      "name" => "Nick",
      "outbox" => "https://example.com/@/Nick/outbox",
      "preferredUsername" => "Nick",
      "publicKey" => %{
        "id" => "https://example.com/@/Nick/#main-key",
        "owner" => "https://example.com/@/Nick/",
        "publicKeyPem" => "[...]
      },
      "summary" => "",
      "type" => "Person",
      "url" => "https://example.com/@/Nick/"
    }}

A way to test the reverse proxy bits of this issue (where example.com allows TLSv1.3 only):

    iex(pleroma@127.0.0.1)1> Pleroma.ReverseProxy.Client.Hackney.request("GET", "https://example.com", [], [])
    {:error,
     {:tls_alert,
      {:protocol_version,
       'TLS client: In state hello received SERVER ALERT: Fatal - Protocol Version\n'}}}
2022-05-31 00:51:45 +02:00
Tusooa Zhu 393b508846
Implement viewing source 2022-05-30 00:59:23 -04:00
Tusooa Zhu c004eb0fa2
Implement mastodon api for showing edit history 2022-05-29 23:50:31 -04:00
Tusooa Zhu 8acfe95f3e
Allow updating polls 2022-05-29 22:16:03 -04:00
Tusooa Zhu 5e8aac0e07
Record edit history for Note and Question Updates 2022-05-29 13:54:16 -04:00
Tusooa Zhu 0f6a5eb9a2
Handle Note and Question Updates 2022-05-29 12:54:57 -04:00
Tusooa Zhu 547def67a7
Allow Updates by every actor on the same origin 2022-05-29 11:36:00 -04:00
Haelwenn 7466136ad3 Merge branch 'lewdthewides-develop-patch-48691' into 'develop'
Instruct users to run 'git pull' as the pleroma user

See merge request pleroma/pleroma!3667
2022-05-22 17:09:54 +00:00
duponin 5ca1ac041f BBS: add repeat functionality 2022-05-22 03:19:24 +02:00
duponin 5951d637a9 BBS: show post ID when posted 2022-05-22 02:40:56 +02:00
duponin fffd9059d6 BBS: add post favourite feature 2022-05-22 02:39:56 +02:00
Hélène a4659d993d Apply Hélène suggestions 2022-05-21 23:23:55 +00:00
duponin e3e8ff06f9 BBS: mark notification as read 2022-05-21 05:10:48 +02:00
duponin c04c7f9e45 BBS: show notifactions 2022-05-21 05:10:22 +02:00
duponin 33ced2c2ed BBS: put a new line for each HTML break in an activity
Otherwise it would just put each line on the first one, which is not
really readable
2022-05-21 04:17:34 +02:00
lain bdca5f5d68 Merge branch 'fix/mrf-steal-emoji-regex' into 'develop'
StealEmojiPolicy: fix String rejected_shortcodes

See merge request pleroma/pleroma!3673
2022-05-19 08:55:39 +00:00
duponin b128e1d6c5 decode HTML to be human readable in BBS 2022-05-19 01:38:13 +02:00
duponin 5086d6d5e9 add thread show in BBS frontend 2022-05-19 00:56:20 +02:00
Hélène a74ce2d77a
StealEmojiPolicy: fix String rejected_shortcodes
* rejected_shortcodes is defined as a list of strings in the
  configuration description. As such, database-based configuration was
  led to handle those settings as strings, and not as the actually
  expected type, Regex.
* This caused each message passing through this MRF, if a rejected
  shortcode was set and the emoji did not exist already on the instance,
  to fail federating, as an exception was raised, swiftly caught and
  mostly silenced.
* This commit fixes the issue by introducing new behavior: strings are
  now handled as perfect matches for an emoji shortcode (meaning that if
  the emoji-to-be-pulled's shortcode is in the blacklist, it will be
  rejected), while still supporting Regex types as before.
2022-05-18 21:25:10 +02:00
duponin 39c47073a3 fix Ctrl-c catch on SSH BBS 2022-05-18 20:06:16 +02:00
duponin e606b9ab3f add missing extra application to start the SSH BBS 2022-05-18 20:05:42 +02:00
lewdthewides 7977dd6ac7 Instruct users to run 'git pull' as the pleroma user 2022-05-12 16:02:58 +00:00
a1batross a69c50e6e4 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-05-10 20:50:25 +02:00
Pete 7f1ace2595 Add index hotspots
squash
2022-05-10 20:45:48 +02:00
Tusooa Zhu f1722a9f4a
Make lint happy
Ref: fix-local-public
2022-05-09 18:53:32 -04:00
Tusooa Zhu 6e5ef7f2eb
Test local-only in ap c2s outbox
Ref: fix-local-public
2022-05-09 18:53:32 -04:00
Tusooa Zhu 38444aa92a
Allow authenticated users to access local-only posts in MastoAPI
Ref: fix-local-public
2022-05-09 18:53:18 -04:00
Haelwenn 4605efe272 Merge branch 'improve_anti_followbot_policy' into 'develop'
Also use actor_type to determine if an account is a bot in antiFollowbotPolicy

Closes #2561

See merge request pleroma/pleroma!3498
2022-05-08 18:10:40 +00:00
Ilja a8093732bd Also use actor_type to determine if an account is a bot in antiFollowbotPolicy 2022-05-08 18:10:40 +00:00
a1batross cbdbbb79ae Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-05-07 23:07:27 +02:00
Tusooa Zhu 221cb3fb81
Allow users to create backups without providing email address
Ref: backup-without-email
2022-05-07 00:23:55 -04:00
Pete aa51fd068b Add index hotspots
squash
2022-05-06 18:48:08 -07:00
Tusooa Zhu fe933b9bf2
Prevent remote access of local-only posts via /objects
Ref: fix-local-public
2022-05-06 13:54:21 -04:00
Tusooa Zhu 466568ae36
Lint
Ref: fix-local-public
2022-05-06 13:54:13 -04:00
Tusooa Zhu 826deb7375
Make local-only statuses searchable
Ref: fix-local-public
2022-05-06 13:54:13 -04:00
Tusooa Zhu 38af42968d
Test that anonymous users cannot see local-only posts
Ref: fix-local-public
2022-05-06 13:54:12 -04:00
Tusooa Zhu c48be59f58
Show local-only statuses in public timeline for authenticated users
Ref: fix-local-public
2022-05-06 13:54:02 -04:00
Haelwenn 214ef7ff73 Merge branch 'security/2.4.3-develop' into 'develop'
Merge back 2.4.3

See merge request pleroma/pleroma!3663
2022-05-06 08:27:03 +00:00
Haelwenn (lanodan) Monnier f9943b2065 mix: Bump to 2.4.52 for 2.4.3 mergeback 2022-05-06 10:23:43 +02:00
Tusooa Zhu 57c030a0a7 Skip cache when /objects or /activities is authenticated
Ref: fix-local-public
2022-05-06 10:23:26 +02:00
Tusooa Zhu e2d24eda57 Allow to skip cache in Cache plug
Ref: fix-local-public
2022-05-06 10:23:26 +02:00
Ilja c3b2b71ea2 update sweet_xml [Security] 2022-05-06 10:23:25 +02:00
a1batross 8dc92d962b activity_pub: fix case when featured collection misses orderedItems field 2022-04-25 01:14:13 +02:00
Haelwenn 8517bc18aa Merge branch 'from/upstream-develop/tusooa/fix-en-fallback' into 'develop'
Fix incorrect fallback when English is set to first language

See merge request pleroma/pleroma!3656
2022-04-18 03:31:44 +00:00
Tusooa Zhu be08d9305b
Fix incorrect fallback when English is set to first language 2022-04-17 22:39:52 -04:00
Tusooa Zhu 6599607226
Translate static_pages.po (Simplified Chinese) 2022-04-07 17:42:19 -04:00
Haelwenn a5d7e98de0 Merge branch 'fix_eratic_test_for_report_notes' into 'develop'
Fix eratic test for POST /api/pleroma/admin/reports/:id/notes

See merge request pleroma/pleroma!3653
2022-04-05 12:11:53 +00:00
Ilja 5f37db330f Fix eratic test for POST /api/pleroma/admin/reports/:id/notes
It retrieved two ReportNotes and then checked one of them. But the order isn't guaranteed, while the test tested on the content of the first ReportNote.

I made the test on the content more generic
2022-04-05 13:21:09 +02:00
Tusooa Zhu 7d1dae3bef
Restrict mastodon api announcements to logged-in users only 2022-04-02 02:25:13 -04:00
a1batross e97b37fc4e Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-03-30 20:43:17 +02:00
marcin mikołajczak fbf9eced11 Add short_description field
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-03-29 14:04:27 +02:00
Sean King 4194559ea6
Fix lint errors 2022-03-20 17:26:07 -06:00
Haelwenn d7c53da77a Merge branch 'from/upstream-develop/tusooa/translate-pages' into 'develop'
Translate backend-rendered pages

See merge request pleroma/pleroma!3634
2022-03-20 18:14:37 +00:00
Haelwenn e63d49d238 Merge branch 'caddyfile-v2' into 'develop'
Update Caddyfile to Caddy v2

Closes #2764

See merge request pleroma/pleroma!3641
2022-03-20 18:14:00 +00:00
Haelwenn b76340511d Merge branch 'delete_report_notifs_when_demoting_from_superuser' into 'develop'
Delete report notifs when demoting from superuser

Closes #2840

See merge request pleroma/pleroma!3642
2022-03-20 18:13:19 +00:00
Sean King d0c1997d48
Rewrite integration-test websocket client with Mint.WebSocket 2022-03-19 23:33:37 -06:00
a1batross b04d1c1e43 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-03-19 18:34:20 +01:00
Tusooa Zhu 0c78ab4a88
Use utc_datetime in db schema 2022-03-18 11:17:22 -04:00
Haelwenn (lanodan) Monnier 83338c25a5 Transmogrifier: Use validating regex for "mediaType" 2022-03-17 22:37:26 +01:00
Haelwenn (lanodan) Monnier 030183b35f AttachmentValidator: Use custom ecto type and regex for "mediaType" 2022-03-17 22:37:26 +01:00
Haelwenn (lanodan) Monnier 4ea9886faa EctoType: Add MIME validator 2022-03-17 22:37:26 +01:00
Haelwenn 2db640632b Merge branch 'bugfix/mix-dotgit' into 'develop'
mix: Check `.git` presence

See merge request pleroma/pleroma!3638
2022-03-17 21:21:59 +00:00
marcin mikołajczak 31ff467eff Use `types` for filtering notifications
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-03-16 21:15:44 +01:00
Tusooa Zhu ebcda5265b
Format announcements into html 2022-03-08 23:00:51 -05:00
Tusooa Zhu 0e0a1758f7
Add doc for Admin Announcement APIs 2022-03-08 21:48:41 -05:00
Tusooa Zhu eb1a29640f
Add pagination to AdminAPI.AnnouncementController.index 2022-03-08 21:26:05 -05:00
Tusooa Zhu 11a1996bf5
Implement update announcement admin api 2022-03-08 20:55:41 -05:00
Tusooa Zhu 881179ec72
Remove GET /api/v1/announcements/:id 2022-03-08 19:22:28 -05:00
Tusooa Zhu d569694ae9
Show only visible announcements in MastodonAPI 2022-03-08 19:20:29 -05:00
Tusooa Zhu cf8334dbc1
Add starts_at, ends_at and all_day parameters 2022-03-08 19:12:01 -05:00
Tusooa Zhu fcf3c9057e
Implement visibility filtering for announcements 2022-03-08 18:21:20 -05:00
Tusooa Zhu 009817c9ee
Correct docstring for AnnouncementController.show 2022-03-08 17:00:49 -05:00
Tusooa Zhu 2b39b36e49
Implement POST /api/v1/announcements/:id/dismiss 2022-03-08 16:59:20 -05:00
Tusooa Zhu aa1fff279e
Implement GET /api/v1/announcements/:id 2022-03-08 16:19:35 -05:00
Tusooa Zhu 5169ad8f14
Implement announcement read relationships 2022-03-08 13:09:49 -05:00
Tusooa Zhu c867d23250
Fill properties of announcements from Mastodon API spec 2022-03-08 09:35:35 -05:00
Tusooa Zhu d7af67012f
Implement first pass of announcement admin api
CCBUG: https://git.pleroma.social/pleroma/pleroma/-/issues/2836
CCBUG: https://git.pleroma.social/pleroma/pleroma/-/issues/1470
2022-03-08 01:01:27 -05:00
Ilja cdc5bbe836 After code review
Use patern matching to see if someone was superuser before
2022-03-07 14:00:42 +01:00
Haelwenn 4458db3201 Merge branch 'fix_test_get_user_apps' into 'develop'
Fix test get_user_apps/1

See merge request pleroma/pleroma!3636
2022-03-06 18:40:49 +00:00
Haelwenn ee32e36b01 Merge branch 'copyright-bump-2022' into 'develop'
Copyright bump for 2022

See merge request pleroma/pleroma!3593
2022-03-06 18:29:37 +00:00
Tusooa Zhu 79ccb6b999
Support fallbacking to other languages 2022-03-06 11:43:31 -05:00
Ilja 89667189b8 Delete report notifs when demoting from superuser
When someone isn't a superuser any more, they shouldn't see the reporsts any more either.
Here we delete the report notifications from a user when that user gets updated from being a superuser to a non-superuser.
2022-03-06 17:36:30 +01:00
sleepycrow 9b69ccb35b Update Caddyfile to Caddy v2 2022-03-06 14:24:32 +01:00
Tusooa Zhu cd42e2bed0
Lint 2022-03-03 09:49:55 -05:00
Tusooa Zhu aca11fb70e
Support multiple locales from userLanguage cookie 2022-03-03 02:31:36 -05:00
Tusooa Zhu 7ea330b4fe
Support multiple locales formally
elixir gettext current does not fully support fallback to another language [0].
But it might in the future. We adapt it so that all languages in Accept-Language
headers are received by Pleroma.Web.Gettext. User.languages is now a comma-separated
list.

[0]: https://github.com/elixir-gettext/gettext/issues/303
2022-03-03 02:03:44 -05:00
Tusooa Zhu d3f3f30c6a
Make lint happy 2022-03-02 22:56:19 -05:00
Tusooa Zhu bc59da96c5
Add test for fallbacking to a general language 2022-03-02 20:04:30 -05:00
Tusooa Zhu 8de573b047
Fallback to a variant if the language in general is not supported
For an example, here, zh is not supported, but zh_Hans and zh_Hant
are. If the user asks for zh, we should choose a variant for them
instead of fallbacking to default.

Some browsers (e.g. Firefox) does not allow users to customize
their language codes. For example, there is no zh-Hans, but only
zh, zh-CN, zh-TW, zh-HK, etc. This provides a workaround for
those users suffering from bad design decisions.
2022-03-02 19:59:11 -05:00
Tusooa Zhu 1a917cfeec
Add changelog 2022-03-02 09:51:46 -05:00
Tusooa Zhu 5e38887080
Document API addition 2022-03-02 09:47:51 -05:00
Tusooa Zhu e644f8dea5
Allow user to register with custom language 2022-03-02 01:41:13 -05:00
Tusooa Zhu 396f036b13
Allow update_credentials to update User.language 2022-03-02 00:58:02 -05:00
Tusooa Zhu 0149ea4538
Send emails i18n'd using backend-stored user language 2022-03-01 22:19:13 -05:00
Tusooa Zhu af82f09ce3
Make all emails translatable 2022-03-01 20:45:59 -05:00
Tusooa Zhu 8b0c2890f9
Fix digest test 2022-03-01 20:27:45 -05:00
Tusooa Zhu 1deab33fb0
Make mail and mailer translatable 2022-03-01 19:17:11 -05:00
Tusooa Zhu 32e4aa42d3
Make static fe translatable 2022-03-01 18:48:08 -05:00
feld 0b686c6e54 Merge branch 'revert-ee05abe0' into 'develop'
Revert "Merge branch 'revert/notice-routes' into 'develop'"

See merge request pleroma/pleroma!3639
2022-03-01 19:02:48 +00:00
feld 9c52a496f7 Revert "Merge branch 'revert/notice-routes' into 'develop'"
This reverts merge request !3576
2022-03-01 19:02:28 +00:00
Tusooa Zhu fdbf9b06e5
Fix tests 2022-02-28 11:23:15 -05:00
Tusooa Zhu cadca083ea
Make mfa pages translatable 2022-02-28 11:07:28 -05:00
Tusooa Zhu 50a316cd63
Make oauth pages translatable 2022-02-28 02:11:57 -05:00
Tusooa Zhu f63d9b7835
Use proper lang attributes in htmls 2022-02-28 01:28:23 -05:00
Tusooa Zhu 0cc6557716
Make tag feed translatable 2022-02-28 01:13:39 -05:00
Tusooa Zhu 1edbda39e1
Make password reset pages translatable 2022-02-28 01:04:04 -05:00
HJ ee05abe052 Merge branch 'revert/notice-routes' into 'develop'
Revert notice compatibility routes merge request

See merge request pleroma/pleroma!3576
2022-02-26 16:24:49 +00:00
Sean King 17aa3644be
Copyright bump for 2022 2022-02-25 23:11:42 -07:00
Haelwenn (lanodan) Monnier 56197192bb mix: Check .git presence 2022-02-25 10:39:12 +01:00
Ilja 6ba93c2cb3 Fix test get_user_apps/1
For some reason I had a test who suddenly failed, mix test test/pleroma/web/o_auth/app_test.exs:54. A user has a list of applications and this test adds them and then sees if the list it gets back is the same as the apps it added.

When I ran mix test a day before I didn't have this problem and when I pushed code today in a different MR, the pipeline succeeded (see https://git.pleroma.social/ilja/pleroma/-/jobs/205827), yet locally it failed. So it seems the test can sometimes succeed and sometimes fail, which makes it untrustworthy.

The failure I see is because the returned list is in reverse order. I assume that's not per sé wrong. You just want to know if the apps you added are actually there. I fixed the test by first ordering the lists before comparing.

AFAICT (and as far as that's relevant) the test got introduced in commit cb2a072e62
2022-02-22 18:56:26 +01:00
Tusooa Zhu 9f4c5743e8
Make lint happy 2022-02-21 19:12:32 -05:00
Tusooa Zhu 2fa1ca84e6
Extract translatable text 2022-02-21 18:44:36 -05:00
Tusooa Zhu a867107437
Make remote follow pages translatable 2022-02-21 18:43:45 -05:00
Tusooa Zhu 0fd3695b9c
Prefer userLanguage cookie over Accept-Language header in detecting locale
https://git.pleroma.social/pleroma/pleroma-meta/-/issues/60
2022-02-21 18:02:19 -05:00
lain d91e9cee04 Merge branch 'unicode-14.0-backend' into 'develop'
Unicode 14 Support

See merge request pleroma/pleroma!3633
2022-02-21 19:38:52 +00:00
Sam Therapy 061cb749cd
Add unicode 14 support
and add a test with a unicode 14 emoji
2022-02-21 12:28:33 -06:00
a1batross 927419d2e7 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-02-14 18:25:15 +01:00
Alex Gleason fa8e2ffa3f Merge branch 'max_media_attachments' into 'develop'
Allow specifying max media attachment count

Closes #2665

See merge request pleroma/pleroma!3630
2022-02-06 18:25:14 +00:00
marcin mikołajczak e473bcf7a0 Max media attachment count
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-02-06 17:41:15 +01:00
Alex Gleason 60deddb7e5 Merge branch 'fix-tests-warn' into 'develop'
Fix tests matching on "warn"

See merge request pleroma/pleroma!3629
2022-02-02 19:57:03 +00:00
Alex Gleason 7c044a1841
FilterControllerTest: tag erratic test 2022-02-02 13:10:39 -06:00
Haelwenn (lanodan) Monnier d1cc9e4eaf
Fix tests matching on "warn"
Moving it to "warning" would break tests on 1.12.x
2022-02-02 12:45:26 -06:00
Alex Gleason 71c80204c9 Merge branch 'roadhouse' into 'develop'
Roadhouse debugging

See merge request pleroma/pleroma!3628
2022-02-02 18:44:09 +00:00
Alex Gleason bd81af731e
Tag erratic test 2022-02-02 12:29:53 -06:00
Alex Gleason 2d77976305
Add tests for mismatched context in replies 2022-02-02 12:19:35 -06:00
Alex Gleason 5a4e3aa715
Test that a Create/Note from Roadhouse validates 2022-02-02 11:02:23 -06:00
Alex Gleason 61dfeca1cc
Test that a Note from Roadhouse validates 2022-02-02 10:38:30 -06:00
Alex Gleason de99fd7804 Merge branch 'birth-dates' into 'develop'
Birthdays: Fix outgoing federation of birth dates

See merge request pleroma/pleroma!3626
2022-02-01 15:21:34 +00:00
marcin mikołajczak f8f2a17754 Birthdays: Fix outgoing federation of birth dates
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-02-01 12:00:26 +01:00
Alex Gleason 64944c164f Merge branch 'mention-mrf-md' into 'develop'
ForceMentionsInContent: improve display of Markdown posts

See merge request pleroma/pleroma!3625
2022-01-28 16:53:40 +00:00
Alex Gleason 3bf257171f
ForceMentionsInContent: improve display of Markdown posts 2022-01-27 14:15:06 -06:00
Alex Gleason a146f6acab Merge branch 'mentions-mrf-replies-only' into 'develop'
ForceMentionsInContent: don't apply it to top-level posts

See merge request pleroma/pleroma!3624
2022-01-27 19:57:28 +00:00
Alex Gleason 27cb3d6273
ForceMentionsInContent: don't apply it to top-level posts 2022-01-26 21:24:26 -06:00
Alex Gleason 2bab9dd175 Merge branch 'fix-bot-policy' into 'develop'
ForceBotUnlistedPolicy: fix to stop unlisting my posts >:(

See merge request pleroma/pleroma!3623
2022-01-26 23:25:58 +00:00
bot a4de79ced0 ForceBotUnlistedPolicy: fix to stop unlisting my posts >:( 2022-01-26 22:53:02 +00:00
Alex Gleason 8951be7710 Merge branch 'inline-mention-self' into 'develop'
ForceMentionsInContent: don't mention self

See merge request pleroma/pleroma!3622
2022-01-25 21:49:33 +00:00
Alex Gleason 0604b0dd09
ForceMentionsInContent: don't mention self 2022-01-25 12:33:47 -06:00
Alex Gleason 0f4e0e667e Merge branch 'recipients-inline' into 'develop'
ForceMentionsInContent: wrap mentions in a span, fix the formatting

See merge request pleroma/pleroma!3620
2022-01-25 17:43:39 +00:00
Alex Gleason 99e9c2c668 Merge branch 'birth-dates' into 'develop'
Fix show_birthday

See merge request pleroma/pleroma!3621
2022-01-25 16:59:07 +00:00
Alex Gleason 65b4d2ce84
ForceMentionsInContent: fix order of mentions 2022-01-25 10:42:34 -06:00
marcin mikołajczak ab12a05a43 AccountView: Add test for show_birthday
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-25 17:34:36 +01:00
marcin mikołajczak c1ae35ff2c Fix show_birthday
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-25 17:04:41 +01:00
Alex Gleason dd7977bb68 Merge branch 'birth-dates' into 'develop'
Birth dates

See merge request pleroma/pleroma!3608
2022-01-25 15:35:47 +00:00
marcin mikołajczak 249fe88d12 Birthdays: users_birthday_month_day_index
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-25 11:49:42 +01:00
Alex Gleason 267184b70e
ForceMentionsInContentTest: return mentions in a not terrible format 2022-01-24 20:03:43 -06:00
Alex Gleason c5a20c80c4
ForceMentionsInContent: simplify finding users 2022-01-24 19:44:44 -06:00
Alex Gleason d5644a52aa
ForceMentionsInContent: wrap inline mentions with span tag 2022-01-24 19:11:45 -06:00
Alex Gleason 1bbc701a3a
ForceMentionsInContent: use `to` instead of `tag` 2022-01-24 19:11:14 -06:00
Alex Gleason 19d557c870 Merge branch 'revert-6e27fc9c' into 'develop'
Revert "Merge branch 'log-slow-queries' into 'develop'"

See merge request pleroma/pleroma!3619
2022-01-24 19:06:33 +00:00
Alex Gleason 53de3a9d44 Revert "Merge branch 'log-slow-queries' into 'develop'"
This reverts merge request !3553
2022-01-24 18:54:43 +00:00
Alex Gleason 7b87cac6cc Merge branch 'preserve-mentions-order' into 'develop'
Preserve order of mentioned users

See merge request pleroma/pleroma!3617
2022-01-23 15:23:56 +00:00
marcin mikołajczak 75c4fefb1c Add a test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-23 13:03:00 +01:00
marcin mikołajczak 1dba3bc4dc Preserve order of mentioned users
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-23 12:29:01 +01:00
marcin mikołajczak 61bae9a407 Create index for `show_birthday`
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-23 12:07:05 +01:00
marcin mikołajczak e3d394eef6 Birthdays: Fix tests, add test for misskey
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-23 09:41:21 +01:00
marcin mikołajczak 0266bc3c96 Birthdays: hide_birthday -> show_birthday
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-23 09:13:33 +01:00
Alex Gleason aaa9314f4c
Merge remote-tracking branch 'origin/develop' into birth-dates 2022-01-22 14:24:50 -06:00
Alex Gleason 9983799ccb Merge branch 'less_erratic_expiration_test' into 'develop'
Make test less erratic by adding five second tolerance

See merge request pleroma/pleroma!3614
2022-01-22 20:09:09 +00:00
Alex Gleason 98ce239ebc
Update description.exs 2022-01-22 13:28:00 -06:00
Alex Gleason 66e8c6f90f
Birthdays: birth_date --> birthday 2022-01-22 13:21:55 -06:00
NEETzsche 7a015b1fe2 Make test less erratic by adding five second tolerance 2022-01-22 12:07:54 -07:00
Alex Gleason 263b42a73d Merge branch 'apple_autofill_suggestions' into 'develop'
Add autocompelete values suggested by Apple

See merge request pleroma/pleroma!3612
2022-01-22 18:38:03 +00:00
Alex Gleason 78c6aeee1b Merge branch 'erratic-filter-test' into 'develop'
FilterTest: tag erratic test

See merge request pleroma/pleroma!3613
2022-01-22 18:32:34 +00:00
Alex Gleason f5d4ef50b4
FilterTest: tag erratic test 2022-01-22 12:13:09 -06:00
Finn Behrens 8328289619 Add autocompelete values suggested by Apple
Link: https://developer.apple.com/documentation/security/password_autofill/enabling_password_autofill_on_an_html_input_element
2022-01-22 10:00:43 +01:00
Alex Gleason 6ffe43af70 Merge branch 'private-pins' into 'develop'
Support private pinned posts from Mastodon

See merge request pleroma/pleroma!3611
2022-01-20 23:18:24 +00:00
Alex Gleason 560bcd58ab Merge branch 'from/develop/tusooa/add-glitch-lily' into 'develop'
Add glitch-lily to clients.md

See merge request pleroma/pleroma!3610
2022-01-20 23:11:35 +00:00
Alex Gleason 00523bdf5e
Test pinned private statuses in AccountController 2022-01-20 16:54:43 -06:00
a1batross 53df0c2d81 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-01-20 20:06:02 +01:00
marcin mikołajczak 88c21b9282 Support private pinned posts from Mastodon
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-20 12:35:32 +01:00
Tusooa Zhu 9faac1094f
Add glitch-lily to clients.md 2022-01-19 23:56:57 -05:00
rinpatch 787a02c4b1 Merge branch 'feat/force-mentions-mrf' into 'develop'
Add ForceMentionsInContentPolicy

See merge request pleroma/pleroma!3609
2022-01-20 00:27:29 +00:00
marcin mikołajczak 74cf0f0355 Update changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-19 23:52:46 +01:00
rinpatch a02cfd7f52 Add ForceMentionsInContentPolicy
Even though latest PleromaFE supports displaying these properly, mobile
apps still exist, so I think we should offer a workaround to those who
want it.
2022-01-19 21:04:57 +03:00
marcin mikołajczak c180f9276f check if remote bday is valid
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-19 17:19:28 +01:00
marcin mikołajczak dfb2808535 Birth dates: Add tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-18 23:15:31 +01:00
marcin mikołajczak 397f67fef8 Format code, expose instance configuration related to birth dates
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-18 18:18:38 +01:00
Alex Gleason 70fbd1f09e Merge branch 'document-oauth-tokens' into 'develop'
Docs: PleromaAPI oauth_tokens endpoints

See merge request pleroma/pleroma!3607
2022-01-18 17:18:00 +00:00
Alex Gleason 1dfb67f1e0
Docs: PleromaAPI oauth_tokens endpoints 2022-01-18 11:02:23 -06:00
Alex Gleason 69b089c894 Merge branch 'erratic-allow-failure' into 'develop'
unit-testing-erratic: allow failure

See merge request pleroma/pleroma!3606
2022-01-18 14:56:26 +00:00
marcin mikołajczak b108b05650 Birth dates, birthday reminders API, allow instance admins to require minimum age
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-18 14:57:48 +01:00
Alex Gleason 72d5e29117 Merge branch 'hakabahitoyo-develop-patch-44025' into 'develop'
[Document] Update cheatsheet.md. Add `Pleroma.Web.ActivityPub.MRF.KeywordPolicy`.

See merge request pleroma/pleroma!3604
2022-01-18 13:18:36 +00:00
Alex Gleason ac434f83c3
unit-testing-erratic: allow failure 2022-01-15 13:35:22 -06:00
Alex Gleason ecdc81b37a Merge branch 'linkify-0.5.2' into 'develop'
Upgrade Linkify to v0.5.2

Closes #2376, #2386, and #2485

See merge request pleroma/pleroma!3605
2022-01-15 19:13:56 +00:00
Alex Gleason 39c5ebb1f6
mix format 2022-01-15 12:55:12 -06:00
Alex Gleason cd8f1aac47
CHANGELOG: hashtags markdown fix 2022-01-15 12:36:33 -06:00
Alex Gleason 31148c1857
FormatterTest: fix nesting in expected output 2022-01-15 12:31:36 -06:00
Alex Gleason db90c9e3b0
Merge remote-tracking branch 'mkfain/test-for-breaking-markdown' into linkify-0.5.2 2022-01-15 12:27:42 -06:00
Alex Gleason d5eb44e8b3
Upgrade Linkify to v0.5.2 2022-01-15 12:27:16 -06:00
Hakaba Hitoyo 790081540d Update cheatsheet.md. Add `Pleroma.Web.ActivityPub.MRF.KeywordPolicy`. 2022-01-15 12:26:33 +00:00
Alex Gleason 71baa713bc Merge branch 'show_blockers_visible' into 'develop'
Add blockers_visible to features list when it's enabled

See merge request pleroma/pleroma!3603
2022-01-14 23:08:34 +00:00
NEETzsche 6284353025 Add blockers_visible to features list when it's enabled 2022-01-14 23:08:33 +00:00
rinpatch 8b5a658991 Merge branch 'mergeback' into 'develop'
Merge stable back into develop

Closes #2753

See merge request pleroma/pleroma!3602
2022-01-14 22:15:10 +00:00
Alex Gleason a4436bcc3f
Merge remote-tracking branch 'origin/stable' into mergeback 2022-01-14 12:37:00 -06:00
Alex Gleason 84dcb55b0f Merge branch 'account-endorsements' into 'develop'
Account endorsements

See merge request pleroma/pleroma!3601
2022-01-13 19:02:21 +00:00
marcin mikołajczak eedf551eed Add more tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-12 22:41:34 +01:00
marcin mikołajczak 0f90fd5805 WIP account endorsements
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-01-12 18:15:10 +01:00
rinpatch 62a45747d9 Merge branch 'release/2.4.2' into 'stable'
2.4.2 Release

See merge request pleroma/pleroma!3599
2022-01-11 20:47:02 +00:00
Lain Soykaf b34f0a6e51 CI: Conservatively update release images so they keep building. 2022-01-11 13:59:53 +03:00
Lain Soykaf e4cfdfd701 CI: Upload the image for all platforms
For some reason the other platforms started failing, too. This
fixes it. Why? Don't know.
2022-01-11 13:59:28 +03:00
rinpatch a98a127718 Pleroma-FE bundle: update to b13d8f7e6339e877a38a28008630dc8ec64abcdf 2022-01-11 13:49:06 +03:00
rinpatch ea204dbca1 mix.lock: sync with mix.exs
hackney version was bumped in mix.exs, but mix.lock was not updated
2022-01-11 13:48:33 +03:00
rinpatch f4bc2f5975 Add 2.4.2 changelog entry and bump mix version 2022-01-11 13:39:23 +03:00
Alex Gleason cd3175c7fe Merge branch 'fix/rich-media-test-escape-unicrud' into 'develop'
Escape unicode RTL overrides in rich media parser tests

See merge request pleroma/pleroma!3598
2022-01-11 13:39:23 +03:00
lain bf0b32c9aa Merge branch 'pleroma-result-1_13' into 'develop'
move result into with guard

See merge request pleroma/pleroma!3557
2022-01-11 13:39:23 +03:00
marcin mikołajczak 4f249b2397 Merge remote-tracking branch 'origin/develop' into account-endorsements 2022-01-10 20:04:14 +01:00
Alex Gleason 753a9b3f32 Merge branch 'fix/rich-media-test-escape-unicrud' into 'develop'
Escape unicode RTL overrides in rich media parser tests

See merge request pleroma/pleroma!3598
2022-01-10 15:07:09 +00:00
rinpatch fd043b0ab3 Escape unicode RTL overrides in rich media parser tests
Elixir 1.13 does not allow them in raw form anymore, resulting in errors
like this when running the test:

== Compilation error in file test/pleroma/web/rich_media/parser_test.exs ==
** (SyntaxError) test/pleroma/web/rich_media/parser_test.exs:136:45: invalid bidirectional formatting character in string: \u202C. If you want to use such character, use it in its escaped \u202C form instead
2022-01-10 17:51:53 +03:00
lain 991b26f494 Merge branch 'update-hackney' into 'develop'
Mix: upgrade Hackney to 1.18.0

Closes #2753

See merge request pleroma/pleroma!3549
2022-01-10 17:40:31 +03:00
Alex Gleason 2451d65bd8 Merge branch 'api-docs-fixes' into 'develop'
Docs: fix various Pleroma API endpoints paths, fix MFA response

See merge request pleroma/pleroma!3596
2022-01-07 20:29:28 +00:00
Alex Gleason e8b340aaa7
Docs: fix various Pleroma API endpoints paths, fix MFA response 2022-01-07 12:51:54 -06:00
a1batross acb15ca83f Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2022-01-02 22:46:53 +01:00
Alex Gleason a3094b64df Merge branch 'change/web-push-encryption-dep' into 'develop'
Upgrade web_push_encryption to 0.3.1

See merge request pleroma/pleroma!3592
2022-01-02 15:41:56 +00:00
Sean King bf995a7770
Upgrade web_push_encryption to 0.3.1 2022-01-01 21:02:09 -07:00
Alex Gleason c8026fe492 Merge branch 'change/concurrent-limiter-dep' into 'develop'
Change concurrent_limiter to version 0.1.1

See merge request pleroma/pleroma!3591
2022-01-01 22:15:08 +00:00
Sean King 91ea394cd0
Change concurrent_limiter to Hex PM version 0.1.1 2022-01-01 14:49:57 -07:00
Alex Gleason 86e692aeb1 Merge branch 'erratic-streamer-test' into 'develop'
StreamerTest: tag erratic test

See merge request pleroma/pleroma!3590
2021-12-31 16:40:14 +00:00
Alex Gleason 2ae867842b
StreamerTest: tag erratic test 2021-12-31 10:29:50 -06:00
Sean King dafcf896d9 Merge more stuff from upstream develop branch 2021-12-30 14:25:45 -07:00
lain e25af3f2d8 Merge branch 'more-efficient-ci' into 'develop'
CI: Use own package as base

See merge request pleroma/pleroma!3577
2021-12-30 15:53:33 +00:00
Sean King ffeae7ef2c
Fix merge conflict in CHANGELOG.md 2021-12-29 18:08:50 -07:00
lain 84420d9439 Merge branch 'chore/user-relationships-target-id-rel-type-index' into 'develop'
Added index on [:target_id, :relationship_type] to :user_relationships

See merge request pleroma/pleroma!3588
2021-12-29 13:06:47 +00:00
Ivan Tashkinov a7bdefc208 `mix format` 2021-12-29 11:44:33 +03:00
Ivan Tashkinov 0c7fb520bf Added index on [:target_id, :relationship_type] to :user_relationships (speeds up `Notification.exclude_blockers/_`). 2021-12-29 11:41:21 +03:00
a1batross d92307a733 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-12-28 23:41:25 +01:00
Alex Gleason a61ed5c488 Merge branch 'changelog' into 'develop'
Update CHANGELOG.md

See merge request pleroma/pleroma!3586
2021-12-28 21:42:39 +00:00
Alex Gleason 5f87472cdf
Update CHANGELOG.md 2021-12-28 15:14:09 -06:00
Alex Gleason b5b98f9e10 Merge branch 'mastodon-lookup' into 'develop'
MastoAPI: Add `GET /api/v1/accounts/lookup`

See merge request pleroma/pleroma!3584
2021-12-28 21:00:09 +00:00
marcin mikołajczak 1657db656c AccountController.lookup: skip auth
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-28 20:02:59 +01:00
marcin mikołajczak 0dd1caa841 AccountController.lookup: skip visibility check
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-28 18:24:48 +01:00
marcin mikołajczak 9032d065e6 wip
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-28 18:07:19 +01:00
marcin mikołajczak 746c9daa62 Merge remote-tracking branch 'pleroma/develop' into mastodon-lookup
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-28 16:27:27 +01:00
marcin mikołajczak f734579965 MastoAPI: Add `GET /api/v1/accounts/lookup`
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-28 16:11:17 +01:00
Alex Gleason de7f84deb3 Merge branch 'apps-api-endpoint' into 'develop'
Apps API endpoint

See merge request pleroma/pleroma!3583
2021-12-28 14:38:02 +00:00
Tusooa Zhu 9a27cb4f9d
Deal with target not found error in add_alias
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu 3fd13b70ec
Test that the target account is re-fetched in move_account
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu eb383ef8d3
Make move_account endpoint process non-existent users properly
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu a677c621e8
Make move_following worker follow then unfollow
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu 4f44fd32ea
Federate unfollow activity in move_following properly
0: Use the CommonAPI unfollow function to make sure the
unfollow activity is federated.

1: Limit the follow and unfollow to local followers only,
while let the romote servers decide whether to move their followers.

Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu e41eee5ed1
Make Move activity federate properly
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu 1d8abf2511
Document aliases endpoints
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu 54d7b4354c
Add deleting alias endpoint
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu c1aa3c98ac
Add get and add aliases endpoints
Ref: emit-move
2021-12-28 01:11:08 -05:00
Tusooa Zhu 60081a8818
Add User.add_alias/2 and User.alias_users/1
Ref: emit-move
2021-12-28 01:11:07 -05:00
Tusooa Zhu 3092558bc1
Add changelog 2021-12-28 01:11:06 -05:00
Tusooa Zhu df90b3e66a
Document move_account API
Ref: emit-move
2021-12-28 01:10:39 -05:00
Tusooa Zhu 0af77b20c1
Implement moving account
Ref: emit-move
2021-12-28 01:10:34 -05:00
Alex Gleason 52a3f0f08b Merge branch 'ensure-staff-privileged-strict' into 'develop'
EnsureStaffPrivilegedPlug: don't let non-moderators through

See merge request pleroma/pleroma!3582
2021-12-28 00:53:11 +00:00
Alex Gleason 5c80d4087d
PleromaAPI.AppView: add test 2021-12-27 18:52:34 -06:00
Alex Gleason 7704a722c0
AppController: remove unnecessary `require Logger` 2021-12-27 18:30:16 -06:00
Alex Gleason cb2a072e62
Apps: add test for get_user_apps/1 2021-12-27 18:29:03 -06:00
Alex Gleason 2e4a1c56c3
AppController: test creating with and without a user 2021-12-27 18:14:15 -06:00
Alex Gleason fa35e24a5e
Apps: add user_id index 2021-12-27 18:05:35 -06:00
Alex Gleason f5c3d45120
Merge remote-tracking branch 'origin/develop' into apps-api-endpoint 2021-12-27 18:01:25 -06:00
Alex Gleason 138f5a4517
EnsureStaffPrivilegedPlug: don't let non-moderators through 2021-12-27 17:18:26 -06:00
Alex Gleason 264f0fde1b Merge branch 'admin-fix-duplicated-endpoints' into 'develop'
AdminAPI: fix duplicated routes

See merge request pleroma/pleroma!3581
2021-12-27 23:12:14 +00:00
Alex Gleason a3fa987611
AdminAPI: fix duplicated routes 2021-12-27 16:58:10 -06:00
a1batross 10da8c523d Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-12-27 22:13:53 +01:00
Alex Gleason fd9260d1b5 Merge branch 'finch' into 'develop'
Finch support

See merge request pleroma/pleroma!3565
2021-12-27 18:27:13 +00:00
Alex Gleason 9b5dbd20b0 Merge branch 'tag-gun-erratic' into 'develop'
ConnectionPoolTest: tag erratic test

See merge request pleroma/pleroma!3580
2021-12-27 17:41:28 +00:00
Alex Gleason 326575d5b7
Merge remote-tracking branch 'origin/develop' into finch 2021-12-27 11:31:15 -06:00
Alex Gleason d61a5515e6
ConnectionPoolTest: tag erratic test 2021-12-27 11:27:25 -06:00
Alex Gleason a659428024 Merge branch 'restricted-moderators' into 'develop'
AdminAPI: Optionally restrict moderators from accessing sensitive data

See merge request pleroma/pleroma!3578
2021-12-27 17:06:22 +00:00
Alex Gleason 479fc5fff8
EnsureStaffPrivilegedPlug: add tests 2021-12-27 10:39:59 -06:00
Alex Gleason 6e27fc9c12 Merge branch 'log-slow-queries' into 'develop'
Log slow Ecto queries

See merge request pleroma/pleroma!3553
2021-12-27 15:41:06 +00:00
Ivan Tashkinov 08c0f09bad Made slow queries logging disabled by default. 2021-12-27 09:13:31 +03:00
Alibek Omarov f02715c4b2 Fix lint errors 2021-12-27 03:42:03 +03:00
Alibek Omarov f66675f349 API: fix duplicate :get_password_token route 2021-12-27 02:57:54 +03:00
Alibek Omarov 1c223331fc API: show info about privileged staff in instance metadata 2021-12-27 02:28:09 +03:00
Alibek Omarov cd1041c3a4 API: optionally restrict moderators from accessing sensitive data 2021-12-27 02:27:48 +03:00
a1batross 28d4512fe6 Merge develop 2021-12-27 00:14:43 +01:00
Ivan Tashkinov 3e9e7178bc Configurability of slow queries logging ([:pleroma, :telemetry, :slow_queries_logging]). Adjusted log messages truncation to 65 kb (was default: 8 kb). Non-truncated logging of slow query params. 2021-12-26 22:49:00 +03:00
Sean King 8ef1d8b566 Revert "Merge branch 'notice-routes' into 'develop'" 2021-12-26 11:02:51 -07:00
Lain Soykaf ac3b503721 CI: Fix the broken tasks. 2021-12-26 18:54:54 +01:00
Lain Soykaf c52390a7d9 CI: Use own package as base
So we can skip updating and installing the same packages a million
times. It will still grab the hex.pm stuff -- maybe we can find a way to
avoid this, too.
2021-12-26 18:05:42 +01:00
lain 3b8eaadb0d Merge branch 'erratic' into 'develop'
CI: Start testing erratic test again

See merge request pleroma/pleroma!3575
2021-12-26 16:35:09 +00:00
Lain Soykaf 7ed2258979 Update changelog 2021-12-26 17:00:09 +01:00
Lain Soykaf 4cf03046f5 Merge branch 'finch' of git.pleroma.social:pleroma/pleroma into finch 2021-12-26 16:57:17 +01:00
Lain Soykaf 6efbd08854 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into finch 2021-12-26 16:41:17 +01:00
Lain Soykaf e8e8d2262e CI: Start testing erratic test again
Erratic tests are now ran in their own task, so we don't block
normal testing. The runtime is under a minute, so even if this one
has to be retried, it shouldn't take forever.
2021-12-26 16:17:48 +01:00
Alex Gleason 2e2fb5f802 Merge branch 'ci-dont-retry' into 'develop'
GitLab CI: don't retry failed jobs

See merge request pleroma/pleroma!3574
2021-12-26 02:40:26 +00:00
Alex Gleason 913141379c Merge branch 'profile-directory' into 'develop'
MastoAPI: Profile directory

See merge request pleroma/pleroma!3573
2021-12-26 02:35:17 +00:00
marcin mikołajczak de006443f0 MastoAPI: Profile directory 2021-12-26 02:35:17 +00:00
Alex Gleason 0eb6e858f7 Merge branch 'notice-routes' into 'develop'
Add notice compatibility routes for other frontends

Closes #1785

See merge request pleroma/pleroma!3402
2021-12-26 02:33:28 +00:00
Alex Gleason cac4ed5eb0
GitLab CI: don't retry failed jobs 2021-12-25 20:15:21 -06:00
Alex Gleason 2c06eff519
Pleroma.Web.base_url() --> Endpoint.url() 2021-12-25 20:11:14 -06:00
Alex Gleason db2bf55e9b
Merge remote-tracking branch 'origin/develop' into notice-routes 2021-12-25 19:57:53 -06:00
Alex Gleason 73609211a4 Merge branch 'account-notes' into 'develop'
MastoAPI: Add user notes on accounts

See merge request pleroma/pleroma!3540
2021-12-25 01:41:12 +00:00
Alex Gleason b96a58ff28 Merge branch 'account-subscriptions' into 'develop'
MastoAPI: accept notify param in follow request

See merge request pleroma/pleroma!3555
2021-12-25 01:34:27 +00:00
Alex Gleason b4291bce8a Merge branch 'remote-follow-api' into 'develop'
remote_interaction API endpoint

See merge request pleroma/pleroma!3545
2021-12-25 01:32:47 +00:00
marcin mikołajczak 9775955974 Merge remote-tracking branch 'origin/develop' into remote-follow-api
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-25 00:52:02 +01:00
Alex Gleason 1fa616638b Merge branch 'warnings-as-errors' into 'develop'
Enable :warnings_as_errors for CI only

See merge request pleroma/pleroma!3474
2021-12-23 16:19:57 +00:00
Alex Gleason 2caade10df Merge branch 'add-nodeinfo-doc' into 'develop'
Add initial Nodeinfo document

See merge request pleroma/pleroma!3546
2021-12-23 16:01:03 +00:00
Hakaba Hitoyo 87871ac857 Add initial Nodeinfo document 2021-12-23 16:01:02 +00:00
Alex Gleason d9746ae4cb Merge branch 'from/develop/tusooa/2802-propagate-reject' into 'develop'
Handle Reject for already-accepted Follows properly

Closes #2766 and #2802

See merge request pleroma/pleroma!3568
2021-12-23 16:00:16 +00:00
a1batross b7851c87ad Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-12-22 19:13:11 +01:00
Alex Gleason 05c7a14101 Merge branch 'moderators' into 'develop'
AdminAPI: let moderators actually do things

Closes #2490

See merge request pleroma/pleroma!3480
2021-12-22 16:37:35 +00:00
Alex Gleason 9c1cb87eff Merge branch 'erratic-tests' into 'develop'
Skip erratic tests

See merge request pleroma/pleroma!3572
2021-12-22 04:14:31 +00:00
Alex Gleason 2ce7dae6de
Skip erratic tests 2021-12-21 22:04:15 -06:00
Alex Gleason 3f8fc34593
Merge remote-tracking branch 'origin/develop' into moderators 2021-12-19 12:55:36 -06:00
Alex Gleason 50892a198d Merge branch 'mkljczk-develop-patch-64464' into 'develop'
Add "exposable_reactions" to features, if showing reactions

See merge request pleroma/pleroma!3523
2021-12-19 18:51:41 +00:00
Alex Gleason b0d2b53934 Merge branch 'manifest' into 'develop'
Expose /manifest.json for PWA

Closes #882

See merge request pleroma/pleroma!3544
2021-12-19 18:18:59 +00:00
Ivan Tashkinov e009950845 Slow queries logging improvements: added EXPLAIN results, listed params, improved stacktrace. 2021-12-19 20:45:28 +03:00
Alex Gleason df5359aa72 Merge branch 'replies-count' into 'develop'
Fix replies count for remote replies

See merge request pleroma/pleroma!3541
2021-12-19 17:36:25 +00:00
Alex Gleason d1510c98d7 Merge branch 'link-headers-chats' into 'develop'
Add link headers in ChatController.index2

See merge request pleroma/pleroma!3562
2021-12-19 17:35:50 +00:00
Alex Gleason 1ff9ffed83 Merge branch 'live-dashboard' into 'develop'
Add Phoenix LiveDashboard

See merge request pleroma/pleroma!3566
2021-12-19 17:35:14 +00:00
Alex Gleason e4f9cb1c1b
Merge remote-tracking branch 'origin/develop' into manifest 2021-12-19 11:33:10 -06:00
Alex Gleason bd853199d9 Merge branch 'v2-suggestions' into 'develop'
V2 suggestions

See merge request pleroma/pleroma!3547
2021-12-19 17:31:17 +00:00
Alex Gleason 7c1d804554 Merge branch 'fix-search-dos' into 'develop'
Search: limit number of results (prevent DoS)

See merge request pleroma/pleroma!3563
2021-12-19 17:30:52 +00:00
lain b686d68cdb Merge branch 'from/develop/tusooa/alpine-3.14' into 'develop'
Bump alpine to 3.14

See merge request pleroma/pleroma!3569
2021-12-18 15:04:55 +00:00
Tusooa Zhu ff17884c3b
Bump alpine to 3.14 2021-12-17 18:03:06 -05:00
Tusooa Zhu 8376e83f61
Lint 2021-12-17 16:52:50 -05:00
Tusooa Zhu 538d5ac210
Add changelog for https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3568 2021-12-17 16:47:48 -05:00
Tusooa Zhu 951d1592c7
Add test to ensure removed follower cease to have relationship with ex-followee
https://git.pleroma.social/pleroma/pleroma/-/issues/2802
2021-12-17 16:44:22 -05:00
Tusooa Zhu bfd870380c
Add test to ensure the blocked cease to have follow relationship to the blocker
https://git.pleroma.social/pleroma/pleroma/-/issues/2766
2021-12-17 14:44:28 -05:00
Tusooa Zhu 3d41ccc47b
Allow updating accepted follow activities in Web.ActivityPub.Utils.update_follow_state_for_all/2
Mastodon uses the Reject activity also for the purpose of removing
a follower, in addition to reject a follow request. We should
also update the original Follow activity in this case.
2021-12-17 14:17:51 -05:00
lain 8cfd527589 Merge branch 'verbose-emoji-loader' into 'develop'
emoji/loader.ex: be more verbose about which emoji pack config is loading now

See merge request pleroma/pleroma!3567
2021-12-17 14:35:01 +00:00
a1batross 31b9034a27 emoji/loader.ex: be more verbose about which emoji pack config is loading now
To avoid issue when one of the hundred JSON files is malformed and
administrator don't know which one
2021-12-17 14:15:44 +00:00
a1batross ec41de2201 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-12-17 13:57:53 +01:00
Mark Felder 5660bee2dc Dirty hack to make mediaproxy functional by relying on Hackney for that part 2021-12-16 11:36:58 -06:00
Alex Gleason e1b89fe3aa
Merge remote-tracking branch 'origin/develop' into live-dashboard 2021-12-15 19:05:36 -05:00
Alex Gleason 29d80b39f2
Add Phoenix LiveDashboard
Co-authored-by: Egor Kislitsyn <egor@kislitsyn.com>
2021-12-15 19:05:27 -05:00
lain 6eb7d69e60 Merge branch 'delete-account-fix' into 'develop'
TwitterAPI: allow deleting one's own account with request body

Closes #2799 and #2746

See merge request pleroma/pleroma!3564
2021-12-15 21:26:45 +00:00
Lain Soykaf 4e98ba3c3a Application: Actually start finch if it's needed 2021-12-15 15:42:37 -05:00
Lain Soykaf abb62dd886 Application, dependencies: prepare for finch 2021-12-15 13:53:09 -05:00
Alex Gleason 8672ad6b00
TwitterAPI: allow deleting one's own account with request body 2021-12-13 17:07:29 -05:00
Alex Gleason 108dfd1f87
Search: limit number of results 2021-12-12 22:50:07 -06:00
marcin mikołajczak dff435488d Add link headers in ChatController.index2
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-12 17:43:18 +01:00
lain fb0aa0661c Merge branch 'fix-attachment-dimensions' into 'develop'
Fix attachment dimensions

Closes #2794

See merge request pleroma/pleroma!3559
2021-12-09 16:05:06 +00:00
lain 60295b58f9 Merge branch 'benchmark-fixes' into 'develop'
Benchmarks: fix user timeline and tags benchmarks

See merge request pleroma/pleroma!3560
2021-12-09 15:38:26 +00:00
Alex Gleason d194b5b7fe
Benchmarks: fix user timeline and tags benchmarks 2021-12-08 11:54:41 -06:00
Alex Gleason 01cc099c8e
VideoHandlingTest: remove nil values 2021-12-07 21:55:54 -05:00
Haelwenn 992d9287d0 Apply alexgleason's suggestion(s) to 1 file(s) 2021-12-07 22:53:36 +00:00
Alex Gleason 2c96668a2c
Merge remote-tracking branch 'origin/develop' into fix-attachment-dimensions 2021-12-07 13:41:54 -05:00
Alex Gleason 335684182a
Fix VideoHandlingTest 2021-12-07 13:35:34 -05:00
lain b57041c59a Merge branch 'fixyfix' into 'develop'
Linting.

See merge request pleroma/pleroma!3558
2021-12-07 18:19:43 +00:00
Alex Gleason 3f03d71ea6
AttachmentValidator: ingest width and height 2021-12-07 12:59:03 -05:00
Lain Soykaf ca8c676867 Linting. 2021-12-07 12:12:23 -05:00
lain 500e126604 Merge branch 'pleroma-result-1_13' into 'develop'
move result into with guard

See merge request pleroma/pleroma!3557
2021-12-07 16:55:01 +00:00
lain e219e504ce Merge branch 'mix-lock' into 'develop'
Run `mix deps.get`

See merge request pleroma/pleroma!3556
2021-12-07 16:45:03 +00:00
Alex Gleason ab5dee84bf
Run `mix deps.get` 2021-12-07 10:03:31 -05:00
Finn Behrens 8af53101fb move result into with guard 2021-12-07 09:18:53 +01:00
Alex Gleason d9349bc52f
Transmogrifier: test fix_attachments/1 2021-12-07 01:10:47 -05:00
lain 613f55b078 Merge branch 'benchmark' into 'develop'
Fix benchmarks

See merge request pleroma/pleroma!3551
2021-12-06 21:16:30 +00:00
marcin mikołajczak c96e52b88c Add 'notifying' to relationship for compatibility with Mastodon
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-06 21:24:12 +01:00
marcin mikołajczak 3892bd353b Add test for following with subscription
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-06 21:15:03 +01:00
lain ab60c0c6c2 Merge branch 'optimisation/deactivated-subquery' into 'develop'
Make deactivated user check into a subquery

Closes #2792

See merge request pleroma/pleroma!3554
2021-12-06 19:55:52 +00:00
marcin mikołajczak 64a4c147b1 MastoAPI: accept notify param in follow request
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-06 19:36:58 +01:00
FloatingGhost db46913dcc make linter happy 2021-12-06 11:50:51 +00:00
FloatingGhost cd8bdbc761 Make deactivated user check into a subquery
Fixes #2792
2021-12-06 11:44:17 +00:00
Alex Gleason 949a53e327
Log Ecto queries > 500ms 2021-12-05 18:29:33 -05:00
Alex Gleason ce4560c2a1
Fix benchmarks 2021-12-03 16:20:54 -05:00
lain 5c573a8a28 Merge branch 'password-reset' into 'develop'
Restore POST /auth/password, fixes #2789

Closes #2789

See merge request pleroma/pleroma!3550
2021-12-03 15:13:10 +00:00
Alex Gleason ba2ed3c255
Fix frontend_status_plug_test.exs 2021-12-03 07:56:26 -06:00
Alex Gleason 8286ceb465
Merge remote-tracking branch 'origin/develop' into password-reset 2021-12-03 00:11:38 -06:00
Alex Gleason 5da4f33bf1
Restore POST /auth/password 2021-12-03 00:10:57 -06:00
lain 235c4139d7 Merge branch 'fix/2782-nodeinfo-active-users' into 'develop'
nodeinfo: report activeMonth and activeHalfyear users fields

Closes #2782

See merge request pleroma/pleroma!3536
2021-12-02 16:54:28 +00:00
marcin mikołajczak cd5fb84b76 remote_interaction API endpoint
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-12-02 16:08:44 +01:00
lain aaed93db27 Merge branch 'update-hackney' into 'develop'
Mix: upgrade Hackney to 1.18.0

Closes #2753

See merge request pleroma/pleroma!3549
2021-12-01 15:49:57 +00:00
lain d486d7d09e Merge branch 'force_pinned_objects_to_be_empty' into 'develop'
Force pinned_objects to be empty, not null

Closes #2788

See merge request pleroma/pleroma!3548
2021-11-29 18:08:10 +00:00
NEETzsche 182c563ed0 Force pinned_objects to be empty, not null 2021-11-29 18:08:09 +00:00
a1batross 809503011f Mix: upgrade Hackney to 1.18.0 2021-11-29 17:28:10 +00:00
marcin mikołajczak a9b0027071 Account endorsements
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-11-29 12:44:57 +01:00
Alex Gleason 6519f59d91
v2 Suggestions: return `is_suggested` through the API 2021-11-26 23:10:01 -06:00
Alex Gleason 8dc1d2201a
Instance: add v2_suggestions feature 2021-11-26 22:45:49 -06:00
Alex Gleason e5a7547fbe
v2 Suggestions: also filter out users you follow 2021-11-26 21:46:08 -06:00
Alex Gleason 437c1a5a52
v2 Suggestions: actually flter out dismissed suggestions 2021-11-26 21:09:37 -06:00
Alex Gleason aee55b9a8b
v2 Suggestions: dismiss a suggestion 2021-11-26 20:19:29 -06:00
Alex Gleason da06e1a17f
v2 Suggestions: add index on is_suggested column 2021-11-26 15:32:01 -06:00
Alex Gleason 6c0484d571
AdminAPI: suggest a user through the API 2021-11-26 15:19:01 -06:00
Alex Gleason e28d990ecb
v2 Suggestions: don't skip visibility check 2021-11-26 14:46:29 -06:00
Alex Gleason b17360cd7c
v2 Suggestions: rudimentary API response 2021-11-26 14:34:10 -06:00
Alex Gleason 7e1caddc58
v2 Suggestions: return empty array 2021-11-25 14:57:36 -06:00
Alex Gleason 720198d569
Merge remote-tracking branch 'pleroma/develop' into manifest 2021-11-24 17:58:58 -06:00
Alex Gleason cb9359335f
Expose /manifest.json for PWA 2021-11-24 17:50:55 -06:00
marcin mikołajczak d64d1b1d45 Fix replies count for remote replies
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-11-23 11:31:09 +01:00
rinpatch 588bcbac55 Apply 2 suggestion(s) to 2 file(s) 2021-11-22 10:54:44 +00:00
marcin mikołajczak 8e040e098b Lint
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-11-21 18:17:06 +01:00
marcin mikołajczak cb76faece9 Update test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-11-21 17:51:00 +01:00
marcin mikołajczak 106b5c2678 Fix a typo
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-11-21 17:36:37 +01:00
marcin mikołajczak 40414bf177 MastoAPI: Add user notes on accounts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2021-11-21 16:56:26 +01:00
Alibek Omarov efc28812b8 Add changelog entry 2021-11-17 00:39:10 +01:00
Haelwenn c97f99ccf2 Merge branch 'bugfix/markdown-newlines' into 'develop'
mix: Update earmark

See merge request pleroma/pleroma!3538
2021-11-16 13:54:34 +00:00
Haelwenn (lanodan) Monnier 5e15ceb49d mix: Update earmark
This should fix the presence of extraneous newlines in markdown output.

Related: https://github.com/pragdave/earmark/issues/406
2021-11-16 14:33:27 +01:00
lain add2b9cd8d Merge branch 'update-elixir' into 'develop'
CI: Upload the image for all platforms

See merge request pleroma/pleroma!3537
2021-11-15 20:17:38 +00:00
Lain Soykaf f78cb6ab9a CI: Upload the image for all platforms
For some reason the other platforms started failing, too. This
fixes it. Why? Don't know.
2021-11-15 21:04:43 +01:00
Alibek Omarov 04aca335aa nodeinfo: report activeMonth and activeHalfyear users fields 2021-11-15 17:01:30 +01:00
lain 4d341f51e1 Merge branch 'fix-tests' into 'develop'
Test fixes

See merge request pleroma/pleroma!3532
2021-11-15 14:31:27 +00:00
lain e2772d6bf1 Merge branch 'block-behavior' into 'develop'
Configurable block visibility, fixes #2123

Closes #2123

See merge request pleroma/pleroma!3242
2021-11-15 14:27:59 +00:00
lain 6e3df11693 Merge branch 'instance-deletion' into 'develop'
AdminAPI: endpoint to delete all content from a remote instance

See merge request pleroma/pleroma!3483
2021-11-15 14:24:13 +00:00
lain 6aff3d3204 Merge branch 'fix-object-deletion-timeout' into 'develop'
Fix Activity.delete_all_by_object_ap_id/1 timeout so users can be deleted

Closes #2704

See merge request pleroma/pleroma!3479
2021-11-15 13:21:42 +00:00
a1batross 8b689dfddc Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-11-15 13:18:29 +01:00
lain 838da53ea7 Merge branch 'bump/http_signatures-0.1.1' into 'develop'
mix: Update http_signatures to 0.1.1

See merge request pleroma/pleroma!3530
2021-11-15 11:58:49 +00:00
lain bd77243981 Merge branch 'userfeed-fe-fallback' into 'develop'
UserController: fall back to frontend when user isn't found

Closes #2730

See merge request pleroma/pleroma!3515
2021-11-15 10:48:56 +00:00
lain d058e1c978 Merge branch 'fix-releases' into 'develop'
CI: Conservatively update release images so they keep building.

See merge request pleroma/pleroma!3534
2021-11-14 20:35:10 +00:00
Lain Soykaf 5c7aa4a1e9 CI: Conservatively update release images so they keep building. 2021-11-14 20:37:32 +01:00
lain 0f8b10ff5a Merge branch 'bugfix/inbox-misleading-warning' into 'develop'
activity_pub_controller: Fix misleading debug warning in post_inbox_fallback

See merge request pleroma/pleroma!3531
2021-11-14 16:14:09 +00:00
lain eb0f7620f2 Merge branch 'update-crypt' into 'develop'
Mix: Update crypt to fix musl builds.

See merge request pleroma/pleroma!3533
2021-11-14 16:00:01 +00:00
Lain Soykaf 7dcc73f294 Mix: Update crypt to fix musl builds. 2021-11-14 16:04:08 +01:00
Lain Soykaf 871936b3ca MediaProxyCacheControllerTest: Fix unstable tests.
Cachex order isn't stable, so we can not depend on the order in
tests. This adds some sorting to make the tests stable.
2021-11-14 11:45:38 +01:00
Lain Soykaf 2dea4a8c04 StealEmojiPolicyTest: Make mocks explicit. 2021-11-14 11:44:24 +01:00
Lain Soykaf 26450a0be3 Mix: Upgrade mogrify library
The old library would modify a file on reading it, the new one
doesn't have this issue.
2021-11-14 11:43:39 +01:00
Haelwenn (lanodan) Monnier 23e91ec8dd activity_pub_controller: Fix misleading debug warning in post_inbox_fallback 2021-11-10 01:11:35 +01:00
Haelwenn (lanodan) Monnier e4ad4f0bd6 mix: Update http_signatures to 0.1.1 2021-11-10 00:53:32 +01:00
a1batross 0ba69edc29 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-10-10 23:25:54 +02:00
Haelwenn 6b5c2d5f86 Merge branch 'refactor/group_validator_fields' into 'develop'
object_validators: Group common fields in CommonValidations

See merge request pleroma/pleroma!3384
2021-10-10 08:57:11 +00:00
Haelwenn (lanodan) Monnier 23161526d4 object_validators: Group common fields in CommonValidations
Notes:
- QuestionValidator didn't have a :name field but that seems like a mistake
- `_fields` functions can't inherit others because of some Validators
- bto/bcc fields were absent in activities, also seems like a mistake
  (Well IIRC we don't or barely support bto/bcc anyway)
2021-10-10 02:50:06 +02:00
feld d8d819ddc7 Merge branch 'typo' into 'develop'
Fix typo

See merge request pleroma/pleroma!3528
2021-10-07 20:02:41 +00:00
Mark Felder 3af7db9fd7 Fix typo 2021-10-06 10:49:25 -05:00
Haelwenn fee2260633 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3513
2021-10-06 06:26:55 +00:00
Ryo Ueno 5f2aefee1b Translated using Weblate (Japanese)
Currently translated at 21.6% (23 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/ja/
2021-10-06 06:12:17 +00:00
Ryo Ueno 84a7eb5597 Added translation using Weblate (Japanese) 2021-10-06 06:12:17 +00:00
Hồ Nhất Duy a84aa10f70 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/vi/
2021-10-06 06:12:17 +00:00
Hồ Nhất Duy 3647c8e45b Added translation using Weblate (Vietnamese) 2021-10-06 06:12:17 +00:00
@liimee a3909f30b6 Translated using Weblate (Indonesian)
Currently translated at 64.1% (68 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/id/
2021-10-06 06:12:17 +00:00
@liimee f0d0d4f6e4 Translated using Weblate (Indonesian)
Currently translated at 61.3% (65 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/id/
2021-10-06 06:12:17 +00:00
@liimee f2806adeed Translated using Weblate (Indonesian)
Currently translated at 59.4% (63 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/id/
2021-10-06 06:12:17 +00:00
@liimee 4a15fd8a0a Translated using Weblate (Indonesian)
Currently translated at 55.6% (59 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/id/
2021-10-06 06:12:17 +00:00
@liimee bea8a204a9 Translated using Weblate (Indonesian)
Currently translated at 50.9% (54 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/id/
2021-10-06 06:12:17 +00:00
@liimee e00fe5b616 Translated using Weblate (Indonesian)
Currently translated at 4.7% (5 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/id/
2021-10-06 06:12:17 +00:00
@liimee 477d839444 Added translation using Weblate (Indonesian) 2021-10-06 06:12:17 +00:00
marcin mikołajczak 8467065aba Translated using Weblate (Polish)
Currently translated at 100.0% (104 of 104 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2021-10-06 06:12:17 +00:00
Haelwenn 390ceb9f94 Merge branch 'ci/bump-elixir-lint' into 'develop'
CI: Bump lint stage to elixir-1.12

See merge request pleroma/pleroma!3488
2021-10-06 06:12:08 +00:00
Haelwenn (lanodan) Monnier a17910a6c6
CI: Bump lint stage to elixir-1.12
Elixir 1.12 changed formatting rules, this allows to avoid having to rollback to run `mix format`
2021-10-06 08:11:05 +02:00
Haelwenn bdaa7e5394 Merge branch 'bugfix/crypt-pragma' into 'develop'
mix: Update crypt to fix #pragma warning

Closes #2710

See merge request pleroma/pleroma!3527
2021-10-06 05:58:52 +00:00
Haelwenn 92a8ff59aa Merge branch 'from/develop/tusooa/add-remove-emails' into 'develop'
Allow users to remove their emails if instance does not need email to register

See merge request pleroma/pleroma!3522
2021-10-06 05:44:44 +00:00
Haelwenn d2d462748c Merge branch 'partev-develop-patch-72837' into 'develop'
fix a typo "Optionnal" -> "Optional"

See merge request pleroma/pleroma!3525
2021-10-06 05:41:06 +00:00
Haelwenn (lanodan) Monnier 3b20eddcf8
mix: Update crypt to fix #pragma warning
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2710
2021-10-06 07:40:02 +02:00
Haelwenn d86b10a5e3 Merge branch 'dockerfix' into 'develop'
Docker fix

See merge request pleroma/pleroma!3526
2021-09-21 22:04:59 +00:00
Mark Felder 36df37e056 Update to newer buildx as current one can't be downloaded due to some Github error 2021-09-20 16:58:25 -05:00
partev ad5da6ae68 fix a typo "Optionnal" -> "Optional" 2021-09-12 15:31:49 +00:00
marcin mikołajczak 555d7d57c9 Add "exposable_reactions" to features, if showing reactions 2021-09-09 18:35:45 +00:00
Haelwenn 6b3842cf50 Merge branch 'remove/mastofe' into 'develop'
Remove MastoFE from Pleroma, fixes #2625

Closes #2625

See merge request pleroma/pleroma!3392
2021-09-07 16:41:53 +00:00
Tusooa Zhu 198250dcef
Allow users to remove their emails if instance does not need email to register 2021-09-05 21:27:02 -04:00
a1batross b58328ab94 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-09-04 17:21:15 +02:00
Haelwenn 6b1282a829 Merge branch 'small-cleanup' into 'develop'
Remove unused Logger

See merge request pleroma/pleroma!3521
2021-09-01 21:52:56 +00:00
Mark Felder 181282fb2e Remove unused Logger 2021-09-01 14:56:48 -05:00
a1batross c7fbe24de7 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-08-31 15:05:05 +02:00
a1batross 44f17ee637 update emojis 2021-08-31 15:04:46 +02:00
a1batross 8e1affa00a Delete NotifyLocalUsersPolicy 2021-08-31 15:03:32 +02:00
Haelwenn 2e695dbe3b Merge branch 'chores/2.4.1-develop' into 'develop'
Mergeback: 2.4.1

Closes #2758

See merge request pleroma/pleroma!3520
2021-08-29 18:51:50 +00:00
Haelwenn 0b2119d4a7 Merge branch 'release/2.4.1' into 'stable'
Release: 2.4.1

See merge request pleroma/pleroma!3501
2021-08-29 18:48:53 +00:00
Sean King 3117c60997
Make suggested change for create_response 2021-08-29 07:25:54 -06:00
Sean King 2e59cdd80f
Fix aliases sorting 2021-08-29 07:22:03 -06:00
Sean King 33f063204e
Add unit test for Pleroma API app controller 2021-08-28 23:18:12 -06:00
Sean King d02cf7b0cd
Fix lint 2021-08-28 18:17:09 -06:00
Sean King a14e1c0003
Move GET /api/v1/apps to GET /api/v1/pleroma/apps 2021-08-28 18:02:36 -06:00
a1batross a578626a9d Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-08-28 20:34:28 +02:00
Sean King eab6291094
Require follow and read OAuth scopes for GET /api/v1/apps 2021-08-28 11:13:25 -06:00
Haelwenn (lanodan) Monnier 28a17c2dc7
Merge branch 'release/2.4.1' into chores/2.4.1-develop 2021-08-28 18:49:04 +02:00
Haelwenn (lanodan) Monnier 7372609c5b
Release 2.4.1 2021-08-28 18:32:21 +02:00
someone cc4f20b130
mix pleroma.database set_text_search_config now runs concurrently and infinitely
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3514
2021-08-28 18:29:43 +02:00
Ilja 20084329ea
Selecting MRF policies didn't work as intended any more
* Policies were put under a new module (Pleroma.Web.ActivityPub.MRF.Policy instead of Pleroma.Web.ActivityPub.MRF), but this wasn't changed in the Pleroma.Web.ActivityPub.MRF @mrf_config_descriptions
* I don't have a unit test to prevent similar problems in the future because I don't find a proper way to do it
    * The descriptions in the unit tests are defined in the unit tests, so if someone changes module names in the code, the tests wont see it
    * The list is generated in Pleroma.Docs.Generator.list_behaviour_implementations, but I can't do a check in the when clause of the function to see if the provided module is a behaviour or not.

Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3509
2021-08-28 18:27:58 +02:00
Tusooa Zhu bd0eb1c675
Make activity search properly use GIN indexes
The original approach to search in GIN indexes is to use
`to_tsvector(text)` in the WHERE clause of the query. According to
postgres docs [pdoc], this method does not make use of the index,
while `to_tsvector(config, text)` does. This commit changed the
query to use the two-argument `to_tsvector()`.

[pdoc]: https://www.postgresql.org/docs/12/textsearch-tables.html

To obtain the search config in use, we make a query to the db first.
The `::regconfig::oid` hack is needed because Postgrex does not support
regconfig type directly [postgrexbug]. I use the conversion from and to
`oid` instead of `text` because I tested in the actual DB and querying
using the conversion via `text` is slow just as the one-argument
`to_tsvector()` variant.

[postgrexbug]: https://github.com/elixir-ecto/postgrex/issues/502

Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3519

Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2758
2021-08-28 18:26:04 +02:00
Ilja 53b0dd4ecc
List available frontends also when no static/frontends folder is present yet
* To see what front ends are installed, it ls static/frontends. When this folder doesn't exists yet, it will return an empty array.
* Installing still works since the folder is created during installation already

Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3510
2021-08-28 18:23:49 +02:00
Sam Therapy 09c42ce13e
Add Admin-FE menu for StealEmojiPolicy
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3512
2021-08-28 18:21:59 +02:00
Haelwenn 689a59f41f Merge branch 'set_text_search_config_timeout' into 'develop'
mix pleroma.database set_text_search_config now runs concurrently and infinitely

See merge request pleroma/pleroma!3514
2021-08-28 16:11:52 +00:00
Haelwenn 26abe96abf Merge branch 'docs_add_yunohost_installation' into 'develop'
Add YunoHost to installation guides

See merge request pleroma/pleroma!3497
2021-08-28 16:09:55 +00:00
Haelwenn bc62a35282 Merge branch 'features/ingestion-no-nil' into 'develop'
ObjectValidator.stringify_keys: filter out nil values

See merge request pleroma/pleroma!3506
2021-08-28 16:07:35 +00:00
Haelwenn 6633ec816f Merge branch 'admin_fe_dont_list_mrf_policies_any_more' into 'develop'
Selecting MRF policies didn't work as intended any more

Closes admin-fe#198

See merge request pleroma/pleroma!3509
2021-08-28 16:06:35 +00:00
Haelwenn 018b0948de Merge branch 'from/develop/tusooa/2758-gin-index-search' into 'develop'
Make activity search properly use GIN indexes

Closes #2758

See merge request pleroma/pleroma!3519
2021-08-28 15:54:37 +00:00
Tusooa Zhu a80cb58ac1
Add changelog for !3519 2021-08-27 22:31:22 -04:00
Tusooa Zhu a9984c6da7
Make activity search properly use GIN indexes
The original approach to search in GIN indexes is to use
`to_tsvector(text)` in the WHERE clause of the query. According to
postgres docs [pdoc], this method does not make use of the index,
while `to_tsvector(config, text)` does. This commit changed the
query to use the two-argument `to_tsvector()`.

[pdoc]: https://www.postgresql.org/docs/12/textsearch-tables.html

To obtain the search config in use, we make a query to the db first.
The `::regconfig::oid` hack is needed because Postgrex does not support
regconfig type directly [postgrexbug]. I use the conversion from and to
`oid` instead of `text` because I tested in the actual DB and querying
using the conversion via `text` is slow just as the one-argument
`to_tsvector()` variant.

[postgrexbug]: https://github.com/elixir-ecto/postgrex/issues/502

BUG: https://git.pleroma.social/pleroma/pleroma/-/issues/2758
2021-08-27 22:27:17 -04:00
Sean King baa8196fc9
Fix API spec, add app schema 2021-08-26 11:55:43 -06:00
Sean King ba6914f90a
Fix formatting in app_operation.ex 2021-08-26 11:11:37 -06:00
Sean King 6519732045
GET /api/v1/apps endpoint 2021-08-25 21:01:04 -06:00
Alex Gleason b11dbbf403
UserController: fall back to frontend when user isn't found 2021-08-17 18:32:32 -05:00
someone 4b940e441a mix pleroma.database set_text_search_config now runs concurrently and infinitely 2021-08-15 13:49:12 -04:00
Haelwenn 84ec0fbeaa Merge branch 'show_frontends_also_when_no_static_frontends_folder_is_created_yet' into 'develop'
List available frontends also when no static/frontends folder is present yet

Closes admin-fe#201

See merge request pleroma/pleroma!3510
2021-08-14 18:42:12 +00:00
Ilja f9bafc17fb List available frontends also when no static/frontends folder is present yet
* To see what front ends are installed, it ls static/frontends. When this folder doesn't exists yet, it will return an empty array.
* Installing still works since the folder is created during installation already
2021-08-14 18:42:12 +00:00
Haelwenn 2d9f803dc6 Merge branch 'StealEmojiMRF_add_adminFE' into 'develop'
Add Admin-FE menu for StealEmojiPolicy

See merge request pleroma/pleroma!3512
2021-08-14 18:40:24 +00:00
Haelwenn 773708cfe8 Merge branch 'builder-note' into 'develop'
CommonAPI.Utils.make_note_data/1 --> ActivityPub.Builder.note/1

See merge request pleroma/pleroma!3511
2021-08-14 18:32:40 +00:00
Alex Gleason ba6049aa81
Builder.note/1: return {:ok, map(), keyword()} like other Builder functions 2021-08-14 11:24:55 -05:00
Sam Therapy b901b73057
Add Admin-FE menu for StealEmojiPolicy 2021-08-14 11:08:39 -05:00
Alex Gleason a2eacfc525
CommonAPI.Utils.make_note_data/1 --> ActivityPub.Builder.note/1 2021-08-14 11:01:06 -05:00
Ilja 5049b4272e Selecting MRF policies didn't work as intended any more
* Policies were put under a new module (Pleroma.Web.ActivityPub.MRF.Policy instead of Pleroma.Web.ActivityPub.MRF), but this wasn't changed in the Pleroma.Web.ActivityPub.MRF @mrf_config_descriptions
* I don't have a unit test to prevent similar problems in the future because I don't find a proper way to do it
    * The descriptions in the unit tests are defined in the unit tests, so if someone changes module names in the code, the tests wont see it
    * The list is generated in Pleroma.Docs.Generator.list_behaviour_implementations, but I can't do a check in the when clause of the function to see if the provided module is a behaviour or not.
2021-08-14 13:42:32 +02:00
Alex Gleason 01175ef498
Streamer: fix crash in MastodonAPI.StatusView
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3508
2021-08-13 17:58:03 +02:00
Haelwenn (lanodan) Monnier 27e1e4c742
Activity.Search: fallback on status resolution on DB Timeout
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3507
2021-08-13 17:57:50 +02:00
Alex Gleason e117551169
AdminAPI: hotfix for nil report objects
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3504
2021-08-13 17:57:39 +02:00
Haelwenn (lanodan) Monnier bb2d5879cc
maybe_notify_subscribers: Don't create notifications from ingested replies
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3505
2021-08-13 17:57:19 +02:00
Haelwenn (lanodan) Monnier 0e2aebd036
TwitterAPI: Make change_email require body params instead of query
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3503
2021-08-13 17:57:11 +02:00
Haelwenn (lanodan) Monnier 3961422f85
TwitterAPI: Make change_password require body params instead of query
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3503
2021-08-13 17:56:59 +02:00
Haelwenn (lanodan) Monnier 8baaa36a16
ObjectAgePolicy: Fix pattern matching on published
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3500
2021-08-13 17:56:46 +02:00
Ilja 1cf89de89a
Make the OPT recomendation clearer
AFAIK OTP releases are the recomended way of installing, but

  * People seem unaware of that and use from source installations because they use the guide with the name of their distro
  * People don't know what OTP releases are or what it means

I added a warning on all installation-from-source guides and added the same explanation on the two OTP pages (the miigration to OTP and installing OTP)

Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3485
2021-08-13 17:56:20 +02:00
Haelwenn 97eb160c3e Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3491
2021-08-13 15:55:33 +00:00
kPherox 34606d609d
fix: stream out Create Activity
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3499
2021-08-13 17:54:51 +02:00
marcin mikołajczak edd2a38e53 Translated using Weblate (Polish)
Currently translated at 98.0% (102 of 104 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2021-08-13 15:42:21 +00:00
marcin mikołajczak 7a9113deb1 Translated using Weblate (Polish)
Currently translated at 75.0% (78 of 104 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2021-08-13 15:42:21 +00:00
Haelwenn 61ba54897e Merge branch 'streamer-crash-fix' into 'develop'
Streamer crash fix

See merge request pleroma/pleroma!3508
2021-08-13 15:42:12 +00:00
Alex Gleason b7bbf42acd
Streamer: fix crash in MastodonAPI.StatusView 2021-08-13 10:25:42 -05:00
rinpatch 21720db859 Merge branch 'dkuku-develop-patch-66061' into 'develop'
Update dev.exs error message to write to stderr.

See merge request pleroma/pleroma!3492
2021-08-13 12:10:52 +00:00
rinpatch 7afabe1cc6 Merge branch 'bugfix/status-search-fallback' into 'develop'
Activity.Search: resolve status on DB Timeout

Closes #2566

See merge request pleroma/pleroma!3507
2021-08-13 12:09:39 +00:00
Haelwenn (lanodan) Monnier 6455b967ec
Activity.Search: fallback on status resolution on DB Timeout 2021-08-12 10:35:32 +02:00
Haelwenn 3a7b54be4a Merge branch 'nil-report-object-hotfix' into 'develop'
AdminAPI: hotfix for nil report objects

See merge request pleroma/pleroma!3504
2021-08-11 20:30:43 +00:00
Haelwenn (lanodan) Monnier 61d233921c
ObjectValidator.stringify_keys: filter out nil values 2021-08-11 21:38:10 +02:00
Haelwenn 3ca39ccf69 Merge branch 'bugfix/subscriptions-replies' into 'develop'
maybe_notify_subscribers: Normalize Object to check inReplyTo presence

Closes #2732

See merge request pleroma/pleroma!3505
2021-08-11 18:50:39 +00:00
Haelwenn (lanodan) Monnier 436fac3bac
maybe_notify_subscribers: Don't create notifications from ingested messages 2021-08-11 20:49:38 +02:00
Alex Gleason 7247c29653
AdminAPI: hotfix for nil report objects 2021-08-11 09:42:19 -05:00
Haelwenn 7c1243178b Merge branch 'bugfix/change_password' into 'develop'
TwitterAPI: Make change_password require body params instead of query

Closes #2740

See merge request pleroma/pleroma!3503
2021-08-10 18:40:13 +00:00
Haelwenn (lanodan) Monnier 197cdebca9
TwitterAPI: Make change_email require body params instead of query 2021-08-10 20:33:00 +02:00
Haelwenn 8679a57a71 Merge branch 'bugfix/object-age-create' into 'develop'
ObjectAgePolicy: Fix pattern matching on published

See merge request pleroma/pleroma!3500
2021-08-10 18:16:02 +00:00
Haelwenn (lanodan) Monnier 09dcb2b522
TwitterAPI: Make change_password require body params instead of query
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2740
2021-08-10 20:01:11 +02:00
Haelwenn 6c0ebc65fd Merge branch 'docs_make_otp_recommendation_clearer' into 'develop'
Make the OPT recomendation clearer

See merge request pleroma/pleroma!3485
2021-08-10 06:09:31 +00:00
Ilja 438ad0d3f9 Make the OPT recomendation clearer
AFAIK OTP releases are the recomended way of installing, but

  * People seem unaware of that and use from source installations because they use the guide with the name of their distro
  * People don't know what OTP releases are or what it means

I added a warning on all installation-from-source guides and added the same explanation on the two OTP pages (the miigration to OTP and installing OTP)
2021-08-10 06:09:31 +00:00
Haelwenn (lanodan) Monnier c64eae40a2
ObjectAgePolicy: Fix pattern matching on published 2021-08-10 07:41:06 +02:00
Haelwenn f4af74b0fc Merge branch 'fix/streaming-api-for-create-activity' into 'develop'
fix: stream out Create Activity

Closes #2691

See merge request pleroma/pleroma!3499
2021-08-09 19:10:05 +00:00
Haelwenn 901204df22 Merge branch 'poll-notification' into 'develop'
MastodonAPI: Support poll notification

See merge request pleroma/pleroma!3484
2021-08-09 10:02:37 +00:00
Haelwenn 6384d78035 Merge branch 'simple_policy_reasons_for_instance_specific_policies' into 'develop'
Simple policy reasons for instance specific policies

See merge request pleroma/pleroma!3314
2021-08-09 09:37:59 +00:00
kPherox ee5def34da
fix: stream out Create Activity 2021-08-09 18:37:48 +09:00
Haelwenn c45b3bde94 Merge branch 'chores/2.4.0-develop' into 'develop'
Mergeback: 2.4.0

See merge request pleroma/pleroma!3494
2021-08-08 14:40:51 +00:00
Haelwenn dc63aaf84f Merge branch 'release/2.4.0' into 'stable'
Release/2.4.0

See merge request pleroma/pleroma!3493
2021-08-08 14:37:15 +00:00
Haelwenn (lanodan) Monnier 8f730f70cb
mix.exs: 2.4.50 2021-08-08 16:00:10 +02:00
Haelwenn (lanodan) Monnier 0910777d41
Update PleromaFE Bundle (2.4.0)
based on 51d3d8d255de221f7ac99e41f2f8e56c7d6a21a9
2021-08-08 15:21:21 +02:00
Ilja c29fc1aafb Add YunoHost to installation guides 2021-08-07 12:49:28 +02:00
Sean King 1841bd8383 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remove/mastofe 2021-08-06 08:08:20 -06:00
matildepark 469405b7b2
CHANGELOG.md: Fix instances of 2020 being actually 2021 2021-08-06 08:42:27 +02:00
Egor Kislitsyn ad09bdb376
Improve readability 2021-08-06 07:59:54 +02:00
Ilja ee26f2c91b
Quarantine placeholders
* kePlaceholder and valuePlaceholder of quarantined_instances where in wrong case, should be snake_case
* The mrf simple and transparency exclusion were already OK
2021-08-06 07:59:54 +02:00
Ilja cd706c0335
improve changelog entry 2021-08-06 07:59:54 +02:00
Ilja b0926a71b2
Make transparency_exclusions use tuples in admin-fe
* Make it use tuples
* I also changed the keys for key_placeholder and value_placeholder to use snake_case instead of camelCase
2021-08-06 07:59:53 +02:00
Ilja f4028c908c
Add key- and valuePlaceholders for quarantined_instances and mrf_simple
* I also added for keywordpolicy as well now. It was done in the admin-fe, but is better to be done here
* I also added comments to explain why we did the _info keys (backwards compatibility)
2021-08-06 07:59:53 +02:00
Ilja 9418424048
Add transparency_exclusions also to the breaking changes 2021-08-06 07:59:53 +02:00
Ilja 506bf16363
Change docs
* ./configuration/mrf.md
  * Change example
* ./configuration/cheatsheet.md
  * Change descriptions to include that a reason is given
* CHANGELOG.md
  * Add as breaking change
2021-08-06 07:59:53 +02:00
Ilja 03030b47c2
quarantine instances info
Added a new field in the nodeinfo called quarantined_instances_info
This holds an object like `"quarantined_instances_info":{"quarantined_instances":{"quar.inst":{"reason":"whatever reason"}}}}`
2021-08-06 07:59:53 +02:00
Ilja 47fc57bbcc
Change what nodeinfo returns without breaking backwards compatibility
* Only for SimplePolicy for now
* I added an extra mrf_simple_info key that has an object as value. The object contains only relevant extra info
2021-08-06 07:59:53 +02:00
Ilja 7fdc3cde06
Return maps in node_info
It's easiest (and imo most proper) to use tuples {"instance, "reason"} in BE,
but for FE maps like %{"instance": "instance", "reason", "reason"} are better.
I changed it so that node_info returns maps now for simple_policy and quarantined instances.
2021-08-06 07:59:53 +02:00
Ilja 1f52246a02
Add database migrations
* SimplePolicy
* quarentine
* transparency_exclusions
2021-08-06 07:59:53 +02:00
Ilja c0489f9fac
Fixed deprecation warning checks
When a setting was deprecated, the code would stop checking for the rest of the possible deprications. This also meant that the settings weren't rewritten to the new settings for deprecated settings besides the first one.
2021-08-06 07:59:53 +02:00
Ilja 64002e92ad
config/description.exs: Update quarantine settings to tuples 2021-08-06 07:59:53 +02:00
Ilja b674ba658b
make linter happy 2021-08-06 07:59:52 +02:00
Ilja 3c5a497b19
Deprecate transparency_exclusions
* Give deprecation message
* Rewrite configs
2021-08-06 07:59:52 +02:00
Ilja dfeb3862da
config :mrf, :transparency_exclusions works with tumples now 2021-08-06 07:59:52 +02:00
Ilja e0c7d77197
Deprecate and rewrite settings for quarentine settings
* This is for the settings, not yet a DB migration
2021-08-06 07:59:52 +02:00
Ilja 27fe7b0274
Make quarentine work with list of tuples instead of strings 2021-08-06 07:59:52 +02:00
Ilja dd947d9bc8
Add tests for setting `:instance, :quarantined_instances`
No test was done for quarantined instances yet. I added a factory for followers_only notes and checked
* That no followers only post is send when the target server is quarantined
* That a followers only post is send when the target server is not quarantined
2021-08-06 07:59:52 +02:00
Ilja 4ba0beb60c
Make mrfSimple work with tuples
* Changed SimplePolicy
* I also grepped in test/ for ':mrf_simple' to see what other things could be affected
2021-08-06 07:58:58 +02:00
Ilja 647087d7fd
Deprectate strings for SimplePolicy
When strings are detected in the simplepolicy, a warning will be given and the config will be changed to use tuples instead
2021-08-06 05:01:44 +02:00
Alex Gleason e311c60923
CHANGELOG: moderator abilities 2021-08-05 11:11:27 -05:00
Alex Gleason b83758bd96
Merge remote-tracking branch 'pleroma/develop' into moderators 2021-08-05 11:11:24 -05:00
Haelwenn 5f5dc24027 Merge branch 'staff-plug' into 'develop'
Moderators: add UserIsStaffPlug

See merge request pleroma/pleroma!3495
2021-08-05 05:51:22 +00:00
Alex Gleason 44ede0657f
Merge remote-tracking branch 'pleroma/develop' into staff-plug 2021-08-04 11:48:57 -05:00
Haelwenn (lanodan) Monnier 79e993cae5
Release 2.4.0 2021-08-01 08:26:39 +02:00
Haelwenn (lanodan) Monnier 5f8a9b671f
Update AdminFE bundle 2021-08-01 08:26:39 +02:00
a1batross 4ef4cde359 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-07-29 00:04:00 +02:00
Daniel 5c5571c668 use puts instead warn 2021-07-27 21:01:41 +00:00
Daniel 69ebfb29fb Update dev.exs error message to write to stderr. Currently it dumps this message at the beginnig of the file when using vim-autoformat with mix format 2021-07-27 20:41:36 +00:00
feld d8a986c9e8 Merge branch 'object-tombstone-visibility' into 'develop'
Visibility: check Tombstone objects in visible_for_user?/2

See merge request pleroma/pleroma!3490
2021-07-27 16:25:34 +00:00
feld 7495beeb40 Merge branch 'errorview-json-fix' into 'develop'
Fix errors in ErrorView

See merge request pleroma/pleroma!3489
2021-07-27 16:24:53 +00:00
Alex Gleason 7f23dd6cc8
Merge remote-tracking branch 'pleroma/develop' into object-tombstone-visibility 2021-07-27 08:54:26 -05:00
Alex Gleason 9cc8642b80
Visibility: check Tombstone objects in visible_for_user?/2 2021-07-27 08:54:01 -05:00
Alex Gleason 3d8ce61fe5
CHANGELOG: fixed JSON error rendering 2021-07-27 08:30:38 -05:00
Alex Gleason 33a19c002a
Merge remote-tracking branch 'pleroma/develop' into errorview-json-fix 2021-07-27 08:29:53 -05:00
Alex Gleason 94db0b7cd6
Add activity+json to Phoenix :format_encoders
Fixes ErrorView rendering
2021-07-27 08:28:52 -05:00
Haelwenn 7acdab1f30 Merge branch 'mkljczk-develop-patch-60115' into 'develop'
MastodonAPI: Fix list timelines

Closes mastofe#89 and #2693

See merge request pleroma/pleroma!3477
2021-07-22 18:41:11 +00:00
Alex Gleason 85d71d4f1d
CHANGELOG: Support `poll` notification type 2021-07-18 11:49:25 -05:00
Alex Gleason 62bf6d67e3
Merge remote-tracking branch 'pleroma/develop' into poll-notification-fixes 2021-07-18 11:49:22 -05:00
Alex Gleason 70f1496eb8
Poll notification: only notify local users 2021-07-18 11:10:23 -05:00
Alex Gleason 0b1c05ca1e
Poll notification: trigger PollWorker through common_pipeline 2021-07-18 11:10:23 -05:00
Alex Gleason 6a6e42c9bf
PollWorker defensive checks 2021-07-18 11:10:22 -05:00
Alex Gleason cbd1a10c16
Poll notification: notify for polls even when block_from_strangers is set 2021-07-18 11:10:04 -05:00
Alex Gleason 0114754db2
MastodonAPI: Support poll notification 2021-07-17 22:19:38 -05:00
Alex Gleason c4efe0d2d6
CHANGELOG: instance deletion 2021-07-17 15:05:20 -05:00
Alex Gleason 3674179b26
Merge remote-tracking branch 'pleroma/develop' into instance-deletion 2021-07-17 15:03:43 -05:00
Alex Gleason bad79f79e6
AdminAPI.InstanceController: clean up tests, rename actions 2021-07-17 15:00:15 -05:00
Alex Gleason 54dbcfe02a
AdminAPI: add DELETE /instances/:instance to delete all content from a remote instance 2021-07-17 14:55:05 -05:00
Alex Gleason f67d00d12b
Add Instance.delete_users_and_activities/1 to delete all content from a remote instance 2021-07-17 14:06:35 -05:00
Alex Gleason c136dc0987
Upgrade Ecto to v3.6.2, remove deprecated ecto_explain 2021-07-17 13:53:19 -05:00
Alex Gleason 25676c84be
Create AdminAPI.InstanceController 2021-07-17 13:05:25 -05:00
feld 3f58213646 Merge branch 'admin-api-users-sort' into 'develop'
AdminAPI: sort new users at the top

Closes #2709

See merge request pleroma/pleroma!3481
2021-07-14 14:39:14 +00:00
feld 17d79f3484 Merge branch 'admin-api-users-date' into 'develop'
AdminAPI: add created_at date to users

See merge request pleroma/pleroma!3482
2021-07-14 14:35:21 +00:00
Alex Gleason 117b3edf54
CHANGELOG: AdminAPI return date with users 2021-07-14 09:03:44 -05:00
Alex Gleason 1a2fe96d56
Merge remote-tracking branch 'pleroma/develop' into admin-api-users-date 2021-07-14 09:02:55 -05:00
Alex Gleason 167e14416b
AdminAPI: add date to users 2021-07-14 08:54:59 -05:00
Alex Gleason 5681a007d7
CHANGELOG: AdminAPI users sort 2021-07-13 22:48:32 -05:00
Alex Gleason deb3f91136
Merge remote-tracking branch 'pleroma/develop' into admin-api-users-sort 2021-07-13 22:47:47 -05:00
Alex Gleason 5e88796784
AdminAPI: sort user results by ID descending 2021-07-13 22:47:02 -05:00
Alex Gleason 2b3d7794b2
AdminAPI: let moderators actually do things 2021-07-12 22:26:04 -05:00
Alex Gleason 4fe9a758f9
Let moderators manage custom emojis 2021-07-12 22:11:38 -05:00
Alex Gleason 1f093cb216
Moderators: reorganize :admin_api pipeline in Router 2021-07-12 22:11:32 -05:00
Alex Gleason 9bc1e79c56
Moderators: add UserIsStaffPlug 2021-07-12 21:57:52 -05:00
Alex Gleason 65514484cc
CHANGELOG: fixed user deletion database timeout 2021-07-12 16:59:54 -05:00
Alex Gleason e40b58fd56
Merge remote-tracking branch 'pleroma/develop' into fix-object-deletion-timeout 2021-07-12 16:23:06 -05:00
Alex Gleason 9a0cb34c8c
Fix Activity.delete_all_by_object_ap_id/1 timeout so users can be deleted 2021-07-12 16:20:15 -05:00
a1batross e7d5f56e57 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-07-12 22:38:10 +02:00
Haelwenn 173e977e28 Merge branch 'features/ingestion-page' into 'develop'
Pipeline Ingestion: Page

See merge request pleroma/pleroma!3097
2021-07-12 05:05:49 +00:00
Haelwenn ebcc28fef0 Merge branch 'features/validators-apc2s' into 'develop'
AP C2S: Remove restrictions and make it go through pipeline

See merge request pleroma/pleroma!3203
2021-07-12 05:01:36 +00:00
Haelwenn (lanodan) Monnier 6dc78f5f6f
AP C2S: Remove restrictions and make it go through pipeline 2021-07-12 06:49:41 +02:00
Sean King 9758f636b2 Delete MastoFE Controller Test 2021-07-10 11:13:25 -06:00
Sean King 5d279a22b1 Merge develop branch upstream 2021-07-10 11:04:16 -06:00
feld aa9a6c3c05 Merge branch 'update/linkify' into 'develop'
Update Linkify

See merge request pleroma/pleroma!3478
2021-07-08 17:44:52 +00:00
Mark Felder 64d009693e Update Linkify to fix crash on posts with a URL we failed to parse correctly 2021-07-08 12:33:17 -05:00
feld 9e1da4bf58 Merge branch 'remote-deletions' into 'develop'
Fix user deletion problems

See merge request pleroma/pleroma!3476
2021-07-06 20:05:05 +00:00
marcin mikołajczak 6ef8e1776d fix the fucking list timelines on mastofe/soapbox-fe 2021-07-02 13:03:41 +00:00
Alex Gleason 310ef6b70d
Deletions: change User.purge/1 to defp, add CHANGELOG entry 2021-06-30 12:25:20 -05:00
Alex Gleason 99cc26bb02
Merge remote-tracking branch 'pleroma/develop' into remote-deletions 2021-06-30 02:02:30 -05:00
Alex Gleason beb1c98ab5
Deletions: don't purge keys so Delete/Undo activities can be signed 2021-06-30 02:02:24 -05:00
Alex Gleason 43800d83f4
Deletions: allow deactivated users to be deleted 2021-06-30 01:32:28 -05:00
Alex Gleason a7929c4d89
Deletions: preserve account status fields during purge, fix checks 2021-06-29 23:56:19 -05:00
Alex Gleason 01c2d2a296
Also purge the user in User.perform/2 2021-06-29 22:53:33 -05:00
Alex Gleason c6d4133727
Deletions: purge the user immediately 2021-06-29 22:30:48 -05:00
Alex Gleason be2da95c36
Correctly purge a remote user 2021-06-29 21:45:38 -05:00
Haelwenn 5717256eba Merge branch 'fix-2686' into 'develop'
Activity deletion: fix FunctionClauseError, fixes #2686

Closes #2686

See merge request pleroma/pleroma!3475
2021-06-25 04:52:19 +00:00
Alex Gleason 281806de75
Activity deletion: fix FunctionClauseError #2686 2021-06-24 21:03:31 -05:00
feld f97f305d00 Merge branch 'ecto-upgrade' into 'develop'
Upgrade Ecto to v3.6.2, remove deprecated ecto_explain

See merge request pleroma/pleroma!3473
2021-06-23 20:17:01 +00:00
Alex Gleason 079afd32d8
Enable :warnings_as_errors for CI only 2021-06-23 14:33:40 -05:00
Alex Gleason 54af527759
Upgrade Ecto to v3.6.2, remove deprecated ecto_explain 2021-06-23 13:22:32 -05:00
Haelwenn f9ae7e72e9 Merge branch 'bugfix/upload-limit-plug' into 'develop'
Downgrade Plug to 1.10.x, revert upload_limit tuple to function change

See merge request pleroma/pleroma!3472
2021-06-22 23:27:32 +00:00
feld a814671e85 Merge branch 'docs/dependencies-rewrite' into 'develop'
Rewrite docs related to dependencies

See merge request pleroma/pleroma!3466
2021-06-22 16:52:19 +00:00
Haelwenn (lanodan) Monnier fc6ab78a84
Add test on changing [:instance, :upload_limit] 2021-06-22 12:25:25 +02:00
Haelwenn (lanodan) Monnier a851a24036
Downgrade Plug to 1.10.x, revert upload_limit tuple to function change
This should fix setting the upload limit in the database as found in:
https://queer.hacktivis.me/notice/A8XUZp74Cg7eYNEMxU

This reverts commit 7d350b73f5.
2021-06-22 11:19:13 +02:00
Haelwenn a8adc300d4 Merge branch 'cycles-ci-skip' into 'develop'
Cycles CI: skip unless Elixir code is modified

See merge request pleroma/pleroma!3467
2021-06-11 22:25:41 +00:00
Alex Gleason 640e1cf09d
Cycles CI: skip unless Elixir code is modified 2021-06-11 08:45:19 -05:00
Haelwenn (lanodan) Monnier 822196f393
docs/…/opt_en.md: Reuse /main/ repository url for the /community/ repo 2021-06-11 08:48:35 +02:00
Haelwenn (lanodan) Monnier 17f980e9ab
docs: Remove Erlang Solutions repository 2021-06-11 08:48:35 +02:00
Haelwenn (lanodan) Monnier 6b1f7f2f52
docs: Use one file to describe dependencies 2021-06-11 08:48:35 +02:00
feld 406dadb56b Merge branch 'fix/twittercard-video-dimensions' into 'develop'
Generate Twittercard/OGP metadata with correct dimensions

See merge request pleroma/pleroma!3456
2021-06-10 15:03:58 +00:00
Mark Felder 202ee5fd77 Add note about video thumbnails for code spelunkers unfamiliar with Media Preview Proxy 2021-06-10 09:56:43 -05:00
feld b84873d3df Merge branch 'cycles-ci' into 'develop'
Prevent compile-time cycles in CI

See merge request pleroma/pleroma!3420
2021-06-09 19:04:40 +00:00
Alex Gleason 15e2aaa9f6
Fix compile cycle in Pleroma.Tests.AuthTestController 2021-06-09 13:30:19 -05:00
Alex Gleason 87cd04fe0c
Cycles CI: disable cache 2021-06-09 13:12:33 -05:00
Alex Gleason cefb952dff
CI: echo $MIX_ENV 2021-06-09 13:08:24 -05:00
Alex Gleason 4bb578a1d7
Add cycles test to .gitlab-ci.yml
Thank you @jb55@bitcoinhackers.org for the awk syntax
2021-06-09 13:06:01 -05:00
feld 3972d7117e Merge branch 'refactor/ingestion-activity-context' into 'develop'
ObjectValidators.{Announce,EmojiReact,Like}: Fix context, actor & addressing

See merge request pleroma/pleroma!3462
2021-06-09 17:17:41 +00:00
feld 489b8bea9a Merge branch 'eblurhash-hex' into 'develop'
Use eblurhash 1.1.0 from Hex

See merge request pleroma/pleroma!3464
2021-06-09 17:08:37 +00:00
Mark Felder 6aa7fc15df Formatting of the comment 2021-06-09 11:58:51 -05:00
Mark Felder d12e62c0b6 Add new Twittercard/OGP changes 2021-06-09 11:56:54 -05:00
Mark Felder f37db23848 Test that videos only get image thumbnails in OGP metadata when we can produce them with Preview Proxy 2021-06-09 11:46:31 -05:00
Mark Felder 5f7901cc48 Credo 2021-06-09 11:09:14 -05:00
Mark Felder 2a47156b87 Lint 2021-06-09 11:06:53 -05:00
Mark Felder 86bcb87e6c Fix incorrectly ordered arguments to the function and not properly merging lists. 2021-06-09 11:05:24 -05:00
Mark Felder dc8fe91dec Metadata.Utils.attachment_url/1 was used in this test too 2021-06-09 10:06:44 -05:00
Mark Felder 2cf648d419 Add a video thumbnail to the OpenGraph metadata if Media Preview Proxy is enabled. 2021-06-09 10:02:41 -05:00
Mark Felder 19a49dd757 Remove Metadata.Utils.attachment_url/1
This was a wasteful shortcut to MediaProxy.preview_url/1 and we don't
always want the preview_url in the metadata anyway.
2021-06-09 09:58:29 -05:00
Alex Gleason d0147eba78
Use eblurhash 1.1.0 from Hex 2021-06-09 09:28:22 -05:00
Haelwenn (lanodan) Monnier c839078a75
ObjectValidators.{Announce,EmojiReact,Like}: Fix context, actor & addressing 2021-06-09 04:23:02 +02:00
Haelwenn 53cf801c30 Merge branch 'cycles-plug-deps' into 'develop'
Refactor skipped plugs into Pleroma.Web functions

See merge request pleroma/pleroma!3463
2021-06-09 02:20:00 +00:00
Haelwenn eba3c7b42f Merge branch 'cycles-side-effects' into 'develop'
Recompilation speedup: Switch to runtime deps in ActivityPub.SideEffects

See merge request pleroma/pleroma!3460
2021-06-09 01:54:38 +00:00
Haelwenn d8c964fc1f Merge branch 'cycles-instances' into 'develop'
Recompilation speedup: Switch to runtime deps in Pleroma.Instances

See merge request pleroma/pleroma!3459
2021-06-09 01:53:31 +00:00
Alex Gleason 45b7325b9e
Refactor skipped plugs into Pleroma.Web functions
Speeds up recompilation by reducing compile cycles
2021-06-08 19:15:04 -05:00
Alex Gleason 67ec0e6c18
Switch to runtime deps in ActivityPub.SideEffects
Speeds up recompilation by reducing compile cycles
2021-06-08 18:18:25 -05:00
Alex Gleason 45ab24f2d9
Switch to runtime deps in Pleroma.Instances
Speeds up recompilation by limiting compile cycles
2021-06-08 18:03:34 -05:00
Mark Felder 9cb8960284 Switch OGP default type from "website" to "article"
This is what Mastodon uses and might fix some link preview bugs I've encountered
2021-06-08 17:14:30 -05:00
feld d896e45faf Merge branch 'cycles-config-loader-redux' into 'develop'
Recompilation speedup: Ignore runtime deps in Pleroma.Config.Loader with Module.concat/1

See merge request pleroma/pleroma!3458
2021-06-08 22:08:37 +00:00
feld 4de2bd3b79 Merge branch 'cycles-user-view' into 'develop'
Recompilation speedup: Create AdminAPI.UserView to avoid compile-time dep

See merge request pleroma/pleroma!3457
2021-06-08 22:07:25 +00:00
Mark Felder d70db63084 Set the correct height/width if the data is available when generating opengraph metadata 2021-06-08 16:58:33 -05:00
Alex Gleason 4faeec2c44
Create AdminAPI.UserView to avoid compile-time dep
Speeds up recompilation
2021-06-08 16:34:06 -05:00
Mark Felder aa8cc4e86e Only use fallback for videos and only add this metadata for images if we really have it. 2021-06-08 16:31:12 -05:00
Mark Felder d4ac9445cd Twittercard metadata for images should also include dimensions if available 2021-06-08 16:19:12 -05:00
Alex Gleason 1be14cc45f
Ignore runtime deps in Pleroma.Config.Loader with Module.concat/1
Speeds up recompilation
2021-06-08 16:07:51 -05:00
Mark Felder 5de65ce3e8 Set the correct height/width if the data is available when generating twittercard metadata 2021-06-08 15:59:55 -05:00
feld 1175023687 Merge branch 'metadata-for-all' into 'develop'
Support metadata for video files too

See merge request pleroma/pleroma!3441
2021-06-08 20:30:55 +00:00
Mark Felder 3121ed1325 Blurhash varies slightly by computer generating it, so just validate it wasn't nil 2021-06-08 14:53:03 -05:00
feld 939b3bfe43 Merge branch 'improve-og-embed' into 'develop'
Improve opengraph embeds

See merge request pleroma/pleroma!3442
2021-06-08 19:26:17 +00:00
Mark Felder f1abe39f6f Update test names and verify blurhash is correctly generated for images 2021-06-08 14:05:13 -05:00
Mark Felder 1c4c73c6a0 Add test for AnalyzeMetadata upload filter fetching dimensions from a video 2021-06-08 14:02:56 -05:00
feld 5667c02fce Merge branch 'cycles-params' into 'develop'
Recompilation speedup: break out Pleroma.Web.Params.truthy_param?/1 from ControllerHelper

See merge request pleroma/pleroma!3449
2021-06-08 18:06:44 +00:00
Mark Felder 8443f82247 Update scope of AnalyzeMetadata features 2021-06-08 12:56:03 -05:00
Mark Felder 5c27578bce Support metadata for video files too 2021-06-08 12:54:09 -05:00
Alex Gleason b99f60615c Fix order of Pleroma.Web.Utils.Params aliases 2021-06-08 12:50:47 -05:00
Alex Gleason ec65b7ae29 Pleroma.Web.Params --> Pleroma.Web.Utils.Params 2021-06-08 12:50:47 -05:00
Alex Gleason 0877b120c3 Pleroma.Web.ControllerHelper.truthy_param?/1 --> Pleroma.Web.Params.truthy_param?/1
Breaks cycle in lib/pleroma/web/api_spec/operations/status_operation.ex
2021-06-08 12:50:47 -05:00
feld 99f8605582 Merge branch 'cycles-uploads' into 'develop'
Recompilation speedup: use generic types in @spec in Upload.Filter

See merge request pleroma/pleroma!3453
2021-06-08 17:49:24 +00:00
feld ac2ed19e4f Merge branch 'cycles-authenticator' into 'develop'
Recompilation speedup: create WrapperAuthenticator and simplify Authenticator behaviour

See merge request pleroma/pleroma!3454
2021-06-08 17:45:10 +00:00
a1batross b817a0a99b Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-06-08 09:56:24 +02:00
Alex Gleason 1399b82f7b
Create WrapperAuthenticator and simplify Authenticator behaviour
Speeds up recompilation by reducing compile-time cycles
2021-06-07 18:18:39 -05:00
Alex Gleason bdaa1d4512
Upload.Filter: use generic types in @spec
Speeds up recompilation by reducing compile-time deps
2021-06-07 17:11:17 -05:00
feld 4a6b49d0b4 Merge branch 'fix/config-test-warning' into 'develop'
Fix test warnings

See merge request pleroma/pleroma!3452
2021-06-07 21:22:23 +00:00
feld 30943b739d Merge branch 'pleromapi' into 'develop'
Add Raspberry Pi install instructions

See merge request pleroma/pleroma!3430
2021-06-07 21:21:35 +00:00
feld 371463ef0e Merge branch 'cycles-guard' into 'develop'
Recompilation speedup: Put custom guards in Web.Utils.Guards

See merge request pleroma/pleroma!3451
2021-06-07 21:21:10 +00:00
Mark Felder 017f947fc1 Channel name was incorrect. We left it as chat:public for backwards compatibility. 2021-06-07 16:10:24 -05:00
Mark Felder a5ae0432ed Test was named incorrectly and did not execute 2021-06-07 16:09:47 -05:00
Mark Felder f5ef7fe43b Fix test warnings 2021-06-07 16:06:53 -05:00
Alex Gleason d87dfcb5f0
Put custom guards in Web.Utils.Guards
Speeds up recompilation by removing a compile-time cycle on AdminAPI.Search
2021-06-07 15:51:52 -05:00
Mark Felder 264458531a Formatting 2021-06-07 15:47:50 -05:00
feld b553bfd745 Merge branch 'fix/prune-hashtags' into 'develop'
get prune_objects to work again

See merge request pleroma/pleroma!3397
2021-06-07 20:11:45 +00:00
feld 676c3c96dc Merge branch 'cycles-mrf-policy' into 'develop'
Recompilation speedup: create MRF.Policy behaviour separate from MRF module

See merge request pleroma/pleroma!3450
2021-06-07 20:10:20 +00:00
feld 9a357d63f0 Update CHANGELOG.md 2021-06-07 20:07:59 +00:00
feld 10abbf13ba Update CHANGELOG.md 2021-06-07 20:07:27 +00:00
feld 84f42b92f0 Merge branch 'develop' into 'fix/prune-hashtags'
# Conflicts:
#   CHANGELOG.md
2021-06-07 20:06:36 +00:00
feld 4ca380490f Update CHANGELOG.md 2021-06-07 20:05:18 +00:00
feld c31338abe6 Update CHANGELOG.md 2021-06-07 20:04:27 +00:00
feld bc51dea425 Update lib/mix/tasks/pleroma/database.ex 2021-06-07 20:02:28 +00:00
feld 64bc0c69ed Merge branch 'fix/plug_parser_multipart' into 'develop'
web endpoint: Use Config.get directly instead of a tuple

See merge request pleroma/pleroma!3445
2021-06-07 19:58:37 +00:00
Alex Gleason 6fcfa33e4e
Fix MRF.config_descriptions/0 2021-06-07 14:52:57 -05:00
Alex Gleason fe4c4a7178
MRF: create MRF.Policy behaviour separate from MRF module
Speeds up recompilation by reducing compile-time deps
2021-06-07 14:22:08 -05:00
feld ca1eac01dd Merge branch 'notification-settings-docs-fix' into 'develop'
Docs: /api/v1/pleroma/notification_settings --> /api/pleroma/notification_settings

See merge request pleroma/pleroma!3448
2021-06-07 17:03:51 +00:00
feld 96e85ea687 Merge branch 'cycles-reverse-proxy' into 'develop'
Recompilation speedup: create Dynamic client for ReverseProxy

See merge request pleroma/pleroma!3440
2021-06-07 17:03:19 +00:00
Alex Gleason 879c2db0bd
Docs: /api/v1/pleroma/notification_settings --> /api/pleroma/notification_settings 2021-06-07 11:18:14 -05:00
Alex Gleason 3be08e7c2e
Merge remote-tracking branch 'pleroma/develop' into cycles-reverse-proxy 2021-06-04 21:12:37 -05:00
Alex Gleason 1c3fe43d23
ReverseProxy: create Client.Wrapper to call client from config
Speeds up recompilation by reducing compile-time cycles
2021-06-04 21:12:24 -05:00
Sean King 26d2c677b7
Removing trailing space on empty line in OAuth controller 2021-06-04 15:50:57 -06:00
Sean King 2e310b3ec8
Fix more build errors 2021-06-04 15:06:55 -06:00
feld 94687e2393 Merge branch 'chore/otp24-changelog' into 'develop'
Document OTP 24 support

See merge request pleroma/pleroma!3447
2021-06-04 20:57:28 +00:00
feld 5b9e13fc0d Merge branch 'fix/clear_config_warning' into 'develop'
Fix warning for misuse of clear_config/2

See merge request pleroma/pleroma!3446
2021-06-04 20:55:21 +00:00
Sean King 839c2c6a12
Fix code mistake in OAuth controller 2021-06-04 14:50:16 -06:00
Mark Felder eb150e7d88 Document OTP 24 support so we remember to add it to the official release notes / announcement 2021-06-04 15:50:10 -05:00
Mark Felder d5daf59f88 Fix warning for misuse of clear_config/2
The old warning message was producing an improperly formatted suggestion.
2021-06-04 15:48:26 -05:00
Sean King dc4814f0cd
Fix merge conflicts with upstream 2021-06-04 14:42:44 -06:00
Haelwenn 0c56f9de0d Merge branch 'tests/openapi-everywhere' into 'develop'
Put OpenAPI ~everywhere in tests

See merge request pleroma/pleroma!3324
2021-06-04 18:53:09 +00:00
Haelwenn (lanodan) Monnier eb7313b0d3
Pipeline Ingestion: Page 2021-06-04 20:06:33 +02:00
Haelwenn (lanodan) Monnier 7d350b73f5
web endpoint: Use Config.get directly instead of a tuple
Fixes a lot of warnings like the following while running the testsuite:

  warning: passing a {module, function, args} tuple to Plug.Parsers.MULTIPART is deprecated. Please see Plug.Parsers.MULTIPART module docs for better approaches to configuration

This might mean no more dynamic configuration but there seems to be the same limitation two lines underneath anyway.
2021-06-04 20:04:30 +02:00
feld a07310888f Merge branch 'fix/missing-deprecation' into 'develop'
Add missing deprecation warning left out of !2842

See merge request pleroma/pleroma!3444
2021-06-04 17:37:30 +00:00
feld 922f4e3fb7 Merge branch 'bugfix/erlang-24' into 'develop'
Erlang 24 compatibility

Closes #2647

See merge request pleroma/pleroma!3405
2021-06-04 17:36:36 +00:00
Mark Felder f58928cf1c Add missing deprecation warning left out of !2842 2021-06-04 12:30:10 -05:00
io 2c401dafa1 Improve opengraph embeds
This brings them more in line with Mastodon.
- Deduplicates display name from the title and content
- Removes arbitrary limits on the size of the embedded image
- Removes angled double quotes from embed descriptions. These would normally just indicate that the content is a quote, but that is already implied by the content being in an embed.
2021-06-04 05:33:35 +00:00
Haelwenn (lanodan) Monnier 11844084d0
MIME.valid?(type) → is_bitstring(type) && MIME.extensions(type) != []
Since mime 1.6.0:

  warning: MIME.valid?/1 is deprecated. Use MIME.extensions(type) != [] instead

As for the bitstring(type) part it's because MIME.extensions only expects a string.
https://github.com/elixir-plug/mime/issues/43
2021-06-03 19:11:17 +02:00
Haelwenn (lanodan) Monnier 24d66b60a0
request_builder_test: mode :read got removed 2021-06-03 19:11:17 +02:00
Haelwenn (lanodan) Monnier 5c3a0dd26e
factory: Fix article_factory 2021-06-03 19:11:16 +02:00
Haelwenn (lanodan) Monnier 7c5e007b9c
mix: Update pot to ~> 1.0 2021-06-03 19:11:16 +02:00
Haelwenn (lanodan) Monnier ab32ea44f0
mix.exs: Apply OTP24 fixes to web_push_encryption 2021-06-03 19:11:16 +02:00
Haelwenn (lanodan) Monnier 2768063387
mix: Update dependencies 2021-06-03 19:11:16 +02:00
Haelwenn (lanodan) Monnier 168687eef2
media_proxy: switch from :crypto.hmac to :crypto.mac 2021-06-03 19:11:15 +02:00
Haelwenn (lanodan) Monnier 166455c884
mix: Switch hackney & gun to releases 2021-06-03 19:10:47 +02:00
Haelwenn (lanodan) Monnier 59af07f149
Update all dependencies 2021-06-03 19:10:47 +02:00
Haelwenn a5dce42c85 Merge branch 'chore/rename-chat' into 'develop'
Rename the non-federating Chat feature to Shout

See merge request pleroma/pleroma!2842
2021-06-03 15:52:16 +00:00
rinpatch 194a41611b Merge branch 'chore/cicd_skip_nonsense' into 'develop'
Skip CI/CD automatically under certain conditions

See merge request pleroma/pleroma!3439
2021-06-02 17:18:10 +00:00
Mark Felder 9f391da73d Don't generate new specs unless they've changed. 2021-06-02 12:09:41 -05:00
Mark Felder e06466a532 Skip build, test, analysis/lint when we don't make code changes 2021-06-02 12:03:34 -05:00
feld 275af29302 Merge branch 'Snow-develop-patch-01683' into 'develop'
Update docs/description for allow_relay

See merge request pleroma/pleroma!3438
2021-06-02 16:53:37 +00:00
Mark Felder 679d4c23e9 Update wording for relays in docs and config description 2021-06-02 11:30:09 -05:00
Mark Felder 297feb73f4 Formatting 2021-06-02 11:21:04 -05:00
feld e8de1005f2 Merge branch 'cycles-email' into 'develop'
Recompilation speedup: Avoid `use Phoenix.Swoosh` to prevent recompiling the Endpoint

See merge request pleroma/pleroma!3436
2021-06-02 16:11:49 +00:00
Mark Felder dcf84ac12e disableChat / disableShout didn't actually do anything for PleromaFE 2021-06-01 16:53:32 -05:00
Alex Gleason 028017711c
Merge remote-tracking branch 'pleroma/develop' into cycles-email 2021-06-01 16:17:43 -05:00
Alex Gleason 9879c18548
Avoid `use Phoenix.Swoosh` to prevent recompiling the Endpoint
Speeds up recompilation by fixing cycles in UserEmail
2021-06-01 16:17:03 -05:00
feld 3fe6ada6fc Merge branch 'cycles-streaming' into 'develop'
Recompilation speedup: Remove deps from Streaming/Persisting behaviors

See merge request pleroma/pleroma!3434
2021-06-01 19:41:37 +00:00
feld dea035dc49 Merge branch 'cycles-uploader' into 'develop'
Recompilation speedup: Remove deps from Uploader behaviour

See merge request pleroma/pleroma!3435
2021-06-01 19:39:36 +00:00
Mark Felder 0be7eada92 Keep original Shoutbox channel name as chat:public
There is no sane / high level workaround for merging users who join shout:public and chat:public.
2021-06-01 14:34:13 -05:00
Alex Gleason f6d2bd738d
Merge remote-tracking branch 'pleroma/develop' into cycles-uploader 2021-06-01 14:20:31 -05:00
Alex Gleason 8a5ceb7e53
Remove deps from Uploader behaviour
Speeds up recompilation by limiting compile-time deps
2021-06-01 14:19:45 -05:00
Alex Gleason 708210b994
Merge remote-tracking branch 'pleroma/develop' into cycles-streaming 2021-06-01 13:56:40 -05:00
Alex Gleason a744c47e9a
Remove deps from Streaming/Persisting behaviors
Speeds up recompilation by limiting compile-time deps
2021-06-01 13:55:07 -05:00
Mark Felder 2743c66693 Add "chat" back as a feature for backwards compat.
Legacy PleromaFE uses this to identify if ShoutBox is available.
2021-06-01 13:17:50 -05:00
Mark Felder 48a0ea2fc3 Wire up join requests to the old "chat:public" channel into the new "shout:public" channel 2021-06-01 11:56:51 -05:00
Mark Felder d9513b11d3 Forgot to move migration test when rebasing 2021-06-01 11:49:47 -05:00
Mark Felder 9ce2c017c0 We want clear_config/2 in all tests now 2021-06-01 11:49:47 -05:00
Roman Chvanikov d7dfa6d27c Update test for RenameInstanceChat migration 2021-06-01 11:49:47 -05:00
Roman Chvanikov e0bb655773 Add RenameInstanceChat migration 2021-06-01 11:49:47 -05:00
Mark Felder 01f796f8bb Add a test for the migration 2021-06-01 11:49:47 -05:00
Mark Felder 8ff2d8d17d Update description file for new shout config setting location 2021-06-01 11:49:47 -05:00
Mark Felder d6432a65da Move shout configuration from :instance, update docs and changelog 2021-06-01 11:49:46 -05:00
Mark Felder 4a181982c3 More confusingly named legacy chat code renamed to shout 2021-06-01 11:49:16 -05:00
Mark Felder a3cff59659 Ensure we actually start ShoutChannel 2021-06-01 11:49:16 -05:00
Mark Felder 36fe8950f7 Update PleromaFE settings for the old chat box 2021-06-01 11:49:16 -05:00
Mark Felder 68aa56b9e4 Just call it shout 2021-06-01 11:49:16 -05:00
Mark Felder ff00b354fa Rename the non-federating Chat feature to Shout 2021-06-01 11:49:14 -05:00
feld ee52fc840d Merge branch 'cycles-constants' into 'develop'
Recompilation speedup: move as_local_public/0 into ActivityPub.Utils

See merge request pleroma/pleroma!3431
2021-06-01 16:43:51 +00:00
Alex Gleason c435de426d
Merge remote-tracking branch 'pleroma/develop' into cycles-constants 2021-06-01 11:33:11 -05:00
feld 75b94a2f35 Merge branch 'cycles-frontend-static' into 'develop'
Recompilation speedup: make Router a runtime dep of FrontendStatic

See merge request pleroma/pleroma!3429
2021-06-01 16:19:41 +00:00
feld 0ddf492c5d Merge branch 'cycles-base-url' into 'develop'
Deprecate Pleroma.Web.base_url/0

See merge request pleroma/pleroma!3432
2021-06-01 16:15:27 +00:00
Haelwenn c4b4258374 Merge branch 'features/validators-note' into 'develop'
Pipeline Ingestion: Note

Closes #290

See merge request pleroma/pleroma!2984
2021-06-01 01:51:38 +00:00
Alex Gleason f2134e605b
Merge remote-tracking branch 'pleroma/develop' into cycles-base-url 2021-05-31 16:49:46 -05:00
Alex Gleason 51a9f97e87
Deprecate Pleroma.Web.base_url/0
Use Pleroma.Web.Endpoint.url/0 directly instead. Reduces compiler cycles.
2021-05-31 16:48:03 -05:00
Alex Gleason 10dfe81479
Pleroma.Constants.as_local_public/0 --> Pleroma.Web.ActivityPub.Utils.as_local_public/0
Move as_local_public/0 to stop making modules depend on Web at compile-time
2021-05-31 13:39:15 -05:00
Haelwenn a0ba44904a Merge branch 'docs/goto-libera' into 'develop'
Changing references of freenode to libera.chat

See merge request pleroma/pleroma!3415
2021-05-31 17:42:36 +00:00
Guy Sheffer da1ee5c46a Add Raspberry Pi install instructions 2021-05-31 19:17:49 +03:00
Haelwenn (lanodan) Monnier 03232a8223
Changing references of freenode to libera.chat 2021-05-31 17:08:20 +02:00
Haelwenn e53984e446 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3373
2021-05-31 14:40:46 +00:00
Alex Gleason 2e682788a3
Merge commit '07fed0fda2473fc4e1e3b01e863217391fd2902f'; commit 'e3173a279dad89dfce6eae89368ad3ba180c0490'; commit '21787546c01069d1d1d8261f0bc37d13a73122a9'; commit 'fda34591cefad94277385311c6391d1ca2adb36c'; commit '0ada3fe823a3c2e6c5835431bdacfbdb8b3d02a7'; commit '32d263cb905dd7fffd43a4955295af0b2b378537'; commit 'c9e4200ed2167772294fceb4f282979b5ea04981'; commit '3ff9c5e2a67ab83c2abdb14cd246dea059079e75'; commit 'fa543a936124abee524f9a103c17d2601176dcd4'; commit 'c23b81e399d5be6fc30f4acb1d757d5eb291d8e1' into cycles-phase-1 2021-05-30 12:58:24 -05:00
Snow 2fde1f2549 Translated using Weblate (Chinese (Traditional))
Currently translated at 5.6% (6 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/zh_Hant/
2021-05-30 17:43:00 +00:00
Snow b3209c31bc Translated using Weblate (Chinese (Traditional))
Currently translated at 0.9% (1 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/zh_Hant/
2021-05-30 17:43:00 +00:00
Snow 0107ec63a2 Added translation using Weblate (Chinese (Traditional)) 2021-05-30 17:43:00 +00:00
Haelwenn 4a58cb469b Merge branch 'ffmpeg' into 'develop'
Add ffmpeg to docker image

See merge request pleroma/pleroma!3428
2021-05-30 17:42:48 +00:00
Alex Gleason 595bca24ad
Merge remote-tracking branch 'pleroma/develop' into cycles-frontend-static 2021-05-30 12:12:58 -05:00
Alex Gleason 721c966842
FrontendStatic: make Router a runtime dep
Speeds up recompilation by removing compile-time cycles
2021-05-30 12:12:16 -05:00
shibao 0204ceff7f Add ffmpeg 2021-05-30 10:27:58 -04:00
feld 5d40ffe429 Merge branch 'cycles-views' into 'develop'
Recompilation speedup: Create real Views for all Controllers

See merge request pleroma/pleroma!3425
2021-05-29 21:50:07 +00:00
feld b5f3a5c979 Merge branch 'cycles-html' into 'develop'
Recompilation speedup: Break out activity-specific HTML functions into Pleroma.Activity.HTML

See merge request pleroma/pleroma!3426
2021-05-29 21:19:25 +00:00
feld 317fe240a8 Merge branch 'cycles-gun' into 'develop'
Recompilation speedup: use runtime deps in Pleroma.Gun

See merge request pleroma/pleroma!3422
2021-05-29 21:16:57 +00:00
feld b2f5f48750 Merge branch 'cycles-config' into 'develop'
Recompilation speedup: use runtime deps in Pleroma.Config

See merge request pleroma/pleroma!3424
2021-05-29 19:20:47 +00:00
feld 018dc12b4c Merge branch 'cycles-pipeline' into 'develop'
Recompilation speedup: switch to runtime deps in ActivityPub.Pipeline

See merge request pleroma/pleroma!3427
2021-05-29 19:16:06 +00:00
Alex Gleason 0de6716f06
Merge remote-tracking branch 'pleroma/develop' into cycles-pipeline 2021-05-29 13:32:57 -05:00
Alex Gleason fa543a9361
ActivityPub.Pipeline: switch to runtime deps
Speed up recompilation by breaking compile-time cycles
2021-05-29 13:25:11 -05:00
Alex Gleason 1a69f59221
Merge remote-tracking branch 'pleroma/develop' into cycles-html 2021-05-29 12:29:58 -05:00
Alex Gleason 3ff9c5e2a6
Break out activity-specific HTML functions into Pleroma.Activity.HTML
Fixes cycles in lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex
2021-05-29 12:29:11 -05:00
Alex Gleason 7c96c82b5b
Merge remote-tracking branch 'pleroma/develop' into cycles-views 2021-05-29 12:17:24 -05:00
Alex Gleason c9e4200ed2
Create real Views for all Controllers
This makes views depend on each other at runtime instead of compile-time
2021-05-29 12:15:57 -05:00
Alex Gleason cc9e456c0a
Merge remote-tracking branch 'pleroma/develop' into cycles-plugs 2021-05-29 12:01:37 -05:00
Alex Gleason 32d263cb90
Config: use runtime deps instead of module attributes
Speeds up recompilation time by breaking compile-time cycles
2021-05-29 12:00:59 -05:00
Alex Gleason e2ba852bfe
Merge remote-tracking branch 'pleroma/develop' into cycles-gun 2021-05-29 11:35:57 -05:00
Alex Gleason 0ada3fe823
Gun: use runtime deps in ConnectionPool
Speed up recompilation time by breaking compile-time cycles
2021-05-29 11:35:53 -05:00
Alex Gleason 3ebede4b51
Gun: make Gun.API a runtime dep
Speed up recompilation by breaking a compile-time cycle
2021-05-29 10:53:30 -05:00
Snow 69aed310de Adding description 2021-05-29 02:22:33 +00:00
feld 8871ca5aa3 Merge branch 'cycles-router-api-routes' into 'develop'
Recompilation speedup: Pleroma.Web.get_api_routes/0 --> Pleroma.Web.Router.get_api_routes/0

See merge request pleroma/pleroma!3419
2021-05-28 19:06:49 +00:00
feld 359ded086c Merge branch 'simplepolicy-announce-leak' into 'develop'
SimplePolicy: filter nested objects, fixes #2582

Closes #2582

See merge request pleroma/pleroma!3376
2021-05-28 19:05:13 +00:00
feld c44dd05f64 Merge branch 'gitignore-runtime-exs' into 'develop'
gitignore runtime.exs

See merge request pleroma/pleroma!3407
2021-05-28 19:02:15 +00:00
feld edcdd15e01 Merge branch 'alias-router-helpers' into 'develop'
Switch to aliasing `Router.Helpers` instead of importing

See merge request pleroma/pleroma!3409
2021-05-28 19:01:47 +00:00
feld a833a2d76b Merge branch 'plug-runtime-dev' into 'develop'
Put Plugs in runtime mode in :dev, :test to speed up recompilation

See merge request pleroma/pleroma!3411
2021-05-28 18:57:45 +00:00
Alex Gleason 39127f15eb
Merge remote-tracking branch 'pleroma/develop' into cycles-router-api-routes 2021-05-28 13:51:21 -05:00
Alex Gleason c23b81e399
Pleroma.Web.get_api_routes/0 --> Pleroma.Web.Router.get_api_routes/0
Reduce recompilation time by breaking compile-time cycles
2021-05-28 13:51:01 -05:00
feld 7ad87571bd Merge branch 'cycles-router' into 'develop'
Recompilation speedup: move StaticFEPlug to a pipeline

See merge request pleroma/pleroma!3417
2021-05-28 18:24:33 +00:00
feld 9f386df83c Merge branch 'cycles-router-mediaproxy' into 'develop'
Recompilation speedup: don't make MediaProxy be a compile-dep of Router

See merge request pleroma/pleroma!3418
2021-05-28 18:22:27 +00:00
Alex Gleason bf2ee12fdb
Merge remote-tracking branch 'pleroma/develop' into cycles-router-mediaproxy 2021-05-28 13:08:23 -05:00
Alex Gleason fda34591ce
Don't make MediaProxy be a compile-dep of Router
Speeds up recompilation by removing MediaProxy as a compile-time dep of Router
2021-05-28 13:07:34 -05:00
Alex Gleason e885b49e35
Merge remote-tracking branch 'pleroma/develop' into cycles-router 2021-05-28 12:44:16 -05:00
Alex Gleason 21787546c0
Router: move StaticFEPlug to a pipeline
Speed up recompilation by breaking a cycle. Removes StaticFEPlug as a compile-time dep of Router.
2021-05-28 12:43:02 -05:00
Haelwenn a01093c505 Merge branch 'featured-totalItems' into 'develop'
Add missing totalItems field for featured collections

See merge request pleroma/pleroma!3416
2021-05-27 21:01:54 +00:00
Mark Felder cd4352a86f Missing entry for pinned posts federation from MR !3312 2021-05-27 12:20:21 -05:00
Mark Felder 4694853766 Provide totalItems field for featured collections 2021-05-27 12:17:31 -05:00
Haelwenn f34e22bba2 Merge branch 'feat/expose_email_to_self' into 'develop'
Expose user email address to user/owner; not publicly.

See merge request pleroma/pleroma!3412
2021-05-26 18:04:23 +00:00
Haelwenn 5d0ac015dc Merge branch 'mix_config_deprecation' into 'develop'
Switch from the deprecated "use Mix.config" to "import Config"

See merge request pleroma/pleroma!3413
2021-05-22 15:46:02 +00:00
Mark Felder fe40f6f291 Switch from the deprecated "use Mix.config" to "import Config" 2021-05-20 14:02:58 -05:00
Mark Felder 05d678c070 Expose user email address to user/owner; not publicly. 2021-05-20 12:50:43 -05:00
Alex Gleason 0461794375
Merge remote-tracking branch 'pleroma/develop' into plug-runtime-dev 2021-05-19 14:27:59 -05:00
Alex Gleason e3173a279d
Put Plugs in runtime mode in :dev, :test to speed up recompilation 2021-05-19 14:27:46 -05:00
Alex Gleason ad7d4ff8bc
Merge remote-tracking branch 'pleroma/develop' into alias-router-helpers 2021-05-19 12:49:00 -05:00
Alex Gleason 07fed0fda2
Switch to aliasing `Router.Helpers` instead of importing 2021-05-18 17:45:30 -05:00
feld 8e9f032f25 Merge branch 'chore/changelog' into 'develop'
Clarify AttachmentMetadata changes

See merge request pleroma/pleroma!3408
2021-05-18 21:54:54 +00:00
Mark Felder 2d7f6ce6fb Clarify AttachmentMetadata changes 2021-05-18 16:46:51 -05:00
feld 0db436789d Merge branch 'blurhash' into 'develop'
Upload filter for media metadata (Support blurhash, get WxH)

See merge request pleroma/pleroma!3404
2021-05-18 21:41:34 +00:00
Mark Felder c64cbee26c Fixed checking for Upload Filter required commands 2021-05-18 16:28:21 -05:00
Mark Felder 4ab3ef07d0 Check AnalyzeMetadata filter's required commands
eblurhash:magick uses "convert"
Fetching image metadata uses "mogrify"
2021-05-18 16:08:31 -05:00
Mark Felder 9b6b5ac196 Rename upload filter to AnalyzeMetadata 2021-05-18 15:33:33 -05:00
lain 44be498fe1 Merge branch 'optional-config' into 'develop'
Save ~10 minutes on source installation

See merge request pleroma/pleroma!3406
2021-05-17 18:41:12 +00:00
Alex Gleason 7ac4da8dd4
Merge remote-tracking branch 'pleroma/develop' into gitignore-runtime-exs 2021-05-16 13:22:26 -05:00
Alex Gleason 230ad82dad
gitignore `config/runtime.exs` 2021-05-16 13:22:07 -05:00
Alex Gleason 32ae8f4906
Merge remote-tracking branch 'pleroma/develop' into optional-config 2021-05-16 12:27:29 -05:00
Alex Gleason b540fff908
Docs: use `MIX_ENV=prod mix pleroma.instance gen` 2021-05-16 12:26:51 -05:00
Alex Gleason b22f54eb29
Make prod.secret.exs optional (with warning) 2021-05-16 12:26:32 -05:00
Alex Gleason bcf6efce15
Merge remote-tracking branch 'upstream/attachment-meta' into blurhash 2021-05-14 09:09:32 -05:00
Alex Gleason 543e9402d6
Support blurhash 2021-05-14 09:07:16 -05:00
Alex Gleason 5a57b025c7
Changelog: attachment meta 2021-05-12 20:15:33 -05:00
Alex Gleason ff02511057
Merge remote-tracking branch 'upstream/develop' into attachment-meta 2021-05-12 20:10:52 -05:00
Alex Gleason 6f0b42656d
Federate attachments as Links instead of Documents 2021-05-12 19:25:37 -05:00
Alex Gleason 02b9436494
Don't render media `meta` if nil 2021-05-12 16:16:10 -05:00
Alex Gleason 4c060ae733
Ingest remote attachment width/height 2021-05-12 15:38:49 -05:00
Alex Gleason ab9eabdf20
Add SetMeta filter to store uploaded image sizes 2021-05-12 15:07:31 -05:00
faried nawaz 5be9d13981
a better query to delete from hashtags
old query:

Delete on hashtags  (cost=5089.81..5521.63 rows=6160 width=18)
   ->  Hash Semi Join  (cost=5089.81..5521.63 rows=6160 width=18)
         Hash Cond: (hashtags.id = ht.id)
         ->  Seq Scan on hashtags  (cost=0.00..317.28 rows=17528 width=14)
         ->  Hash  (cost=5012.81..5012.81 rows=6160 width=20)
               ->  Merge Anti Join  (cost=0.70..5012.81 rows=6160 width=20)
                     Merge Cond: (ht.id = hto.hashtag_id)
                     ->  Index Scan using hashtags_pkey on hashtags ht  (cost=0.29..610.53 rows=17528 width=14)
                     ->  Index Scan using hashtags_objects_pkey on hashtags_objects hto  (cost=0.42..3506.48 rows=68158 width=14)

new query:

Delete on hashtags ht  (cost=0.70..5012.81 rows=6160 width=12)
   ->  Merge Anti Join  (cost=0.70..5012.81 rows=6160 width=12)
         Merge Cond: (ht.id = hto.hashtag_id)
         ->  Index Scan using hashtags_pkey on hashtags ht  (cost=0.29..610.53 rows=17528 width=14)
         ->  Index Scan using hashtags_objects_pkey on hashtags_objects hto  (cost=0.42..3506.48 rows=68158 width=14)
2021-05-08 02:00:43 +05:00
faried nawaz a0c9a2b4cc
mix prune_objects: remove unused hashtags after pruning remote objects 2021-05-08 02:00:42 +05:00
faried nawaz 22b2451edd
migration: add on_delete: :delete_all to hashtags object_id fk 2021-05-08 02:00:34 +05:00
Alex Gleason cea44b6b3e
Merge remote-tracking branch 'upstream/develop' into simplepolicy-announce-leak 2021-05-07 12:40:45 -05:00
a1batross b25de9d312 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-05-06 17:49:19 +02:00
Alex Gleason b15c4629ff
CHANGELOG: notice routes 2021-05-05 14:51:29 -05:00
Alex Gleason 1a45aa1278
Merge remote-tracking branch 'pleroma/develop' into notice-routes 2021-05-05 14:50:54 -05:00
Alex Gleason 50e3750758
Add notice compatibility routes for other frontends
Fixes: https://git.pleroma.social/pleroma/pleroma/-/issues/1785
2021-05-05 14:50:10 -05:00
feld 745375bdcf Merge branch 'dont-crash-email-settings' into 'develop'
Don't crash so hard when email settings are invalid

Closes #2606

See merge request pleroma/pleroma!3400
2021-05-04 13:30:00 +00:00
feld d5263bfcf3 Merge branch 'earmark' into 'develop'
Upgrade Earmark to v1.4.15

Closes #1942 and #2026

See merge request pleroma/pleroma!3076
2021-05-04 13:29:14 +00:00
Alex Gleason 90770e0841
CHANGELOG: don't crash so hard when email settings are invalid 2021-05-03 14:43:34 -05:00
Alex Gleason c186b059a7
Merge remote-tracking branch 'pleroma/develop' into dont-crash-email-settings 2021-05-03 14:43:28 -05:00
Alex Gleason c80b1aaf51
Don't crash when email settings are invalid
Fixes: https://git.pleroma.social/pleroma/pleroma/-/issues/2606
Fixes: https://gitlab.com/soapbox-pub/soapbox/-/issues/4
2021-05-03 14:43:14 -05:00
Alex Gleason dca87c5e7b
CHANGELOG: markdown 2021-05-01 11:28:06 -05:00
Alex Gleason 20878c7f99
CHANGELOG: SimplePolicy embedded objects are now checked 2021-04-30 14:22:02 -05:00
Alex Gleason 926a233cc4
Merge remote-tracking branch 'upstream/develop' into simplepolicy-announce-leak 2021-04-30 14:21:17 -05:00
Alex Gleason c16c7fdb87
SimplePolicy: filter string Objects 2021-04-30 14:20:54 -05:00
Alex Gleason 3d742c3c1a
SimplePolicy: filter nested objects 2021-04-30 14:20:37 -05:00
Alex Gleason 52fc59f125
Merge remote-tracking branch 'upstream/develop' into earmark 2021-04-30 13:17:03 -05:00
Alex Gleason a8fa00ef66
Fix failing remote mentions test, valid TLDs 2021-04-30 12:55:43 -05:00
Alex Gleason 53760d2cda
Delete obsolete EarmarkRendereTests (moved to UtilsTest) 2021-04-30 12:51:18 -05:00
Alex Gleason 6727a3659f
Remove Pleroma.Formatter.minify/2 2021-04-30 12:27:06 -05:00
Alex Gleason 004bcedb07
Upgrade Earmark 1.4.15 2021-04-30 12:23:11 -05:00
feld 377f84f367 Merge branch 'oauth-token-id' into 'develop'
Return token's primary key with POST /oauth/token

See merge request pleroma/pleroma!3380
2021-04-29 19:13:50 +00:00
Alex Gleason 6bc8ab225d
Merge remote-tracking branch 'upstream/develop' into oauth-token-id 2021-04-29 14:06:12 -05:00
feld 2fe3bd8178 Merge branch 'maybe-fix-ci' into 'develop'
CI: Purge pleroma build directory between runs

See merge request pleroma/pleroma!3399
2021-04-29 18:56:28 +00:00
Alex Gleason b5ae826898
CI: Purge pleroma build directory between runs 2021-04-29 13:15:48 -05:00
Alex Gleason 8c1d6e8839
CHANGELOG: Return OAuth token `id` 2021-04-29 12:20:46 -05:00
Alex Gleason e7ac15905e
Merge remote-tracking branch 'upstream/develop' into oauth-token-id 2021-04-29 12:19:10 -05:00
Alex Gleason 762be6ce10
Merge remote-tracking branch 'upstream/develop' into block-behavior 2021-04-29 11:14:32 -05:00
Haelwenn 115673bce7 Merge branch 'gitlab-ci-mix-lock' into 'develop'
Cache GitLab CI based on mix.lock

See merge request pleroma/pleroma!3398
2021-04-28 04:53:25 +00:00
Alex Gleason b9a99ac0d4
Cache gitlab-ci based on mix.lock 2021-04-27 11:54:28 -05:00
a1batross bab25bf866 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-04-23 15:52:55 +02:00
Haelwenn d9e782c180 Merge branch 'fix/delete_activities_timeout' into 'develop'
Fix pleroma.user delete_activities mix task

See merge request pleroma/pleroma!3394
2021-04-23 02:14:11 +00:00
Mark Felder d7a71a275a Fixed pleroma.user delete_activities mix task. 2021-04-22 10:15:50 -05:00
Mark Felder 959dc6e6fc Cleanup and ensure we obey custom Repo timeout 2021-04-22 10:15:50 -05:00
Mark Felder 99fd9c5e38 OTP releases executing commands via pleroma_ctl show the parent of the process is :erl_eval 2021-04-22 10:15:50 -05:00
Mark Felder 9f711ddcf8 Try to set query timeout intelligently 2021-04-22 10:15:50 -05:00
Mark Felder 9bc69196d5 Add utility function to return infinite timeout for SQL transactions if we detect it was called from a Mix Task 2021-04-22 10:15:50 -05:00
Mark Felder 0effcd2cfe Set Repo.transaction/2 timeout to infinity. Fixes pleroma.user delete_activities mix task. 2021-04-22 10:15:50 -05:00
Haelwenn f9bedf5597 Apply lanodan's suggestion(s) to 1 file(s) 2021-04-20 21:08:31 +00:00
Haelwenn 42185d8750 Apply lanodan's suggestion(s) to 1 file(s) 2021-04-20 21:06:45 +00:00
Haelwenn e104829c2f Apply lanodan's suggestion(s) to 1 file(s) 2021-04-20 21:06:39 +00:00
Haelwenn 30b1d50938 Apply lanodan's suggestion(s) to 1 file(s) 2021-04-20 21:06:32 +00:00
feld b050adb5e2 Merge branch 'fix/docs' into 'develop'
Docs: Fix incorrect shell command

See merge request pleroma/pleroma!3396
2021-04-20 18:02:48 +00:00
Mark Felder 7eded72189 Fix incorrect shell command
Can't be in /opt/pleroma/bin and then call ./bin/pleroma_ctl :)
2021-04-20 12:31:14 -05:00
feld 8defbe431e Merge branch 'feature/opt-out-of-google-floc' into 'develop'
Add opting out of Google FLoC to HTTPSecurityPlug headers

Closes #2630

See merge request pleroma/pleroma!3393
2021-04-19 22:39:52 +00:00
Sean King 2780cdd4e7
Add CHANGELOG entry 2021-04-19 16:06:19 -06:00
Sean King d1eb1913e8 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/opt-out-of-google-floc 2021-04-19 15:42:38 -06:00
feld 7183655a07 Merge branch 'fix/tests' into 'develop'
Fix tests broken since !3312

See merge request pleroma/pleroma!3395
2021-04-19 21:34:38 +00:00
Mark Felder efed94a23e Fix error response which was breaking tests related to pinned posts 2021-04-19 16:23:57 -05:00
Sean King 2b4f958b2a
Add opting out of Google FLoC to HTTPSecurityPlug headers 2021-04-18 14:00:18 -06:00
a1batross 940922a2b0 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-04-18 14:40:03 +02:00
Sean King 2de41770d0
Remove Twemoji stuff from MastoFE 2021-04-16 18:02:08 -06:00
Sean King 0f8da39b72
Remove priv/static/sounds folder 2021-04-16 15:56:00 -06:00
Sean King a787fed8f7
Move changelog around 2021-04-16 15:50:17 -06:00
rinpatch c6dcd863e2 Apply rinpatch's suggestion(s) to 1 file(s) 2021-04-16 09:59:50 +00:00
rinpatch 15f87cf658 Merge branch 'features/ingestion-ecto-tag' into 'develop'
TagValidator: New

See merge request pleroma/pleroma!3244
2021-04-16 09:55:55 +00:00
rinpatch 79376b4afb Merge branch 'feature/521-pinned-post-federation' into 'develop'
Pinned posts federation

Closes #521

See merge request pleroma/pleroma!3312
2021-04-16 09:53:47 +00:00
rinpatch 0ababdc068 Merge branch 'fix/2593-reading-exported-config-file' into 'develop'
Reading the file, instead of config keyword in ReleaseRuntimeProvider

Closes #2593

See merge request pleroma/pleroma!3381
2021-04-16 09:50:26 +00:00
Sean King fa2e62078c
Remove MastoFE configuration stuff 2021-04-15 23:51:04 -06:00
Sean King 08694599ae
Remove bash script for downloading new MastoFE build 2021-04-15 23:41:34 -06:00
Sean King bf9c4f5289
Add note about Mastodon FE being removed from Pleroma in changelog 2021-04-15 23:39:33 -06:00
Sean King f3b403fa98
Remove MastoFE stuff from docs and default panel 2021-04-15 23:37:18 -06:00
Sean King ca79aab0bf
Remove MastoFE settings from users table 2021-04-15 23:33:24 -06:00
Sean King 8afa3f2d1b
Remove no longer necessary unit tests for MastoFE 2021-04-15 23:12:42 -06:00
Sean King 4f55d5123b
Remove MastoFE-related backend code and frontend pieces 2021-04-15 22:56:21 -06:00
Haelwenn 152cb3074e Merge branch 'fix/notifsettings-breaking-login' into 'develop'
Enforce user.notification_settings is NOT NULL

Closes #2571

See merge request pleroma/pleroma!3386
2021-04-15 21:34:55 +00:00
feld 0a7c2a32ba Merge branch 'develop' into 'fix/notifsettings-breaking-login'
# Conflicts:
#   CHANGELOG.md
2021-04-15 14:59:26 +00:00
Haelwenn 0ba8efc950 Merge branch 'fix/mastodon-interface-docs-link' into 'develop'
Fix Mastodon interface link in documentation, fixes #2622

Closes #2622

See merge request pleroma/pleroma!3391
2021-04-15 05:44:01 +00:00
Sean King d9fce0133e
Fix Mastodon interface link 2021-04-14 14:01:33 -06:00
feld 1bf2b645c5 Merge branch 'fix/adminapi-concurrent-limiter' into 'develop'
Fix ConcurrentLimiter settings via AdminAPI

See merge request pleroma/pleroma!3390
2021-04-14 16:52:02 +00:00
Mark Felder f95b52255b Revert guards on string_to_elixir_types/1, remove unnecessary assignment in test 2021-04-14 09:39:57 -05:00
Mark Felder c3b8c77967 Improve string_to_elixir_types/1 with guards 2021-04-13 14:39:57 -05:00
Mark Felder 861f192852 Document fixed ability to save ConcurrentLimiter settings in ConfigDB 2021-04-13 14:39:44 -05:00
Mark Felder ee53ad4d77 Add ConcurrentLimiter to module_name?/1 and apply string_to_elixir_types/1 to search_opts keys during update_or_create/1 2021-04-13 14:39:31 -05:00
Mark Felder 905efc57e9 Initial test validating the AdminAPI issue 2021-04-13 14:39:28 -05:00
Haelwenn d2a03d3c86 Merge branch 'fix/instance-thumbnail-url' into 'develop'
Fix URL to custom instance thumbnail

Closes #2611

See merge request pleroma/pleroma!3388
2021-04-13 19:05:07 +00:00
Mark Felder cdd271b065 Fix assignment / assertion 2021-04-13 10:55:54 -05:00
Mark Felder 9fbcdc15b1 Validate custom instance thumbnail set via AdminAPI produces correct URL 2021-04-13 10:52:53 -05:00
Henry Jameson 200f1b0e89 try to fix ruffle on chrome 2021-04-12 00:48:33 +03:00
Mark Felder 0feafcc20c Use URI.merge to prevent concatenating two canonical URLs when a custom instance thumbnail was uploaded via AdminFE 2021-04-09 10:30:27 -05:00
Alexander Strizhakov 681a42c359
release runtime provider fix for paths 2021-04-08 15:45:31 +03:00
Haelwenn (lanodan) Monnier 5ef4659b37
test/pleroma/web/common_api_test.exs: Strip : around emoji key-name 2021-04-05 19:25:55 +02:00
Haelwenn (lanodan) Monnier 6d6bef64bf
fetcher_test: Remove assert on fake Create having an ap_id 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier 53193b84b1
utils: Fix maybe_splice_recipient when "object" isn’t a map 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier 0b88accae6
fetcher_test: Fix missing mock function 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier 6c9f6e62c8
transmogrifier: Fixing votes from Note to Answer 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier 461123110b
Object.Fetcher: Fix getting transmogrifier reject reason 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier b0c778fde7
NoteHandlingTest: remove fix_explicit_addressing-related test 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier d1205406d9
ActivityPubControllerTest: Apply same addr changes to object 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier 96212b2e32
Fix addressing 2021-04-05 19:19:12 +02:00
Haelwenn (lanodan) Monnier 641184fc7a
recipients fixes/hardening for CreateGenericValidator 2021-04-05 19:19:11 +02:00
Haelwenn (lanodan) Monnier c944932674
Pipeline Ingestion: Note 2021-04-05 19:19:11 +02:00
Haelwenn (lanodan) Monnier e2a3365b5c
ObjectValidator.CommonFixes: Introduce fix_objects_defaults and fix_activity_defaults 2021-04-05 19:19:11 +02:00
Haelwenn (lanodan) Monnier e56779dd8d
Transmogrifier: Simplify fix_explicit_addressing and fix_implicit_addressing 2021-04-05 19:19:11 +02:00
Haelwenn (lanodan) Monnier ef36f7fa5c
Move tag fixup to object_validator 2021-04-05 19:07:45 +02:00
feld f8cef70416 Merge branch 'chore/CHANGELOG' into 'develop'
Fix CHANGELOG entry meant for next release

See merge request pleroma/pleroma!3387
2021-04-01 15:26:46 +00:00
Mark Felder 31ce8a3730 Fix CHANGELOG entry meant for next release 2021-04-01 10:15:01 -05:00
Mark Felder 765f0907df Document user login failure fix for NULL notification_settings 2021-04-01 10:07:57 -05:00
Mark Felder 4ecf6ceea6 Enforce user.notification_settings is NOT NULL 2021-04-01 10:06:24 -05:00
Haelwenn (lanodan) Monnier 7ebfe89900
object_validators: Mark validate_data as private 2021-04-01 14:18:41 +02:00
Haelwenn (lanodan) Monnier 37a7f521fd
Insert string-hashtags in Pipeline
Cannot be done in Ecto schemas because only one type is allowed in arrays, and
needs to be done before the MRFs.
2021-04-01 14:18:41 +02:00
Haelwenn (lanodan) Monnier 5ae27c8451
pipeline_test: Fix usage of %Activity{} 2021-04-01 14:18:40 +02:00
Haelwenn (lanodan) Monnier 9015df2229
TagValidator: New 2021-04-01 14:18:40 +02:00
Haelwenn 96fe4dd4e2 Merge branch 'revert-c368bf6d' into 'develop'
Revert "Merge branch 'patch-fix-open-api-spec' into 'develop'"

See merge request pleroma/pleroma!3385
2021-04-01 12:11:21 +00:00
Haelwenn 1e3db07586 Revert "Merge branch 'patch-fix-open-api-spec' into 'develop'"
This reverts merge request !3382
2021-04-01 12:00:58 +00:00
rinpatch ce9ed6c730 Merge branch 'refactor/object_validator_validate' into 'develop'
object_validator: Refactor most of validate/2 to a generic block

See merge request pleroma/pleroma!3383
2021-04-01 11:10:12 +00:00
Haelwenn (lanodan) Monnier af1cd28f9b
object_validator: Refactor most of validate/2 to a generic block 2021-04-01 12:18:52 +02:00
rinpatch c368bf6dce Merge branch 'patch-fix-open-api-spec' into 'develop'
OpenAPI: Fix `date-time` being specified as an `integer` in OpenAPI spec (when it should be a `string`) in AccountCreateResponse

See merge request pleroma/pleroma!3382
2021-03-31 08:19:31 +00:00
Miss Pasture 863010ea63 date-times are always strings 2021-03-31 06:51:22 +00:00
feld 4c16f5d2ca Merge branch 'upstream/mrf-followbot' into 'develop'
Upstream/mrf followbot

See merge request pleroma/pleroma!3060
2021-03-30 16:59:34 +00:00
Mark Felder 16a7ffb1ea Fix function calls due to module name change 2021-03-30 11:10:44 -05:00
Mark Felder bfcdcd4f69 Temp file leaked, oops 2021-03-30 11:10:44 -05:00
Mark Felder d29f6d6b6e Add more details to the cheatsheat for FollowBot MRF 2021-03-30 11:10:44 -05:00
Mark Felder 03f38ac4eb Prefer FollowBot naming convention vs Followbot 2021-03-30 11:10:44 -05:00
Mark Felder 7eab98d5c8 Document new FollowBot MRF 2021-03-30 11:10:44 -05:00
Mark Felder fef4f3772c More tests to validate Followbot is behaving 2021-03-30 11:10:44 -05:00
Mark Felder 4796df0bc3 Remove Task.async as it is broken here and probably a premature optimization anyway 2021-03-30 11:10:44 -05:00
Mark Felder f73d166785 Only need to validate a follow request is generated for now 2021-03-30 11:10:44 -05:00
Mark Felder c252ac71d4 Revert 2021-03-30 11:10:44 -05:00
Mark Felder 778010ef8e Do not try to follow local users. Their posts are already available locally on the instance. 2021-03-30 11:10:44 -05:00
Mark Felder 86182ef8e4 Change module name to FollowbotPolicy 2021-03-30 11:10:44 -05:00
Mark Felder 1926d0804b Add follow_requests_outstanding_since?/3 to Pleroma.Activity 2021-03-30 11:10:44 -05:00
Mark Felder f0dcc1ca69 Lint 2021-03-30 11:10:44 -05:00
Mark Felder a176914c73 Better checking of previous follow request attempts 2021-03-30 11:10:44 -05:00
Mark Felder 3989ec508c Prevent duplicates from being processed 2021-03-30 11:10:44 -05:00
Mark Felder 3949cfdc24 Make the followbot only dispatch follow requests once per 30 day period 2021-03-30 11:10:43 -05:00
feld 2689463c7e Apply 1 suggestion(s) to 1 file(s) 2021-03-30 11:10:43 -05:00
Mark Felder 2557e805a3 Support for configuration via AdminFE 2021-03-30 11:10:43 -05:00
Mark Felder e78738173a Enforce that the followbot must be marked as a bot. 2021-03-30 11:10:43 -05:00
Mark Felder 840dc4b44b Document :mrf_follow_bot 2021-03-30 11:10:34 -05:00
Mark Felder fba770b3ea Try to handle misconfiguration scenarios gracefully 2021-03-30 11:10:03 -05:00
Mark Felder 8b81d62227 Upstream original followbot implementation 2021-03-30 11:10:03 -05:00
Alexander Strizhakov 4d046afd27
tests for release config provider 2021-03-27 09:05:33 +03:00
Alexander Strizhakov 6e108b8603
reading the file, instead of config keyword 2021-03-26 19:19:19 +03:00
Alexander Strizhakov 1885268c9c
expanding validator 2021-03-25 13:26:54 +03:00
Alexander Strizhakov 2a520ba008
expanding AddRemoveValidator 2021-03-25 13:03:42 +03:00
Alexander Strizhakov 8857242c95
removeing corresponding add activity 2021-03-25 13:03:41 +03:00
Alexander Strizhakov 5ae9b05600
separate test file for featured collection 2021-03-25 13:03:41 +03:00
Alexander Strizhakov 8f0778166c
moving fixture into mastodon folder 2021-03-25 13:03:41 +03:00
Alexander Strizhakov 16c96966e9
not needed 2021-03-25 13:03:41 +03:00
Alexander Strizhakov 3adb43cc20
refetch user on incoming add/remove activity
if featured_address is nil
2021-03-25 13:03:41 +03:00
Alexander Strizhakov d1d2744ee3
featured_address valition in AddRemoveValidator 2021-03-25 13:03:40 +03:00
Alexander Strizhakov ff612750b1
validator renaming & add validation for target 2021-03-25 13:03:40 +03:00
Alexander Strizhakov 17f28c0507
mastodon pins 2021-03-25 13:03:40 +03:00
Alexander Strizhakov 3ec1dbd922
Let pins federate
- save object ids on pin, instead of activity ids
- pins federation
- removed pinned_activities field from the users table
- activityPub endpoint for user pins
- pulling remote users pins
2021-03-25 13:03:40 +03:00
Alex Gleason b6a69b5efd
Return token's primary key with POST /oauth/token 2021-03-24 12:50:05 -05:00
feld caadde3b04 Merge branch 'fix/2585-config-migration-dir' into 'develop'
migrating config to tmp folder

Closes #2585

See merge request pleroma/pleroma!3379
2021-03-23 17:46:52 +00:00
Alexander Strizhakov ad907254fb changelog entry 2021-03-23 12:40:49 -05:00
Alexander Strizhakov 4cd34d0197
suggestion 2021-03-23 17:27:02 +03:00
Alexander Strizhakov 03843a5386
migrating config to tmp folder 2021-03-23 14:29:02 +03:00
Haelwenn c09844d3d2 Merge branch 'fix/copy-emoji-summary' into 'develop'
Copy emoji in the subject from parent post

See merge request pleroma/pleroma!3378
2021-03-23 09:27:03 +00:00
rinpatch d3660b24d3 Copy emoji in the subject from parent post
Sometimes people put emoji in the subject, which results in the subject
looking broken if someone replies to it from a server that does not
have the said emoji under the same shortcode. This patch solves the problem
by extending the emoji set available in the summary to that of the parent
post.
2021-03-22 21:20:47 +03:00
a1batross 44287702ad Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-03-22 15:20:41 +01:00
rinpatch 572363793f Merge branch 'fix/2579-finger-content-type' into 'develop'
respect content-type header in finger request

Closes #2579

See merge request pleroma/pleroma!3375
2021-03-21 08:25:02 +00:00
rinpatch 72143dd732 Merge branch 'richmedia-workaround' into 'develop'
Workaround for RichMedia preview image breakage edge case

See merge request pleroma/pleroma!3363
2021-03-21 08:19:42 +00:00
feld 8f78361525 Merge branch 'fix/timex-retired-version' into 'develop'
updating Timex

See merge request pleroma/pleroma!3377
2021-03-20 15:52:01 +00:00
Alexander Strizhakov ef5b0510eb
updating timex 2021-03-20 08:29:02 +03:00
Alexander Strizhakov d7e51206a2
respect content-type header in finger request 2021-03-19 18:53:55 +03:00
rinpatch a9bc652ab9 Merge branch 'mediaproxy-decode' into 'develop'
Simple way to decode mediaproxy URLs

See merge request pleroma/pleroma!3364
2021-03-19 08:52:12 +00:00
rinpatch f930e83fa2 Merge branch 'fix/remove_auto_nsfw' into 'develop'
Remove sensitive setting #nsfw

See merge request pleroma/pleroma!3223
2021-03-19 08:48:22 +00:00
rinpatch 67bde35e71 Merge branch 'bugfix/bridgy-user-icon' into 'develop'
Add support for actor icon being a list (Bridgy)

See merge request pleroma/pleroma!3372
2021-03-19 08:36:26 +00:00
Haelwenn a2aa309496 Merge branch 'update_open_api_spex' into 'develop'
Update OpenApiSpex dependency

See merge request pleroma/pleroma!3362
2021-03-16 01:54:43 +00:00
a1batross 4ee5929296 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-03-15 13:20:43 +01:00
a1batross 07ab7473b9 Add alternative MIX_ENVs, add template systemd service 2021-03-15 13:20:26 +01:00
rinpatch 8194622a72 Merge branch 'feature/object-hashtags-rework' into 'develop'
Hashtags extraction from objects. Background migration infrastructure.

Closes #1840 and #2455

See merge request pleroma/pleroma!3213
2021-03-15 09:35:46 +00:00
Haelwenn (lanodan) Monnier 55bdfb075c
OpenAPI: TwitterAPI Util Controller 2021-03-15 06:47:07 +01:00
Haelwenn (lanodan) Monnier 65cd9cb638
TwitterAPI: Remove unused read notification function 2021-03-15 06:47:07 +01:00
Haelwenn (lanodan) Monnier a22c53810b
Remove deprecated /api/qvitter/statuses/notifications/read 2021-03-15 06:47:07 +01:00
Haelwenn (lanodan) Monnier e4743847a1
OpenAPI: PleromaAPI UserImport Controller 2021-03-15 06:47:07 +01:00
Haelwenn (lanodan) Monnier ef5de5eb39
OpenAPI: MastodonAPI Status Controller 2021-03-15 06:47:07 +01:00
Haelwenn (lanodan) Monnier 0c7c6463d1
OpenAPI: MastodonAPI Account Controller, excluding OAuth 2021-03-15 06:47:06 +01:00
Haelwenn (lanodan) Monnier 3a8404820d
Verify MastoFE Controller put_settings response 2021-03-15 06:47:06 +01:00
Haelwenn (lanodan) Monnier e47f83cfc8
OpenAPI: MastodonAPI Conversation Controller 2021-03-15 06:47:06 +01:00
Haelwenn (lanodan) Monnier 3123ecdd6e
OpenAPI: MastodonAPI Media Controller 2021-03-15 06:47:06 +01:00
Haelwenn (lanodan) Monnier 7eecc3b61d
OpenAPI: MastodonAPI Timeline Controller 2021-03-15 06:47:06 +01:00
Haelwenn (lanodan) Monnier b1d4b2b81e
Add support for actor icon being a list (Bridgy) 2021-03-15 06:44:05 +01:00
Haelwenn 19fbe5b860 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3370
2021-03-14 08:09:22 +00:00
Mark Felder b80f868c6b Prefer naming this function build_image_url/2 2021-03-13 12:27:15 -06:00
Ben Is 2408363e2a Translated using Weblate (Italian)
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/it/
2021-03-13 09:40:56 +00:00
Ivan Tashkinov cb73456609 [#3213] Code formatting fix. 2021-03-12 12:25:18 +03:00
Ivan Tashkinov 3edf45021e [#3213] Background migration infrastructure refactoring.
Extracted BaseMigrator and BaseMigratorState.
2021-03-12 12:18:11 +03:00
Ivan Tashkinov fbcddd8126 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-03-12 08:49:25 +03:00
rinpatch 9de2a5024e Merge branch 'improve-gitlab-ci' into 'develop'
Execute mix deps.get earlier and avoid duplicate invocations if possible

See merge request pleroma/pleroma!3369
2021-03-11 19:14:59 +00:00
Mark Felder 884584772b Execute mix deps.get earlier and avoid duplicate invocations if possible 2021-03-11 09:42:04 -06:00
Mark Felder 029ff65389 Leverage function pattern matching instead 2021-03-11 09:20:29 -06:00
Mark Felder 8246db2a96 Workaround for URI.merge/2 bug https://github.com/elixir-lang/elixir/issues/10771
If we avoid URI.merge unless we know we need it we reduce the edge cases we could encounter.
The site would need to both have "//" in the %URI{:path} and the image needs to be a relative URL.
2021-03-10 17:15:31 -06:00
feld 8e09a3cfa0 Merge branch 'fix/spec-build' into 'develop'
Ensure we fetch deps during spec-build stage

See merge request pleroma/pleroma!3368
2021-03-10 23:14:46 +00:00
Mark Felder fa75f11ca1 Revert "See if switching to same image as releases fixes the build"
This reverts commit 502d166b7e.
2021-03-10 16:37:24 -06:00
Mark Felder 502d166b7e See if switching to same image as releases fixes the build 2021-03-10 16:19:18 -06:00
Mark Felder 8feeb672c8 Ensure we fetch deps during spec-build stage 2021-03-10 13:03:14 -06:00
Ivan Tashkinov 946e0aab49 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-03-10 07:48:50 +03:00
Haelwenn 7f413139fb Merge branch 'openapi/admin/user' into 'develop'
Add OpenAPI spec for AdminAPI.UserController

See merge request pleroma/pleroma!3355
2021-03-10 03:24:40 +00:00
Ivan Tashkinov 92526e0230 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-03-07 11:34:39 +03:00
Ivan Tashkinov 7f8785fd9b [#3213] Performance optimization of filtering by hashtags ("any" condition). 2021-03-07 11:33:21 +03:00
Mark Felder eaaa20e0f1 Make tests use it 2021-03-05 13:21:22 -06:00
Mark Felder e97b34f65d Add simple way to decode fully qualified mediaproxy URLs 2021-03-05 13:18:37 -06:00
Egor Kislitsyn 92ab72dbbb
Update OpenApiSpex dependency 2021-03-05 15:51:29 +04:00
a1batross 06ae903e8e Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-03-05 10:26:57 +01:00
a1batross ae3db9284c mix: add additional envs 2021-03-05 10:23:16 +01:00
Egor Kislitsyn 9876fa8e90
Add UserOperation to Redoc 2021-03-04 21:13:53 +04:00
Ivan Tashkinov 5856f51717 [#3213] ActivityPub hashtags filtering refactoring. Test fix. 2021-03-03 23:09:30 +03:00
lain 13aa98d689 Merge branch 'mergeback/2.3.0' into 'develop'
Mergeback/2.3.0

See merge request pleroma/pleroma!3360
2021-03-03 15:07:50 +00:00
lain 10f402af6d Changelog: Re-add application support 2021-03-03 15:35:25 +01:00
lain 2e296c079f Revert "StatusController: Deactivate application support for now."
This reverts commit 024c11c18d.
2021-03-03 15:33:06 +01:00
lain c5352e90be Changelog, mix: merge in stable 2021-03-03 13:56:40 +01:00
Haelwenn 49afbcda5f Merge branch 'fix-migration' into 'develop'
Fix migration in cases where database name has a hyphen

See merge request pleroma/pleroma!3359
2021-03-03 00:57:39 +00:00
Mark Felder 5b8cceba09 Fix migration in cases where database name has a hyphen 2021-03-02 18:17:32 -06:00
Haelwenn 37c37090fa Merge branch 'fix/inconsistent-reference' into 'develop'
MastoAPI Status View: make consistently named object references

See merge request pleroma/pleroma!3358
2021-03-02 20:48:40 +00:00
Haelwenn 81e9c5196f Merge branch 'fix/useless-header' into 'develop'
Test: remove useless header on the get request

See merge request pleroma/pleroma!3357
2021-03-02 20:47:21 +00:00
Mark Felder 8d601d3b23 Make the object reference in both render("show.json", _) functions consistently named 2021-03-02 14:14:38 -06:00
Mark Felder 913d53b7d7 Remove useless header on the get request 2021-03-02 14:04:50 -06:00
lain b221d77a6d Merge branch 'release/2.3.0' into 'stable'
Release/2.3.0

See merge request pleroma/pleroma!3354
2021-03-02 19:54:30 +00:00
feld 210aa42f74 Merge branch 'application-to-generator' into 'develop'
Status application field: test improvements

See merge request pleroma/pleroma!3356
2021-03-02 18:40:35 +00:00
Mark Felder ccbf162088 Actually test viewing status after ingestion 2021-03-02 12:33:32 -06:00
Mark Felder f0208980e4 Test both ingestion of post in the status controller and the correct response during the view 2021-03-02 12:29:16 -06:00
Mark Felder 85b2387f66 Fix build_application/1 match 2021-03-02 11:37:37 -06:00
Egor Kislitsyn 3aae5231b2
Add OpenAPI spec for AdminAPI.UserController 2021-03-02 20:49:17 +04:00
lain 0a589c887b Mix: Update linkify. 2021-03-02 17:03:14 +01:00
lain 7dac83eb6e Linting. 2021-03-02 15:03:16 +01:00
lain 7d790bb27b Changelog: Remove application support line. 2021-03-02 14:42:11 +01:00
lain 024c11c18d StatusController: Deactivate application support for now.
Some more things to discuss about, so we'll remove it from 2.3.0
2021-03-02 14:40:47 +01:00
Ivan Tashkinov 882dd46843 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-03-02 08:26:30 +03:00
lain cd6aa9bcae Mix: Update version number 2021-03-01 21:13:43 +01:00
lain 9f71b63c2d Update changelog 2021-03-01 21:12:26 +01:00
Mark Felder 808e15b264 Document user agent leak fix 2021-03-01 21:05:58 +01:00
Alex Gleason 7ebbe11e75 user_agent_mock --> request_mock 2021-03-01 21:05:52 +01:00
Alex Gleason 1dc5794e29 Never forward the client's user-agent through the media proxy 2021-03-01 21:05:46 +01:00
lain 4cb166e979 Merge branch 'update-frontend-2021-03-01' into 'develop'
Update frontend

See merge request pleroma/pleroma!3353
2021-03-01 19:21:52 +00:00
lain 5058de328e Update frontend 2021-03-01 20:04:53 +01:00
Haelwenn d03ee11b72 Merge branch 'application-to-generator' into 'develop'
ActvitityStreams application field should be called "generator"

See merge request pleroma/pleroma!3352
2021-03-01 17:51:15 +00:00
Mark Felder b1e1db82bc Store application details in the object under the generator key, not application key 2021-03-01 11:29:10 -06:00
feld 9fb8da4293 Merge branch 'feld-develop-patch-26755' into 'develop'
Update CHANGELOG.md

See merge request pleroma/pleroma!3351
2021-02-28 19:01:01 +00:00
feld 8a563efdd8 Update CHANGELOG.md 2021-02-28 18:46:03 +00:00
lain e8d88a72cf Merge branch 'fix/warning-in-test' into 'develop'
warning fix

See merge request pleroma/pleroma!3350
2021-02-28 16:53:05 +00:00
lain 4a9d3a1f28 Merge branch 'features/reports-enhancements' into 'develop'
Enhance reports in Pleroma API: index, show

See merge request pleroma/pleroma!3280
2021-02-28 16:45:15 +00:00
Alexander Strizhakov f85ed1c521
warning fix 2021-02-28 19:41:25 +03:00
lain 6a71aa535b Merge branch 'admin-api-versioning' into 'develop'
Pleroma APIs versioning

Closes #2509

See merge request pleroma/pleroma!3335
2021-02-28 16:22:22 +00:00
lain 050c4b1f14 Merge branch 'bugfix/peertube-mpegURL-object' into 'develop'
Video: Handle peertube videos only stashing attachments in x-mpegURL

Closes #2372 and #2535

See merge request pleroma/pleroma!3336
2021-02-28 16:18:23 +00:00
lain e6a14e1cd1 Merge branch 'feat/client_app_details' into 'develop'
Support application field

See merge request pleroma/pleroma!3311
2021-02-28 16:17:34 +00:00
Mark Felder 0faf8dbef8 Simplify migration 2021-02-28 09:22:44 -06:00
Haelwenn (lanodan) Monnier 3bc7d12271
Remove sensitive-property setting #nsfw, create HashtagPolicy 2021-02-27 21:26:17 +01:00
lain d0823d7f1e Merge branch 'frontendstatic-ignore-api-calls' into 'develop'
Filter out API calls from FrontendStatic plug

Closes #2261

See merge request pleroma/pleroma!3346
2021-02-27 19:40:38 +00:00
lain dd937ae625 Merge branch 'fix/repo-terminate' into 'develop'
don't use continue in Stats init for test env

See merge request pleroma/pleroma!3349
2021-02-27 19:37:08 +00:00
Alexander Strizhakov da5d21a1cf
don't use continue in Stats init for test env 2021-02-27 09:39:15 +03:00
Mark Felder d35b6254b4 Store the client application data in ActivityStreams format 2021-02-26 18:14:57 -06:00
feld 840686ecd5 Merge branch 'fix/2498-expires_in-scheduled-posts' into 'develop'
expires_in in scheduled status params

Closes #2498

See merge request pleroma/pleroma!3315
2021-02-26 16:49:11 +00:00
feld 2217b35bd4 Merge branch 'ecto-rollback-in-test-env' into 'develop'
Possibility to run rollback in test env

See merge request pleroma/pleroma!3212
2021-02-26 16:47:53 +00:00
rinpatch 74bd9980ad Merge branch 'PestToast-develop-patch-66930' into 'develop'
Removed a command that references "pleroma.env". This file does not seem to be...

See merge request pleroma/pleroma!3347
2021-02-26 09:21:15 +00:00
PestToast a30126271f Removed a command that references "pleroma.env". This file does not seem to be generated at any point during the install, and not having it does not stop the instance from working, as far as I can tell. 2021-02-26 01:01:29 +00:00
Mark Felder 76b166f040 Note our upgrade path for this functionality 2021-02-25 13:08:36 -06:00
Mark Felder 902d4e4a4a Leave a note for future explorers 2021-02-25 13:06:43 -06:00
Mark Felder 2da71a526f No need to filter out Mix.env() from the API routes. 2021-02-25 13:04:08 -06:00
Mark Felder 1552179792 Improved recursion through the api route list 2021-02-25 10:07:29 -06:00
Mark Felder 6b87dfad5d Filter out MIX_ENV from route list and add a test 2021-02-25 09:23:10 -06:00
Mark Felder 8ad1613717 Enum instead of Stream 2021-02-25 09:06:56 -06:00
Mark Felder cea31df6a6 Attempt to filter out API calls from FrontendStatic plug 2021-02-24 15:27:53 -06:00
Haelwenn 6b6791f911 Merge branch 'gitignore' into 'develop'
gitignore: Vi and emacs temp files

See merge request pleroma/pleroma!3345
2021-02-24 18:32:55 +00:00
Mark Felder 978627c5e1 Vi and emacs temp files 2021-02-24 12:11:50 -06:00
Haelwenn 870f9cb80c Merge branch 'docfix/chat-token' into 'develop'
Update terminology in differences_in_mastoapi_responses.md

See merge request pleroma/pleroma!3344
2021-02-24 17:26:26 +00:00
zonk f38056d2a1
Update terminology in differences_in_mastoapi_responses.md 2021-02-24 18:16:10 +01:00
Ivan Tashkinov 40d4362261 [#3213] `mix pleroma.database rollback` tweaks. 2021-02-23 18:11:25 +03:00
feld d113ed94e7 Merge branch 'fix/whalebird-url' into 'develop'
Fix URL of Whalebird in docs

See merge request pleroma/pleroma!3339
2021-02-23 14:17:06 +00:00
lain 022eb2a302 Merge branch 'chore/no-activitypub-sleeps' into 'develop'
Avoid unnecessary 500ms sleeps from CommonAPI.follow when the target user is remote

See merge request pleroma/pleroma!3330
2021-02-23 13:53:59 +00:00
AkiraFukushima 6ff4ef12fd Fix URL of Whalebird in docs 2021-02-23 21:31:06 +09:00
Ivan Tashkinov 8f88a90ca3 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	lib/pleroma/application.ex
#	lib/pleroma/config.ex
2021-02-23 13:58:35 +03:00
Ivan Tashkinov 77f3da0358 [#3213] Misc. tweaks: proper upsert in Hashtag, better feature toggle management. 2021-02-23 13:52:28 +03:00
rinpatch 484ba5d062 Merge branch '2534-pleroma-endpoint-earlier-init' into 'develop'
[#2534] Earlier init of Pleroma.Web.Endpoint (must be started prior to Pleroma.Web.Streamer)

Closes #2534

See merge request pleroma/pleroma!3338
2021-02-23 10:01:09 +00:00
Ivan Tashkinov a98c4423f3 Apply i1t's suggestion(s) to 1 file(s) 2021-02-22 20:41:57 +00:00
Ivan Tashkinov 6531eddf36 [#3213] `hashtags`: altered `name` type to `text`. `hashtags_objects`: removed unused index. HashtagsTableMigrator: records_per_second calculation fix. ActivityPub: hashtags-related options normalization. 2021-02-22 23:26:07 +03:00
Ivan Tashkinov 0ef783baa1 [#2534] Earlier init of Pleroma.Web.Endpoint (must be started prior to Pleroma.Web.Streamer). 2021-02-22 23:09:41 +03:00
eugenijm c140cc7bf3 Update the documentation to use make it use /api/v1/pleroma instead of /api/pleroma 2021-02-22 04:33:35 +03:00
Haelwenn (lanodan) Monnier 7fc9cd0974
Video: Handle peertube videos only stashing attachments in x-mpegURL
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2535
2021-02-21 23:41:28 +01:00
eugenijm c1d63bbd9a Reroute /api/pleroma to /api/v1/pleroma 2021-02-21 13:26:23 +03:00
feld 0edb5c805b Merge branch 'revert/changelog' into 'develop'
Revert changelog entry that leaked from another branch.

See merge request pleroma/pleroma!3334
2021-02-20 23:18:43 +00:00
Mark Felder e31274f51d Revert changelog entry that leaked from another branch. 2021-02-20 17:07:12 -06:00
Haelwenn f6d43cec42 Merge branch 'fix/filters' into 'develop'
Minor fixes to upload filters

See merge request pleroma/pleroma!3332
2021-02-20 21:18:04 +00:00
Mark Felder 1cb417bce6 Document HeifToJpeg and its requirement of libheif's heic-convert tool 2021-02-20 14:32:14 -06:00
Mark Felder 73aef0503c Exiftool also cannot strip from heic files. 2021-02-20 14:29:35 -06:00
Mark Felder 369581db6d Show a proper error. A failure doesn't always mean the command isn't available, and we check for it on startup 2021-02-20 14:27:42 -06:00
Mark Felder db7d6f337f Avoid unnecessary 500ms sleeps from CommonAPI.follow when the target user is remote 2021-02-19 18:37:37 -06:00
Mark Felder 26b620d676 Permit :disclose_client in changesets 2021-02-18 17:50:46 -06:00
Mark Felder 63739c5a58 Tests to validate client disclosure obeys user setting 2021-02-18 17:23:17 -06:00
Mark Felder 83301fe61a Add field to user schema for controlling disclosure of client details 2021-02-18 16:43:41 -06:00
Mark Felder d5ef02c7a7 Mastodon makes this field null when posting with MastoFE or if you choose to not disclose it, so it's safe to be null by default 2021-02-18 16:35:03 -06:00
Ivan Tashkinov 998437d4a4 [#3213] Experimental / debug feature: `database: [improved_hashtag_timeline: :preselect_hashtag_ids]`. 2021-02-18 21:03:06 +03:00
Ivan Tashkinov b981edad8a [#3213] HashtagsTableMigrator: fault rate allowance to enable the feature (defaults to 1%), counting of affected objects, misc. tweaks. 2021-02-18 20:40:10 +03:00
Alexander Strizhakov 1e6c27181e
expires_in in scheduled status params 2021-02-18 14:59:22 +03:00
rinpatch 8829a408ec Merge branch 'fix/chats-no-unread-in-openapi' into 'develop'
ChatMessage schema: Add `unread` property

See merge request pleroma/pleroma!3323
2021-02-18 09:54:59 +00:00
Haelwenn c0437d1244 Merge branch 'feat/enforce-admin-scope-unconditionally' into 'develop'
Remove `:auth, :enforce_oauth_admin_scope_usage`

See merge request pleroma/pleroma!3327
2021-02-17 22:31:11 +00:00
rinpatch 2ab9499258 OAuthScopesPlug: remove transform_scopes in favor of explicit admin scope definitions
Transforming scopes is no longer necessary since we are dropping
support for accessing admin api without `admin:` prefix in scopes.
2021-02-17 21:37:23 +03:00
rinpatch 95a22c1cc2 OpenAPI: Add `admin:` scope prefix to admin operations
Also splits "Emoji packs" to two categories: "Emoji pack administration"
and "Emoji packs"
2021-02-17 21:10:28 +03:00
rinpatch 6d66fadea7 Remove `:auth, :enforce_oauth_admin_scope_usage`
`admin` scope has been required by default for more than a year now
and all apps that use the API seems to request a proper scope by now.
2021-02-17 20:47:38 +03:00
Haelwenn (lanodan) Monnier ff72ce31ca
Enhance reports in Pleroma API: index, show 2021-02-17 18:46:53 +01:00
rinpatch 679a2e799e Merge branch 'test-docker-images' into 'develop'
Generate custom docker images for testing

See merge request pleroma/pleroma!3326
2021-02-17 17:09:24 +00:00
Mark Felder dc4baee6dd Do not want these interfering with develop builds 2021-02-17 10:24:37 -06:00
Mark Felder 068740aa16 Make it possible to generate custom docker images by prefixing the branch name with "build-docker" 2021-02-17 10:08:12 -06:00
Haelwenn 046bcf1bf6 Merge branch 'chore/documentation-relicensing' into 'develop'
Relicense documentation under CC-BY-4.0

See merge request pleroma/pleroma!3322
2021-02-17 15:57:11 +00:00
Haelwenn e7b1f0f5f4 Merge branch 'feat/chat-list-pagination' into 'develop'
Chats: Introduce /api/v2/pleroma/chats which implements pagination

Closes #2140

See merge request pleroma/pleroma!3325
2021-02-17 15:36:59 +00:00
rinpatch 158f9f18ee Merge branch 'remove-conversation-api' into 'develop'
Add API endpoint to remove a conversation

Closes #2488

See merge request pleroma/pleroma!3321
2021-02-17 15:14:27 +00:00
rinpatch 264cb2c77f Merge branch '2510-oauth-app-tokens-further-support' into 'develop'
[#2510] Improved support for app-bound OAuth tokens

Closes #2510

See merge request pleroma/pleroma!3316
2021-02-17 13:08:51 +00:00
rinpatch d7ad288c84 Chats: Introduce /api/v2/pleroma/chats which implements pagination
Also removes incorrect claim that /api/v1/pleroma/chats supports
pagination and deprecates it.

Closes #2140
2021-02-17 16:03:24 +03:00
rinpatch d5270a1c41 Merge branch 'update-default-avatar' into 'develop'
Update the default avatar to look nicer

See merge request pleroma/pleroma!3320
2021-02-17 09:48:42 +00:00
Ivan Tashkinov 854ea1aefb [#3213] Fixed `HashtagsTableMigrator.count/1`. 2021-02-17 09:23:35 +03:00
Ivan Tashkinov 111bfdd3a0 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-02-16 23:23:49 +03:00
Ivan Tashkinov 938823c730 [#3213] HashtagsTableMigrator state management refactoring & improvements (proper stats serialization etc.). 2021-02-16 23:14:15 +03:00
rinpatch 98ab2b82a6 ChatMessage schema: Add `unread` property
It is present in the code, but was not documented.
2021-02-16 22:41:06 +03:00
rinpatch 13e324abe9 Merge branch '2053-notifications-actor-is-active-refactoring' into 'develop'
[#2053] `Notification.for_user_query/2` timeout fix

Closes #2053

See merge request pleroma/pleroma!3318
2021-02-16 10:11:41 +00:00
rinpatch f1f215cb38 Relicense documentation under CC-BY-4.0
All contributors whose contributions were still being used
at the moment of relicensing have agreed to it.

See https://git.pleroma.social/pleroma/pleroma/-/issues/2146 .
2021-02-16 13:10:58 +03:00
Ivan Tashkinov 1dac7d1462 [#3213] Fixed `hashtags.name` lookup (must use `citext` type to do index scan). Fixed embedded hashtags lookup (lowercasing), adjusted tests. 2021-02-15 21:13:14 +03:00
Egor Kislitsyn cf6d3db58f
Add API endpoint to remove a conversation 2021-02-15 21:48:13 +04:00
Shpuld Shpuldson 0c73935de1 update changelog to mention change of avatar 2021-02-15 15:52:36 +02:00
Shpuld Shpuldson 956bbc1ec7 replace avi.png 2021-02-15 15:44:27 +02:00
rinpatch 8910303f71 Merge branch 'chore/mailmap' into 'develop'
Add myself to .mailmap

See merge request pleroma/pleroma!3319
2021-02-15 10:30:29 +00:00
rinpatch e2927d714e Add myself to .mailmap
I changed my email to rin@patch.cx
2021-02-15 13:19:44 +03:00
Ivan Tashkinov 284504f689 [#2053] Changed `Notification/for_user_query/2` to use join to filter out inactive actors instead of subselect of _all_ inactive AP ids from `users`. 2021-02-15 09:08:04 +03:00
Ivan Tashkinov 349b8b0f4f [#3213] `rescue` around potentially-raising `Repo.insert_all/_` calls. Misc. improvements (docs etc.). 2021-02-13 22:01:11 +03:00
Mark Felder fb2a8e7ccd Additional validation so we don't get caught off guard with a nil response
if CommonAPI ever prevents us from injecting this data
2021-02-12 13:15:33 -06:00
Mark Felder 3554a65f45 Inject fake application metadata and validate it is stripped by transmogrifier 2021-02-12 13:05:12 -06:00
Mark Felder 9b61df1fb6 App is already preloaded into the token, so avoid an extra query 2021-02-12 12:44:45 -06:00
rinpatch db716f860a Merge branch 'not-used-mock' into 'develop'
Not used mock

See merge request pleroma/pleroma!3313
2021-02-12 08:52:04 +00:00
rinpatch 76414ad277 Merge branch 'bugfix/answer-outbox' into 'develop'
Add test for Answer presence into an authenticated /outbox

See merge request pleroma/pleroma!3269
2021-02-12 08:48:51 +00:00
Mark Felder bd3d0e8b57 Use a custom oauth token so we can predict and validate the client_name and website 2021-02-11 15:53:10 -06:00
Mark Felder 4b979538bc Document the application metadata is now retained as part of the post. 2021-02-11 15:10:53 -06:00
Mark Felder 333ff527fd Validate client application metadata is retained in the object 2021-02-11 15:07:21 -06:00
Mark Felder c1d78328ee Consistency 2021-02-11 14:27:52 -06:00
Mark Felder 6dc0b13cf8 Revert to original formatting for these function defs 2021-02-11 14:24:51 -06:00
Mark Felder 7c508319a5 Prefer naming this put_application because we're putting it into the params map 2021-02-11 14:19:53 -06:00
Mark Felder 09b8378646 %Token{} may not be in the conn, so avoid breaking the ability to post statuses in that scenario. 2021-02-11 14:15:25 -06:00
Ivan Tashkinov 5992382cf8 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
#	lib/mix/tasks/pleroma/database.ex
#	lib/pleroma/web/templates/feed/feed/_activity.rss.eex
2021-02-11 19:31:57 +03:00
Ivan Tashkinov a996ab46a5 [#3213] Reorganized hashtags cleanup. Transaction-wrapped Hashtag.get_or_create_by_names/1. Misc. improvements. 2021-02-11 19:30:21 +03:00
Ivan Tashkinov df89b5019b [#2510] Improved support for app-bound OAuth tokens. Auth-related refactoring. 2021-02-11 15:02:50 +03:00
Alexander Strizhakov b5d001fc8c
not used mock 2021-02-10 18:44:49 +03:00
Haelwenn 2cf753c502 Merge branch 'fix/no-version-api-pleroma-social' into 'develop'
Fix no version number on api.pleroma.social

See merge request pleroma/pleroma!3310
2021-02-10 00:52:59 +00:00
Mark Felder 4540e08a6a Rendering fallback for when we don't have valid data available 2021-02-09 18:52:22 -06:00
Mark Felder 981349f21d Enable rendering of the client application data details 2021-02-09 18:22:41 -06:00
Mark Felder 3dc7e89c54 Ensure we capture the application details into the object 2021-02-09 18:07:15 -06:00
Mark Felder de8b8e9cf1 Add a function to lookup client app details by the app_id 2021-02-09 16:59:58 -06:00
a1batross b6c6955eb0 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-02-09 22:01:13 +01:00
rinpatch a853218701 Merge branch 'features/ap_id-c2s-authentication' into 'develop'
activity_pub_controller: Add authentication to object & activity endpoints

See merge request pleroma/pleroma!3295
2021-02-09 19:29:43 +00:00
rinpatch 0d9230aed9 OpenAPI spec: Do not show build enviroment in the spec version 2021-02-09 22:23:11 +03:00
rinpatch f13f5d9303 OpenAPI spec task: Load pleroma application to get version info
For whatever reason it seems to pick up the version without loading the
app on my machine, but not on the CI.
2021-02-09 22:10:09 +03:00
feld fc42e714e2 Merge branch 'new-user-emails' into 'develop'
Basic new user registration email, various improvements

See merge request pleroma/pleroma!3304
2021-02-08 22:47:03 +00:00
Mark Felder 6e90b79d63 Lint 2021-02-08 16:40:27 -06:00
Mark Felder 4cacce4b42 Revert "Add plaintext support for all emails except the digest"
This reverts commit 5df9f68392.
2021-02-08 16:39:55 -06:00
feld 593c0851d9 Merge branch 'develop' into 'new-user-emails' 2021-02-08 16:01:50 -06:00
Haelwenn a5bee1bf35 Merge branch 'feat/mrf-noemptypolicy' into 'develop'
MRF NoEmptyPolicy: Deny posts from local users if there is no content or only mentions.

See merge request pleroma/pleroma!3309
2021-02-08 21:49:20 +00:00
Mark Felder 55a13fc360 MRF NoEmptyPolicy: Deny posts from local users if there is no content or only mentions.
Helps prevent accidental button mashes from submitting incomplete posts
2021-02-08 15:32:47 -06:00
rinpatch 17f41a589f Merge branch 'fix/rss-link' into 'develop'
RSS: Make sure post URL is the first `<link>` element

See merge request pleroma/pleroma!3308
2021-02-08 20:14:53 +00:00
rinpatch ed8ef80b5e RSS: Make sure post URL is the first `<link>` element
Otherwise some RSS readers (tested in Miniflux) might pick the context
URL as the external link.

Related to #2425.
2021-02-08 22:44:15 +03:00
rinpatch a52cedba62 Merge branch 'chore/descriptions-improvements' into 'develop'
More descriptions improvements

See merge request pleroma/pleroma!3307
2021-02-08 19:21:01 +00:00
Haelwenn (lanodan) Monnier 8c7b3b20d8
activity_pub_controller: Add authentication to object & activity endpoints 2021-02-08 20:00:47 +01:00
Mark Felder ce7c275fb3 Improve various descriptions and labels 2021-02-08 11:45:50 -06:00
Mark Felder 2bffa8e020 Make the suggestion match the default value 2021-02-08 11:25:32 -06:00
feld ff70d71693 Merge branch 'docs/improve-mailer-settings-desc' into 'develop'
Improve Mailer descriptions for AdminFE

See merge request pleroma/pleroma!3306
2021-02-08 16:49:15 +00:00
feld 85cb122986 Merge branch 'develop' into 'docs/improve-mailer-settings-desc'
# Conflicts:
#   CHANGELOG.md
2021-02-08 16:43:04 +00:00
Mark Felder 4dbb08a19f Improved Mailer descriptions 2021-02-08 10:08:33 -06:00
rinpatch 8babd796da Merge branch 'fix/reports-from-admins' into 'develop'
Suppress report notification for admin actors

See merge request pleroma/pleroma!3301
2021-02-08 10:31:20 +00:00
Ivan Tashkinov d1c6dd97aa [#3213] Partially addressed code review points.
migration rollback task changes, hashtags-related config handling tweaks, `hashtags.data` deletion (unused).
2021-02-07 22:24:12 +03:00
Mark Felder f736501e97 Alpha-sort adapters
Add various labels, descriptions and suggestions for all adapter settings and try to use
the same terminology by the service provider.
2021-02-06 13:18:48 -06:00
Mark Felder 0fcf16dcb8 Move Enabled to top as it's the master control of all email. Description not really needed. 2021-02-06 12:34:32 -06:00
Mark Felder bd828e5c9c More description improvements 2021-02-06 12:28:49 -06:00
Mark Felder 227dd84f11 Update SMTP error description and default value 2021-02-06 12:06:47 -06:00
Mark Felder 9e3e8e2e30 Update Swoosh docs URL, lint 2021-02-06 12:04:28 -06:00
Mark Felder cfc474c5f7 There is no reason to expose these Local adapter settings either. 2021-02-06 12:01:11 -06:00
Mark Felder 6ffe15cc9f Remove No MX lookups setting
This setting defaults to false so the relay host will be used in an MX query so
multiple SMTP servers can be used. gen_smtp code states that all records returned from the
MX query are attempted in order and only a permanent SMTP error will stop the client from
attempting other servers in the list. Connection failures, TLS issues, etc will cause it to
try the next host.

If there is no MX record associated with the relay host, it automatically tries connecting to it
directly.

There is really no reason to expose this to end users. The default value is fine for everyone.
2021-02-06 11:55:25 -06:00
Mark Felder 85710b026f Improve SMTP adapter setting descriptions 2021-02-06 11:55:01 -06:00
Mark Felder 9f98885388 No reason to suggest users try the useless "Local" mail adapter 2021-02-06 11:28:55 -06:00
rinpatch 6e68058b63 Merge branch 'feat/allow_alt_text_search_config' into 'develop'
allow user defined text search config in database

See merge request pleroma/pleroma!3275
2021-02-06 09:42:20 +00:00
hyperion 8d4e0342e1 Update priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs, priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs files 2021-02-06 09:42:17 +00:00
feld 4dd28b4bd1 Merge branch 'varnish-large-files' into 'develop'
Improve Varnish VCL

See merge request pleroma/pleroma!3305
2021-02-05 19:46:53 +00:00
Mark Felder 1d8f1fe077 Add a default rule to not attempt to cache any files larger than 50MB
This fixes connection failures when trying to retrieve large files.
It is less common in typical Pleroma usage, but it's possible to encounter
this on a cloud instance with lower memory.
2021-02-05 13:35:51 -06:00
Mark Felder 0368419fce Slightly better formatting 2021-02-05 09:13:53 -06:00
Mark Felder 5df9f68392 Add plaintext support for all emails except the digest 2021-02-05 09:13:17 -06:00
Mark Felder 6a3e75c8e6 Lint 2021-02-05 09:00:17 -06:00
Mark Felder c361440396 Add basic test to validate the registration email is dispatched when the others are disabled
Also only check for subject as the body is a mess of html and we don't really need to prove its contents if the subject matches.
2021-02-04 17:56:46 -06:00
Mark Felder 95930a7aa5 Actually send the mail 2021-02-04 17:42:09 -06:00
Mark Felder 2a863987bc Added: New user registration mail 2021-02-04 16:14:37 -06:00
Mark Felder e945ccc91b Add a registration email that only sends if no other emails (welcome, approval, confirmation) are enabled 2021-02-04 15:16:50 -06:00
Mark Felder 2956c21a55 Improve confirmation email language 2021-02-04 15:10:43 -06:00
Mark Felder af37a5c51a Also make this maybe_ for consistency 2021-02-04 14:33:49 -06:00
Mark Felder b22b12f738 These welcome emails are not guaranteed and can be private functions 2021-02-04 14:01:15 -06:00
Mark Felder d047372291 Merge branch 'develop' into fix/reports-from-admins 2021-02-04 12:37:20 -06:00
feld d7262f7d22 Merge branch 'chore/fix-mix-env' into 'develop'
Standardize the way we capture and use Mix.env()

See merge request pleroma/pleroma!3303
2021-02-04 16:27:05 +00:00
Mark Felder bf9cd4a0e2 Standardize the way we capture and use Mix.env() 2021-02-04 10:13:03 -06:00
feld 7b67bf4e97 Merge branch 'fix/configdb-error' into 'develop'
Improve error message for ConfigDB

See merge request pleroma/pleroma!3289
2021-02-04 14:33:59 +00:00
Haelwenn ea5469961a Merge branch 'bugfix/notice-external-redirect' into 'develop'
Redirect non-local activities when /notice/:id is used

See merge request pleroma/pleroma!3300
2021-02-04 14:26:03 +00:00
Haelwenn (lanodan) Monnier ecff027418
Redirect non-local activities when /notice/:id is used
Related-to: https://git.pleroma.social/pleroma/pleroma/-/issues/2496
2021-02-04 15:17:40 +01:00
Haelwenn 49741961f2 Merge branch 'chore/external-emoji-example' into 'develop'
Stop external emoji example from leaking

See merge request pleroma/pleroma!3302
2021-02-04 14:05:30 +00:00
a1batross 57ba7779b7 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-02-04 02:03:08 +01:00
Mark Felder 887db076b5 Load an emoji.txt specific to the test env 2021-02-03 16:40:59 -06:00
Mark Felder 000d3365c3 Document admin actors not getting report notifications 2021-02-03 14:52:49 -06:00
Mark Felder 5bb5949048 Validate admin making report doesn't get their own report notification, but other admins do 2021-02-03 12:54:53 -06:00
Mark Felder 76f732766b Exclude reporter from receiving notifications from their own reports.
Currently only works if the reporting actor is an admin, but if we include
moderators with those who receive notification reports it will work for them.
2021-02-03 12:32:44 -06:00
rinpatch a7864a9429 Merge branch 'fix/openapi-relationship-nullable' into 'develop'
Account schema: specify that pleroma.relationship is nullable

See merge request pleroma/pleroma!3299
2021-02-03 15:14:40 +00:00
rinpatch 74ef1a044d Account schema: specify that pleroma.relationship is nullable 2021-02-03 18:10:43 +03:00
rinpatch d2acf3a92f Merge branch 'fix/deploy-api-docs-2-electric-boogalo' into 'develop'
CI: Forgot $ in spec-deploy

See merge request pleroma/pleroma!3298
2021-02-03 15:01:08 +00:00
rinpatch c47ca99592 CI: Forgot $ in spec-deploy 2021-02-03 18:00:04 +03:00
feld 859309e116 Merge branch 'fix/2412-filters' into 'develop'
Support for expires_in/expires_at in filters

Closes #2412

See merge request pleroma/pleroma!3279
2021-02-03 14:36:35 +00:00
feld 008499f65a Merge branch 'develop' into 'fix/2412-filters'
# Conflicts:
#   CHANGELOG.md
2021-02-03 14:23:23 +00:00
feld c3dd860a02 Merge branch 'fix/2449-scheduled-poll-bug' into 'develop'
Fix for scheduled post with poll

Closes #2449

See merge request pleroma/pleroma!3294
2021-02-03 14:22:23 +00:00
feld 8d2ea95402 Merge branch 'feature/2438-users-posts-total-count' into 'develop'
Feature/2438 users/instances posts total count

Closes #2438

See merge request pleroma/pleroma!3270
2021-02-03 14:21:57 +00:00
rinpatch 5ee9cbf017 Merge branch 'fix/deploy-api-docs' into 'develop'
CI: Add job ref when calling api docs builder

See merge request pleroma/pleroma!3297
2021-02-03 14:03:24 +00:00
rinpatch 00268b4476 CI: Add job ref when calling api docs builder
Just grabbing the latest artifact for the branch does not work because
gitlab will only change the latest artifact when the whole pipeline
finishes
2021-02-03 17:02:06 +03:00
rinpatch e2d7c4fd57 Merge branch 'feat/openapi-spec-export' into 'develop'
Improve OpenAPI spec and deploy it to api.pleroma.social

See merge request pleroma/pleroma!3296
2021-02-03 13:21:19 +00:00
rinpatch 9fcff7851f Improve OpenAPI spec and deploy it to api.pleroma.social
Too many changes in OpenAPI spec to describe each one, but
basically it is tag fixes, bringing consitency to operation summaries
and fixing some incorrect information.
2021-02-03 16:07:44 +03:00
Haelwenn (lanodan) Monnier fb25231fbe
Add test for Answer presence into an authenticated /outbox 2021-02-03 12:07:18 +01:00
Ivan Tashkinov 4e14945670 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
#	lib/pleroma/web/activity_pub/activity_pub.ex
2021-02-03 09:31:38 +03:00
feld fd2477dfba Merge branch 'a1batross-develop-patch-62810' into 'develop'
mix: instance: ensure all needed folders are created before generating config

See merge request pleroma/pleroma!3284
2021-02-02 18:37:20 +00:00
feld f1f773f2c7 Merge branch 'email-stub-in-verify-credentials' into 'develop'
Email-like field in /api/v1/accounts/verify_credentials (for PeerTube OAuth plugin and alike)

See merge request pleroma/pleroma!3286
2021-02-02 18:35:08 +00:00
Mark Felder d0b4a49f16 Merge branch 'develop' into a1batross-develop-patch-62810 2021-02-02 12:18:03 -06:00
Mark Felder c118bdb8f0 Merge branch 'develop' into a1batross-develop-patch-62810 2021-02-02 12:16:49 -06:00
Mark Felder d0c2159b77 Mix pleroma.instance creates parent directories now 2021-02-02 12:16:01 -06:00
feld d37d4106c6 Merge branch 'fix/majic-nits' into 'develop'
Majic: don't fix extensions

See merge request pleroma/pleroma!3287
2021-02-02 18:15:00 +00:00
Mark Felder 92efdf9adc Document OAuth 2.0 provider fqn field addition 2021-02-02 12:12:37 -06:00
feld 0888815000 Merge branch 'fix/2411-mutes-api' into 'develop'
Support for with_relationships parameter

Closes #2411

See merge request pleroma/pleroma!3290
2021-02-02 18:08:46 +00:00
Mark Felder f852e8d2d2 Document we are disabling the extension fixup in Majic 2021-02-02 12:03:20 -06:00
Mark Felder 28d2917c3a Merge branch 'develop' into fix/majic-nits 2021-02-02 12:01:48 -06:00
feld d289ad8579 Merge branch 'develop' into 'fix/2411-mutes-api'
# Conflicts:
#   CHANGELOG.md
#   docs/development/API/differences_in_mastoapi_responses.md
2021-02-02 17:57:58 +00:00
feld 6a2d3fb9a3 Merge branch 'fix/2473-purge-expired-activities-duplicates' into 'develop'
fix and delete purge activities duplicates

Closes #2473

See merge request pleroma/pleroma!3285
2021-02-02 17:22:23 +00:00
feld b36891d1e6 Merge branch 'feature/2164-unify-api-arguments' into 'develop'
Unifying timelines api arguments

Closes #2164

See merge request pleroma/pleroma!3281
2021-02-02 17:18:07 +00:00
Mark Felder 22486fb4af Improve changelog description 2021-02-02 11:15:47 -06:00
feld cd5ff7a943 Merge branch 'develop' into 'feature/2164-unify-api-arguments'
# Conflicts:
#   CHANGELOG.md
2021-02-02 17:11:38 +00:00
feld 2012800ed1 Merge branch 'fix/attachment-cleanup' into 'develop'
Only run attachment cleanup if enabled

See merge request pleroma/pleroma!3288
2021-02-02 17:08:33 +00:00
feld 69c560cfba Merge branch 'active-user-count' into 'develop'
Monthly Active Users

Closes #2332

See merge request pleroma/pleroma!3283
2021-02-02 17:07:57 +00:00
Alexander Strizhakov aacd1c90b7
fix for test warnings 2021-02-01 19:33:40 +03:00
Alexander Strizhakov 0dc68c157f
fix for scheduled post with poll 2021-02-01 18:22:26 +03:00
Alexander Strizhakov fdf1dfed56
only_remote -> remote renaming 2021-02-01 14:11:12 +03:00
Alexander Strizhakov ba512cbea4
`/api/v1/accounts/:id/statuses` docs update 2021-02-01 14:11:12 +03:00
Alexander Strizhakov 77f0a0af7d
more tests and update for docs and changelog 2021-02-01 14:11:12 +03:00
Alexander Strizhakov 2cb6dc5a3a
list timeline filtration by params 2021-02-01 14:11:12 +03:00
Alexander Strizhakov e21af1cfe4
only_media & only_remote docs and changelog 2021-02-01 14:11:11 +03:00
Alexander Strizhakov b6a72680e2
added only_media flag to home timeline 2021-02-01 14:11:11 +03:00
Alexander Strizhakov c3110c46f3
expanding filtration for home timeline
added local & remote statuses filtration for home timeline
2021-02-01 14:11:11 +03:00
rinpatch 08a2cb750d Merge branch 'update-frontend-2021-02-01' into 'develop'
Update frontend

Closes #2493

See merge request pleroma/pleroma!3293
2021-02-01 10:32:14 +00:00
Lain Soykaf 93e3b89350 Update frontend 2021-02-01 10:12:05 +01:00
Ivan Tashkinov cf4765af40 [#3213] ActivityPub: fixed subquery-based hashtags filtering implementation (addressed empty list options issue). Added regression test. 2021-01-31 23:06:38 +03:00
Ivan Tashkinov 10207f840c [#3213] ActivityPub: temporarily reverted to previous hashtags filtering implementation due to blank results issue. 2021-01-31 22:36:46 +03:00
Ivan Tashkinov 108e90b18e [#3213] Explicitly defined PKs in hashtags_objects and data_migration_failed_ids. Added "pleroma.database rollback" task to revert a single migration. 2021-01-31 22:03:59 +03:00
Ivan Tashkinov 1b49b8efe5 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
2021-01-31 20:38:58 +03:00
Ivan Tashkinov 6fd4163ab6 [#3213] ActivityPub: implemented subqueries-based hashtags filtering, removed aggregation-based hashtags filtering. 2021-01-31 20:37:33 +03:00
Ivan Tashkinov 9948ff3356 [#3213] Added HashtagsCleanupWorker periodic job. 2021-01-31 18:24:19 +03:00
feld 7ac0a81981 Merge branch 'emoji-cache' into 'develop'
Emoji cache

Closes #2468

See merge request pleroma/pleroma!3291
2021-01-30 17:41:08 +00:00
feld 4e050e51ee Merge branch 'fix/configdb-missing-s3-region' into 'develop'
ConfigDB descriptions: Add missing :ex_aws, :s3, :region setting

See merge request pleroma/pleroma!3292
2021-01-29 17:44:46 +00:00
Mark Felder 2048b93929 Add missing :ex_aws, :s3, :region setting 2021-01-29 11:31:15 -06:00
Ivan Tashkinov 239057155f [#3286] Documentation on configuring Pleroma as OAuth 2.0 provider. 2021-01-29 16:36:25 +03:00
Alexander Strizhakov b794dae98a
like this 2021-01-29 15:55:00 +03:00
Alexander Strizhakov c369d2b930
support for with_relationships parameter
in /api/v1/mutes and /api/v1/accounts/:id endpoints
2021-01-29 08:41:21 +03:00
Ivan Tashkinov 380d0cce6b [#3213] Reinstated DISTINCT clause for hashtag "any" filtering with 2+ terms. Added test. 2021-01-29 00:17:33 +03:00
Mark Felder 5fcab23aa3 Improve error message for ConfigDB 2021-01-28 14:59:23 -06:00
Mark Felder 13d79c281f Make attachment cleanup jobs a noop if the setting is disabled. 2021-01-28 14:42:20 -06:00
Mark Felder 9272cef500 Switch to a build of Majic that does not try to fix extensions by default 2021-01-28 14:03:29 -06:00
Egor Kislitsyn a51d903e0c
Make sure active_user_count/1 counts only local users 2021-01-28 22:23:10 +04:00
Ivan Tashkinov 60b4654038 Email-like field in /api/v1/accounts/verify_credentials response (for OAuth plugins like Peertube).
Addresses https://git.pleroma.social/pleroma/pleroma-support/-/issues/56.
2021-01-28 19:49:43 +03:00
Alexander Strizhakov dd1be13f75
changelog entry 2021-01-28 17:01:31 +03:00
Alexander Strizhakov 6c987c7670
fix and delete purge activities duplicates 2021-01-28 16:57:41 +03:00
Alexander Strizhakov 39335d4251
fix for unique oban worker option 2021-01-28 16:57:03 +03:00
Alibek Omarov aaceb042c5 fix format 2021-01-28 10:20:25 +00:00
Alibek Omarov 1547a2fda4 mix: instance: ensure all needed folders are created before generating config 2021-01-28 09:39:53 +00:00
Alexander Strizhakov 35cad9793d
cache headers for emoji and images 2021-01-27 18:49:08 +03:00
Egor Kislitsyn 13a2ae8ce0
Update CHANGELOG 2021-01-27 18:23:46 +04:00
Egor Kislitsyn bddb01bded
Add tests 2021-01-27 18:20:07 +04:00
Egor Kislitsyn 793fc77b16
Add active user count 2021-01-27 18:20:06 +04:00
lain 7f07871639 Merge branch 'chore/tests-use-clear_config' into 'develop'
Convert tests to all use clear_config instead of Pleroma.Config.put

See merge request pleroma/pleroma!3282
2021-01-27 11:33:27 +00:00
Alexander Strizhakov d4158e8bf0
added total
to the instance adminAPI endpoint
2021-01-27 07:45:06 +03:00
Alexander Strizhakov 6806c03e85
added total
to the user statuses adminAPI endpoint
2021-01-27 07:45:02 +03:00
feld d7af0294e6 Merge branch 'service-worker-allowed-header' into 'develop'
Ability to set custom HTTP headers per each frontend

See merge request pleroma/pleroma!3247
2021-01-26 18:14:01 +00:00
Mark Felder e854c35e65 Convert tests to all use clear_config instead of Pleroma.Config.put 2021-01-26 11:58:43 -06:00
a1batross 91742dae8c Merge develop 2021-01-26 18:44:32 +01:00
Haelwenn e1eac4faac Merge branch '2435-list-multiple-users' into 'develop'
Resolve "Add/Remove several accounts from List don't work"

Closes #2435

See merge request pleroma/pleroma!3260
2021-01-26 14:34:50 +00:00
lain 229acae6c3 Merge branch 'develop' into '2435-list-multiple-users'
# Conflicts:
#   CHANGELOG.md
2021-01-26 14:24:32 +00:00
Alexander Strizhakov 875fbaae35
support for expires_in/expires_at in filters 2021-01-26 08:27:45 +03:00
Haelwenn 250e202098 Merge branch 'fix/missing-own_votes' into 'develop'
Include own_votes in the poll data

See merge request pleroma/pleroma!3274
2021-01-26 00:55:05 +00:00
feld 1e3832c6bb Merge branch 'docs/apache-config' into 'develop'
Update Apache configuration

See merge request pleroma/pleroma!3271
2021-01-26 00:32:53 +00:00
Mark Felder 2cb5c16723 Credo 2021-01-25 18:25:53 -06:00
Mark Felder 01fc7d809d Clarify the state of mediaproxy cache invalidation for Apache 2021-01-25 18:23:05 -06:00
Mark Felder c6ef87d585 Note the requirement for the url_format parameter 2021-01-25 18:20:07 -06:00
Mark Felder 8373cb645b Add sudo rule, remove quoting that breaks the for loop 2021-01-25 18:15:04 -06:00
Mark Felder 0b19534475 Merge branch 'develop' into docs/apache-config 2021-01-25 17:00:26 -06:00
Ivan Tashkinov e7864a32d7 [#3213] Removed DISTINCT clause from ActivityPub.fetch_activities_query/2. 2021-01-25 22:31:23 +03:00
Ivan Tashkinov 694d98be55 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-01-25 21:24:07 +03:00
Ivan Tashkinov ea4785213a [#3213] Switched to using embedded hashtags in Object.hashtags/1
(to avoid extra joins / preload in timeline queries).
2021-01-25 20:12:09 +03:00
feld f1c82fbd42 Merge branch 'refactor/deactivated_user_field' into 'develop'
Change user.deactivated field to user.is_active

See merge request pleroma/pleroma!3073
2021-01-25 16:54:57 +00:00
Mark Felder f868dcf3ac Ensure consistent behavior between pleroma.user activate/deactivate mix tasks 2021-01-25 10:48:28 -06:00
Alexander Strizhakov 3f3d64acbf
little refactor and tests
for voted & own_votes fields in polls
2021-01-25 19:46:36 +03:00
Mark Felder 6e51d7264b Document pleroma.user activate mix task 2021-01-25 10:38:08 -06:00
Mark Felder 5e8da27e14 Provide pleroma.user mix task for both activate and deactivate 2021-01-25 10:36:51 -06:00
Mark Felder fe63b48c8f Document removal of toggle_activated 2021-01-25 10:05:38 -06:00
Mark Felder c3dd06b540 Update PleromaFE: pleroma-fe@eb2975b64d849af6bdc327dabac34b8e6d952eae 2021-01-25 09:50:26 -06:00
Mark Felder 9e3fcb4b29 Update AdminFE: admin-fe@8a390584676b27b611d3363eca2a1194d94ed71f 2021-01-25 09:45:58 -06:00
Mark Felder 537ba1c5e0 Merge branch 'develop' into refactor/deactivated_user_field 2021-01-25 09:45:06 -06:00
Ivan Tashkinov f264d930cc [#3213] Speedup of HashtagsTableMigrator (query optimization). State handling fix. 2021-01-24 23:27:02 +03:00
rinpatch 0a6f5f4793 Merge branch 'fix/minor-doc-fix' into 'develop'
add missing sudo prefix in some install doc

See merge request pleroma/pleroma!3276
2021-01-23 19:06:42 +00:00
𝑓 55bf090492 add missing sudo prefix in install doc 2021-01-23 16:56:11 +00:00
Mark Felder 6bfd497f4a Include own_votes in the poll data 2021-01-22 09:47:59 -06:00
Ivan Tashkinov 218c519606 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	test/pleroma/web/mastodon_api/views/status_view_test.exs
2021-01-22 10:05:28 +03:00
Haelwenn 42e495df2b Merge branch 'fix/tag-urls' into 'develop'
Make tag urls absolute

See merge request pleroma/pleroma!3272
2021-01-22 03:21:26 +00:00
Mark Felder 80ccdb56f6 Make tag urls absolute 2021-01-21 16:49:19 -06:00
Mark Felder c29cf65ec7 Document improved Apache support 2021-01-21 14:53:38 -06:00
Mark Felder e709dec2eb Add Invalidation Script url_format setting 2021-01-21 14:52:02 -06:00
Mark Felder 42e49529c2 Test URL formatting 2021-01-21 14:42:16 -06:00
Mark Felder 0c485d5555 Improve description 2021-01-21 14:42:08 -06:00
Mark Felder e5b32aab92 rename function 2021-01-21 14:41:28 -06:00
Mark Felder 003402df40 Add ability to invalidate cache entries for Apache 2021-01-21 14:20:13 -06:00
eugenijm 7fcaa188a0 Allow to define custom HTTP headers per each frontend 2021-01-21 21:55:23 +03:00
eugenijm 133644dfa2 Ability to set the Service-Worker-Allowed header 2021-01-21 21:55:11 +03:00
Mark Felder 3078e62488 Update Apache configuration. This has been tested. 2021-01-21 12:25:18 -06:00
Ivan Tashkinov ca7f240643 [#3213] Ignoring of blank elements from objects.data->tag. 2021-01-21 20:50:06 +03:00
Ivan Tashkinov c041e9c630 [#3213] HashtagsTableMigrator: failures handling fix, retry function.
Changed default hashtags filtering strategy to non-aggregate approach.
2021-01-21 20:23:08 +03:00
Ivan Tashkinov 2634a16b4c Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework
# Conflicts:
#	CHANGELOG.md
2021-01-21 20:20:35 +03:00
feld d8860eaee4 Merge branch 'limiter-setup-fix' into 'develop'
Configurable limits for ConcurrentLimiter for Pleroma.Web.RichMedia.Helpers & Pleroma.Web.MediaProxyWarmingPolicy

See merge request pleroma/pleroma!3248
2021-01-21 14:59:51 +00:00
lain ba40af054c Merge branch 'test-cases-mox-setup' into 'develop'
Mox mode setup tweak; refactoring

See merge request pleroma/pleroma!3263
2021-01-21 09:03:26 +00:00
Alexander Strizhakov 5ade430e46
changed naming in changelog 2021-01-21 10:13:02 +03:00
Alexander Strizhakov 6d48144a9d
use proper naming
for MediaProxyWarmingPolicy in ConcurrentLimiter
2021-01-21 09:50:18 +03:00
Mark Felder dece31a031
Update docs 2021-01-21 09:47:22 +03:00
Mark Felder 1537a4f0ad
Document ConcurrentLimiter for RichMedia and MediaProxy 2021-01-21 09:47:22 +03:00
Alexander Strizhakov b4ff63d020
configurable limits for ConcurrentLimiter
Pleroma.Web.RichMedia.Helpers & Pleroma.Web.MediaProxy
2021-01-21 09:47:21 +03:00
feld b5899fda1a Merge branch 'copyright-fun' into 'develop'
Mix aliases for handling copyright headers

See merge request pleroma/pleroma!3257
2021-01-20 22:51:56 +00:00
feld 2926713fe5 Merge branch 'deprecate-public_endpoint' into 'develop'
Deprecate Uploaders.S3, :public_endpoint

See merge request pleroma/pleroma!3251
2021-01-20 22:48:48 +00:00
Mark Felder 086100e3b7 Consistent comment style for :ex_aws 2021-01-20 16:39:39 -06:00
Mark Felder 9988d9261c Add bucket_namespace to be extra certain truncated_namespace works 2021-01-20 16:33:00 -06:00
feld 2905df841b Merge branch 'update/oban' into 'develop'
Update Oban to 2.3.4

See merge request pleroma/pleroma!3256
2021-01-20 20:32:23 +00:00
Haelwenn 91f74418b7 Merge branch 'fix/active-user-query' into 'develop'
Active users must be confirmed, and other related fixes

See merge request pleroma/pleroma!3267
2021-01-20 20:07:30 +00:00
Mark Felder dfc4cb6ebd Special handling for unconfirmed users based on instance config no longer needed. 2021-01-20 11:30:29 -06:00
Mark Felder 5d344e5c79 Only need to test if unconfirmed users are successfully deleted
It's no longer possible to have an active user account with User.is_confirmed == false
2021-01-20 11:26:14 -06:00
Mark Felder 3cb4d40ebf This scenario no longer exists. Users are auto-confirmed if confirmation not required at time of registration. 2021-01-20 11:17:13 -06:00
Mark Felder 704eef3c2d Special handling for unconfirmed users based on instance config no longer needed. 2021-01-20 11:14:15 -06:00
Alexander Strizhakov 87c468f009
use correct versions for oban migrations 2021-01-20 20:07:24 +03:00
Mark Felder e759579f97 Active users must be confirmed 2021-01-19 16:39:55 -06:00
Ivan Tashkinov b830605577 [#3213] Performance-related stat in HashtagsTableMigrator. Reworked `count/_` to indicate approximate total count for current iteration. 2021-01-19 22:03:25 +03:00
Ivan Tashkinov f0f0f2af00 [#3213] `timeout` option for `HashtagsTableMigrator.count/_`. 2021-01-19 21:17:06 +03:00
Ivan Tashkinov 7f07909a7b [#3213] Added `HashtagsTableMigrator.count/1`. 2021-01-19 21:13:32 +03:00
lain 3802718f80 Merge branch 'update-changelog-reblog-fix' into 'develop'
Add Reblog fix to CHANGELOG

See merge request pleroma/pleroma!3266
2021-01-19 14:08:18 +00:00
Egor Kislitsyn 695dabb5da
Add Reblog fix to CHANGELOG 2021-01-19 17:57:00 +04:00
lain 740f40af30 Merge branch 'feat/improved-postgres-tuning-docs' into 'develop'
Improve PostgreSQL optimization article

See merge request pleroma/pleroma!3265
2021-01-19 11:36:56 +00:00
rinpatch e58f45abd6 Improve PostgreSQL optimization article
Move query plan mode setting from OTP installation guide and try
to explain what it does.
2021-01-19 14:26:17 +03:00
rinpatch 984426d9c4 Merge branch 'mergeback/2.2.2' into 'develop'
Mergeback/2.2.2

See merge request pleroma/pleroma!3264
2021-01-19 10:00:15 +00:00
rinpatch 79bc4bcc3c Merge branch 'stable' into mergeback/2.2.2 2021-01-19 12:59:24 +03:00
Haelwenn 83ae77ae0c Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3262
2021-01-19 02:34:27 +00:00
Ivan Tashkinov 318d6dde1c Mox mode setup tweak; refactoring. 2021-01-19 00:23:39 +03:00
João Rodrigues 8d1554f08b Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pt_PT/
2021-01-18 21:19:25 +00:00
João Rodrigues ca114df523 Added translation using Weblate (Portuguese (Portugal)) 2021-01-18 21:19:25 +00:00
feld 958a7f6ed0 Merge branch 'fix/reblog-api' into 'develop'
Fix Reblog API

Closes #2423

See merge request pleroma/pleroma!3261
2021-01-18 21:19:14 +00:00
Mark Felder 28581e03ad Merge branch 'develop' into refactor/deactivated_user_field 2021-01-18 14:58:21 -06:00
feld ed84210da3 Merge branch 'refactor/approval_pending_user_field' into 'develop'
Change user.approval_pending field to user.is_approved

See merge request pleroma/pleroma!3090
2021-01-18 19:58:30 +00:00
Mark Felder d49387e9d2 Update AdminFE: admin-fe@27db721e3969d9d017a70b9e16dc262d4f31202f 2021-01-18 13:44:59 -06:00
Mark Felder ab32ede102 Document new is_approved attribute 2021-01-18 12:07:37 -06:00
Mark Felder 44a86951a3 Merge branch 'develop' into refactor/approval_pending_user_field 2021-01-18 12:05:05 -06:00
feld 0ad6ea2057 Merge branch 'refactor/confirmation_pending_user_field' into 'develop'
Change user.confirmation_pending field to user.is_confirmed

See merge request pleroma/pleroma!3081
2021-01-18 17:54:42 +00:00
Mark Felder a9f9fb002c Document new is_confirmed attribute 2021-01-18 11:31:07 -06:00
Mark Felder 096e61fe93 Keep *Breaking* at the top 2021-01-18 11:30:06 -06:00
Mark Felder 8a230667cc Update AdminFE: pleroma/admin-fe@d4c7989f05 2021-01-18 11:25:13 -06:00
Egor Kislitsyn 51d5951c02
Test that only author can reblog a private status 2021-01-18 21:01:00 +04:00
Egor Kislitsyn 1b79dce7bc
Fix Reblog API
Do not set visibility parameter to `public` by default and let CommonAPI to infer it from status.
2021-01-18 20:15:57 +04:00
Lain Soykaf 71166b30a4 Changelog: Add list fix. 2021-01-18 16:29:29 +01:00
Lain Soykaf bdfd72630f ListController: Fix being unable to add / remove users. 2021-01-18 16:28:36 +01:00
rinpatch c2186a62d5 Merge branch 'release/2.2.2' into 'stable'
Release/2.2.2

See merge request pleroma/pleroma!3216
2021-01-18 14:33:28 +00:00
rinpatch 9b68248fd6 pleroma-fe bundle: update to 320418d524a33c20d7d769c8d67a25be81f251ec 2021-01-18 17:08:30 +03:00
rinpatch 207c185dd6 mix.exs: bump version to 2.2.2 2021-01-18 17:08:30 +03:00
rinpatch 605f389038 CHANGELOG.md: Finalize 2.2.2 changelog 2021-01-18 17:08:26 +03:00
lain 3dc04b9aca Merge branch 'fix/missing_emoji_steal_dir' into 'develop'
Create dir for EmojiStealPolicy automatically

See merge request pleroma/pleroma!3218
2021-01-18 15:28:19 +03:00
Ivan Tashkinov 9d28a7ebfb [#3213] Missing copyright header for HashtagsTableMigrator.State. 2021-01-17 21:58:15 +03:00
lain 732cc0ce46 Merge branch 'fix/changelog-entries' into 'develop'
CHANGELOG.md: Remove wrong entries from Unreleased(patch)

See merge request pleroma/pleroma!3258
2021-01-17 13:11:28 +00:00
rinpatch cbb1174cbd CHANGELOG.md: Remove wrong entries from Unreleased(patch)
Webpush changes are under 2.3.0 milestone and therefore should be
under Unreleased section

The emoji reaction change was introduced in 2.2.1
2021-01-17 15:55:33 +03:00
Alexander Strizhakov 197606984d update for retired elixir_make package version 2021-01-17 15:24:04 +03:00
Ivan Tashkinov 85f7ef4d13 [#3213] Feature lock adjustment for HashtagsTableMigrator. 2021-01-17 10:57:06 +03:00
Alexander Strizhakov 0e48c80d7f
start oban app in migrations and mix tasks 2021-01-17 09:58:41 +03:00
Alexander Strizhakov 02dbf1c51d
use explicitly oban migration version 2021-01-17 09:58:07 +03:00
Ivan Tashkinov 3f88e33a71 [#3251] Fixed wrong test-env config setting for [Pleroma.Upload]. Refactoring. Added warning to `clear_config/_` to minimize such issues in future. 2021-01-16 23:05:31 +03:00
Ivan Tashkinov 48b399cedb [#3213] Refactoring of HashtagsTableMigrator. Hashtag timeline performance optimization (auto switch to non-aggregate join strategy when efficient). 2021-01-16 20:22:14 +03:00
Haelwenn (lanodan) Monnier 3e0d1588a4
mix.exs: Make copyright regexes more precise
- Add copyright checks for Pleroma's not any copyright
- Copyright bump fixes the whole line instead of just the year
2021-01-16 02:42:53 +01:00
Haelwenn (lanodan) Monnier a17a9dcc4d
mix.exs: Put template into one variable with ~s[] 2021-01-16 02:42:52 +01:00
Haelwenn (lanodan) Monnier 99c2e8ed5c
mix.exs: GNU sed doesn't into proper getopt() 2021-01-16 02:42:52 +01:00
Mark Felder 23c6cea889 Add a mix alias to bump copyright 2021-01-15 17:26:02 -06:00
Mark Felder 41a637c3a6 Split out year 2021-01-15 17:25:43 -06:00
Mark Felder 3607dfefca Add mix alias to easily add copyright headers to files 2021-01-15 16:53:55 -06:00
a1batross e105688e8d Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-01-15 23:35:04 +01:00
Mark Felder d2382ab5f4 Update Oban to 2.3.4 2021-01-15 15:01:48 -06:00
feld 181060b595 Merge branch 'fix/attachment-cleanup-queues' into 'develop'
Only run one attachment cleanup job per node

See merge request pleroma/pleroma!3255
2021-01-15 21:01:16 +00:00
Mark Felder f9e0c05ca4 Only run one attachment cleanup job per node
The previous limit of 5 was probably causing massing performance issues due to concurrent full table scans.
2021-01-15 14:50:32 -06:00
Mark Felder 3e4f866f04 Revert accidental blank line removal 2021-01-15 13:40:30 -06:00
Mark Felder 4c82d5e5dd Document removal of toggle_confirmed 2021-01-15 13:12:56 -06:00
Mark Felder 2c0fe2ea9e Remove toggle_confirmation; require explicit state change
Also cosmetic changes to make the code clearer
2021-01-15 13:11:51 -06:00
Mark Felder d36182c088 Change user.confirmation_pending field to user.is_confirmed 2021-01-15 12:44:41 -06:00
Mark Felder 6c50ac1d3f Readability 2021-01-15 11:37:17 -06:00
Mark Felder ebd7d1365b Make setting user activation status explicit 2021-01-15 11:37:17 -06:00
Mark Felder 7516660753 Remove toggle_activation 2021-01-15 11:25:32 -06:00
Mark Felder a59e32f1dd Add copyright header 2021-01-15 11:24:46 -06:00
Mark Felder cd1e5d76ab Remove User.restrict_deactivated/1
Everything else is in User.Query, no need for this odd kludge.
2021-01-15 11:24:46 -06:00
Mark Felder 860b5c7804 Change user.deactivated field to user.is_active 2021-01-15 11:24:46 -06:00
Mark Felder 63923df0a5 Further simplify changeset logic 2021-01-15 10:42:02 -06:00
Mark Felder f7e59c28ed Change user.approval_pending field to user.is_approved 2021-01-15 10:42:02 -06:00
Haelwenn cf367fdbd5 Merge branch 'optimize-command_available' into 'develop'
Optimize Pleroma.Utils.command_available?/1

See merge request pleroma/pleroma!3254
2021-01-15 04:44:58 +00:00
Mark Felder d0e0396528 Hack to fix tests not passing. Unclear why the filters are being set to nil.
Both of these changes are needed or it doesn't work.
2021-01-14 17:49:37 -06:00
Mark Felder 8d6e9b25a4 Just validate command is in PATH; forking a shell is wasteful 2021-01-14 17:19:02 -06:00
Mark Felder 0b725f5d21 Lint 2021-01-14 16:00:32 -06:00
Mark Felder 12c8ce481c Bump Copyright year 2021-01-14 13:58:52 -06:00
Mark Felder fb47e83adc Add ConfigDB migration 2021-01-14 13:53:55 -06:00
Ivan Tashkinov f5f267fa76 [#3213] Refactoring of HashtagsTableMigrator. 2021-01-14 22:41:27 +03:00
Lain Soykaf fd9a0ac329 BackupTest: Fix s3 test. 2021-01-14 20:18:45 +01:00
rinpatch 93ce7b0efb Merge branch 'pleroma-password' into 'develop'
Add password module

See merge request pleroma/pleroma!3253
2021-01-14 18:29:25 +00:00
Lain Soykaf c4b74c9c3f Linting. 2021-01-14 16:01:14 +01:00
Lain Soykaf 39f3683a06 Pbkdf2: Use it everywhere. 2021-01-14 15:06:16 +01:00
Lain Soykaf 87a31c5c9b Password -> Password.Pbkdf2 2021-01-14 14:49:39 +01:00
Ivan Tashkinov e350898828 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2021-01-13 22:11:16 +03:00
Ivan Tashkinov 3e4d84729a [#3213] Prototype of data migrations functionality / HashtagsTableMigrator. 2021-01-13 22:07:38 +03:00
Mark Felder ba234d3c73 Unnecessary duplication here 2021-01-13 12:01:01 -06:00
Mark Felder 94e5180846 Consistent style 2021-01-13 12:00:48 -06:00
Mark Felder 5627f3642f Not needed in test.exs 2021-01-13 11:54:45 -06:00
Mark Felder f0ab60189e truncated_namespace should default to nil 2021-01-13 11:54:00 -06:00
Lain Soykaf aff83eb7c1 Linting 2021-01-13 16:00:12 +01:00
lain 9106048c61 Password: Replace Pbkdf2 with Password. 2021-01-13 15:11:11 +01:00
lain c7cd9bd591 Password: Add password module
Replaces Pbkdf2.
2021-01-13 15:09:01 +01:00
Haelwenn f917285b72 Merge branch 'chores/bump-copyright' into 'develop'
Bump Copyright to 2021

See merge request pleroma/pleroma!3252
2021-01-13 06:55:12 +00:00
Haelwenn (lanodan) Monnier 56ddd7d717
COPYING: Bump copyright to 2021 2021-01-13 07:53:44 +01:00
Haelwenn (lanodan) Monnier c4439c630f
Bump Copyright to 2021
grep -rl '# Copyright © .* Pleroma' * | xargs sed -i 's;Copyright © .* Pleroma .*;Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>;'
2021-01-13 07:49:50 +01:00
Mark Felder 67e888498c Switch another test to Upload.base_url/0 2021-01-12 16:42:43 -06:00
Mark Felder 2b93351bd7 Document deprecation 2021-01-12 16:40:29 -06:00
Mark Felder e87cca97e6 Fix tests relying on old behavior. Use the Upload.base_url, Luke. 2021-01-12 16:35:10 -06:00
Mark Felder c35e6fb516 Provide a non-nil fallback for Upload.base_url/0 for tests using TestUploaderSuccess as the uploader 2021-01-12 16:34:24 -06:00
Mark Felder 12528edc34 Fix another ad-hoc construction of the upload base_url 2021-01-12 16:32:52 -06:00
Mark Felder 8b28dce82a Deprecate Pleroma.Uploaders.S3, :public_endpoint 2021-01-12 16:31:35 -06:00
feld 5453038ce9 Merge branch 'fix/backup-url-on-s3' into 'develop'
Standardize base url for uploads

See merge request pleroma/pleroma!3246
2021-01-12 20:54:30 +00:00
rinpatch 100e34b4a1 Merge branch 'chat-message-pagination' into 'develop'
ChatMessages: Fix pagination headers.

See merge request pleroma/pleroma!3250
2021-01-12 19:30:44 +00:00
lain 7a1cb752dd Pagination: Don't be dos'd by random parameters. 2021-01-12 12:59:50 +01:00
Mark Felder ef59d99833 Simplify. We will always have a result from Upload.base_url/0, so just add it to the list 2021-01-11 14:19:14 -06:00
Mark Felder 1040881047 Fix regression in MediaProxy.local?/0 and appending the Upload.base_url to whitelisted domains 2021-01-11 14:01:31 -06:00
lain e1a547d7d3 ChatMessages: Fix pagination headers.
They used to contain the path parameter `id` as query param,
which would break the link.
2021-01-11 15:30:40 +01:00
Mark Felder 9887cdf9be Formatting 2021-01-10 09:03:42 -06:00
Ivan Tashkinov 8c972de045 [#3213] transfer_hashtags mix task refactoring. 2021-01-10 11:44:39 +03:00
rinpatch be7a76abc0 Merge branch 'feat/format-optional-migrations' into 'develop'
.formatter.exs: Format optional migrations

See merge request pleroma/pleroma!3249
2021-01-10 08:40:13 +00:00
rinpatch 6b28121897 .formatter.exs: Format optional migrations
(There are no changes to optional migrations since they were manually
formatted in https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3207)
2021-01-10 11:28:41 +03:00
rinpatch ad5338a79c Merge branch 'add_some_information_about_setting_up_a_development_environment' into 'develop'
Add some information about setting up a development environment

Closes #1904

See merge request pleroma/pleroma!3207
2021-01-10 08:25:36 +00:00
Ilja 6284e8f4b2 Add development section
* I cretaed a folder 'development'
* I split up the file dev.md into three parts and moved it to this folder
  * index.md
  * authentication_authorization.md
  * mrf.md
* I also moved ap_extensions.md
* I created a new file setting_up_pleroma_dev.md
2021-01-10 08:25:36 +00:00
feld fa63f1b55b Apply 4 suggestion(s) to 2 file(s) 2021-01-10 01:34:54 +00:00
Mark Felder e8bf060e6e Move construction of S3 base URL with optional namespace and bucket to Upload.base_url/0
Now we should have a correct base URL for S3 hosted objects throughout the codebase.
2021-01-08 17:32:42 -06:00
Mark Felder 86dcfb4eb9 More places we should be using Upload.base_url 2021-01-08 17:32:42 -06:00
Mark Felder 530fb5b29e Avoid duplicate Config calls 2021-01-08 17:32:42 -06:00
Mark Felder 3c936061d5 Apply Upload.base_url for S3 2021-01-08 17:32:42 -06:00
Mark Felder ad79983614 Fix URL generated for backup files, try to create a source of truth we can reuse throughout the codebase 2021-01-08 17:32:42 -06:00
lain 5822338f3a Merge branch 'guppe-example' into 'develop'
ActivtityPub Test: Add example for guppe actor

See merge request pleroma/pleroma!3243
2021-01-08 15:55:48 +00:00
lain 7173d35ef8 Merge branch 'confirm-users' into 'develop'
Automatically confirm logged-in users

See merge request pleroma/pleroma!3234
2021-01-08 15:36:42 +00:00
Alex Gleason e73c7fa7e5
Merge remote-tracking branch 'upstream/develop' into confirm-users 2021-01-08 07:48:19 -06:00
Alex Gleason 1b98cd8610
Remove ConfirmUserPlug 2021-01-08 07:47:55 -06:00
lain 80167e62dd Merge branch 'fix/missing_emoji_steal_dir' into 'develop'
Create dir for EmojiStealPolicy automatically

See merge request pleroma/pleroma!3218
2021-01-08 13:10:49 +00:00
lain 7e43abce68 Merge branch 'backup-ids' into 'develop'
Backups: render ID in API

See merge request pleroma/pleroma!3245
2021-01-07 19:16:58 +00:00
Alex Gleason 3342f6a7ef
Backups: render ID in API 2021-01-07 13:06:22 -06:00
lain ac1298fce8 Merge branch 'cleanup/unused-proxy-opts' into 'develop'
Cleanup Pleroma.Upload proxy opts

See merge request pleroma/pleroma!3236
2021-01-07 16:25:39 +00:00
lain bd788c0939 ActivtityPub Test: Add example for guppe actor 2021-01-07 16:20:30 +01:00
lain cf0eb0c1c5 Merge branch 'object-normalize-refactor' into 'develop'
Object: Rework how Object.normalize works

See merge request pleroma/pleroma!3229
2021-01-07 11:09:18 +00:00
lain 4d56aca904 Merge branch 'adminapi-user-email' into 'develop'
AdminAPI: return user email

See merge request pleroma/pleroma!3240
2021-01-07 10:08:02 +00:00
lain f1ca2ac64b Merge branch 'upstream/remote-emoji-support' into 'develop'
Upstream external emoji support

See merge request pleroma/pleroma!3238
2021-01-07 10:06:39 +00:00
Ivan Tashkinov 0d521022fe [#3213] Removed PK from hashtags_objects table. Improved hashtags_transfer mix task (logging of failed ids). 2021-01-07 12:20:29 +03:00
Alex Gleason b7b05a0748
Oopsie whoopsie fix changelog 2021-01-06 15:42:36 -06:00
Alex Gleason cc09079aea
Exclude blockers from notifications when `blockers_visible: false` 2021-01-06 15:39:14 -06:00
Alex Gleason 1438fd9583
Merge remote-tracking branch 'upstream/develop' into block-behavior 2021-01-06 15:22:35 -06:00
Alex Gleason 7b8dbaff31
Call ConfirmUserPlug from Router, not Endpoint 2021-01-06 15:16:44 -06:00
Alex Gleason 9f6fa5877f
Add AdminAPI.AccountViewTest 2021-01-06 11:43:07 -06:00
Alex Gleason 20af025c65
AdminAPI: return user email 2021-01-06 11:30:32 -06:00
Roger Braun 48cd336a72 allow external emoji 2021-01-06 10:13:01 -06:00
a1batross 463bbe56a5 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2021-01-05 23:43:19 +01:00
feld 5e128a6be3 Merge branch 'fix/mediaproxy-config-descriptions' into 'develop'
Fix proxy and mediaproxy description.exs

See merge request pleroma/pleroma!3219
2021-01-05 21:16:33 +00:00
Mark Felder d69c78ceb9 Remove configurability of upload proxy opts, simplify 2021-01-05 15:06:00 -06:00
lain 18296c7473 Merge branch 'fix/emoji-encoding' into 'develop'
URI.encode custom emojis

Closes #2381

See merge request pleroma/pleroma!3235
2021-01-05 20:09:29 +00:00
Mark Felder f9090e00e6 Add test to validate URLs to custom emojis are properly encoded 2021-01-05 13:58:49 -06:00
Mark Felder 8864ac65c6 Add dinosaur gif from https://gifs.cc
"Our animations are free to be used to enhance your website."
2021-01-05 13:25:14 -06:00
Mark Felder 64116f63d9 URI.encode custom emojis 2021-01-05 12:29:51 -06:00
lain 20a269ed69 Merge branch 'fix/pagination-regression' into 'develop'
Do not try to guess which pagination we need by the existence of an :offset param.

Closes #2399

See merge request pleroma/pleroma!3230
2021-01-05 12:40:45 +00:00
lain fee0c6a2cb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-confirm-users 2021-01-05 13:33:57 +01:00
lain 7a03b112f2 Merge branch '1526-account-aliases' into 'develop'
Resolve "account move from mastodon to pleroma"

Closes #1526

See merge request pleroma/pleroma!3233
2021-01-05 12:31:33 +00:00
lain e802b48d55 User: Use ObjectID type to validate also-known-as field 2021-01-05 13:10:14 +01:00
lain f0e6cff583 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1526-account-aliases 2021-01-05 12:42:30 +01:00
lain ca7cf62d2a Merge branch 'pleroma-moderation-log-stuff' into 'develop'
AdminAPI: return id for moderation log entries

See merge request pleroma/pleroma!3232
2021-01-05 11:36:57 +00:00
lain bea69853a2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-moderation-log-stuff 2021-01-05 12:19:39 +01:00
lain 95a0ae8a35 AccountControllerTest: Fix test logic 2021-01-05 11:48:40 +01:00
lain d44850d7a5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into object-normalize-refactor 2021-01-05 10:48:32 +01:00
Haelwenn b3c36d3f7a Merge branch '2391-async-bugs' into 'develop'
SideEffects.DeleteTest: asyncify.

Closes #2391

See merge request pleroma/pleroma!3231
2021-01-05 00:01:44 +00:00
lain 8e5904daa5 SideEffects.DeleteTest: asyncify.
Replace Mock with Mox, mock out Logger.
2021-01-04 18:40:59 +01:00
Mark Felder 0e93775ed0 Add test to validate profile pagination works with keyset 2021-01-04 11:04:58 -06:00
Mark Felder 83f27282ba Do not try to guess which pagination we need by the existence of an :offset param.
Require explicit request to get offset pagination.
2021-01-04 10:13:17 -06:00
lain e1e7e4d379 Object: Rework how Object.normalize works
Now it defaults to not fetching, and the option is named.
2021-01-04 13:38:31 +01:00
Alex Gleason 0ec7e9b8e9
AdminAPI: return id for moderation log entries 2021-01-01 11:59:48 -06:00
Alex Gleason 7b44605cb8
Migration to confirm previously-logged-in users 2020-12-31 14:04:51 -06:00
feld afe9c152ab Merge branch 'fix/reports-ordering' into 'develop'
Do not reverse order of reports. We want newest ones sorted to the top.

Closes #2364

See merge request pleroma/pleroma!3225
2020-12-31 19:24:49 +00:00
Mark Felder 83d97ab98e Document reports ordering change 2020-12-31 13:15:44 -06:00
Alex Gleason 4200a06340
Aliases: refactor validate_also_known_as/1 2020-12-31 12:53:28 -06:00
Alex Gleason 0d6b9ce8ca Apply 2 suggestion(s) to 1 file(s) 2020-12-31 18:51:57 +00:00
Mark Felder e4791258d4 Ensure newest report is returned first in the list 2020-12-31 12:40:42 -06:00
Alex Gleason 64f0e96ff6
Automatically confirm logged-in users 2020-12-31 12:13:08 -06:00
feld 70e8ef2c46 Merge branch 'fix/adminapi-user-status-pagination' into 'develop'
Support pagination in AdminAPI for user statuses

See merge request pleroma/pleroma!3226
2020-12-31 16:04:42 +00:00
feld 2aa60e7592 Apply 1 suggestion(s) to 1 file(s) 2020-12-31 09:58:43 -06:00
Ivan Tashkinov 48e0f22ab1 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2020-12-31 12:46:01 +03:00
Ivan Tashkinov 303055456f Alternative implementation of hashtag-filtering queries in ActivityPub. Fixed GROUP BY clause for aggregation on hashtags. 2020-12-31 12:45:23 +03:00
Ivan Tashkinov 367f0c31c3 [#3213] Added query options support for Repo.chunk_stream/4.
Used infinite timeout in transfer_hashtags select query.
2020-12-31 09:36:26 +03:00
Alex Gleason 11d40e92b7
Render AKAs in Actor endpoints 2020-12-30 18:53:27 -06:00
Alex Gleason cbce880076
Merge remote-tracking branch 'upstream/develop' into aliases 2020-12-30 17:10:02 -06:00
Mark Felder 2597b028f7 Make pagination type conditional 2020-12-30 16:37:04 -06:00
Mark Felder 085d4e6cfc Continue to use ActivityPub.fetch_user_activities/3, make it pass :offset 2020-12-30 16:10:10 -06:00
Mark Felder 4c5f75f4e9 Support pagination in AdminAPI for user statuses 2020-12-30 15:18:54 -06:00
Mark Felder 744b34709d Do not reverse order of reports. We want newest ones sorted to the top. 2020-12-30 14:22:48 -06:00
lain 38924166eb Merge branch 'deps/crypt-local-fork' into 'develop'
Switch to local fork of crypt until upstream fixes ability to build on aarch64

See merge request pleroma/pleroma!3224
2020-12-30 14:04:10 +00:00
Ivan Tashkinov 8d1a0c1afd [#3213] Made Object.object_data_hashtags/1 handle both AS2 and plain text hashtags. 2020-12-30 15:22:49 +03:00
Ivan Tashkinov e0b5edb6d5 [#3213] Fixed Object.object_data_hashtags/1 to process only AS2 elements of `data.tag` (basing on #2984). 2020-12-30 14:42:35 +03:00
Ivan Tashkinov a25c1e8ec0 [#3213] Improved `database.transfer_hashtags` mix task: proper rollback, speedup. 2020-12-30 14:35:19 +03:00
Mark Felder a1a58f0a53 Switch to local fork of crypt until upstream fixes ability to build on aarch64
https://github.com/msantos/crypt/pull/8
2020-12-28 17:52:18 -06:00
Haelwenn 607cac1947 Merge branch 'revert-b122b6ff' into 'develop'
Revert "Merge branch 'features/hashtag-column' into 'develop'"

See merge request pleroma/pleroma!3222
2020-12-28 12:12:19 +00:00
Haelwenn 3966add048 Revert "Merge branch 'features/hashtag-column' into 'develop'"
This reverts merge request !2824
2020-12-28 12:02:16 +00:00
Haelwenn b122b6ffa3 Merge branch 'features/hashtag-column' into 'develop'
Insert text representation of hashtags into object["hashtags"]

See merge request pleroma/pleroma!2824
2020-12-28 10:14:58 +00:00
Haelwenn (lanodan) Monnier d0c2479710
pleroma.database fill_old_hashtags: Add month_limit argument 2020-12-28 11:05:25 +01:00
Haelwenn (lanodan) Monnier 18b536c176
Pleroma.Object/1: take %Object{} as argument instead 2020-12-28 11:05:24 +01:00
Ivan Tashkinov 14fae94c0e [#3213] Made Object.hashtags/1 work with :hashtags assoc. Adjusted tests. 2020-12-28 00:08:09 +03:00
Alexander Strizhakov 2e859794ee
non condition dir creation 2020-12-27 21:58:15 +03:00
Alexander Strizhakov 546da68a11
changelog entry 2020-12-27 21:53:30 +03:00
Alexander Strizhakov dad76703aa
not needed 2020-12-27 21:53:30 +03:00
Alexander Strizhakov 7bfb041658
insreasing test coverage for StealEmojiPolicy 2020-12-27 21:53:30 +03:00
Alexander Strizhakov aafd7b44ce
check dir existence in policy 2020-12-27 21:53:30 +03:00
Mark Felder e02889edb2
Add MRFs to the list of things that may need a soft reboot 2020-12-27 21:53:29 +03:00
Mark Felder 72aeb2e73b
Mark private 2020-12-27 21:53:29 +03:00
Mark Felder 77e39e6aae
Create dir for EmojiStealPolicy automatically 2020-12-27 21:53:29 +03:00
a1batross 7b5336f7b1 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-12-27 01:08:30 +01:00
Ivan Tashkinov 4134abef63 Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework 2020-12-26 22:23:05 +03:00
Ivan Tashkinov cbb19d0e18 [#3213] Hashtag-filtering functions in ActivityPub. Mix task for migrating hashtags to `hashtags` table. 2020-12-26 22:20:55 +03:00
lain e4f1d8f48c Merge branch 'cachex-test' into 'develop'
Test framework overhaul (speed, reliability)

See merge request pleroma/pleroma!3209
2020-12-26 10:26:35 +00:00
Mary Kate 590a10af33 Adds tests for breaking tag and mention links after text is converted from markdown to html 2020-12-24 16:40:08 -06:00
a1batross ad36be6929 MRF: add NotifyLocalUsersPolicy that checks post subject and notifies every user on instance (v1) 2020-12-24 17:52:35 +01:00
Mark Felder 50e226bc52 Revert, this is useful in an edge case 2020-12-23 17:41:15 -06:00
Mark Felder ce78b64db8 Formatting 2020-12-23 17:41:10 -06:00
Mark Felder 5a084d6f8d Update descriptions for MediaProxy, remove settings that should not be exposed in AdminFE 2020-12-23 17:38:33 -06:00
Mark Felder 7aec234b44 Remove Proxy settings that were not meant to exist under Pleroma.Upload 2020-12-23 17:01:11 -06:00
Mark Felder fecefe68f8 Add test/instance to .gitignore 2020-12-23 14:09:22 -06:00
lain 88530c02d6 Merge branch 'update/linkify' into 'develop'
Update Linkify to 0.4.1

See merge request pleroma/pleroma!3217
2020-12-23 15:58:20 +00:00
Mark Felder 5b838accc0 Update Linkify to 0.4.1
Fixes false positive detection of IPv4 addresses
2020-12-23 09:07:01 -06:00
lain ce1be8f5e6 Merge branch 'mergeback/2.2.1' into 'develop'
Mergeback/2.2.1

See merge request pleroma/pleroma!3215
2020-12-23 14:08:08 +00:00
lain ae934659d1 Align changelog 2020-12-23 14:56:57 +01:00
lain 31c89acd00 Merge branch 'stable' into mergeback/2.2.1 2020-12-23 14:41:04 +01:00
lain f64237927c Merge branch 'release/2.2.1' into 'stable'
Release/2.2.1

See merge request pleroma/pleroma!3214
2020-12-23 13:35:41 +00:00
lain 843d2074fe Fixtures: Add application actor fixture. 2020-12-23 11:56:08 +01:00
lain 5ada38499b Merge branch 'release/2.2.1' of git.pleroma.social:pleroma/pleroma into release/2.2.1 2020-12-23 11:40:34 +01:00
lain 322463e1bd Update changelog 2020-12-23 11:39:19 +01:00
lain 463eec992a Apply 1 suggestion(s) to 1 file(s) 2020-12-23 10:35:41 +00:00
lain 68eed0873e Linting 2020-12-23 11:16:13 +01:00
lain d4e6ca88a6 Update frontend 2020-12-23 09:35:19 +01:00
lain b988e9cc8b Mix: Update version. 2020-12-22 22:11:02 +01:00
lain a8ca282b4a Update changelog 2020-12-22 21:54:31 +01:00
lain d788b41c2e Report fixes. 2020-12-22 21:32:11 +01:00
lain 0f527c9e02 Mix: Update linkify to 0.4.1 2020-12-22 21:22:48 +01:00
Ivan Tashkinov 5cfa32cb50 [#2301] Quick fix: users with is_discoverable == false (default!) are included in search results. 2020-12-22 21:16:37 +01:00
Alexander Strizhakov 897b62091b fix for elixir 1.11
load runtime configs in releases with config provider
2020-12-22 21:08:44 +01:00
lain c26583c99e SideEffects: fix test 2020-12-22 21:08:11 +01:00
lain 41d6225e2e User: Remove left-over (wrong) fix. 2020-12-22 21:08:04 +01:00
lain a32e13e6c4 User: Don't allow local users in remote changesets 2020-12-22 21:07:56 +01:00
Mark Felder c10783087f Switch to a fork of Hackney 1.15.2 for now so we can have our URL normalization bugfix 2020-12-22 21:06:36 +01:00
lain 66c75b0192 Update changelog 2020-12-22 21:05:12 +01:00
lain 29c3c35ba1 Search: Only skip ordering the rum index. 2020-12-22 21:03:19 +01:00
lain 3388bf9c9b Activity search: Fix order of results
Greatly speeds up the search for RUM.
2020-12-22 21:03:01 +01:00
Mark Felder 42a386eb9f Document fixing the pleroma.user delete_activities mix task 2020-12-22 20:51:24 +01:00
Mark Felder a21aeeee12 Need to start web_resp cache or mix task fails 2020-12-22 20:49:16 +01:00
Mark Felder 93852f1b42 Document S3 and Elixir 1.11 compat fix 2020-12-22 20:48:56 +01:00
Mark Felder 012108a299 Fix S3 uploads with Elixir 1.11 2020-12-22 20:48:49 +01:00
Haelwenn (lanodan) Monnier aa848cbd75 pleroma.instance: Fix Exiftool module name 2020-12-22 20:48:19 +01:00
Alexander Strizhakov 065009a57a remove PurgeExpiredActivity from Oban db config 2020-12-22 20:47:20 +01:00
Ivan Tashkinov e369b1306b Added Hashtag entity and objects-hashtags association with auto-sync with `data.tag` on Object update. 2020-12-22 22:04:33 +03:00
Alexander Strizhakov 538af14d52
possibility to run rollback in test env 2020-12-22 17:55:30 +03:00
feld c5cce89f50 Merge branch 'update-elixir-make' into 'develop'
Update for retired elixir_make package version

See merge request pleroma/pleroma!3211
2020-12-22 14:53:04 +00:00
Alexander Strizhakov dedc575225
update for retired elixir_make package version 2020-12-22 17:42:23 +03:00
rinpatch 0ca13be499 Merge branch 'update/instance-gen-template' into 'develop'
Update instance.gen template

See merge request pleroma/pleroma!3210
2020-12-22 11:31:06 +00:00
Haelwenn (lanodan) Monnier 87b13c5430
Create Object.hashtags/1 wrapper 2020-12-22 05:15:34 +01:00
Haelwenn (lanodan) Monnier acb03d591b
Insert text representation of hashtags into object["hashtags"]
Includes a new mix task: pleroma.database fill_old_hashtags
2020-12-22 05:15:34 +01:00
Mark Felder d5746e8447 Do not include pool_size in the template. It encourages unwanted fiddling :) 2020-12-21 15:19:24 -06:00
Ivan Tashkinov ee221277b0 Encapsulation of tags / hashtags fetching from objects. 2020-12-21 22:54:26 +03:00
lain 8e1f32e715 Merge branch 'develop' into 'develop'
WebFinger: add subscribe_address in return data of JSON responses

See merge request pleroma/pleroma!3206
2020-12-21 17:13:52 +00:00
lain ab633e51ab Linting 2020-12-21 16:48:35 +01:00
lain 1a3da01a65 Tests: Stub the pipeline in all tests.
Restores the old un-moxed behavior.
2020-12-21 16:38:34 +01:00
lain 5db1e6c8d3 Pipeline test: Switch from Mock to Mox.
Speeds up the test and makes it possible to run async.
2020-12-21 16:35:12 +01:00
lain 0ef0aed205 Tests: Add a helper method to reduce sleeping times in test.
This will 'time travel', i.e. change the inserted_at and update_at
fields of the object in question. This is used to backdate things
were we used sleeping before to ensure time differences.
2020-12-21 16:31:23 +01:00
lain ba19975838 Linting 2020-12-21 16:22:36 +01:00
lain 9d5ce82221 Test: More async/sync tweaks. 2020-12-21 15:05:56 +01:00
lain b17c36c45a Tests: More test fixes. 2020-12-21 12:59:11 +01:00
lain 2f8ec8a9cc XMLBuidlder test: Make async. 2020-12-21 12:35:04 +01:00
lain ecd39a8fe5 Test config: Raise pool size for postgres.
Given all the async tests, this can become a bottleneck.
2020-12-21 12:31:12 +01:00
lain 9ba60f70d2 Tests: Make as many tests as possible async.
In general, tests that match these criteria can be made async:

- Doesn't use real Cachex.
- Doesn't write to the Config / Application Environment.
- Uses Mock. Using Mox is fine.
- Uses the streamer.
2020-12-21 12:21:40 +01:00
lain c9d73af74d Cachex: Unify arity of callback function 2020-12-21 12:03:58 +01:00
lain ee81a94ab2 Caching: Add caching behavior, add null implementation. 2020-12-21 11:42:53 +01:00
Kaizhe Huang fb02241580 Fix trailing whitespaces in lib/pleroma/web/web_finger.ex 2020-12-21 00:54:15 +11:00
lain 19be32a74e Merge branch 'fix/remove-sharelock-warning-oban-configdb' into 'develop'
config/description.exs: Remove outdated information about Oban

See merge request pleroma/pleroma!3208
2020-12-20 13:40:08 +00:00
rinpatch d501e55ec7 Merge branch 'bugfix/mastofe-install-script' into 'develop'
download-mastofe-build.sh: Proper exit when artifact is missing

Closes #2329

See merge request pleroma/pleroma!3191
2020-12-20 09:59:53 +00:00
Kaizhe Huang 509f82e4d6 Add test for subscribe_address in JSON WebFinger response 2020-12-19 22:11:47 +11:00
rinpatch a05e1d4e48 config/description.exs: Remove outdated information about Oban
The version of Oban we depend on no longer uses ShareLocks, so this
note no longer applies.
2020-12-19 11:27:42 +03:00
lain 95a9bdfc37 Tests: Use NullCache for async tests.
Caching can't work in async tests, so for them it is mocked to a
null cache that is always empty. Synchronous tests are stubbed
with the real Cachex, which is emptied after every test.
2020-12-18 19:53:19 +01:00
lain 713612c377 Cachex: Make caching provider switchable at runtime.
Defaults to Cachex.
2020-12-18 17:44:46 +01:00
lain 9a744d49c8 Jason: Remove by now superfluous jason_types file 2020-12-18 17:44:19 +01:00
FiveYellowMice 83cd7f2b5f WebFinger: add subscribe_address in return data of JSON responses 2020-12-18 13:48:38 +00:00
lain b4b68b71fc Tests: Remove unneeded explicit cachex use.
Only use cachex when we're actually testing it.
2020-12-18 13:18:17 +01:00
lain c1129ff674 Tests: Reset all cachex caches between synchronous tests
Don't bother in the async case, it doesn't make sense there.
2020-12-18 11:53:43 +01:00
a1batross b7247af696 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-12-18 07:08:29 +01:00
rinpatch afc68a052c Merge branch 'long-life-oauth-tokens' into 'develop'
[#2353] Virtually never-expiring OAuth tokens (new and already issued ones)

Closes #2353

See merge request pleroma/pleroma!3205
2020-12-17 18:34:49 +00:00
Ivan Tashkinov 62bf4a1292 [#2353] Virtually never-expiring OAuth tokens (new and already issued ones). 2020-12-17 20:49:00 +03:00
feld ff7f7416f7 Merge branch 'registration-workflow' into 'develop'
Improve registration workflow, fixes #2175

Closes #2235 and #2175

See merge request pleroma/pleroma!3068
2020-12-17 16:00:30 +00:00
Alex Gleason 80891e83d8
Merge remote-tracking branch 'upstream/develop' into registration-workflow 2020-12-17 09:05:36 -06:00
lain 8b8c317c0f Merge branch 'fix/2336-mastoapi-ws-posts-dropping' into 'develop'
Fix mastoapi ws posts dropping

Closes #2336

See merge request pleroma/pleroma!3198
2020-12-16 11:35:45 +00:00
Haelwenn (lanodan) Monnier 5c75bfc586
download-mastofe-build.sh: Proper exit when artifact is missing 2020-12-15 16:31:23 +01:00
lain 6bb4f4e172 Merge branch 'support/2255_posix_errors' into 'develop'
[#2255] added error messages for posix error code

See merge request pleroma/pleroma!3138
2020-12-15 15:16:03 +00:00
lain 0d285cf44f Merge branch 'fix/config-gen-detect-exiftool' into 'develop'
instance.gen: Warn that stripping exif requires exiftool

Closes #2343

See merge request pleroma/pleroma!3197
2020-12-15 14:39:15 +00:00
lain 09f6056b16 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3201
2020-12-15 14:04:10 +00:00
shironeko 2d29fd7c8f Translated using Weblate (Chinese (Simplified))
Currently translated at 87.7% (93 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/zh_Hans/
2020-12-15 11:33:10 +00:00
lain b8c3dfc78c Merge branch 'chore/refactor-hide-counts' into 'develop'
Minor refactoring of the logic for hiding followers/following counts.

See merge request pleroma/pleroma!3202
2020-12-15 11:32:49 +00:00
Mark Felder 6dac2ac71a Minor refactoring of the logic for hiding followers/following counts.
Field is not nullable anymore, and this is more readable.
2020-12-14 13:27:42 -06:00
Alexander Strizhakov c37f78d1c8 changelog 2020-12-14 11:02:32 -06:00
Alexander Strizhakov cebe3c7def Fix for dropping posts/notifs in WS when mix task is executed
- start oban in mix tasks with empty queues, plugins and crontab
- fix for update_users_following_followers_counts
- fix for removed logo.png
- typo in resend confirmation emails mix task docs
- fix for uploads mix task (start Majic.Pool)
- fix for creating user mix task (start :fast_html app)
2020-12-14 11:02:32 -06:00
rinpatch f687befb93 Merge branch 'fix/hackney-follow-redirects' into 'develop'
Switch to a fork of Hackney 1.15.2 for now so we can have our URL normalization bugfix

Closes #2342

See merge request pleroma/pleroma!3199
2020-12-13 12:16:41 +00:00
Mark Felder dfde4af0fd Fixed Rich Media Previews 2020-12-12 13:23:51 -06:00
feld 1e3eb9e004 Merge branch 'fix/tracking-majic' into 'develop'
Majic: specify commit so source users do not get surprise updates

See merge request pleroma/pleroma!3200
2020-12-12 19:20:34 +00:00
Mark Felder 7d78c00049 Majic: specify commit so source users do not get surprise updates 2020-12-12 13:04:16 -06:00
Mark Felder 3299fea9e3 Switch to a fork of Hackney 1.15.2 for now so we can have our URL normalization bugfix 2020-12-12 13:01:30 -06:00
rinpatch 7133c0c5ea instance.gen: Warn that stripping exif requires exiftool
And default to no if it is not installed

Closes #2343
2020-12-12 20:38:51 +03:00
rinpatch 6aece536eb instance.gen task: Only show files which will be actually overwritten 2020-12-12 20:35:38 +03:00
Mark Felder f318d8e56d Use Pleroma.Formatter.markdown_to_html/1 in the tests 2020-12-11 17:28:00 -06:00
Mark Felder 6520599b7d Update Earmark to 1.4.13, use the new compact_output mode 2020-12-11 17:23:03 -06:00
Alex Gleason 642729b49f Fix AudioVideoValidator markdown 2020-12-11 17:22:54 -06:00
Alex Gleason f1c67115d8 Upgrade linkify, test URL issues, fixes #2026 #1942 2020-12-11 17:22:48 -06:00
Alex Gleason f8c93246d6 Refactor Earmark code, fix tests 2020-12-11 17:22:42 -06:00
Alex Gleason b2548cfcda Sanitizer: allow <hr> tags 2020-12-11 17:22:37 -06:00
Alex Gleason c4f4e48e57 Remove some N/A tests 2020-12-11 17:22:30 -06:00
Alex Gleason ba71bbf610 Improve Formatter.minify/2 2020-12-11 17:22:24 -06:00
Alex Gleason e9e17e5df3 Upgrade Earmark to v1.4.10 2020-12-11 17:22:17 -06:00
Haelwenn f2bf2131b4 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3195
2020-12-11 15:01:08 +00:00
ZEN 2db42ac978 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/uk/
2020-12-11 00:56:57 +00:00
Haelwenn b8cda9d96e Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3194
2020-12-10 22:39:38 +00:00
ZEN 98deed65b3 Added translation using Weblate (Ukrainian) 2020-12-10 16:09:45 +00:00
feld 45e1cf902a Merge branch 'oauth-entities-expiration-tweaks' into 'develop'
Tweaks to OAuth entities expiration

See merge request pleroma/pleroma!3193
2020-12-09 18:30:13 +00:00
Ivan Tashkinov 7fff9c1bee Tweaks to OAuth entities expiration: changed default to 30 days, removed hardcoded values usage, fixed OAuthView (expires_in). 2020-12-09 21:14:39 +03:00
feld c308224aaf Merge branch 'oauth-token-30-days-expiration' into 'develop'
Changed default OAuth token expiration time to 30 days

See merge request pleroma/pleroma!3192
2020-12-09 17:10:09 +00:00
Ivan Tashkinov 7da0349d73 Changed default OAuth token expiration time to 30 days. 2020-12-09 19:59:46 +03:00
lain 477c6c8e55 Merge branch 'auth-improvements' into 'develop'
Cookie auth rework / Auth subsystem refactoring and tweaks

Closes pleroma/secteam/pleroma#3

See merge request pleroma/pleroma!3112
2020-12-09 15:55:45 +00:00
lain 1436a2fa2d Merge branch 'stream-follow-updates' into 'develop'
Stream follow updates

Closes #2299

See merge request pleroma/pleroma!3183
2020-12-09 15:52:31 +00:00
Ivan Tashkinov 055a306380 [#3112] .gitattributes fix. 2020-12-09 18:43:20 +03:00
Egor Kislitsyn 97068196a9
Update CHANGELOG 2020-12-09 19:40:40 +04:00
lain e73d878b38 Merge branch 'feat/warn-large-pool-size' into 'develop'
Add a startup error for modified Repo pool_size

See merge request pleroma/pleroma!3190
2020-12-08 16:36:51 +00:00
lain 50d16a9e27 ApplicationRequirements: Add test, more text for pool size. 2020-12-08 17:30:10 +01:00
lain 5b9b7b4888 Apply 1 suggestion(s) to 1 file(s) 2020-12-08 16:16:43 +00:00
feld 9d0839504e Merge branch 'features/favicon-unreachable-instance' into 'develop'
instance: Do not fetch unreachable instances

Closes #2346

See merge request pleroma/pleroma!3189
2020-12-07 22:49:45 +00:00
Mark Felder fb3fd692c6 Add a startup error for modified Repo pool_size 2020-12-07 16:44:55 -06:00
Haelwenn (lanodan) Monnier 1403798820
instance.reachable?: Limit to binary input 2020-12-07 21:20:44 +01:00
Haelwenn (lanodan) Monnier e1a2e8b17c
instance: Do not fetch unreachable instances
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2346
2020-12-07 20:11:47 +01:00
Ivan Tashkinov 36ce45a28c [#3112] Changelog entry. 2020-12-07 21:50:32 +03:00
Ivan Tashkinov c8e7ace812 Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements
# Conflicts:
#	CHANGELOG.md
2020-12-07 21:45:04 +03:00
lain ed76323776 Merge branch 'feature/configdb-mix-tasks' into 'develop'
Add mix tasks to give additional ConfigDB recovery and debugging options

See merge request pleroma/pleroma!3174
2020-12-07 18:06:06 +00:00
Mark Felder 93428d7c11 Print out settings that will be removed when specifying the group and key for consistency
Fix error message when specified key doesn't exist
2020-12-07 11:45:56 -06:00
Mark Felder 61494b5245 Formatting 2020-12-07 11:22:07 -06:00
Mark Felder e3dd0d45b7 Slip in a test to ensure we can use the atom syntax in mix task arguments 2020-12-07 11:21:06 -06:00
feld d817bae802 Apply 1 suggestion(s) to 1 file(s) 2020-12-07 17:13:29 +00:00
feld ca90843d13 Merge branch 'feature/configdb-mix-tasks-refactoring' into 'feature/configdb-mix-tasks'
[#3174] Refactoring: ConfigDB fetching functions, ConfigDB tests.

See merge request pleroma/pleroma!3187
2020-12-07 17:12:47 +00:00
Ivan Tashkinov e00c667145 [#3174] Refactoring: ConfigDB fetching functions, ConfigDB tests.
Minor fixes.
2020-12-06 18:02:30 +03:00
Ivan Tashkinov a010c5b16a Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements 2020-12-06 13:59:35 +03:00
Ivan Tashkinov e9859b68fc [#3112] Ensured presence and consistency of :user and :token assigns (EnsureUserTokenAssignsPlug). Refactored auth info dropping functions. 2020-12-06 13:59:10 +03:00
Egor Kislitsyn 49717f3dcd
Fix typo 2020-12-05 23:48:13 +04:00
Mark Felder 24673b6ca3 Add entry announcing new ConfigDB mix tasks 2020-12-05 08:44:02 -06:00
feld b3ee618e0d Merge branch 'fix/mix-task-yn-prompt' into 'develop'
Remove Mix.Pleroma.shell_yes?/1

See merge request pleroma/pleroma!3179
2020-12-04 18:17:35 +00:00
Mark Felder 657002e738 Answer new prompt interactively 2020-12-04 12:07:23 -06:00
Mark Felder 50aadc3d5c shell_yes?/1 was not showing the correct message and always defaults to yes which is dangerous 2020-12-04 11:49:56 -06:00
feld 6adad96c79 Merge branch 'issue/2256' into 'develop'
[#2256] added subject actor to moderation log

See merge request pleroma/pleroma!3164
2020-12-04 17:49:05 +00:00
Mark Felder 9dfda37821 More compact representation 2020-12-04 11:37:49 -06:00
Mark Felder 3bf5c5b015 Ensure deleting entire group prints out settings that will be removed before actually removing them 2020-12-04 11:30:48 -06:00
Mark Felder 696d39c3dc Fix deleting an entire group. Also utilize Pleroma.ConfigDB.delete/1 2020-12-04 11:19:58 -06:00
Mark Felder 685e5c8509 Use Pleroma.ConfigDB.delete/1 instead of rolling our own 2020-12-04 11:09:13 -06:00
Mark Felder 4aad066091 Use Enum.any? to ensure we return true if there are results 2020-12-04 11:04:53 -06:00
a1batross b74d395b75 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-12-04 10:02:12 +01:00
rinpatch 1d04bd0894 Merge branch 'supported-emojos' into 'develop'
Update Emoji support to unicode 13.1, support all RGI emoji.

See merge request pleroma/pleroma!3186
2020-12-03 18:29:42 +00:00
Alexander Strizhakov a02eb88396
config_db search methods 2020-12-03 19:34:23 +03:00
Mark Felder 7fd4f4908b dump_key/2 no longer used 2020-12-03 10:03:44 -06:00
feld 60c4ac0f70 Apply 6 suggestion(s) to 1 file(s) 2020-12-03 16:03:14 +00:00
Mark Felder 95e908e4e2 Credo 2020-12-03 09:58:24 -06:00
lain 9feb678ec8 Docs, Changelog: Add info about regional indicators 2020-12-03 16:18:35 +01:00
lain fa0d0b602f Emoji: Also accept regional indicators 2020-12-03 16:17:39 +01:00
Haelwenn 05879a3b3e Merge branch '2339-local-remote-mixup' into 'develop'
User: Don't allow local users in remote changesets

Closes #2339

See merge request pleroma/pleroma!3185
2020-12-03 01:28:54 +00:00
feld c91ca482c2 Merge branch 'update-linkify' into 'develop'
Update Linkify to 0.4.0

See merge request pleroma/pleroma!3184
2020-12-02 22:40:13 +00:00
Mark Felder 16bdc2bcd0 Make the --force flag for reset command consistent with the others and deduplicate db truncation 2020-12-02 16:34:23 -06:00
Mark Felder e379ab8277 Add --force flag for delete and reset commands
Bunch of reorganization and consolidation
2020-12-02 16:24:32 -06:00
Mark Felder 20a911f9f7 Add comment for this mysterious behavior 2020-12-02 14:25:07 -06:00
Mark Felder 25fab7da69 No need for a separate functions here 2020-12-02 14:20:11 -06:00
Mark Felder 13947999ad Use a callback strategy to short circuit the functions and print a nice error 2020-12-02 12:33:34 -06:00
Mark Felder a7b5280b5b Centralize check that configdb is enabled which now raises an exception 2020-12-02 10:43:22 -06:00
Mark Felder 53a5ec1952 Left public during debugging 2020-12-02 10:43:22 -06:00
Mark Felder 3e6d9187a7 Add tests for config dumping 2020-12-02 10:43:22 -06:00
Mark Felder 5135a8189f Use inspect instead of faking the output 2020-12-02 10:43:22 -06:00
Mark Felder 6334ba9ad3 Remove unnecessary keys command 2020-12-02 10:43:22 -06:00
Mark Felder 6a97885ea3 Sync docs with mix commands 2020-12-02 10:43:22 -06:00
Mark Felder cc2fc2e423 The debug output is no longer there by default 2020-12-02 10:43:22 -06:00
Mark Felder d0cb73527f Ensure scary warning starts on a new line 2020-12-02 10:43:22 -06:00
Mark Felder 570a923a3b Update ConfigDB docs for new mix commands 2020-12-02 10:43:22 -06:00
Mark Felder 0847e3e496 Print whole config when resetting and include a scary looking message. 2020-12-02 10:43:22 -06:00
Mark Felder d4320e0daf Both are really atoms 2020-12-02 10:43:22 -06:00
Mark Felder 4bdfcf1682 Transform strings to atoms for all cases, including when the atom is a module like Pleroma.Emails.Mailer 2020-12-02 10:43:22 -06:00
Mark Felder 3df115b2b0 Support atoms and strings as args to the mix task
Improve output. Show the user what will be deleted before the prompt.
2020-12-02 10:43:22 -06:00
Mark Felder ae7d37de06 Fix deletion regression due to strings instead of atoms
Improve message after successful deletion
2020-12-02 10:43:22 -06:00
Mark Felder c6a0ca2213 Improve dumping groups and specific keys; add prompts for delete and reset 2020-12-02 10:43:22 -06:00
Mark Felder 67437feafc Support listing groups, listing keys in a group, and dumping the config based on group or specific key in that group 2020-12-02 10:43:22 -06:00
Mark Felder a51da3c1d8 Sort output by group
Not the best sorting, but better than nothing.
2020-12-02 10:43:22 -06:00
Mark Felder 2e87378051 Add the delete and reset instructions 2020-12-02 10:43:22 -06:00
Mark Felder ada073f251 Rename keys to groups 2020-12-02 10:43:22 -06:00
Mark Felder 92c23bfdec Spelling 2020-12-02 10:43:22 -06:00
Mark Felder e8a4062d9d Document how to delete individual configuration groups and completely reset the config without SQL 2020-12-02 10:43:22 -06:00
Mark Felder a82ba66662 Better deletion message 2020-12-02 10:43:22 -06:00
Mark Felder 6dcc36baa9 Add mix tasks to give additional recovery and debugging options
- pleroma.config dump: prints the entire config as it would be exported to the filesystem
- pleroma.config dump KEY: prints the configuration under a specific ConfigDB key in the database
- pleroma.config keylist: lists the available keys in ConfigDB
- pleroma.config keydel KEY: deletes ConfigDB entry stored under the key

This should prevent the need for users to manually execute SQL queries.
2020-12-02 10:43:22 -06:00
Mark Felder 126d236455 We no longer expect mentions to link if they are prefixed with too many @'s 2020-12-02 10:27:55 -06:00
lain a0aece3223 Changelog: Update changelog 2020-12-02 16:52:44 +01:00
lain ab2610b703 Docs: Add info about RGI emoji 2020-12-02 16:49:38 +01:00
lain 8fb259e739 Emoji: Only accept RGI emoji.
"recommended for general interchange"
2020-12-02 16:46:19 +01:00
lain 3b3cf63118 Emoji: Add test for ZWJ sequence emoji 2020-12-02 16:18:08 +01:00
Egor Kislitsyn c9afb350e7
Document follow relationship updates and cleanup 2020-12-02 19:16:36 +04:00
lain b6f5e9ac9c Emoji: Remove unused emoji-data.txt 2020-12-02 16:15:31 +01:00
lain 1adee08321 Emoji: Update to Unicode 13.1, switch base file, allow multichar. 2020-12-02 16:15:03 +01:00
lain 5d15486098 SideEffects: fix test 2020-12-02 14:48:11 +01:00
lain 04af0bbe44 User: Remove left-over (wrong) fix. 2020-12-02 13:39:29 +01:00
lain 222312900e User: Don't allow local users in remote changesets 2020-12-02 12:18:43 +01:00
Mark Felder 45949b5cd3 Update Linkify to 0.4.0 2020-12-01 17:26:25 -06:00
Egor Kislitsyn 35ba48494f
Stream follow updates 2020-12-02 00:18:58 +04:00
rinpatch 57d0379b89 Merge branch 'fix/search-test-on-exit' into 'develop'
Search tests: Use on_exit for restoring `persistent_term` state

See merge request pleroma/pleroma!3182
2020-12-01 17:08:05 +00:00
rinpatch fc9ebe5073 Search tests: Use on_exit for restoring `persistent_term` state
Otherwise if the assertion failed, the code below which resets the
state would never be reached
2020-12-01 19:45:25 +03:00
Ivan Tashkinov d50a3345ae [#3112] Allowed revoking same-user token from any apps. Added tests. 2020-11-30 21:55:48 +03:00
Ivan Tashkinov 50e47a215f Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements 2020-11-28 21:51:27 +03:00
Ivan Tashkinov f1b07a2b2b OAuth form user remembering feature. Local MastoFE login / logout fixes. 2020-11-28 21:51:06 +03:00
Haelwenn 5a5ff508aa Merge branch '2727-gitlab-issues' into 'develop'
Gitlab-CI: Explicitly tag specified arm32 images.

Closes #2327

See merge request pleroma/pleroma!3178
2020-11-27 14:20:59 +00:00
lain 6db710c9ba Gitlab-CI: Explicitly tag specified arm32 images.
So we don't accidentally run generic images on runners
that only can deal with specific images.
2020-11-27 13:27:35 +01:00
lain 14a2c1da13 Merge branch 'fix/2322-digest-algorithm-case-insensitive' into 'develop'
Digest algorithm is taken from header

Closes #2322

See merge request pleroma/pleroma!3176
2020-11-27 11:51:24 +00:00
Alexander Strizhakov 6aadb1cb40
digest algorithm is taken from header 2020-11-27 08:10:52 +03:00
rinpatch bb522bcc44 Merge branch 'removing-fed-sockets-settings' into 'develop'
Removing remaining fed sockets settings

See merge request pleroma/pleroma!3177
2020-11-26 15:35:22 +00:00
Alexander Strizhakov 94480c6607
removing fed sockets settings 2020-11-26 17:39:38 +03:00
feld 2b4e355522 Merge branch 'fix/mix-debug' into 'develop'
Prevent mix tasks from spewing any internal logging unless DEBUG is in the env

See merge request pleroma/pleroma!3175
2020-11-25 23:59:52 +00:00
Maksim Pechnikov fb72f2034a fix spec 2020-11-25 22:44:27 +03:00
Mark Felder 751712d970 Prevent mix tasks from spewing any internal logging unless DEBUG is in the env
e.g., DEBUG=1 mix pleroma.config migrate_from_db
2020-11-25 12:52:39 -06:00
Ivan Tashkinov 62993db499 Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements 2020-11-25 21:48:18 +03:00
Ivan Tashkinov 12a5981cc3 Session token setting on token exchange. Auth-related refactoring. 2020-11-25 21:47:23 +03:00
rinpatch 7a8be68241 Merge branch 'fix/2323-release-configuration-provider' into 'develop'
Fix for elixir 1.11

Closes #2323

See merge request pleroma/pleroma!3173
2020-11-25 11:57:13 +00:00
Alexander Strizhakov 5eef4988bf
fix for elixir 1.11
load runtime configs in releases with config provider
2020-11-25 14:10:24 +03:00
rinpatch c2bf67644e Merge branch 'features/ruby-elements' into 'develop'
scrubbers/default: Add ruby element and it's childs

See merge request pleroma/pleroma!3172
2020-11-25 08:30:58 +00:00
Haelwenn (lanodan) Monnier 3cfc20083e
scrubbers/default: Add ruby element and it's childs
This allows to format Japanese furigana (aka ruby) notation.

Present in XHTML 1.1, HTML 5 and later. Absent in XHTML 1.0, HTML 4 and earlier.

See https://www.w3.org/TR/ruby/
2020-11-25 00:40:21 +01:00
Haelwenn ddf2314836 Merge branch 'chore/jason-in-tests' into 'develop'
Use Jason instead of Poison in tests

See merge request pleroma/pleroma!3171
2020-11-24 12:17:09 +00:00
Mark Felder 54df44d380 Fix badly formatted JSON fixtures which causes Jason to erroneously detect control characters 2020-11-23 14:48:14 -06:00
Mark Felder 3283d0805f Use Jason instead of Poison in tests 2020-11-23 13:28:55 -06:00
rinpatch 1ab61953db Merge branch 'chore/bump-linkify' into 'develop'
[#2293] Update Linkify to 0.3.0

See merge request pleroma/pleroma!3170
2020-11-23 17:37:27 +00:00
Mark Felder 60c8c5402c Update Linkify to 0.3.0
Added

- Support returning result as iodata and as safe iodata

Fixed

- Hashtags followed by HTML tags "a", "code" and "pre" were not detected
- Incorrect parsing of HTML links inside HTML tags
- Punctuation marks in the end of urls were included in the html links
- Incorrect parsing of mentions with symbols before them
2020-11-23 11:22:50 -06:00
rinpatch 12bdced845 Merge branch 'websearch' into 'develop'
Use `websearch_to_tsvector` by default

See merge request pleroma/pleroma!3163
2020-11-23 14:40:33 +00:00
lain 67b15cc033 Search: Save detected pg version in a persistent term. 2020-11-23 15:29:55 +01:00
lain f9a4cf2097 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into websearch 2020-11-23 15:18:19 +01:00
Haelwenn e07f8f8aa5 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3167
2020-11-23 13:43:57 +00:00
a1batross 882c1fcecc Merge develop 2020-11-22 17:39:06 +01:00
feld 15550f7c4b Merge branch 'cherry-pick-a65fc78c' into 'stable'
Dockerfile fixes for stable

See merge request pleroma/pleroma!3169
2020-11-21 18:29:26 +00:00
Michael Walker 9b7ade6568 Install file-dev in Dockerfile build stage
This is required by the majic, added in #2534.
2020-11-21 12:17:50 -06:00
feld 22f85e0570 Merge branch 'libmagic' into 'develop'
Add missing libmagic for image upload to dockerfile

See merge request pleroma/pleroma!3168

(cherry picked from commit a65fc78c6a)

e6af7dc7 Add missing libmagic for image upload
2020-11-21 18:12:33 +00:00
Guy Sheffer d5f5d01495 Translated using Weblate (Hebrew)
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/he/
2020-11-21 18:12:07 +00:00
feld a65fc78c6a Merge branch 'libmagic' into 'develop'
Add missing libmagic for image upload to dockerfile

See merge request pleroma/pleroma!3168
2020-11-21 18:11:58 +00:00
Guy Sheffer e6af7dc777 Add missing libmagic for image upload 2020-11-21 19:57:38 +02:00
Ivan Tashkinov 489b12cde4 Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements 2020-11-21 19:47:46 +03:00
Ivan Tashkinov ccc2cf0e87 Session-based OAuth auth fixes (token expiration check), refactoring, tweaks. 2020-11-21 19:47:25 +03:00
Alex Gleason 4999efad3f
Update CHANGELOG.md: registration workflow 2020-11-21 10:24:45 -06:00
Alex Gleason 30ed7b502f
Merge remote-tracking branch 'upstream/develop' into registration-workflow 2020-11-21 10:23:53 -06:00
feld 9fc3356a06 Merge branch 'cherry-pick-8a7ee9fe' into 'stable'
Merge branch 'revert-da4660d2' into 'stable'

See merge request pleroma/pleroma!3166
2020-11-20 21:40:23 +00:00
feld ba3bf16c70 Merge branch 'revert-da4660d2' into 'develop'
Revert "Merge branch 'use-https-in-dockerfile' into 'develop'"

See merge request pleroma/pleroma!3158

(cherry picked from commit 8a7ee9fe74)

42ff5ea9 Revert "Merge branch 'use-https-in-dockerfile' into 'develop'"
2020-11-20 21:30:04 +00:00
feld ecd1ef8cb5 Merge branch 'fix/2302-report-duplicates' into 'develop'
Fix for forwarded reports

Closes #2303 and #2302

See merge request pleroma/pleroma!3146
2020-11-20 18:40:15 +00:00
lain e4289792d2 Linting. 2020-11-20 16:38:05 +01:00
lain 25a03a9b5b Config, Docs: Remove search_function 2020-11-20 16:33:11 +01:00
lain 8532325d65 SearchController Test: Fix test. 2020-11-20 16:29:11 +01:00
lain cc52f03566 Changelog: Add info about search changes 2020-11-20 16:28:00 +01:00
lain 9a1e5f5d48 Search: Change search method based on detected pg version 2020-11-20 16:26:43 +01:00
lain a407e33c78 Application: Save postgres version in the environment 2020-11-20 16:26:22 +01:00
lain d8924e1a56 Merge branch 'fix/mix-tasks' into 'develop'
Start limiters in mix tasks

Closes #2320

See merge request pleroma/pleroma!3165
2020-11-20 10:30:02 +00:00
Alexander Strizhakov 0a5b22bc3b
start limiters in mix tasks 2020-11-20 11:37:01 +03:00
feld 79a509ee61 Merge branch '2301-users-search-discoverability-fix' into 'develop'
[#2301] Proper handling of User.is_discoverable

Closes #2301

See merge request pleroma/pleroma!3162
2020-11-19 20:33:52 +00:00
feld cd1b4155d5 Merge branch 'oban-jobs-to-simple-tasks' into 'develop'
Moving some background jobs into simple tasks

Closes #1790

See merge request pleroma/pleroma!3129
2020-11-19 20:32:32 +00:00
Maksim Pechnikov 66f411fba0 added subject actor to moderation log 2020-11-19 22:13:45 +03:00
Ivan Tashkinov b27d8f7437 Merge remote-tracking branch 'remotes/origin/develop' into 2301-users-search-discoverability-fix
# Conflicts:
#	CHANGELOG.md
2020-11-19 19:35:44 +03:00
lain 5e04f4156c Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into websearch 2020-11-19 17:32:57 +01:00
Ivan Tashkinov e164c37139 [#2301] Proper handling of `User.is_discoverable`: users appear in in-service search but are hidden from external services like search bots. 2020-11-19 19:30:02 +03:00
Haelwenn c8d11c3064 Merge branch '2317-old-reset-tokens' into 'develop'
Resolve "Don't allow old password reset tokens"

Closes #2317

See merge request pleroma/pleroma!3160
2020-11-19 16:22:14 +00:00
rinpatch 6fc38aac88 Merge branch 'fix-rum-search' into 'develop'
Fix rum search speed

See merge request pleroma/pleroma!3161
2020-11-19 16:20:59 +00:00
lain b38c3de411 Gitlab CI: Update postgres 2020-11-19 17:15:05 +01:00
rinpatch 1eda5ab267 CHANGELOG.md: Move rum fix entry to patch section
Also includes minor cosmetical fixes.
2020-11-19 19:13:19 +03:00
lain 783fa797bb SearchController Test: Fix test 2020-11-19 16:53:26 +01:00
lain 81b6f02a5e Search Test: linting 2020-11-19 16:48:51 +01:00
lain 8b90d62506 Search: Only skip ordering the rum index. 2020-11-19 16:29:31 +01:00
lain 3b86ad0744 Changelog: Document breaking change. 2020-11-19 16:26:17 +01:00
lain 4a5ab690ef Config: Set search_function to `websearch` by default 2020-11-19 16:17:14 +01:00
lain 1c16c67c21 Cheatsheet: Add info about search_function 2020-11-19 16:16:55 +01:00
lain 1bad91cba2 Changelog: Add info about the websearch option 2020-11-19 16:13:53 +01:00
lain a60242464e Search: Add option to search with the websearch function 2020-11-19 16:12:01 +01:00
Ivan Tashkinov fcad3e716a [#2301] Quick fix: users with is_discoverable == false (default!) are included in search results. 2020-11-19 18:08:22 +03:00
Alexander Strizhakov 46dab37351
little fix 2020-11-19 15:29:26 +03:00
lain 2ee0fc194a Changelog: Add info about search fixes. 2020-11-19 13:23:58 +01:00
lain 5e2ba57327 Activity search: Fix order of results
Greatly speeds up the search for RUM.
2020-11-19 13:20:58 +01:00
lain 21eaaf491c Changelog: Add info about reset tokens 2020-11-19 12:29:41 +01:00
lain f6c22f4d08 Cheatsheet: Add docs about reset token expiration 2020-11-19 12:28:39 +01:00
lain 11e0d5f9ac Password Resets: Don't accept tokens above a certain age.
By default, one day
2020-11-19 12:27:06 +01:00
lain 6f9b03384f Merge branch 'hide-muted-reactions' into 'develop'
Hide reactions from muted and blocked users

Closes #1875

See merge request pleroma/pleroma!3147
2020-11-19 10:58:28 +00:00
Alexander Strizhakov 4aaffe3a10
log capture 2020-11-19 09:58:32 +03:00
Alexander Strizhakov 8a8c154b4e
test fixes 2020-11-19 09:58:32 +03:00
Alexander Strizhakov 44f3795b8e
changelog entries for fixes 2020-11-19 09:58:27 +03:00
Alexander Strizhakov be0b874e1d
fix for mastodon forwarded reports 2020-11-19 09:53:14 +03:00
Alexander Strizhakov a840aefda8
formatting 2020-11-19 09:53:13 +03:00
Alexander Strizhakov e2bf6b1f7e
fix for forwarded reports 2020-11-19 09:53:13 +03:00
feld 8a7ee9fe74 Merge branch 'revert-da4660d2' into 'develop'
Revert "Merge branch 'use-https-in-dockerfile' into 'develop'"

See merge request pleroma/pleroma!3158
2020-11-18 21:16:12 +00:00
Mark Felder 3e7642b123 Update AdminFE build to pleroma/admin-fe@c18f167a12 2020-11-18 14:42:16 -06:00
feld 42ff5ea95e Revert "Merge branch 'use-https-in-dockerfile' into 'develop'"
This reverts merge request !2955
2020-11-18 20:32:30 +00:00
minibikini 6669ac5bf7 Merge branch 'develop' into 'hide-muted-reactions'
# Conflicts:
#   CHANGELOG.md
2020-11-18 20:22:40 +00:00
Mark Felder 1d03ba4ffb Fixed emoji reactions not being filtered from blocked and muted accounts 2020-11-18 20:13:25 +00:00
feld a1056aace1 Merge branch 'fix/mix-task-user-delete_activities' into 'develop'
Fix mix pleroma.user delete_activities task

See merge request pleroma/pleroma!3156
2020-11-18 18:57:47 +00:00
lain aae669d05e Merge branch 'fix/webpush-and-emojireact' into 'develop'
Push notifications: add pleroma:emoji_reaction, improve tests

Closes #2185

See merge request pleroma/pleroma!3141
2020-11-18 18:33:48 +00:00
lain 1b63aa0b4f Apply 1 suggestion(s) to 1 file(s) 2020-11-18 18:27:30 +00:00
lain 6b32e1de23 Merge branch 'frontend-admin-api' into 'develop'
Add an API to manage frontends

Closes #2238

See merge request pleroma/pleroma!3108
2020-11-18 17:51:57 +00:00
lain d7b63272b8 Changelog: Move api info to api heading. 2020-11-18 18:32:13 +01:00
Maksim Pechnikov 9c5d1cb9ed fix tests 2020-11-18 09:58:51 +03:00
Maksim 3c00af82dc Apply 1 suggestion(s) to 1 file(s) 2020-11-18 05:19:37 +00:00
Maksim 137b7f9e28 Apply 1 suggestion(s) to 1 file(s) 2020-11-18 05:19:30 +00:00
Maksim e91e2399ee Apply 1 suggestion(s) to 1 file(s) 2020-11-18 05:19:22 +00:00
Maksim ce11f0bc33 Apply 1 suggestion(s) to 1 file(s) 2020-11-18 05:19:09 +00:00
Maksim 25eb222bed Apply 1 suggestion(s) to 1 file(s) 2020-11-18 05:19:01 +00:00
feld fe7008ee39 Merge branch 'update/admin-fe-20201117' into 'develop'
Update AdminFE

See merge request pleroma/pleroma!3157
2020-11-17 23:16:17 +00:00
Mark Felder ad7fc35252 Update AdminFE build to pleroma/admin-fe@5b38aea279 2020-11-17 17:01:34 -06:00
Mark Felder 415481a4d9 Add test for POST when push is disabled
Also group together the tests verifiying failure when disabled
2020-11-17 22:18:22 +00:00
Mark Felder 3eaa5335c9 Revert adding extra alert types here 2020-11-17 21:37:17 +00:00
Mark Felder d9732fb7d3 Fix incorrect test description 2020-11-17 21:34:18 +00:00
Mark Felder ccddedb504 Credo 2020-11-17 20:33:30 +00:00
Mark Felder ff7a4b6aa2 Test that we ignore invalid subscription alert types separately. 2020-11-17 20:22:25 +00:00
Mark Felder 30f140e570 Ensure all supported push notification subscription alert types are tested 2020-11-17 20:22:25 +00:00
Mark Felder 499faa82f6 Synchronize reaction notification text with PleromaFE's style 2020-11-17 20:22:24 +00:00
Mark Felder 5d0bc5e028 Support both pleroma:chat_mention and pleroma:emoji_reaction for /api/v1/push/subscription 2020-11-17 20:21:48 +00:00
Mark Felder 67a6abd071 Update OpenAPI spec/schema and test to verify support for pleroma:emoji_reaction subscriptions 2020-11-17 20:20:00 +00:00
Mark Felder 80e21903d4 Spelling 2020-11-17 20:20:00 +00:00
Mark Felder 1433d3c59c Document the API extensions for push subscriptions 2020-11-17 20:20:00 +00:00
Mark Felder 83ec2f1384 Allow subscribing for pleroma:emoji_reaction push notifications 2020-11-17 20:20:00 +00:00
Mark Felder 3ce11b830e Add capability for emoji reaction push notifications 2020-11-17 20:20:00 +00:00
lain e6d4d62f85 Docs: Add info about frontend install error response 2020-11-17 16:44:20 +01:00
lain bb9650f3c2 FrontendController: Return error on installation error. 2020-11-17 16:43:07 +01:00
Mark Felder 56d95203b5 Document fixing the pleroma.user delete_activities mix task 2020-11-17 15:28:46 +00:00
Mark Felder 97201f7e37 Need to start web_resp cache or mix task fails 2020-11-17 15:15:53 +00:00
feld d33b9e7b33 Merge branch 'remove/fedsockets' into 'develop'
Remove FedSockets

See merge request pleroma/pleroma!3155
2020-11-17 14:58:33 +00:00
rinpatch cf99b1c1fd Merge branch 'release/just-a-test-for-arm32-on-arm64' into 'develop'
Specify the architecture for arm gitlab jobs

See merge request pleroma/pleroma!3139
2020-11-17 14:52:08 +00:00
Egor Kislitsyn f69fe36ebf
Merge branch 'develop' into frontend-admin-api 2020-11-17 18:34:04 +04:00
Egor Kislitsyn d48dbfab2b
Merge remote-tracking branch 'origin/develop' into hide-muted-reactions 2020-11-17 18:30:10 +04:00
Egor Kislitsyn 79d2d3f609
Merge branch 'develop' into hide-muted-reactions 2020-11-17 18:29:52 +04:00
rinpatch 2c55f7d7cb Remove FedSockets
Current FedSocket implementation has a bunch of problems. It doesn't
have proper error handling (in case of an error the server just doesn't
respond until the connection is closed, while the client doesn't match
any error messages and just assumes there has been an error after 15s)
and the code is full of bad descisions (see: fetch registry which uses
uuids for no reason and waits for a response by recursively querying a
 ets table until the value changes, or double JSON encoding).

Sometime ago I almost completed rewriting fedsockets from scrach to
adress these issues. However, while doing so, I realized that fedsockets
 are just too overkill for what they were trying to accomplish, which is
 reduce the overhead of federation by not signing every message.
This could be done without reimplementing failure states and endpoint
 logic we already have with HTTP by, for example, using TLS cert auth,
or switching to a more performant signature algorithm. I opened
https://git.pleroma.social/pleroma/pleroma/-/issues/2262 for further
discussion on alternatives to fedsockets.

From discussions I had with other Pleroma developers it seems like they
 would approve the descision to remove them as well,
therefore I am submitting this patch.
2020-11-17 17:28:30 +03:00
lain 61f86774d1 Merge branch 'chores/note-handling-move' into 'develop'
Chores/note handling move

See merge request pleroma/pleroma!3122
2020-11-17 14:16:53 +00:00
lain fbd6217ed9 Merge branch 'feature/local-only-scope' into 'develop'
Add local-only statuses

Closes #75 and #1483

See merge request pleroma/pleroma!2289
2020-11-17 14:08:45 +00:00
lain fec1ed802e Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/local-only-scope 2020-11-17 15:01:38 +01:00
rinpatch 9b9afe6b3f Merge branch 'fix/debian-install-libmagic-typo' into 'develop'
Debian installation guide: fix libmagic header package name

See merge request pleroma/pleroma!3154
2020-11-17 13:24:01 +00:00
rinpatch f711a41933 Debian installation guide: fix libmagic header package name
It's libmagic-dev in both Ubuntu and Debian.

Reported in private by NaiJi.
2020-11-17 16:11:37 +03:00
rinpatch c7536f16cb Merge branch 'feat/add-bundles-to-gitattributes' into 'develop'
.gitattributes: Treat js/css/source maps as binary files

See merge request pleroma/pleroma!3153
2020-11-17 12:55:09 +00:00
rinpatch 83ec4aadd6 Merge branch 'chores/tesla_1.4.0' into 'develop'
mix.exs: Update tesla to 1.4.0

See merge request pleroma/pleroma!3152
2020-11-17 12:42:51 +00:00
rinpatch 6c3273892f Merge branch 'sync-stable/2.2.0' into 'develop'
Import stable commits into develop after releasing 2.2.0

Closes #2275, #1516, #2257, #2242, #1668, and #2236

See merge request pleroma/pleroma!3151
2020-11-17 12:40:42 +00:00
rinpatch 9960383925 .gitattributes: Treat js/css/source maps as binary files
This prevents `git grep` from showing the matching line and diffs from
being shown by default.
2020-11-17 15:38:28 +03:00
rinpatch 11d8fefa7b CHANGELOG.md: Use a period after every bullet point for unreleased sections
It has been the de-facto style for a while now, however it is not
enforced, so there were some entries that didn't use it.
2020-11-17 15:21:46 +03:00
rinpatch ba214f3f16 CHANGELOG.md: Add back an entry for S3 fix 2020-11-17 15:20:57 +03:00
Haelwenn 651fade275 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3127
2020-11-17 12:16:54 +00:00
rinpatch b1fc9fe951 mix.exs: bump development version to 2.2.50 after 2.2.0 release 2020-11-17 15:14:35 +03:00
rinpatch 77c239f309 Import stable commits into develop after releasing 2.2.0
Updates the frontend bundle and syncs the changelog.
2020-11-17 15:14:25 +03:00
lain 81293e5aad ActivityPubController: Don't return local only objects 2020-11-17 13:11:39 +01:00
Haelwenn (lanodan) Monnier 3f69680ed9
mix.exs: Update tesla to 1.4.0 2020-11-17 13:09:56 +01:00
lain ffc2bb70ff Gitlab CI: Specify image architecture for arm64 images 2020-11-17 12:42:55 +01:00
Guy Sheffer 26b74f4c58 Added translation using Weblate (Hebrew) 2020-11-17 11:15:01 +00:00
lain a81f0a4a7d Merge branch 'fix/s3-uploads-elixir-1.11' into 'develop'
Fix S3 uploads with Elixir 1.11

See merge request pleroma/pleroma!3148
2020-11-17 11:14:50 +00:00
lain 9d4797f61b Merge branch 'fix/api-v1-instance-absolute-urls' into 'develop'
Use absolute URLs to thumbnail and background in /api/v1/instance

See merge request pleroma/pleroma!3149
2020-11-17 11:12:20 +00:00
Mark Felder b1466661eb Use absolute URLs to thumbnail and background in /api/v1/instance 2020-11-16 21:29:15 +00:00
Mark Felder 5cbaa76fd6 Document S3 and Elixir 1.11 compat fix 2020-11-16 19:54:02 +00:00
Mark Felder eea962fc10 Fix S3 uploads with Elixir 1.11 2020-11-16 19:51:44 +00:00
Maksim Pechnikov e4b202d905 added test 2020-11-16 22:23:28 +03:00
Egor Kislitsyn fb41bd1a85 Hide reactions from muted and blocked users 2020-11-16 22:50:14 +04:00
Maksim Pechnikov e1d25bad0c fix tests 2020-11-16 21:45:37 +03:00
Alex Gleason 9546c1444c
Merge remote-tracking branch 'upstream/develop' into registration-workflow 2020-11-14 19:48:47 -06:00
Haelwenn 28da36975d Merge branch 'bugfix/instance-gen_exiftool' into 'develop'
pleroma.instance: Fix Exiftool module name

See merge request pleroma/pleroma!3143
2020-11-14 21:43:07 +00:00
Haelwenn (lanodan) Monnier e2f573d68b
pleroma.instance: Fix Exiftool module name 2020-11-14 22:31:01 +01:00
Maksim Pechnikov 36ec604521 added test 2020-11-14 08:30:22 +03:00
lain fcb1e7b750 Gitlab CI: Change tags bag to arm32 2020-11-13 16:19:09 +01:00
lain 27108acd0f Gitlab CI: Alpine is alpine 2020-11-13 14:48:40 +01:00
lain 0d149502fe Merge branch 'fixes_2034_reports_should_send_a_notification_to_admins' into 'develop'
fixes 2034 Make notifs view work for reports

Closes #2034

See merge request pleroma/pleroma!2912
2020-11-13 13:35:47 +00:00
Ilja 70e4b86250 Make notifs view work for reports
* These are the first small steps for issue 2034 "Reports should send a notification to admins".
* I added a new type of notification "pleroma:report" to the the database manually (a migration will need to be written later)
* I added the new type to the notification_controller
* I made the view return the notification. It doesn't include the report itself (yet)
2020-11-13 13:35:46 +00:00
lain 0597571fca Merge branch 'docs/otp-tuning' into 'develop'
First draft of tips for optimizing BEAM

See merge request pleroma/pleroma!3123
2020-11-13 13:31:46 +00:00
lain 1d3f916991 Gitlab CI: Specify arm32v7 image for arm32 builds 2020-11-13 14:23:24 +01:00
Maksim Pechnikov 1830b6aae5 added error messages for posix error code 2020-11-13 15:21:59 +03:00
rinpatch 157e32a39c Merge branch 'fix/oban-in-database-config' into 'develop'
remove PurgeExpiredActivity from Oban db config

See merge request pleroma/pleroma!3137
2020-11-13 10:32:16 +00:00
Alexander Strizhakov 10528344c7
remove PurgeExpiredActivity from Oban db config 2020-11-13 09:07:08 +03:00
feld 74179e6ac3 Merge branch 'majic-dep' into 'develop'
Install file-dev in Dockerfile build stage

See merge request pleroma/pleroma!3135
2020-11-12 22:41:00 +00:00
Michael Walker c09813193a Install file-dev in Dockerfile build stage
This is required by the majic, added in #2534.
2020-11-12 22:20:17 +00:00
rinpatch 4dae85e157 Upgrade Pleroma-FE to 2.2.0 2020-11-12 21:21:19 +01:00
a1batross 8a6e69856d Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-11-12 18:10:52 +01:00
rinpatch 6e7963cca1 Merge branch 'build-release/fix-release-builds' into 'stable'
.gitlab-ci.yml: Add libmagic to installed packages for OTP releases

See merge request pleroma/pleroma!3134
2020-11-12 14:38:49 +00:00
rinpatch 3a6aa103d3 .gitlab-ci.yml: Add libmagic to installed packages for OTP releases 2020-11-12 16:14:15 +03:00
rinpatch 1172844ed1 Merge branch 'release/2.2.0' into 'stable'
Release/2.2.0

See merge request pleroma/secteam/pleroma!19
2020-11-12 12:34:48 +00:00
rinpatch 6ca709816f Fix object spoofing vulnerability in attachments
Validate the content-type of the response when fetching an object,
according to https://www.w3.org/TR/activitypub/#x3-2-retrieving-objects.

content-type headers had to be added to many mocks in order to support
this, some of this was done with a regex. While I did go over the
resulting files to check I didn't modify anything unrelated, there is a
 possibility I missed something.

Closes pleroma#1948
2020-11-12 15:25:33 +03:00
Haelwenn 99bc175f02 Merge branch 'title-injection-change' into 'develop'
Title injection change

See merge request pleroma/pleroma!3132
2020-11-12 08:50:26 +00:00
feld ccec59047b Merge branch 'feature/ingest-blurhash' into 'develop'
Ingest blurhash for attachments if they were federated

Closes #2294

See merge request pleroma/pleroma!3133
2020-11-11 22:37:16 +00:00
Mark Felder 966663c3f8 Fix tests for other attachment types 2020-11-11 16:17:35 -06:00
rinpatch b4c6b262d6 pleroma-fe bundle: update to 8e87e3d88bef3691b625c0a25407aa08bdf983ad 2020-11-11 23:28:15 +03:00
rinpatch 99edfba3da Polish the changelog a bit and specify release date 2020-11-11 23:12:52 +03:00
Mark Felder 2156de2fee Ingest blurhash field during transmogrification 2020-11-11 13:39:02 -06:00
Mark Felder 2254e5e595 Render blurhashes in Mastodon API 2020-11-11 12:51:13 -06:00
Mark Felder 6fd72e9e85 Ingest blurhash for attachments if they were federated 2020-11-11 12:27:51 -06:00
Egor Kislitsyn 81145ecdf5
Fix markdown 2020-11-11 20:42:05 +04:00
Egor Kislitsyn d26a449396
Change endpoint path 2020-11-11 20:39:57 +04:00
lain b0e4e0cf2a Changelog: Add info about title injection 2020-11-11 17:19:09 +01:00
lain 25bd64b03a Bundled FE: Remove title tag 2020-11-11 17:17:41 +01:00
feld 911fc3c523 Merge branch 'mrf-config-descriptions' into 'develop'
little changes for MRF config descriptions

See merge request pleroma/pleroma!3131
2020-11-11 16:15:57 +00:00
Egor Kislitsyn 435bf1f945
Remove FrontendInstallerWorker 2020-11-11 20:12:35 +04:00
lain 631def2df2 RedirectController: Don't replace title, but inject into the meta 2020-11-11 17:10:59 +01:00
Egor Kislitsyn 08cbd655d1
Merge branch 'develop' into frontend-admin-api 2020-11-11 19:53:40 +04:00
Alexander Strizhakov 8da9f919f8
little changes for MRF config descriptions
- log level reduction, if policy doesn't implement config_description method
- docs in dev.md
2020-11-11 18:49:15 +03:00
Egor Kislitsyn af3f00292c
Fix formatting 2020-11-11 19:12:46 +04:00
Egor Kislitsyn 0118ccb53c
Add `local` visibility 2020-11-11 18:54:01 +04:00
feld 3cd7ea693f Merge branch 'feature/2222-config-descriptions-for-custom-modules' into 'develop'
Config descriptions for custom MRF policies

Closes #2222

See merge request pleroma/pleroma!3128
2020-11-11 13:48:03 +00:00
Alexander Strizhakov 8d218ebaf5
Moving some background jobs into simple tasks
- fetching activity data
- attachment prefetching
- using limiter to prevent overload
2020-11-11 13:39:49 +03:00
Alexander Strizhakov e58ea7f99c changes after rebase 2020-11-11 11:42:52 +03:00
Alexander Strizhakov f97f24b067
making credo happy and test fix 2020-11-11 10:48:03 +03:00
Alexander Strizhakov efc27f6464
fix for adminFE
- revert UserAllowPolicy description
- MRF descriptions order
2020-11-11 10:10:57 +03:00
feld 7681b4c5cd Apply 1 suggestion(s) to 1 file(s) 2020-11-10 16:44:23 +00:00
feld 776067a9a3 Apply 1 suggestion(s) to 1 file(s) 2020-11-10 16:44:17 +00:00
feld 952a8c213e Apply 1 suggestion(s) to 1 file(s) 2020-11-10 16:44:08 +00:00
feld 2933658446 Apply 1 suggestion(s) to 1 file(s) 2020-11-10 16:44:00 +00:00
Alexander Strizhakov 485697d96c
config descriptions for custom MRF policies 2020-11-10 19:20:14 +03:00
lain 88f6b61a5e Merge branch '2260-wrong-report-link' into 'develop'
Resolve "Wrong user link in Report email"

Closes #2260

See merge request pleroma/pleroma!3121
2020-11-10 11:04:19 +00:00
lain d77fd6b3d0 Merge branch 'fix/html-title-load' into 'develop'
Fix title on load of Pleroma HTML, fixes #2281

Closes #2281

See merge request pleroma/pleroma!3125
2020-11-10 10:05:15 +00:00
lain 4a3d1e78f6 Merge branch 'fix/2291-atom-feed-escape' into 'develop'
Escaping in xml templates

Closes #2291

See merge request pleroma/pleroma!3126
2020-11-10 09:34:13 +00:00
Alexander Strizhakov 0c68b9ac13
escaping summary and other fields in xml templates 2020-11-10 10:46:57 +03:00
Haelwenn db07b538a5 Merge branch 'remove/release-env' into 'develop'
Remove release_env

See merge request pleroma/pleroma!3124
2020-11-09 09:14:41 +00:00
Sean King e4a21084f0 Fix title on load of Pleroma HTML 2020-11-08 16:16:20 -07:00
lain abf2ec2bbe Update optimizing_beam.md 2020-11-08 09:45:35 +00:00
rinpatch cc45c69fff Remove release_env
While taking a final look at instance.gen before releasing I noticed
that the release_env task outputs messages in broken english. Upon
further inspection it seems to have even more severe issues which, in
my opinion, warrant it's at least temporary removal:
- We do not explain what it actually does, anywhere. Neither the task
 docs nor instance.gen, nor installation instructions.
- It does not respect FHS on OTP releases (uses /opt/pleroma/config even
 though we store the config in /etc/pleroma/config.exs).
- It doesn't work on OTP releases, which is the main reason it exists.
Neither systemd nor openrc service files for OTP include it.
- It is not mentioned in install guides other than the ones for Debian
and OTP releases.
2020-11-08 11:56:09 +03:00
Mark Felder a9c1f83fd8 Markdown, you're drunk 2020-11-06 13:16:22 -06:00
Mark Felder 4999549191 Make it clearer the settings go into the vm.args file 2020-11-06 13:15:21 -06:00
Mark Felder 620f1d7237 More grammar fixes 2020-11-06 13:12:13 -06:00
Mark Felder da1862e1d3 Less confusing I hope 2020-11-06 13:04:13 -06:00
Mark Felder 9e90e49ad2 Grammar 2020-11-06 13:02:07 -06:00
Mark Felder 60fe4a8393 First draft of tips for optimizing BEAM 2020-11-06 13:00:31 -06:00
Haelwenn (lanodan) Monnier e010bb292b
NoteHandlingTest: Poison → Jason 2020-11-06 14:04:03 +01:00
Haelwenn (lanodan) Monnier fa1f5d4442
Move TransmogrifierTest for Note to NoteHandlingTest 2020-11-06 08:57:16 +01:00
a1batross 30a1d4aa98 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-11-05 18:22:10 +01:00
rinpatch 6166ecdbc8 CHANGELOG.md: Add an entry for the spoofing fix 2020-11-05 16:33:51 +03:00
rinpatch 5116859f0e Merge branch 'fix/object-attachment-spoof' into 'develop'
Fix object spoofing vulnerability in attachments

See merge request pleroma/secteam/pleroma!18
2020-11-05 16:32:54 +03:00
Haelwenn 4d693b5e54 Merge branch '2236-no-name' into 'develop'
Resolve "Account cannot be fetched by some instances"

Closes #2236

See merge request pleroma/pleroma!3101
2020-11-05 16:32:50 +03:00
Mark Felder 79caf3840e phoenix_controller_render_duration is no longer available in telemetry of Phoenix 1.5+ 2020-11-05 16:26:10 +03:00
feld 48f7e12e6c Merge branch 'ostatus-controller-no-auth-check-on-non-federating-instances' into 'develop'
OStatus / Static FE access control fixes

See merge request pleroma/pleroma!3053
2020-11-05 16:23:56 +03:00
feld 86b4149a13 Merge branch '1668-prometheus-access-restrictions' into 'develop'
[#1668] App metrics endpoint (Prometheus) access restrictions

Closes #1668

See merge request pleroma/pleroma!3093
2020-11-05 16:22:35 +03:00
rinpatch 5f27a39152 Merge branch '2242-nsfw-case' into 'develop'
Resolve "Posts tagged with #NSFW from GS aren't marked as sensitive"

Closes #2242

See merge request pleroma/pleroma!3094
2020-11-05 16:19:44 +03:00
feld 88dc1d24b9 Merge branch 'issue/2261' into 'develop'
[#2261] FrontStatic plug: excluded invalid url

See merge request pleroma/pleroma!3106
2020-11-05 16:18:56 +03:00
lain 294628d981 Merge branch 'feature/expire-mutes' into 'develop'
Expiring mutes for users and activities

Closes #1817

See merge request pleroma/pleroma!2971
2020-11-05 12:44:16 +00:00
lain 9b2ed14277 Docs: Add info about expiring mutes. 2020-11-05 13:23:58 +01:00
lain 4e7418d963 Merge branch 'stats-genserver-fix' into 'develop'
don't run  Stats GenServer updates in tests

See merge request pleroma/pleroma!2976
2020-11-04 16:15:04 +00:00
lain 5ddf0be208 Changelog: Add info about admin email user link changes. 2020-11-04 17:13:34 +01:00
lain 6d850c46dc AdminEmail: Use AP id as user url. 2020-11-04 17:12:47 +01:00
lain d8d4e96230 Merge branch 'default-mrf' into 'develop'
Add TagPolicy as default MRF

See merge request pleroma/pleroma!2834
2020-11-04 15:54:12 +00:00
lain 7bbc328d66 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into stats-genserver-fix 2020-11-04 16:52:30 +01:00
lain dd2b3a8da9 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/expire-mutes 2020-11-04 16:51:42 +01:00
lain 78cea44553 Merge branch 'ejabberd-pleroma-auth' into 'develop'
Add ejabberd auth document

See merge request pleroma/pleroma!3074
2020-11-04 15:42:48 +00:00
lain 2aeb229de3 Cheatsheet: Add info about :blockers_visible 2020-11-04 16:23:24 +01:00
lain bae48c98e3 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-block-behavior 2020-11-04 16:18:11 +01:00
lain 4800ee656b Merge branch 'features/federation-status' into 'develop'
Add a federation_status endpoint showing unreachable instances

See merge request pleroma/pleroma!3086
2020-11-04 15:00:52 +00:00
lain 5db4c823b2 Merge branch 'restrict-domain' into 'develop'
View a remote server's timeline

See merge request pleroma/pleroma!2713
2020-11-04 14:54:53 +00:00
Ivan Tashkinov 73e66fd31f Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements 2020-11-04 17:48:10 +03:00
Haelwenn 9c09ea01aa Merge branch '2284-voters-count' into 'develop'
Always return voters_count in polls

See merge request pleroma/pleroma!3120
2020-11-04 14:44:45 +00:00
lain eb1e1e7494 Changelog: Add info about federation status endpoint 2020-11-04 15:39:32 +01:00
lain 504a829edb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/federation-status 2020-11-04 15:38:10 +01:00
lain cb3cd3a761 TopicsTest: Small addition. 2020-11-04 15:24:10 +01:00
rinpatch 7058cac1c2 Merge branch '2257-self-chat' into 'develop'
Resolve "Can't message yourself in a chat (but can start it)"

Closes #2257

See merge request pleroma/pleroma!3099
2020-11-04 17:12:37 +03:00
feld 6c8469664a Merge branch 'chore/elixir-1.11' into 'develop'
Elixir 1.11 compatibility / Phoenix 1.5+

See merge request pleroma/pleroma!3059
2020-11-04 17:05:21 +03:00
lain 329aa19c9f Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-restrict-domain 2020-11-04 15:05:01 +01:00
feld 49b43e668e Merge branch 'instance-docs' into 'develop'
AdminAPI: Allow to modify Terms of Service and Instance Panel via Admin API

Closes #1516

See merge request pleroma/pleroma!2931
2020-11-04 17:00:50 +03:00
feld fa6ad67397 Merge branch 'tesla-get-to-pleroma' into 'develop'
Use Pleroma.HTTP instead of Tesla

Closes #2275

See merge request pleroma/pleroma!3113
2020-11-04 16:57:37 +03:00
lain bc4d9c4ffc Merge branch 'hide-muted-chats' into 'develop'
Hide chats from muted users

Closes #2230

See merge request pleroma/pleroma!3116
2020-11-04 13:48:15 +00:00
Egor Kislitsyn ca95cbe0b4
Add `with_muted` param to ChatController.index/2 2020-11-04 16:40:12 +04:00
lain e46c95b826 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-admin-api 2020-11-04 13:23:18 +01:00
lain c7bcbfbc1d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/local-only-scope 2020-11-04 11:47:41 +01:00
lain 92d252f364 Poll Schema: Update and fix. 2020-11-04 10:20:09 +01:00
lain f09bb814a9 Changelog: Add info about poll view changes 2020-11-04 10:14:48 +01:00
lain 1cfc3278c0 Poll View: Always return `voters_count`. 2020-11-04 10:14:00 +01:00
a1batross f4cfefe9e0 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-11-03 22:42:31 +01:00
lain ba3f3a5a56 Merge branch 'chores/pleroma-favicon-logo' into 'develop'
favicon: Use images/pleroma_logo_vector_bg_32.png from pleroma.social

Closes #2270

See merge request pleroma/pleroma!3115
2020-11-03 13:12:39 +00:00
lain f7a3dcd320 Merge branch 'patch-4' into 'develop'
ConversationView: add current user to conversations, according to Mastodon behaviour, fix last_status.account being not filled

Closes #2217

See merge request pleroma/pleroma!3089
2020-11-03 13:11:36 +00:00
lain c37118e6f2 Conversations: A few refactors 2020-11-03 13:56:12 +01:00
lain 91f6c32430 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into a1batross/pleroma-patch-4 2020-11-03 13:45:09 +01:00
Haelwenn (lanodan) Monnier 179936609f
favicon: Update to pleroma logo, provided by @shpuld
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2270
2020-11-03 09:52:17 +01:00
Haelwenn 0d8cc0905a Merge branch 'fix/get_report_with_notes' into 'develop'
Permit fetching individual reports with notes preloaded

See merge request pleroma/pleroma!3118
2020-11-03 01:00:12 +00:00
feld 0fd2830fe1 Merge branch 'chore/deps-from-git' into 'develop'
Ensure URLs for git repos end in .git for older git clients like on CentOS 7

See merge request pleroma/pleroma!3119
2020-11-02 23:28:16 +00:00
Mark Felder 2f2281fdf1 Ensure URLs for git repos end in .git for older git clients like on CentOS 7 2020-11-02 17:09:56 -06:00
Mark Felder 53dd048590 Test the note is returned when fetching a single report 2020-11-02 15:49:07 -06:00
Mark Felder 7efc074ead Permit fetching individual reports with notes preloaded 2020-11-02 13:06:59 -06:00
a1batross eceb4450df Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-11-02 15:46:23 +01:00
Egor Kislitsyn be52819a11
Hide chats from muted users 2020-11-02 17:51:54 +04:00
lain 24ce324973 Merge branch 'bugfix/poll_replies_count' into 'develop'
side_effects: Don’t increase_replies_count when it’s an Answer

Closes #2274

See merge request pleroma/pleroma!3114
2020-11-02 12:08:20 +00:00
minibikini 6163fbf553 Merge branch 'develop' into 'frontend-admin-api'
# Conflicts:
#   lib/pleroma/web/router.ex
2020-11-02 10:43:45 +00:00
Haelwenn (lanodan) Monnier 4caad4e910
side_effects: Don’t increase_replies_count when it’s an Answer 2020-11-02 05:56:17 +01:00
feld 9fbe9ef774 Merge branch 'tesla-get-to-pleroma' into 'develop'
Use Pleroma.HTTP instead of Tesla

Closes #2275

See merge request pleroma/pleroma!3113
2020-11-01 19:31:17 +00:00
Ekaterina Vaartis 8f00d90f91 Use Pleroma.HTTP instead of Tesla
Closes #2275

As discovered in the issue, captcha used Tesla.get instead of
Pleroma.HTTP. I've also grep'ed the repo and changed the other place
where this was used.
2020-11-01 12:05:39 +03:00
feld 38b481d112 Merge branch 'feature/account-export' into 'develop'
Add account export

Closes #847

See merge request pleroma/pleroma!2918
2020-10-31 17:03:40 +00:00
feld 37e8e8bf8e Merge branch 'idempotency-key-optimistic-posting' into 'develop'
Add `idempotency_key` to the chat message entity

Closes #2126

See merge request pleroma/pleroma!3015
2020-10-31 17:01:29 +00:00
Ivan Tashkinov 04f6b48ac1 Auth subsystem refactoring and tweaks.
Added proper OAuth skipping for SessionAuthenticationPlug. Integrated LegacyAuthenticationPlug into AuthenticationPlug. Adjusted tests & docs.
2020-10-31 13:38:35 +03:00
eugenijm 8e41baff40 Add idempotency_key to the chat_message entity. 2020-10-31 05:50:59 +03:00
Egor Kislitsyn d1698267a2
Fix credo warning 2020-10-31 00:26:11 +04:00
Egor Kislitsyn a2a7a1f2ff
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-31 00:17:33 +04:00
feld 4fbdd1c8a1 Merge branch 'remove-unused-aliases' into 'develop'
Remove unused aliases

See merge request pleroma/pleroma!3111
2020-10-30 17:28:58 +00:00
Egor Kislitsyn d2113428c0
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-30 19:34:02 +04:00
Egor Kislitsyn 1a98476f48 Remove unused aliases 2020-10-30 18:42:43 +04:00
Alibek Omarov 1042c30fa5 ConversationViewTest: fix test 2020-10-30 13:59:53 +01:00
Alibek Omarov d63ec02f31 ConversationView: fix formatting 2020-10-30 13:59:53 +01:00
Alibek Omarov 0552a08dfd ConversationControllerTest: fix test, fix formatting 2020-10-30 13:59:53 +01:00
Alibek Omarov 5591dc0248 Add entry in changelog 2020-10-30 13:59:53 +01:00
Alibek Omarov 9b93eef715 ConversationView: fix last_status.account being empty, fix current user being included in group conversations 2020-10-30 13:59:53 +01:00
Alibek Omarov 630eb0f939 ConversationViewTest: fix test #2 2020-10-30 12:58:51 +01:00
Alibek Omarov 149589c842 ConversationViewTest: fix test 2020-10-30 12:58:51 +01:00
Alibek Omarov 390a12d4c8 ConversationControllerTest: fix test 2020-10-30 12:58:51 +01:00
Alibek Omarov 241bd061fc ConversationView: add current user to conversations, according to Mastodon behaviour 2020-10-30 12:58:51 +01:00
minibikini 1cc8e94506 Merge branch 'develop' into 'feature/local-only-scope'
# Conflicts:
#   CHANGELOG.md
2020-10-30 11:18:55 +00:00
a1batross 760b413838 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-10-30 12:18:24 +01:00
Haelwenn 131f3219e6 Merge branch 'issue/2069' into 'develop'
[#2069] unread_conversation_count

See merge request pleroma/pleroma!2939
2020-10-29 23:39:15 +00:00
feld a326a56371 Merge branch 'fix/frontend-cli-docs' into 'develop'
Fix formatting and typos in "Managing frontends" guide

See merge request pleroma/pleroma!3098
2020-10-29 21:06:42 +00:00
feld 1cce1bd729 Merge branch 'issue/2137-user-filters-admin-fe' into 'develop'
[#2137] admin/users filters

See merge request pleroma/pleroma!3016
2020-10-29 21:06:15 +00:00
feld 6d7dc1241c Merge branch 'mutes-blocks-pagination' into 'develop'
Support pagination of blocks and mutes

Closes #642

See merge request pleroma/pleroma!3080
2020-10-29 21:02:35 +00:00
feld 8b3650998b Merge branch 'fix/mrf-keyword-description' into 'develop'
Improve Keyword descriptions for AdminFE

See merge request pleroma/pleroma!3110
2020-10-29 19:39:23 +00:00
Mark Felder 89c356d19f Improve Keyword descriptions for AdminFE 2020-10-29 14:22:07 -05:00
Egor Kislitsyn 75d131ba18 Add documentation and update CHANGELOG 2020-10-29 16:37:51 +04:00
Egor Kislitsyn d83c2bd330
Add support for install via `file` and `build_url` params 2020-10-29 16:37:50 +04:00
Egor Kislitsyn fa902867c0
Merge remote-tracking branch 'origin/develop' into mutes-blocks-pagination 2020-10-29 15:35:42 +04:00
Egor Kislitsyn 8542d2efee
Merge remote-tracking branch 'origin/develop' into feature/local-only-scope 2020-10-29 14:51:23 +04:00
a1batross 6d19014af0 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-10-29 08:56:51 +01:00
feld 0e0a6aef70 Merge branch 'bugfix/admin-api-account-view-is-discoverable-fix' into 'develop'
Fix: User.is_discoverable attribute rendering in Admin API User view

See merge request pleroma/pleroma!3107
2020-10-29 07:18:49 +00:00
Ivan Tashkinov 9f5f7dc9f9 Fixed User.is_discoverable attribute rendering in Admin API User view. 2020-10-28 22:29:52 +03:00
feld 25832534cd Merge branch 'ostatus-controller-no-auth-check-on-non-federating-instances' into 'develop'
OStatus / Static FE access control fixes

See merge request pleroma/pleroma!3053
2020-10-28 18:08:51 +00:00
Ivan Tashkinov da4a1e57b1 @doc fix. 2020-10-28 19:09:38 +03:00
Ivan Tashkinov ba50dc05a8 Merge remote-tracking branch 'remotes/origin/develop' into ostatus-controller-no-auth-check-on-non-federating-instances
# Conflicts:
#	CHANGELOG.md
2020-10-28 19:03:40 +03:00
feld 342c2e1bc0 Merge branch 'issue/2261' into 'develop'
[#2261] FrontStatic plug: excluded invalid url

See merge request pleroma/pleroma!3106
2020-10-28 15:06:47 +00:00
Mark Felder d2b140a525 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/2261 2020-10-28 08:48:26 -05:00
Egor Kislitsyn 4a2d7a7a5d
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-28 15:33:36 +04:00
Egor Kislitsyn 4f90077767
Fix warning 2020-10-28 15:32:44 +04:00
feld 1204aaa2e3 Merge branch 'feature/autofollowing' into 'develop'
autofollowing_nicknames

See merge request pleroma/pleroma!3087
2020-10-27 22:55:31 +00:00
Haelwenn d8d4bd15d0 Merge branch '2236-no-name' into 'develop'
Resolve "Account cannot be fetched by some instances"

Closes #2236

See merge request pleroma/pleroma!3101
2020-10-27 22:44:31 +00:00
feld 03a318af9a Merge branch 'develop' into 'feature/autofollowing'
# Conflicts:
#   CHANGELOG.md
2020-10-27 22:13:50 +00:00
Mark Felder f2b74f60f0 Merge branch 'develop' into feature/account-export 2020-10-27 15:16:22 -05:00
feld 7d31122781 Merge branch 'fix/prometheus-test' into 'develop'
phoenix_controller_render_duration is no longer available in telemetry of Phoenix 1.5+

See merge request pleroma/pleroma!3105
2020-10-27 20:05:09 +00:00
Maksim Pechnikov d28f72a55a FrontStatic plug: excluded invalid url 2020-10-27 22:59:27 +03:00
Mark Felder cbe41408e4 phoenix_controller_render_duration is no longer available in telemetry of Phoenix 1.5+ 2020-10-27 14:37:48 -05:00
minibikini 1bfd8528bb Merge branch 'develop' into 'feature/local-only-scope'
# Conflicts:
#   CHANGELOG.md
2020-10-27 18:59:19 +00:00
Mark Felder 291189357b Merge branch 'develop' into feature/account-export 2020-10-27 12:54:33 -05:00
Mark Felder 9e54ef086b Merge branch 'develop' into feature/account-export 2020-10-27 12:51:31 -05:00
feld 5aff479951 Merge branch '1668-prometheus-access-restrictions' into 'develop'
[#1668] App metrics endpoint (Prometheus) access restrictions

Closes #1668

See merge request pleroma/pleroma!3093
2020-10-27 17:47:56 +00:00
feld e062329a17 Merge branch 'develop' into 'feature/autofollowing'
# Conflicts:
#   CHANGELOG.md
2020-10-27 17:42:24 +00:00
Egor Kislitsyn 03e306785b
Add an API endpoint to install a new frontend 2020-10-27 19:20:21 +04:00
lain 04b7505c75 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-block-behavior 2020-10-26 17:50:34 +01:00
lain 2f7401806b Merge branch 'docs/clients-apc2s' into 'develop'
clients.md: Add AndStatus, note supported protocols

See merge request pleroma/pleroma!3104
2020-10-26 15:59:10 +00:00
lain de6d49c8ce ActivityPub: Add back debug call + explanation. 2020-10-26 16:33:26 +01:00
lain 9542c5d0f4 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 2236-no-name 2020-10-26 16:30:48 +01:00
rinpatch e6dab6513d Merge branch 'patch-1' into 'develop'
Fix link reference

See merge request pleroma/pleroma!3103
2020-10-26 11:33:16 +00:00
Haelwenn (lanodan) Monnier 1de4ff8b4d
clients.md: Add AndStatus, note supported protocols 2020-10-26 03:23:47 +01:00
Haelwenn 073ad7e6d9 Merge branch 'docs/ap_c2s' into 'develop'
AP C2S: Document our additional endpoints

See merge request pleroma/pleroma!3056
2020-10-26 02:09:20 +00:00
Kana ac692ff3e9 Fix link reference 2020-10-25 08:28:17 +00:00
a1batross a398463d10 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-10-24 02:26:44 +02:00
Haelwenn 2fd384e0a2 Merge branch 'fix/sendmail' into 'develop'
Fix ability to use sendmail on Linux distros with systemd

See merge request pleroma/pleroma!3102
2020-10-23 23:29:17 +00:00
Mark Felder e7b0840b88 NoNewPrivileges breaks ability to send email via sendmail because it restricts ability to run setuid/setgid binaries 2020-10-23 15:32:32 -05:00
rinpatch df61071422 Merge branch '2242-nsfw-case' into 'develop'
Resolve "Posts tagged with #NSFW from GS aren't marked as sensitive"

Closes #2242

See merge request pleroma/pleroma!3094
2020-10-23 19:39:42 +00:00
lain a999e8b0b7 Changelog: Add info about whitespace name remote users. 2020-10-23 13:55:08 +02:00
lain 60e379ce0b User: Correctly handle whitespace names. 2020-10-23 13:53:01 +02:00
Haelwenn 096e4518ad Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3100
2020-10-22 22:26:47 +00:00
shironeko bd033aba48 Translated using Weblate (Chinese (Simplified))
Currently translated at 45.2% (48 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/zh_Hans/
2020-10-22 20:34:02 +00:00
feld d6907e6e0c Merge branch 'chore/elixir-1.11' into 'develop'
Elixir 1.11 compatibility / Phoenix 1.5+

See merge request pleroma/pleroma!3059
2020-10-22 20:33:52 +00:00
Ivan Tashkinov 14900164b8 [#3059] Used forked prometheus-phx to remove log spam. 2020-10-22 17:58:25 +03:00
Ivan Tashkinov 8a68673eed [#3059] Formatting fix. 2020-10-22 14:07:33 +03:00
rinpatch d031b185e2 Merge branch '2257-self-chat' into 'develop'
Resolve "Can't message yourself in a chat (but can start it)"

Closes #2257

See merge request pleroma/pleroma!3099
2020-10-22 10:56:17 +00:00
Ivan Tashkinov 8a55de1d78 [#3059] Fixed Phoenix 1.5 telemetry processing. 2020-10-22 13:54:15 +03:00
lain 3fdc2a0d1e Changelog: Add information about self-chats 2020-10-22 12:23:07 +02:00
lain 8d251096fe SideEffects: Correctly handle chat messages sent to yourself 2020-10-22 12:22:08 +02:00
Maksim Pechnikov ef627b9391 fix module name 2020-10-22 12:04:23 +03:00
Maksim Pechnikov add26817e3 update changelog 2020-10-22 11:54:32 +03:00
Maksim Pechnikov 51189ad365 update docs 2020-10-22 11:53:28 +03:00
Maksim Pechnikov 44e5a57d1a admin api: added user filters by `actor_types` 2020-10-22 11:53:28 +03:00
Maksim Pechnikov 60663150b5 admin user search: added filter by `actor_type` 2020-10-22 11:53:28 +03:00
Maksim Pechnikov 46b420aa60 need_confirmed -> unconfirmed 2020-10-22 11:50:49 +03:00
Maksim Pechnikov cf4f393794 added AdminApi.UserController 2020-10-22 11:50:49 +03:00
Maksim Pechnikov 9ef46ce410 added 'unconfirmed' filter to admin/users 2020-10-22 11:50:49 +03:00
Haelwenn 2ca98f2d94 Apply 1 suggestion(s) to 1 file(s) 2020-10-21 19:40:37 +00:00
rinpatch fb0e340363 Rip out fedsockets from the release branch 2020-10-21 21:14:58 +03:00
Egor Kislitsyn b18b93bbed
Fix formatting and typos in "Managing frontends" guide 2020-10-21 21:42:21 +04:00
Haelwenn 77e827bb66 Merge branch 'bugfix/ci-majic-release' into 'develop'
CI: Install libmagic-dev in debian release targets

See merge request pleroma/pleroma!3096
2020-10-20 21:15:48 +00:00
Haelwenn (lanodan) Monnier 54d99cbb72
CI: Install libmagic-dev in debian release targets 2020-10-20 22:10:20 +02:00
Egor Kislitsyn 034ac43f3a
Fix credo warnings 2020-10-20 17:47:04 +04:00
Egor Kislitsyn e87901c424
Merge remote-tracking branch 'origin/develop' into feature/account-export 2020-10-20 17:27:29 +04:00
Ivan Tashkinov 50d4280880 [#1668] Formatting fix. 2020-10-20 16:18:24 +03:00
Egor Kislitsyn ad605e3e16
Rename `Pleroma.Backup` to `Pleroma.User.Backup` 2020-10-20 17:16:58 +04:00
Ivan Tashkinov 3a28aa8814 [#1668] Added :prometheus group config to config/description.exs. 2020-10-20 15:13:20 +03:00
Haelwenn 44b2a137d1 Merge branch 'bugfix/ci-majic-release' into 'develop'
CI: Install file-dev in alpine release targets

See merge request pleroma/pleroma!3095
2020-10-20 00:47:44 +00:00
Haelwenn (lanodan) Monnier ccd1e75e35
CI: Install file-dev in alpine release targets 2020-10-20 02:37:08 +02:00
Haelwenn fe160330e6 Merge branch 'fix/autofollower-suggestions' into 'develop'
Remove suggestions for autofollower_nicknames

See merge request pleroma/pleroma!3088
2020-10-19 23:16:24 +00:00
Egor Kislitsyn c1976d5b19 Fix credo warnings 2020-10-19 18:14:49 +04:00
lain e97b254c6b Transmogrifier: Refactor and unify incoming tag handling 2020-10-19 15:46:24 +02:00
lain 39fd4d7639 Transmogrifier: Downcase incoming Hashtags
Also, set sensitive to true if we have an nsfw hashtag present.
2020-10-19 15:40:50 +02:00
Egor Kislitsyn 98f32cf820
Fix tests 2020-10-19 17:19:45 +04:00
Egor Kislitsyn 76c4e80e5a
Merge branch 'develop' into mutes-blocks-pagination 2020-10-19 15:40:03 +04:00
Egor Kislitsyn 18a91d85e5
Merge branch 'develop' into feature/local-only-scope 2020-10-19 15:31:56 +04:00
Haelwenn 0495a07dc7 Merge branch '2239-mute-fixes' into 'develop'
ActivityPub: Show own replies to muted users.

Closes #2239

See merge request pleroma/pleroma!3084
2020-10-19 04:26:35 +00:00
Ivan Tashkinov 524fb0e4c2 [#1668] Restricted access to app metrics endpoint by default. Added ability to configure IP whitelist for this endpoint.
Added tests and documentation.
2020-10-18 21:22:21 +03:00
feld be611b143b Merge branch 'chore/changelogfix' into 'develop'
Fix duplicate Added sections in the changelog

See merge request pleroma/pleroma!3091
2020-10-17 17:45:51 +00:00
Mark Felder d16336e7fb Document autofollowing_nicknames 2020-10-17 16:54:05 +00:00
Mark Felder cb3ee4d543 Fix duplicate Added sections in the changelog 2020-10-17 11:52:52 -05:00
Ivan Tashkinov 9ea31b373f Merge remote-tracking branch 'remotes/origin/develop' into chore/elixir-1.11 2020-10-17 17:53:47 +03:00
Ivan Tashkinov d54233760f [#3053] Post-merge fix. 2020-10-17 13:33:57 +03:00
Ivan Tashkinov 049ece1ef3 Merge remote-tracking branch 'remotes/origin/develop' into ostatus-controller-no-auth-check-on-non-federating-instances
# Conflicts:
#	lib/pleroma/web/feed/user_controller.ex
#	lib/pleroma/web/o_status/o_status_controller.ex
#	lib/pleroma/web/router.ex
#	lib/pleroma/web/static_fe/static_fe_controller.ex
2020-10-17 13:12:39 +03:00
Mark Felder efd6572ffb Remove suggestions 2020-10-16 17:43:44 +00:00
Mark Felder 405f27b4f8 The suggestions are problematic as they need to be real local account names 2020-10-16 17:41:44 +00:00
Mark Felder 1b8fd7e65a Adds feature to permit e.g., local admins and community moderators to automatically follow all newly registered accounts 2020-10-16 17:36:02 +00:00
Haelwenn (lanodan) Monnier aafdc975bd
federation_status: Add ApiSpec 2020-10-16 01:14:15 +02:00
Haelwenn (lanodan) Monnier 3b5a7a6b14
federation_status: New endpoint showing unreachable instances 2020-10-16 01:14:04 +02:00
feld 023f726d7f Merge branch 'refactor/discoverable_user_field' into 'develop'
Change user.discoverable field to user.is_discoverable

See merge request pleroma/pleroma!3078
2020-10-15 21:49:15 +00:00
Mark Felder fb056ce05b Merge branch 'develop' into refactor/discoverable_user_field 2020-10-15 16:39:01 -05:00
Haelwenn 724e4b7f00 Apply 1 suggestion(s) to 1 file(s) 2020-10-15 21:03:48 +00:00
feld 5703fb6d2a Merge branch 'issue/2009' into 'develop'
[#2009] fixed install docs (release env)

See merge request pleroma/pleroma!2854
2020-10-15 20:21:57 +00:00
Maksim Pechnikov 2030ffd490 fix test 2020-10-15 22:31:52 +03:00
Maksim Pechnikov cf53e300f8 added generate the release env to `pleroma.instance gen` 2020-10-15 22:31:00 +03:00
Maksim Pechnikov 595da6080d fixed install docs 2020-10-15 22:30:03 +03:00
Maksim Pechnikov 2f6bbd53b5 fix docs 2020-10-15 22:29:37 +03:00
Maksim e2333f757a Apply 1 suggestion(s) to 1 file(s) 2020-10-15 22:29:28 +03:00
Maksim 499df7b73a Apply 1 suggestion(s) to 1 file(s) 2020-10-15 22:29:18 +03:00
Maksim Pechnikov 14054cd004 update task messages 2020-10-15 22:28:49 +03:00
Maksim Pechnikov 20e68b30f0 added generated `pleroma.env` 2020-10-15 22:28:26 +03:00
rinpatch 274c8e6fab SECURITY.md: update supported versions to only 2.2 2020-10-15 21:45:31 +03:00
rinpatch 6c1bc9ca39 CHANGELOG.md: prepare 2.2.0 changelog 2020-10-15 21:43:46 +03:00
rinpatch 65b73eb9fd mix.exs: bump version to 2.2.0 2020-10-15 21:43:35 +03:00
Egor Kislitsyn 2a475622ee
Add Pleroma.Constants.as_local_public/0 2020-10-15 19:07:00 +04:00
Egor Kislitsyn a598d5baab
Update CHANGELOG 2020-10-15 18:37:45 +04:00
Egor Kislitsyn 4f79bbbc31
Add local-only statuses 2020-10-15 18:37:44 +04:00
Egor Kislitsyn a859d9bc15
Update dependencies 2020-10-15 18:05:54 +04:00
Egor Kislitsyn 3985c1b450
Fix warnings 2020-10-15 16:54:59 +04:00
a1batross 4024840c9b Merge develop 2020-10-15 13:31:45 +02:00
lain 7a2f100061 ActivityPub: Show own replies to muted users.
Aligns mute with block behavior.
2020-10-15 12:28:25 +02:00
feld b48724afcd Merge branch 'docs-indigenous' into 'develop'
Change handle and url of contact person for Indigenous client

See merge request pleroma/pleroma!3082
2020-10-14 20:31:23 +00:00
Mark Felder 1fb9452131 Merge branch 'develop' into feature/account-export 2020-10-14 15:27:15 -05:00
feld 77bca41595 Apply 3 suggestion(s) to 3 file(s) 2020-10-14 19:33:54 +00:00
swentel 42112b842c Change handle and url of contact person for Indigenous client 2020-10-14 21:32:18 +02:00
Alex Gleason 83770b7b39
Merge remote-tracking branch 'upstream/develop' into aliases 2020-10-14 12:33:24 -05:00
feld 2013705690 Merge branch 'feature/gen-magic' into 'develop'
Use libmagic via majic

Closes #1736

See merge request pleroma/pleroma!2534
2020-10-14 17:31:45 +00:00
Haelwenn 9a85ec0da0 Merge branch 'refactor/locked_user_field' into 'develop'
Change user.locked field to user.is_locked

See merge request pleroma/pleroma!3077
2020-10-14 16:17:32 +00:00
Mark Felder ed61002815 Undo API breaking changes 2020-10-14 11:03:17 -05:00
Mark Felder b001237b79 Finish undoing API breakage 2020-10-14 10:44:18 -05:00
Mark Felder 3242cfef20 Undo API breaking changes 2020-10-14 09:54:07 -05:00
Alex Gleason dc38dc8472
Replace User.toggle_confirmation/1 with User.confirm/1, fixes #2235 2020-10-13 22:01:27 -05:00
Alex Gleason 755f58168b
Merge remote-tracking branch 'upstream/develop' into restrict-domain 2020-10-13 19:26:04 -05:00
Alex Gleason 7d8f610720
Merge remote-tracking branch 'upstream/develop' into aliases 2020-10-13 19:25:18 -05:00
Alex Gleason b3d6cf9022
Merge remote-tracking branch 'upstream/develop' into block-behavior 2020-10-13 19:22:32 -05:00
Alex Gleason c3112fd13a
Merge remote-tracking branch 'upstream/develop' into registration-workflow 2020-10-13 19:20:00 -05:00
Mark Felder 8b20c4d275 Missed tests 2020-10-13 16:15:28 -05:00
Ali Riza Keles 943f65c739
Include python script and description 2020-10-13 19:58:38 +01:00
Haelwenn 481906207e Merge branch 'bugfix/file-consistency-prod' into 'develop'
Move Consistency.FileLocation to ./test

See merge request pleroma/pleroma!3079
2020-10-13 18:19:24 +00:00
Egor Kislitsyn 2b58b0dbce
Update CHANGELOG 2020-10-13 21:58:26 +04:00
Egor Kislitsyn 6734abcbd4
Add pagination for Mutes 2020-10-13 21:58:18 +04:00
Haelwenn (lanodan) Monnier f5d8af1db1
Move Consistency.FileLocation to ./test
This fixes a compilation fail because of Credo's absence in MIX_ENV=prod
2020-10-13 19:57:45 +02:00
Mark Felder 09be8cb336 Credo 2020-10-13 12:49:43 -05:00
Egor Kislitsyn 33f4f39b1c
Add pagination for Blocks 2020-10-13 21:39:41 +04:00
Mark Felder 40f3cdc030 JPEG content_type must be image/jpeg 2020-10-13 10:37:24 -05:00
Mark Felder b738f70953 Merge branch 'develop' into feature/gen-magic 2020-10-13 10:08:38 -05:00
Mark Felder 64553ebae2 Merge branch 'develop' into chore/elixir-1.11 2020-10-13 09:54:53 -05:00
Mark Felder 409f694e4f Merge branch 'develop' into refactor/locked_user_field 2020-10-13 09:54:29 -05:00
Mark Felder 4ead0d564f Merge branch 'develop' into refactor/discoverable_user_field 2020-10-13 09:54:11 -05:00
feld 8b6221d4ec Merge branch 'feature/1822-files-consistency' into 'develop'
Feature/1822 files consistency

Closes #1822

See merge request pleroma/pleroma!2680
2020-10-13 14:47:29 +00:00
Mark Felder 8bacdc3680 Change user.discoverable field to user.is_discoverable 2020-10-13 09:45:08 -05:00
Mark Felder 9968b7efed Change user.locked field to user.is_locked 2020-10-13 09:31:13 -05:00
Alexander Strizhakov 4c4ea9a348
changes after rebase 2020-10-13 17:10:34 +03:00
Alexander Strizhakov 3cb9c88837
migration and warning for RemoteIp plug rename 2020-10-13 16:44:04 +03:00
Alexander Strizhakov 5f2071c458
changes after rebase 2020-10-13 16:44:03 +03:00
Alexander Strizhakov bb111465a1
credo fix after rebase 2020-10-13 16:44:03 +03:00
Alexander Strizhakov 7f5dbb0201
changes after rebase 2020-10-13 16:44:03 +03:00
Alexander Strizhakov b081080dd9
fixes after rebase 2020-10-13 16:44:02 +03:00
Alexander Strizhakov f679486540
rebase 2020-10-13 16:44:02 +03:00
Alexander Strizhakov c4c5caedd8
changes after rebase 2020-10-13 16:44:02 +03:00
Alexander Strizhakov 1d0e130cb3
fixes after rebase 2020-10-13 16:44:02 +03:00
Alexander Strizhakov 7f82f18664
exclude file_location check from coveralls 2020-10-13 16:44:01 +03:00
Alexander Strizhakov c8418e2d1f
fix after rebase 2020-10-13 16:44:01 +03:00
Alexander Strizhakov b720ad2264
files consistency after rebase 2020-10-13 16:44:01 +03:00
Alexander Strizhakov c5efded5fd
files consistency for new files 2020-10-13 16:44:00 +03:00
Alexander Strizhakov 0f8ab46a0e
fix after rebase 2020-10-13 16:44:00 +03:00
Alexander Strizhakov 207211a2b3
update files consistency after rebase 2020-10-13 16:44:00 +03:00
Alexander Strizhakov 3c8c540707
copyright 2020-10-13 16:43:59 +03:00
Alexander Strizhakov e33782455d
updates after rebase 2020-10-13 16:43:59 +03:00
Alexander Strizhakov b6eb7997f5
special namespaces for phoenix and api_spec 2020-10-13 16:43:59 +03:00
Alexander Strizhakov 9f4fe5485b
alias alphabetically order 2020-10-13 16:43:59 +03:00
Alexander Strizhakov 3ef4e9d170
AdminSecretAuthenticationPlug module name 2020-10-13 16:43:58 +03:00
Alexander Strizhakov c497558d43
AuthenticationPlug module name 2020-10-13 16:43:58 +03:00
Alexander Strizhakov c1777e7479
BasicAuthDecoderPlug module name 2020-10-13 16:43:58 +03:00
Alexander Strizhakov 970932689f
DigestPlug rename 2020-10-13 16:43:57 +03:00
Alexander Strizhakov 66e0b0065b
Cache plug module name 2020-10-13 16:43:57 +03:00
Alexander Strizhakov c6baa811d6
EnsureAuthenticatedPlug module name 2020-10-13 16:43:57 +03:00
Alexander Strizhakov 011525a3d1
EnsurePublicOrAuthenticatedPlug module name 2020-10-13 16:43:57 +03:00
Alexander Strizhakov 8e301a4c37
EnsureUserKeyPlug module name 2020-10-13 16:43:56 +03:00
Alexander Strizhakov d6cb1a3b46
ExpectAuthenticatedCheckPlug module name 2020-10-13 16:43:56 +03:00
Alexander Strizhakov 99e4ed21b1
ExpectPublicOrAuthenticatedCheckPlug module name 2020-10-13 16:43:56 +03:00
Alexander Strizhakov 8c993c5f63
FederatingPlug module name 2020-10-13 16:43:55 +03:00
Alexander Strizhakov abc3c7689b
HTTPSecurityPlug module name and filename 2020-10-13 16:43:55 +03:00
Alexander Strizhakov 5cd7030076
IdempotencyPlug module name 2020-10-13 16:43:55 +03:00
Alexander Strizhakov 8dfaa54ffc
InstanceStatic module name 2020-10-13 16:43:55 +03:00
Alexander Strizhakov e2332d92ce
LegacyAuthenticationPlug module name 2020-10-13 16:43:54 +03:00
Alexander Strizhakov 96d320bdfe
OAuthPlug module name 2020-10-13 16:43:54 +03:00
Alexander Strizhakov a6d8cef33e
OAuthScopesPlug module name 2020-10-13 16:43:54 +03:00
Alexander Strizhakov 15772fda57
PlugHelper module name 2020-10-13 16:43:53 +03:00
Alexander Strizhakov 4b1863ca4e
RateLimiter module name 2020-10-13 16:43:53 +03:00
Alexander Strizhakov 3be8ab5103
RemoteIp module name 2020-10-13 16:43:50 +03:00
Alexander Strizhakov 4b4c0eef36
SessionAuthenticationPlug module name 2020-10-13 16:42:53 +03:00
Alexander Strizhakov 8249b75761
SetFormatPlug module name 2020-10-13 16:42:53 +03:00
Alexander Strizhakov c97c7d982f
SetLocalePlug module name 2020-10-13 16:42:52 +03:00
Alexander Strizhakov f7614d4718
SetUserSessionIdPlug module name 2020-10-13 16:42:52 +03:00
Alexander Strizhakov d36c9e210a
StaticFEPlug module name 2020-10-13 16:42:52 +03:00
Alexander Strizhakov a07688deb1
TrailingFormatPlug module name 2020-10-13 16:42:51 +03:00
Alexander Strizhakov a5987155f7
UploadedMedia module name 2020-10-13 16:42:51 +03:00
Alexander Strizhakov ebd6dd7c53
UserEnabledPlug module name 2020-10-13 16:42:51 +03:00
Alexander Strizhakov 61c609884c
UserFetcherPlug module name 2020-10-13 16:42:51 +03:00
Alexander Strizhakov 1d16cd0c3d
UserIsAdminPlug module name 2020-10-13 16:42:50 +03:00
Alexander Strizhakov 2125286e90
fix for fallback controller 2020-10-13 16:42:50 +03:00
Alexander Strizhakov e267991a44
renaming LimiterSupervisor 2020-10-13 16:42:48 +03:00
Alexander Strizhakov 6a87f94ee2
renaming ratelimiter supervisor 2020-10-13 16:38:48 +03:00
Alexander Strizhakov 2501793f81
moving plugs into web dir 2020-10-13 16:38:19 +03:00
Alexander Strizhakov 0374df1d12
other files consistency 2020-10-13 16:38:19 +03:00
Alexander Strizhakov fc7151a9c4
more files renamings 2020-10-13 16:38:19 +03:00
Alexander Strizhakov e8e4034c48
metadata providers consistency 2020-10-13 16:38:18 +03:00
Alexander Strizhakov b5b4395e4a
oauth consistency 2020-10-13 16:38:18 +03:00
Alexander Strizhakov 7acf09beb8
more tests 2020-10-13 16:38:18 +03:00
Alexander Strizhakov 103f3dcb9e
rich media parser ttl files consistency 2020-10-13 16:38:15 +03:00
Alexander Strizhakov 7dffaef479
tests consistency 2020-10-13 16:35:09 +03:00
Alexander Strizhakov 6bf85440b3
mix tasks consistency 2020-10-13 16:33:24 +03:00
Alexander Strizhakov b573711e9c
file locations consistency 2020-10-13 16:33:24 +03:00
Mark Felder eea879eb36 Update AdminFE build to latest develop 2020-10-13 07:51:48 -05:00
lain 5ed7eb1a26 Merge branch 'preload-frontend-config' into 'develop'
Preload `/api/pleroma/frontend_configurations`, fixes #1932

Closes #1932

See merge request pleroma/pleroma!3075
2020-10-13 11:33:39 +00:00
Alex Gleason 83ae45b000
Preload `/api/pleroma/frontend_configurations`, fixes #1932 2020-10-12 18:49:37 -05:00
Alex Gleason 66e00ace7c
Refactor User.post_register_action/1 emails 2020-10-12 17:21:08 -05:00
Ali Riza Keles 06934b820e
Add ejabberd auth document 2020-10-12 23:20:10 +01:00
Alex Gleason cb29769a22
Make User.confirm/1 and User.approve/1 idempotent 2020-10-12 16:42:59 -05:00
Alex Gleason 6ebec50df6
Refactor User.confirm/1, add more tests 2020-10-12 16:32:34 -05:00
Alex Gleason 9ddc292ca8
TwitterAPI: test pending approval user email 2020-10-12 15:25:14 -05:00
feld 42b4b95467 Merge branch 'docs/improve-backup-restore' into 'develop'
Further improvements to backup/restore docs

See merge request pleroma/pleroma!3072
2020-10-12 17:46:25 +00:00
Mark Felder c4fae2611f Switch Majic to a copy hosted in our GitLab 2020-10-12 12:25:45 -05:00
feld 03855f9789 Merge branch 'improve/instance-gen' into 'develop'
#2159 Support enabling upload filters during instance gen

See merge request pleroma/pleroma!3070
2020-10-12 17:24:24 +00:00
Mark Felder 6ec1b1615b Further improvements 2020-10-12 12:23:20 -05:00
feld 68d0380633 Merge branch 'chore/copyright-headers' into 'develop'
Add missing Copyright headers

See merge request pleroma/pleroma!3071
2020-10-12 17:20:09 +00:00
Mark Felder 8539e386c3 Add missing Copyright headers 2020-10-12 12:00:50 -05:00
Mark Felder 6c61ef14c3 Support enabling upload filters during instance gen 2020-10-12 11:19:48 -05:00
Alex Gleason bb8c0614ef
Move admin approval email logic into User.post_register_action/1 2020-10-11 21:46:10 -05:00
Alex Gleason 521e965884
Registration tests 2020-10-11 21:38:01 -05:00
Alex Gleason 28005563f0
Send approval pending email during registration 2020-10-11 20:50:09 -05:00
Alex Gleason c69b205409
Registration: user state is separate from instance state 2020-10-11 19:25:34 -05:00
Alex Gleason b2fed59209
Handle User.post_register_action/1 in steps 2020-10-11 18:52:35 -05:00
Ivan Tashkinov 2498e569f1 Merge remote-tracking branch 'remotes/origin/develop' into ostatus-controller-no-auth-check-on-non-federating-instances 2020-10-11 22:34:48 +03:00
Ivan Tashkinov 89c595b772 [#3053] Removed target accessibility checks for OStatus endpoints delegating to RedirectController. Added tests. 2020-10-11 22:34:28 +03:00
Ivan Tashkinov e1eb54d389 [#3053] Rollback of access control changes in ActivityPubController (base actions: :user, :object, :activity). 2020-10-11 13:37:19 +03:00
Alex Gleason 5c8d2c468c
Blocks: update CHANGELOG 2020-10-10 03:44:20 -05:00
Alex Gleason 7c2d0e378c
Blocks: make blockers_visible config work 2020-10-10 03:41:35 -05:00
Alex Gleason 2fc7ce3e1e
Blocks: add blockers_visible config 2020-10-10 01:58:57 -05:00
Alex Gleason d2364276a1
Blocks: always see your own posts 2020-10-10 01:58:48 -05:00
feld bc3cf0fee0 Merge branch 'feat/deep-link-account-approval' into 'develop'
Deep link to the user account in AdminFE in account confirmation emails

See merge request pleroma/pleroma!3065
2020-10-09 22:35:09 +00:00
Mark Felder 3ca98878d2 Deep link to the user account in AdminFE in account confirmation emails 2020-10-09 17:08:05 -05:00
feld 1aabc0672e Merge branch 'docs/improve-backup-restore' into 'develop'
Spelling

See merge request pleroma/pleroma!3063
2020-10-09 16:30:35 +00:00
Mark Felder 04b514c567 Merge branch 'develop' into feature/gen-magic 2020-10-09 11:26:10 -05:00
Mark Felder ec217ca638 Spelling 2020-10-09 11:18:48 -05:00
feld d239bd3ca4 Merge branch 'docs/improve-backup-restore' into 'develop'
#2219 Improve backup/restore documentation

See merge request pleroma/pleroma!3061
2020-10-09 14:25:24 +00:00
Mark Felder 1e5fec8d45 Ask user to use matching values for database setup 2020-10-09 09:14:02 -05:00
Alex Gleason 9c672ecbb5
Remote Timeline: add Streaming support 2020-10-08 20:07:03 -05:00
Alex Gleason 3f9263fb16
Merge remote-tracking branch 'upstream/develop' into restrict-origin 2020-10-08 17:24:09 -05:00
Alex Gleason 5ec7d88b77
Aliases: fix URL regex 2020-10-08 16:33:47 -05:00
Mark Felder e0c5adcc20 Syntax error 2020-10-08 15:56:37 -05:00
Mark Felder 5f38e03c8a Don't always need to drop 2020-10-08 15:54:28 -05:00
Mark Felder a02ed3920f Improve backup/restore documentation 2020-10-08 15:51:56 -05:00
Alex Gleason a3964b373e
Aliases: move changelog entry 2020-10-08 15:46:03 -05:00
Alex Gleason 77b1ea68a7
Merge remote-tracking branch 'upstream/develop' into aliases 2020-10-08 15:44:48 -05:00
Haelwenn 74be4de3f6 Merge branch 'fix/2209-remoteip' into 'develop'
#2209 RemoteIP CIDR helper, config and doc improvements

See merge request pleroma/pleroma!3057
2020-10-08 17:29:00 +00:00
Mark Felder ed6511a086 Lint 2020-10-07 15:28:29 -05:00
Mark Felder a702f9fb5b Lint 2020-10-07 15:07:03 -05:00
Mark Felder 822e4472f3 Fix incorrect use of connect/1
Hint from Phoenix 1.4.17, which has a connect/7 shim:

lib/phoenix/socket/transport.ex:

  def connect(endpoint, handler, _transport_name, transport, serializers, params, _pid \\ self()) do
    IO.warn "Phoenix.Socket.Transport.connect/7 is deprecated"

    handler.connect(%{
      endpoint: endpoint,
      transport: transport,
      options: [serializer: serializers],
      params: params
    })
  end
2020-10-07 15:06:16 -05:00
Maksim 6ee20eb328 Apply 1 suggestion(s) to 1 file(s) 2020-10-07 19:32:42 +00:00
Maksim 8bfc5d9a0c Apply 1 suggestion(s) to 1 file(s) 2020-10-07 19:32:09 +00:00
feld d0eca5b125 Apply 2 suggestion(s) to 2 file(s) 2020-10-07 19:16:53 +00:00
Mark Felder 8156940a49 Compatibility with phoenix_pubsub 2.0.0 2020-10-07 13:28:39 -05:00
Mark Felder 70880d54f8 @env is not used 2020-10-07 12:55:16 -05:00
Mark Felder 42e78a08b2 Fix rendering of reports 2020-10-07 12:30:55 -05:00
Mark Felder 87fc5a40f4 instrumenters has no effect in Endpoint anymore 2020-10-07 11:52:23 -05:00
Mark Felder 8caa6cf91d Transport.connect/7 is deprecated 2020-10-07 11:47:10 -05:00
Mark Felder b0198d3435 Merge branch 'chore/elixir-1.11' of git.pleroma.social:pleroma/pleroma into chore/elixir-1.11 2020-10-07 11:45:11 -05:00
feld 6d1666a080 Apply 1 suggestion(s) to 1 file(s) 2020-10-07 16:44:52 +00:00
Mark Felder fddea9e3ce :pubsub is deprecated and replaced wit :pubsub_server 2020-10-07 10:34:24 -05:00
Mark Felder 570a406b7a use Phoenix.ConnTest is deprecated 2020-10-07 10:31:08 -05:00
Mark Felder f3bc076f09 Temporarily soft-fork prometheus_ex 2020-10-07 10:23:20 -05:00
Mark Felder 218a3e61e1 Fix incompatible types warning (Elixir 1.11) 2020-10-07 10:04:25 -05:00
Mark Felder d3106c69c8 Fix incompatible type (Elixir 1.11) 2020-10-07 10:02:20 -05:00
Mark Felder 636c00037d Fix duplicate @doc entries 2020-10-07 09:58:45 -05:00
Mark Felder 268f7f492a Update Phoenix and pubsub to solve all the System.stacktrace/0 deprecation warnings 2020-10-07 09:50:51 -05:00
Egor Kislitsyn bc3db72403
Use ModerationLog instead of Logger 2020-10-07 18:35:29 +04:00
Egor Kislitsyn 8545d533dd
Use to_string/1 instead of :binary.list_to_bin/1 2020-10-07 18:35:29 +04:00
Egor Kislitsyn 08972dd135
Use Path.join/2 2020-10-07 18:35:29 +04:00
Egor Kislitsyn 9af9f02f4b
Use Gettext for error messages 2020-10-07 18:35:28 +04:00
Egor Kislitsyn d7a5291b4f
Use `Jason.encode/1` for likes and bookmarks 2020-10-07 18:35:28 +04:00
Egor Kislitsyn 6d5f02a1da
Fix API documentation 2020-10-07 18:35:28 +04:00
Egor Kislitsyn f1e4333dd7
Fix test 2020-10-07 18:35:28 +04:00
Egor Kislitsyn 8baee855d9
Fix emails 2020-10-07 18:35:27 +04:00
Egor Kislitsyn e4792ce76a
Do not limit admins 2020-10-07 18:35:27 +04:00
Egor Kislitsyn 17562bf414
Move API endpoints to `/api/v1/pleroma/backups` 2020-10-07 18:35:27 +04:00
Egor Kislitsyn a9efd441e2
Use `Pleroma.Repo.chunk_stream/2` instead of `Pleroma.RepoStreamer.chunk_stream/2` 2020-10-07 18:35:27 +04:00
Egor Kislitsyn e50314d9d3
Fix export 2020-10-07 18:35:26 +04:00
Egor Kislitsyn 563801716a
Update changelog 2020-10-07 18:35:26 +04:00
Egor Kislitsyn 7c22c9afb4
Allow admins request user backups 2020-10-07 18:34:31 +04:00
Egor Kislitsyn 7fdd81d000
Add "Your backup is ready" email 2020-10-07 18:34:30 +04:00
Egor Kislitsyn e52dd62e14
Add configurable temporary directory 2020-10-07 18:34:30 +04:00
Egor Kislitsyn 27bc121ec0
Require email 2020-10-07 18:34:30 +04:00
Egor Kislitsyn 386199063b
Document `/api/pleroma/backups` API endpoint 2020-10-07 18:34:30 +04:00
Egor Kislitsyn cd13613db3
Fix query 2020-10-07 18:34:30 +04:00
Egor Kislitsyn 86ce4afd93
Improve backup urls 2020-10-07 18:34:29 +04:00
Egor Kislitsyn 2c73bfe122
Add API endpoints for Backups 2020-10-07 18:34:29 +04:00
Egor Kislitsyn abdffc6b8c
Fix Credo warning 2020-10-07 18:34:29 +04:00
Egor Kislitsyn 739cb1463b
Add backups deletion 2020-10-07 18:34:29 +04:00
Egor Kislitsyn 3ad7492f9d
Add config for Pleroma.Backup 2020-10-07 18:34:29 +04:00
Egor Kislitsyn a0ad9bd734
Add BackupWorker 2020-10-07 18:34:28 +04:00
Egor Kislitsyn 4f3a633745
Add `backups` table 2020-10-07 18:34:28 +04:00
Egor Kislitsyn 75e07ba206
Fix tests 2020-10-07 18:34:28 +04:00
Egor Kislitsyn be42ab70dc
Add backup upload 2020-10-07 18:34:28 +04:00
Egor Kislitsyn c82f912959
Fix credo warning 2020-10-07 18:34:27 +04:00
Egor Kislitsyn c01a818048
Add tests 2020-10-07 18:34:27 +04:00
Egor Kislitsyn 9d564ffc29
Zip exported files 2020-10-07 18:34:27 +04:00
Egor Kislitsyn 257e059e61
Add account export 2020-10-07 18:34:27 +04:00
Mark Felder b90eda3d8b Improve description yet again 2020-10-06 17:36:29 -05:00
Mark Felder e08eb4aba0 Don't leak internal variables in the docs. They're useless to users. 2020-10-06 17:29:56 -05:00
Mark Felder 7a2ed2fc90 Credo 2020-10-06 17:26:31 -05:00
Mark Felder b8c05f4876 Improve descriptions for reserved and proxies 2020-10-06 17:21:27 -05:00
Mark Felder 9783e9cd80 Add test for an entry without CIDR format 2020-10-06 17:08:26 -05:00
Mark Felder d43d05005a Move hardcoded default configuration into config.exs 2020-10-06 17:02:46 -05:00
Mark Felder 7aff2b47c5 Fix docs for default headers used by RemoteIp. We only use X-Forwarded-For by default. 2020-10-06 15:47:11 -05:00
feld f9ece1a7f6 Merge branch 'revert/rich-media-censorship' into 'develop'
#2192 Revert Rich Media censorship for sensitive statuses

See merge request pleroma/pleroma!3044
2020-10-06 20:19:39 +00:00
Mark Felder 21a73ce9f2 Document the NSFW link preview change 2020-10-06 14:54:21 -05:00
Mark Felder cddca85c84 Merge branch 'develop' into revert/rich-media-censorship 2020-10-06 14:25:20 -05:00
rinpatch 2698bbc9f6 Merge branch 'filtering-following' into 'develop'
ActivityPub: Return Announces when filtering by `following`.

See merge request pleroma/pleroma!3022
2020-10-06 18:11:34 +00:00
rinpatch 0a69dbc97c Merge branch 'feature/update-description-for-frontends-setting' into 'develop'
Remove extra nesting and add labels in `:frontends` setting

See merge request pleroma/pleroma!3043
2020-10-06 18:05:03 +00:00
Ivan Tashkinov 6c2264af24 Merge remote-tracking branch 'remotes/origin/develop' into ostatus-controller-no-auth-check-on-non-federating-instances 2020-10-05 23:50:08 +03:00
Ivan Tashkinov 094edde7c4 [#3053] Unauthenticated access control for OStatus-related controllers and ActivityPubController (base actions: :user, :object, :activity). Tests adjustments. 2020-10-05 23:48:00 +03:00
Haelwenn (lanodan) Monnier f497eb034d
activity_pub_controller.ex: Remove unused @doc block
[ci skip]
2020-10-05 21:11:00 +02:00
feld 4d852f3e78 Merge branch 'feature/1893-remote-emoji-packs-pagination' into 'develop'
Feature/1893 remote emoji packs pagination

Closes #1893

See merge request pleroma/pleroma!2698
2020-10-05 17:52:02 +00:00
Mark Felder 346cc3ac24 Merge branch 'develop' into feature/1893-remote-emoji-packs-pagination 2020-10-05 12:40:53 -05:00
Mark Felder 35ee759e74 Add helper function to convert single IPs into CIDR format if they were not provided that way 2020-10-05 11:49:56 -05:00
Haelwenn (lanodan) Monnier 4c229d7fcc
docs/ap_extensions.md: Add JSON-LD full names 2020-10-05 17:36:12 +02:00
Haelwenn (lanodan) Monnier ac6e0f6684
docs/ap_extensions.md: document oauthRegistrationEndpoint 2020-10-05 17:19:21 +02:00
Haelwenn (lanodan) Monnier 858dbe4360
docs/ap_extensions.md: document uploadMedia 2020-10-05 17:14:22 +02:00
Haelwenn 4b05eb9a32 Merge branch '2211-smol-documentation-fix' into 'develop'
Docs: Modify docs so the postgres config is harder to get wrong.

Closes #2211

See merge request pleroma/pleroma!3055
2020-10-05 14:53:30 +00:00
a1batross e9ee7757dc Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-10-05 15:18:24 +02:00
lain 8d093a68a6 Docs: Modify docs so the postgres config is harder to get wrong. 2020-10-05 13:58:12 +02:00
rinpatch 9e96c9ae48 Merge branch 'fix/empty-params-openapi' into 'develop'
OpenAPI CastAndValidate: filter out empty params

Closes #2198

See merge request pleroma/pleroma!3047
2020-10-03 12:35:49 +00:00
Ivan Tashkinov f6024252ae [#3053] No auth check in StaticFEController, even on non-federating instances. Adjusted tests. 2020-10-02 22:18:02 +03:00
Ivan Tashkinov 0d575735bf No auth check in UserController.feed_redirect/2, even on non-federating instances. 2020-10-01 21:41:22 +03:00
Ivan Tashkinov 7efadc3cbd No auth check in OStatusController, even on non-federating instances. 2020-10-01 21:34:45 +03:00
lain 241f7cb1ed Merge branch 'web-push-fix' into 'develop'
web push http_client fix

Closes #2202

See merge request pleroma/pleroma!3052
2020-10-01 11:15:13 +00:00
Alexander Strizhakov cbdaabad34
web push http_client fix 2020-10-01 13:32:11 +03:00
feld 34029ffb90 Merge branch 'chore/pleroma-vcl' into 'develop'
Make it possible for Varnish logs to contain the true scheme used by clients

See merge request pleroma/pleroma!3051
2020-09-30 18:13:34 +00:00
Mark Felder b3015db841 Syntax error 2020-09-30 12:49:51 -05:00
Mark Felder 49229107e8 Make it possible for Varnish logs to contain the true scheme used by clients
instead of always reporting http://
2020-09-30 12:32:54 -05:00
rinpatch 6debdaaef2 Merge branch 'update/oban' into 'develop'
Update Oban to 2.1.0

See merge request pleroma/pleroma!3050
2020-09-30 13:41:48 +00:00
rinpatch 2566467782 Merge branch '2201-i-hate-this' into 'develop'
User search: Once again, change uri handling.

Closes #2201

See merge request pleroma/pleroma!3048
2020-09-30 13:37:46 +00:00
Mark Felder cee1883b35 Update Oban to 2.1.0 2020-09-30 07:53:19 -05:00
lain 1ae39441e6 Migrations: Nullify old unique index on users.uri 2020-09-30 14:17:21 +02:00
lain 90fee49c52 User search: Once again, change uri handling.
They can indeed be non-unique.
2020-09-30 14:14:41 +02:00
Angelina Filippova d96b8923f6 Fix typo 2020-09-30 00:50:53 +03:00
Angelina Filippova fe19750644 Fix comma typo 2020-09-30 00:49:08 +03:00
Angelina Filippova 1b2f7139c8 Apply 1 suggestion(s) to 1 file(s) 2020-09-29 20:33:04 +00:00
Angelina Filippova 0e57f13365 Apply 1 suggestion(s) to 1 file(s) 2020-09-29 20:32:55 +00:00
rinpatch 006b62fd12 OpenAPI CastAndValidate: filter out empty params
Closes #2198
2020-09-29 21:52:16 +03:00
Haelwenn 7f83b35a9d Merge branch 'fix/2189-unpin-activity' into 'develop'
#2189 More robust expires_at timestamp processing

See merge request pleroma/pleroma!3046
2020-09-29 17:42:08 +00:00
Mark Felder b3a9ba09ec More robust expires_at timestamp processing 2020-09-29 12:27:47 -05:00
lain 2a11068a11 Merge branch 'ffmpeg-imagemagick-dependencies-documentation' into 'develop'
`ffmpeg` / `ImageMagick` handling as optional dependencies

See merge request pleroma/pleroma!3031
2020-09-29 14:48:30 +00:00
lain aa170caa76 Merge branch 'issue/2170' into 'develop'
[#2170] Can't remove dead relay

See merge request pleroma/pleroma!3041
2020-09-29 14:37:49 +00:00
Ivan Tashkinov ae26284638 [#3031] Adjusted changelog entry. 2020-09-29 17:34:49 +03:00
lain a24f80badf Apply 1 suggestion(s) to 1 file(s) 2020-09-29 14:30:18 +00:00
lain 9a56ec25cb Changelog: Add info about relay unfollowing 2020-09-29 16:24:02 +02:00
Ivan Tashkinov 7d5c3883ac [#3031] Refactoring: moved system commands checks to ApplicationRequirements. 2020-09-29 16:28:06 +03:00
Mark Felder ba7f9459b4 Revert Rich Media censorship for sensitive statuses
The #NSFW hashtag test was broken anyway.
2020-09-28 18:22:59 -05:00
rinpatch 30b79b0eb3 Merge branch 'fix/revert-citext-uri' into 'develop'
Revert citext user URI migration

Closes #2188

See merge request pleroma/pleroma!3042
2020-09-28 15:44:20 +00:00
rinpatch 7bc561127d Revert citext user URI migration
URI paths are not actually case-insesitive, which caused migration issues
 on a number of databases.

Closes #2188
2020-09-28 18:34:03 +03:00
Angelina Filippova 7ac4d1e7ee Remove extra nesting and add labels in `:frontends` setting 2020-09-28 18:13:45 +03:00
a1batross c54cf7b4b4 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-28 16:08:31 +02:00
lain ec2f70cd23 CI: Add ffmpeg 2020-09-28 14:14:32 +02:00
Maksim Pechnikov de993b856b added `force` option to the unfollow operation 2020-09-28 09:16:42 +03:00
Ivan Tashkinov 4e4f771082 Adjusted MediaProxyControllerTest to gracefully fail on missing dependencies. Installation docs update.
Added ffmpeg/imagemagick checks to launch checks (if media preview proxy is enabled). Added documentation on installing optional media / graphics packages (imagemagick, ffmpeg, exiftool).
2020-09-26 19:32:16 +03:00
feld 35157f5dc8 Merge branch 'fix/deprecation-warning-welcome-message' into 'develop'
Fix deprecation warnings for old config settings

Closes #2153

See merge request pleroma/pleroma!3021
2020-09-25 18:40:00 +00:00
Mark Felder d1c724ef34 Merge branch 'develop' into fix/deprecation-warning-welcome-message 2020-09-25 13:08:33 -05:00
feld 88bae1559f Merge branch 'fix/noop-policy-describe' into 'develop'
Fix test failures for NoOpPolicy describe/0

See merge request pleroma/pleroma!3035
2020-09-25 18:02:59 +00:00
Mark Felder 93b674b66d Fix test failures for NoOpPolicy describe/0 2020-09-25 12:46:49 -05:00
Mark Felder 4a30598b9e Config settings leak and break configdb migration tests when async 2020-09-25 12:20:52 -05:00
Mark Felder dcdf75fbac Merge branch 'develop' into fix/deprecation-warning-welcome-message 2020-09-25 11:45:51 -05:00
feld 1672d8b37c Merge branch 'feature/bulk-confirmation' into 'develop'
Bulk account confirmation actions

Closes #2085

See merge request pleroma/pleroma!2975
2020-09-25 16:15:01 +00:00
Mark Felder 2bf2c68dee Merge branch 'develop' into fix/deprecation-warning-welcome-message 2020-09-25 10:48:01 -05:00
Mark Felder 8b84ca4901 Simplify the value comparison 2020-09-25 10:37:59 -05:00
a1batross 2690067af3 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-25 15:37:14 +02:00
rinpatch 5cd71208d9 Merge branch 'search-even-more' into 'develop'
More user search improvements

See merge request pleroma/pleroma!3032
2020-09-25 12:56:21 +00:00
rinpatch f67c967c4a Merge branch 'features/incoming-create-exists' into 'develop'
transmogrifier: Drop incoming create early if it already exists

See merge request pleroma/pleroma!3026
2020-09-25 12:44:33 +00:00
lain 05b5241314 Linter fixes 2020-09-25 09:12:48 +02:00
lain 1e0f3f8514 User search: Make uri matches case insensitive. 2020-09-25 08:56:58 +02:00
lain a8c17ea25a User Search: Also find user by uri 2020-09-25 08:46:14 +02:00
Mark Felder 81faf540b3 Add some user feedback 2020-09-24 18:35:20 -05:00
Mark Felder 3bf3db39f5 Validate emails are sent to the appropriate unconfirmed actors 2020-09-24 18:24:44 -05:00
Mark Felder e33360fdb9 Cannot use batches with User.try_send_confirmation_email/1 2020-09-24 18:23:47 -05:00
Mark Felder 935ef21b02 Use the import 2020-09-24 16:47:34 -05:00
a1batross 333f203d64 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-24 21:37:29 +02:00
rinpatch c788593f7f Merge branch '2182-profile-search-improvements' into 'develop'
Resolve "Profile search by URL doesn't work correctly"

Closes #2182

See merge request pleroma/pleroma!3030
2020-09-24 18:27:55 +00:00
Ivan Tashkinov 7cd662f18c Added documentation on installation of `ffmpeg` and `ImageMagick` dependencies. 2020-09-24 18:02:50 +03:00
lain defca4a8b1 Changelog: Add info about user search. 2020-09-24 15:56:17 +02:00
lain d0078bc404 User Search: Boost resolved results and exact ap_id matches. 2020-09-24 15:54:55 +02:00
a1batross 3568422a31 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-24 14:15:17 +02:00
rinpatch 151df9fc17 Merge branch 'fix/test-fix' into 'develop'
Fix for test on mac

See merge request pleroma/pleroma!3027
2020-09-24 09:50:39 +00:00
lain 47cd59342f Merge branch 'smol-test' into 'develop'
CommonAPI test: Add test for polls

See merge request pleroma/pleroma!3028
2020-09-24 09:41:28 +00:00
lain 35d62a4a56 CommonAPI test: Add test for polls 2020-09-24 11:12:03 +02:00
Alexander Strizhakov 165961f56d
don't run in async mode 2020-09-24 12:00:39 +03:00
Alexander Strizhakov aa1f97a5b6
fix for test on mac 2020-09-24 10:46:09 +03:00
Alexander Strizhakov 3f201475e0
changelog entry 2020-09-24 09:54:10 +03:00
Alexander Strizhakov 727a0556a9
fix 2020-09-24 09:47:23 +03:00
Alexander Strizhakov 5d7ec00bed
fixes after rebase 2020-09-24 09:42:30 +03:00
Alexander Strizhakov 871fac3e4c
docs update 2020-09-24 09:41:40 +03:00
Alexander Strizhakov 8c6ec4c111
pack routes change 2020-09-24 09:16:14 +03:00
Alexander Strizhakov 958008cc14
changelog entry 2020-09-24 09:12:40 +03:00
Alexander Strizhakov dbbc801667
pagination for remote emoji packs 2020-09-24 09:12:39 +03:00
Alexander Strizhakov 9b6d89ff8c
support for special chars in pack name 2020-09-24 09:12:37 +03:00
Mark Felder 8af8eb5ce7 Chase Pleroma.RepoStreamer.chunk_stream -> Pleroma.Repo.chunk_stream 2020-09-23 12:32:47 -05:00
Mark Felder f3a1f9c3bb Merge branch 'develop' into feature/bulk-confirmation 2020-09-23 11:56:22 -05:00
lain e02101e15c Merge branch 'issue/2115' into 'develop'
[#2115] added paginate links to headers for  /chats/:id/messages

See merge request pleroma/pleroma!2981
2020-09-23 12:09:38 +00:00
lain 4dadb7c433 Merge branch 'user-query/filter-out-internal' into 'develop'
Filter out internal users by default

Closes #2147

See merge request pleroma/pleroma!3024
2020-09-23 11:51:04 +00:00
lain 436d1a3c41 Merge branch 'develop' into 'issue/2115'
# Conflicts:
#   CHANGELOG.md
2020-09-23 11:49:19 +00:00
Haelwenn (lanodan) Monnier 5e86a2809e
transmogrifier: Drop incoming create early if it already exists 2020-09-23 13:40:45 +02:00
Roman Chvanikov 8f5589cf66 Merge develop 2020-09-23 13:56:50 +03:00
lain a5e1c400e4 Merge branch 'issue/1975' into 'develop'
[#1975] import emoji from a zip archive

Closes admin-fe#130

See merge request pleroma/pleroma!2911
2020-09-23 10:49:29 +00:00
lain a6c14041c4 Merge branch 'develop' into 'issue/1975'
# Conflicts:
#   CHANGELOG.md
2020-09-23 09:16:00 +00:00
lain 34235bc02a Merge branch 'email-fix-develop' into 'develop'
Allow emails to be sent again (develop)

Closes #2172

See merge request pleroma/pleroma!3025
2020-09-23 09:05:52 +00:00
lain 518c0f2962 Changelog: Add info about emoji zip import feature 2020-09-23 10:57:53 +02:00
lain 9d6415de15 Changelog: Info about email fix. 2020-09-23 10:54:24 +02:00
Maksim Pechnikov 8e4f043ac7 finland-emojis.zip -> emojis.zip 2020-09-22 21:58:30 +03:00
Maksim Pechnikov 72d2b34d3b Merge branch 'develop' into issue/1975 2020-09-22 21:42:10 +03:00
Alex Gleason 3104367931
Merge remote-tracking branch 'upstream/develop' into email-fix-develop 2020-09-22 13:37:02 -05:00
Mark Felder 88653c01c9 Add test for check_activity_expiration_config/0 2020-09-22 11:34:51 -05:00
Mark Felder 7775b1540f Add deprecation warning test for check_hellthread_threshold/0 2020-09-22 11:22:15 -05:00
Mark Felder 25bdf0d0d9 Add test for welcome message format 2020-09-22 11:19:29 -05:00
Mark Felder e2dcf039d2 Fix gun_pool_options deprecation warning message 2020-09-22 11:15:40 -05:00
Mark Felder 2fc3b46ee7 Remove deprecation warning. We were supposed to remove backwards compat for this in 2.1. 2020-09-22 11:13:36 -05:00
lain df1eb5cf7e Changelog: Add info about chat pagination fix. 2020-09-22 17:17:19 +02:00
lain c95859e45b Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/2115 2020-09-22 17:13:46 +02:00
Egor Kislitsyn 0e0ece251a
Filter out internal users by default 2020-09-22 16:56:11 +04:00
feld 02f12ec625 Merge branch 'chore/missing-link' into 'develop'
Add FreeBSD and alpha sort

See merge request pleroma/pleroma!3023
2020-09-22 12:42:03 +00:00
Mark Felder 3174804f3c Add FreeBSD and alpha sort 2020-09-22 07:26:31 -05:00
lain ee3052a2d8 ActivityPub: Return Announces when filtering by `following`. 2020-09-22 14:20:19 +02:00
Mark Felder e5927e92a6 Fix deprecation warning for welcome message 2020-09-21 17:08:49 -05:00
feld d65e6e152a Merge branch 'docs/nginx-config-fedsockets' into 'develop'
Docs/nginx config fedsockets

See merge request pleroma/pleroma!3020
2020-09-21 21:52:34 +00:00
Mark Felder 8906f30ba1 Use an upstream for reverse proxy so future modifications are simplified 2020-09-21 16:19:08 -05:00
feld 637ce939d9 Merge branch 'chore/autolinker-rename' into 'develop'
Chase the Autolinker rename from !2677

Closes #2155

See merge request pleroma/pleroma!3019
2020-09-21 21:19:02 +00:00
Mark Felder ade7fede71 Most proxy settings can be global 2020-09-21 16:13:45 -05:00
Mark Felder 2b553b8f8e Remove duplicate setting 2020-09-21 16:11:01 -05:00
Mark Felder 75f6e5e8b7 Add FedSockets config 2020-09-21 16:10:31 -05:00
feld a5c34e3123 Merge branch 'fix/fedsocket-useragent' into 'develop'
Minor Fedsocket improvements

See merge request pleroma/pleroma!3012
2020-09-21 21:06:32 +00:00
Alex Gleason bf181ca968
Fix MastoAPI.AuthControllerTest, json_response(:no_content) --> empty_json_response() 2020-09-21 16:03:22 -05:00
Mark Felder 7b2bf381e9 Chase the Autolinker rename from !2677 2020-09-21 16:02:57 -05:00
Alex Gleason 0b728ccc44
Pass hackney tls config into email tests, #2101 2020-09-21 15:26:10 -05:00
Alex Gleason 23d5d7cf59
Fix #2172 HTTP error on password reset 2020-09-21 14:09:26 -05:00
Alex Gleason 8b6ac45f3c
Allow emails to be sent again, #2101 #2172
https://github.com/swoosh/swoosh/issues/478#issuecomment-642393707
2020-09-21 13:28:02 -05:00
lain 59680f27ff Merge branch 'bugfix/federator-actor-error' into 'develop'
federator: normalize only actor, catch actor error

See merge request pleroma/pleroma!2986
2020-09-21 17:24:14 +00:00
lain 9108e27c2f Merge branch '2074-streaming-api-oauth-scopes-validation' into 'develop'
[#2074] OAuth scope checking in Streaming API

Closes #2074

See merge request pleroma/pleroma!3013
2020-09-21 17:15:54 +00:00
lain b36b6259d8 Merge branch 'issue/2099' into 'develop'
[#2099] Import/export mutes [BE]

See merge request pleroma/pleroma!2965
2020-09-21 16:25:17 +00:00
Haelwenn 994ce250c2 Merge branch '2161-block-changes' into 'develop'
ActivityPub: Don't block-filter your own posts

Closes #2161

See merge request pleroma/pleroma!3017
2020-09-21 15:29:55 +00:00
Mark Felder 8afdbcdb1c Force HTTP for fedsockets 2020-09-21 10:13:41 -05:00
lain f2f0a0260f ActivityPub: Don't block-filter your own posts
We are filtering out replies to people you block, but that should
not include your own posts.
2020-09-21 16:08:38 +02:00
a1batross 9b3661069b Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-21 00:34:13 +02:00
Roman Chvanikov b0bd81ef71 Update CHANGELOG 2020-09-20 20:58:32 +03:00
Roman Chvanikov 28d0986f83 Refactor mutes removing in CommonAPI and User 2020-09-20 20:58:17 +03:00
Roman Chvanikov 4987ee6256 Merge branch 'develop' into feature/expire-mutes 2020-09-20 19:27:27 +03:00
lain 882c1fc6bd Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!3014
2020-09-20 15:23:15 +00:00
Kana f3c62b246d Translated using Weblate (Chinese (Simplified))
Currently translated at 24.5% (26 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/zh_Hans/
2020-09-20 14:48:49 +00:00
Kana d72970a1fc Added translation using Weblate (Chinese (Simplified)) 2020-09-20 13:18:27 +00:00
rinpatch 402acce525 Merge branch 'fix/openapi-errors' into 'develop'
OpenAPI: fix various errors pointed out by editor.swagger.io

See merge request pleroma/pleroma!3011
2020-09-20 11:15:20 +00:00
Ivan Tashkinov 60b025b782 [#2074] OAuth scope checking in Streaming API. 2020-09-19 19:16:55 +03:00
rinpatch 4b12e071ac OpenAPI: make it possible to generate a spec without starting the app
Needed for api docs generation on pleroma.social that will come later
2020-09-19 16:26:15 +03:00
rinpatch 51116b5392 OpenAPI: fix various errors pointed out by editor.swagger.io 2020-09-19 16:26:15 +03:00
Mark Felder 26859c549c Add user agent to fedsocket requests 2020-09-19 07:26:46 -05:00
Maksim Pechnikov ed3bc53fa1 Merge branch 'develop' into issue/2099 2020-09-18 22:13:05 +03:00
a1batross f5e0792727 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-18 21:07:52 +02:00
feld 6c052bd5b6 Merge branch 'media-preview-proxy-nostream' into 'develop'
Media preview proxy

See merge request pleroma/pleroma!3001
2020-09-18 18:38:20 +00:00
lain 91ddd47e51 Merge branch 'fix/fedsocket-log-spam' into 'develop'
FedSockets: fix log spam on cached rejects

See merge request pleroma/pleroma!3009
2020-09-18 13:30:41 +00:00
rinpatch 26c571df33 FedSockets: fix log spam on cached rejects 2020-09-18 16:09:37 +03:00
lain 7e02f4ed3b Merge branch 'feature/2118-web-push-encryption-http' into 'develop'
Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter

Closes #2118

See merge request pleroma/pleroma!3008
2020-09-18 12:25:10 +00:00
lain 875b6654ec Merge branch 'websocket-data-fed' into 'develop'
Federate data through persistent websocket connections

See merge request pleroma/pleroma!2408
2020-09-18 11:58:23 +00:00
Steven Fuchs f2ef9735c5 Federate data through persistent websocket connections 2020-09-18 11:58:22 +00:00
Maksim Pechnikov 2159daa9af update changelog 2020-09-18 07:09:53 +03:00
Maksim Pechnikov 2ec0dcf001 Merge branch 'develop' into issue/2099 2020-09-18 07:08:37 +03:00
Sergey Suprunenko 226fa3e486
Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter 2020-09-17 22:10:55 +02:00
rinpatch 49584a9928 Merge branch 'stable-sync/2.1.2' into 'develop'
Sync develop with 2.1.2

Closes #2133, #2131, and #2130

See merge request pleroma/pleroma!3007
2020-09-17 19:42:42 +00:00
Ivan Tashkinov a428800405 Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream
# Conflicts:
#	CHANGELOG.md
2020-09-17 22:22:59 +03:00
rinpatch 065a4dddfd Merge branch 'stable' into stable-sync/2.1.2 2020-09-17 22:19:49 +03:00
rinpatch a0f5e8b27e Merge branch 'release/2.1.2' into 'stable'
Release/2.1.2

See merge request pleroma/secteam/pleroma!17
2020-09-17 19:09:10 +00:00
Haelwenn (lanodan) Monnier 7bf269fe83 Fix MRF reject for ChatMessage 2020-09-17 22:07:54 +03:00
Haelwenn (lanodan) Monnier abf25e5d52 Create MRF.filter_pipeline to inject :object_data when present 2020-09-17 22:07:54 +03:00
Haelwenn (lanodan) Monnier 3a0f99ed35 KeywordPolicy: Still match when fields are absent 2020-09-17 22:07:54 +03:00
rinpatch 34afc2b074 pleroma-fe bundle: bump to b225c3578f3c89af5ed3a0be3f8f3a6bbcedcc7d 2020-09-17 21:22:06 +03:00
rinpatch b751c5babc CHANGELOG.md: Add 2.1.2 entry 2020-09-17 21:22:03 +03:00
Haelwenn beefc022dd Merge branch 'omit-nondiscoverable-from-search' into 'develop'
User search should respect discoverable flag

See merge request pleroma/pleroma!2997
2020-09-17 17:59:38 +00:00
feld 608824b97e Merge branch 'instance-docs' into 'develop'
AdminAPI: Allow to modify Terms of Service and Instance Panel via Admin API

Closes #1516

See merge request pleroma/pleroma!2931
2020-09-17 16:54:53 +00:00
rinpatch a5d6c9aa8e mix.exs: bump version to 2.1.2 2020-09-17 19:54:41 +03:00
rinpatch 6bbd65fb09 Merge branch '2130-mfa-users-oauth-login-fix' into 'develop'
[#2130] Fixed OAuth OOB authentication for users with enabled MFA

Closes #2130

See merge request pleroma/pleroma!2979
2020-09-17 19:51:54 +03:00
rinpatch 608017b7df Merge branch 'fix/streaming-termination-errors' into 'develop'
Fix two pseudo-errors in websocket handler

Closes #2131

See merge request pleroma/pleroma!2982
2020-09-17 19:50:51 +03:00
Haelwenn 0465bdbd49 Merge branch 'fix/mrf-simple-welcome-chats' into 'develop'
Ensure we only apply media_nsfw simple policy on parsable objects

Closes #2133

See merge request pleroma/pleroma!2992
2020-09-17 19:50:23 +03:00
lain bb70b231d0 Merge branch 'reply-visibility-user-guard' into 'develop'
Mastodon API: fix the public timeline returning an error when the `reply_visibility` parameter is set to `self` for an unauthenticated user

See merge request pleroma/pleroma!2999
2020-09-17 19:49:08 +03:00
rinpatch 22d49993d9 Merge branch 'bugfix/mrf-ingestion' into 'develop'
Bugfix: MRF and Pipeline Ingestion

See merge request pleroma/secteam/pleroma!15
2020-09-17 19:48:33 +03:00
stwf 9d77f4abf8 adapt to new user factory behavior 2020-09-17 12:32:40 -04:00
stwf dfc621a529 add test and changelog entry 2020-09-17 12:18:07 -04:00
stwf 41939e3175 User search respect discoverable flag 2020-09-17 12:15:50 -04:00
rinpatch eff7f9892d Merge branch 'hotfix/rich-media-compile-error' into 'develop'
RichMedia: fix a compilation error due to nonexistent variable

See merge request pleroma/pleroma!2996
2020-09-17 19:06:10 +03:00
rinpatch dee4639dbb Merge branch 'feat/rich-media-head' into 'develop'
RichMedia: Do a HEAD request to check content type/length

See merge request pleroma/pleroma!2995
2020-09-17 19:04:50 +03:00
feld 6b9bfc9e86 Merge branch 'fix/configdb-migration-with-deprecated' into 'develop'
Deny ConfigDB migration when deprecated settings found

Closes #2148

See merge request pleroma/pleroma!3005
2020-09-17 14:51:13 +00:00
Mark Felder f7e40f7ef1 Deny ConfigDB migration when deprecated settings found 2020-09-17 09:32:50 -05:00
lain 2a7c9ac147 Merge branch 'nondiscoverable-user-metadata' into 'develop'
search indexing metadata should respect discoverable flag

See merge request pleroma/pleroma!2998
2020-09-17 14:20:03 +00:00
Ivan Tashkinov d9fb5bc08a Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream 2020-09-17 17:14:20 +03:00
Ivan Tashkinov 7cdbd91d83 [#2497] Configurability of :min_content_length (preview proxy). Refactoring, documentation, tests. 2020-09-17 17:13:40 +03:00
rinpatch cd93aa2aed Merge branch 'fix/rich-media-log-spam-and-ttl-reset' into 'develop'
RichMedia: Fix log spam on failures and resetting TTL on cached errors

See merge request pleroma/pleroma!3006
2020-09-17 14:13:24 +00:00
lain 7c60789ba5 Merge branch 'develop' into 'nondiscoverable-user-metadata'
# Conflicts:
#   CHANGELOG.md
2020-09-17 14:09:01 +00:00
rinpatch db80b9d630 RichMedia: Fix log spam on failures and resetting TTL on cached errors 2020-09-17 16:56:39 +03:00
eugenijm c711a2b157 Return the file content for `GET /api/pleroma/admin/instance_document/:document_name` 2020-09-17 16:55:53 +03:00
stwf f58262c673 add description to changelog 2020-09-17 09:48:17 -04:00
eugenijm 582ad5d4e1 AdminAPI: Allow to modify Terms of Service and Instance Panel via Admin API 2020-09-17 16:48:07 +03:00
lain 5426eb5997 Merge branch 'chat-moderation' into 'develop'
Chat moderation MVP

See merge request pleroma/pleroma!2937
2020-09-17 11:56:30 +00:00
Roman Chvanikov 44e8b6037a Merge branch 'develop' into feature/expire-mutes 2020-09-17 14:54:00 +03:00
lain 5e3c70afa5 AdminAPI Chat tests: Remove factory.
The factory system doesn't work too well with how the chats are
done. Instead of tempting people to use it, let's rather use the
CommonAPI system for now.
2020-09-17 13:37:25 +02:00
lain e39ff2616b Admin chat api tests: Small additions. 2020-09-17 13:29:26 +02:00
lain 7a73850928 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into alexgleason/pleroma-chat-moderation 2020-09-17 13:26:04 +02:00
Maksim Pechnikov 5a8ea0a5b0 small refactoring 2020-09-17 09:13:43 +03:00
Maksim Pechnikov b867f9d7ae Merge branch 'develop' into issue/2099 2020-09-17 08:41:35 +03:00
Ivan Tashkinov a781f41f96 [#2497] Media preview proxy: misc. improvements (`static` param support, dynamic fifo pipe path), refactoring. 2020-09-16 22:30:42 +03:00
feld c5acbf8a1b Merge branch 'chore/unused-import' into 'develop'
Remove unused import

See merge request pleroma/pleroma!3004
2020-09-16 16:12:22 +00:00
Mark Felder 73e0e6a8a2 Remove unused import 2020-09-16 10:56:42 -05:00
rinpatch 3a9baa9d0d Merge branch '2144-empty-users' into 'develop'
User: Remote users don't need to be confirmed or approved

Closes #2144

See merge request pleroma/pleroma!3003
2020-09-16 15:47:07 +00:00
lain 7a88b726bf User: Remote users don't need to be confirmed or approved 2020-09-16 17:29:16 +02:00
rinpatch a4f80e1e74 Merge branch 'feat/connection-worker-monitor-flush' into 'develop'
ConnectionPool Worker: use monitor flush instead of checking ref

See merge request pleroma/pleroma!3002
2020-09-16 15:10:20 +00:00
rinpatch adb1b0282d ConnectionPool Worker: use monitor flush instead of checking ref
`:flush` removes the DOWN message if one had arrived, so this check
should no longer be necessary.
2020-09-16 17:29:07 +03:00
rinpatch eca8d26784 Merge branch 'chores/mrf-loglevel' into 'develop'
Fetcher: Correctly return MRF reject reason

See merge request pleroma/pleroma!2990
2020-09-16 13:37:04 +00:00
rinpatch adbd0032fa Merge branch 'features/validators-video' into 'develop'
Pipeline Ingestion: Video and Article

See merge request pleroma/pleroma!2908
2020-09-16 13:36:27 +00:00
lain 6b088ed76a Merge branch 'issue/2089' into 'develop'
[#2089] fix notifications

See merge request pleroma/pleroma!3000
2020-09-16 12:22:48 +00:00
Maksim Pechnikov 599f8bb152 RepoStreamer.chunk_stream -> Repo.chunk_stream 2020-09-16 09:47:18 +03:00
Maksim c74fad9e06 Apply 1 suggestion(s) to 1 file(s) 2020-09-16 03:18:50 +00:00
Ivan Tashkinov 2f155fb89f Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy-nostream 2020-09-15 20:29:39 +03:00
a1batross ac9fe89db3 Merge branch 'emr_develop' of https://git.mentality.rip/a1batross/expired.mentality.rip into emr_develop 2020-09-15 15:40:33 +02:00
Gitea 8f9d8ea782 Merge develop 2020-09-15 15:40:16 +02:00
Maksim Pechnikov f879d07fa1 fixed tests 2020-09-15 15:32:49 +03:00
lain cfad4f46b2 Merge branch 'reply-visibility-user-guard' into 'develop'
Mastodon API: fix the public timeline returning an error when the `reply_visibility` parameter is set to `self` for an unauthenticated user

See merge request pleroma/pleroma!2999
2020-09-15 12:21:38 +00:00
eugenijm 3ab59a6f3c Mastodon API: fix the public timeline returning an error when the `reply_visibility` parameter is set to `self` for an unauthenticated user 2020-09-15 13:00:56 +03:00
Haelwenn 5c4ff5c73c Merge branch 'fix/mrf-simple-welcome-chats' into 'develop'
Ensure we only apply media_nsfw simple policy on parsable objects

Closes #2133

See merge request pleroma/pleroma!2992
2020-09-15 08:25:10 +00:00
Mark Felder 0b66e806e3 Move changelog entry to next patch 2020-09-14 17:11:08 -05:00
Mark Felder 709723182d Ensure SimplePolicy's tags in string representation don't trip up the object validator 2020-09-14 17:06:42 -05:00
stwf f900a40d5d fix credo warning 2020-09-14 13:55:49 -04:00
stwf 38b2db297b search indexing metadata respects discoverable flag 2020-09-14 13:18:11 -04:00
Mark Felder 118bf6e92b Fixed Welcome chats with MRF Simple applied locally 2020-09-14 12:08:32 -05:00
Mark Felder 25d1caf1dd Merge duplicate Changed sections 2020-09-14 12:07:31 -05:00
Mark Felder d31f0393bf Validate Welcome Chat message works with Simple policy applied to local instance 2020-09-14 12:06:08 -05:00
rinpatch 39d769f250 Merge branch 'remove/managed-config-option' into 'develop'
Remove `:managed_config` option.

Closes #2086

See merge request pleroma/pleroma!2983
2020-09-14 15:19:09 +00:00
rinpatch 0b5e72ecf0 Remove `:managed_config` option.
In practice, it was already removed half a year ago, but the description
 and cheatsheet entries were still there.

The migration intentionally does not use ConfigDB.get_by_params, since
this will break migration code as soon as we add a new field is added
 to ConfigDB.

Closes #2086
2020-09-14 18:04:16 +03:00
rinpatch 6e70415e4a Merge branch 'hotfix/rich-media-compile-error' into 'develop'
RichMedia: fix a compilation error due to nonexistent variable

See merge request pleroma/pleroma!2996
2020-09-14 12:48:27 +00:00
rinpatch bb407edce4 RichMedia: fix a compilation error due to nonexistent variable
No idea why this passed Gitlab CI
2020-09-14 15:46:00 +03:00
rinpatch 4d543fcb75 Merge branch 'feat/rich-media-head' into 'develop'
RichMedia: Do a HEAD request to check content type/length

See merge request pleroma/pleroma!2995
2020-09-14 12:38:00 +00:00
rinpatch 738685a629 Apply 1 suggestion(s) to 1 file(s) 2020-09-14 11:56:00 +00:00
rinpatch f70335002d RichMedia: Do a HEAD request to check content type/length
This shouldn't be too expensive, since the connections are pooled,
but it should save us some bandwidth since we won't fetch non-html
files and files that are too large for us to process (especially
since you can't cancel a request without closing the connection
with HTTP1).
2020-09-14 14:45:58 +03:00
rinpatch f66a15c4a5 RichMedia parser: do not set a cache TTL for unchanging errors 2020-09-14 14:44:25 +03:00
Maksim Pechnikov 3e53ab4e98 added notification constraints 2020-09-14 14:08:12 +03:00
rinpatch 2937e3095a Merge branch 'fix/2139-oban-migration' into 'develop'
Remove old workers in oban migrations

Closes #2139

See merge request pleroma/pleroma!2994
2020-09-14 07:54:06 +00:00
Maksim 489a107cf4 Apply 1 suggestion(s) to 1 file(s) 2020-09-13 11:54:15 +00:00
Roman Chvanikov c5830ac037 Merge develop 2020-09-13 12:24:57 +03:00
Roman Chvanikov 527afb813a Remove unused require 2020-09-13 12:23:45 +03:00
Alexander Strizhakov 65f4e37ee1
remove old workers in oban migrations 2020-09-13 10:04:50 +03:00
Haelwenn 88fe0a262e Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2991
2020-09-12 08:26:41 +00:00
Ivan Tashkinov cd234a5321 [#2497] Media preview proxy: preview bypass for small images
(basing on Content-Length and Content-Type).
2020-09-12 11:20:41 +03:00
Ivan Tashkinov 32831f371f [#2497] Media preview proxy: redirecting to media proxy url in case of preview error or unsupported content type. 2020-09-12 10:33:42 +03:00
Mark Felder c0b36621f1 Ensure we only apply NSFW Simple policy on parsable objects 2020-09-11 23:22:14 -05:00
tarteka 6877bad44c Translated using Weblate (Spanish)
Currently translated at 20.7% (22 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/es/
2020-09-11 23:15:02 +00:00
feld 2b06805ad5 Merge branch 'chore/docs-spelling' into 'develop'
Spelling nit

See merge request pleroma/pleroma!2993
2020-09-11 23:14:54 +00:00
Mark Felder 40c847dc2a Spelling
Reported by:	trevoke
2020-09-11 17:42:39 -05:00
Alex Gleason c4061f06ba
Merge branch 'chat-moderation-stable' into chat-moderation 2020-09-11 14:30:28 -05:00
Alex Gleason bc86d0a906
Chat moderation: fix formatting 2020-09-11 14:29:56 -05:00
Alex Gleason 9733c9d065
Merge remote-tracking branch 'upstream/develop' into chat-moderation 2020-09-11 14:13:38 -05:00
Alex Gleason dfb831ca39
Chat moderation: add tests for unauthorized access 2020-09-11 14:11:07 -05:00
Alex Gleason e229536e5c
Chat Moderation: use explicit `sender` and `recipient` fields 2020-09-11 14:11:00 -05:00
Alex Gleason 67726453f8
Credo fix 2020-09-11 14:10:52 -05:00
Alex Gleason c361df11b4
Docs: AdminAPI chat moderation 2020-09-11 14:10:45 -05:00
Alex Gleason 02d70228b5
AdminAPI: fix delete chat message 2020-09-11 14:10:35 -05:00
Alex Gleason 9dd0b23da4
AdminAPI: show chat 2020-09-11 14:10:28 -05:00
Alex Gleason f13b52a703
AdminAPI: list messages in a chat 2020-09-11 14:10:19 -05:00
Alex Gleason c41430b23e
Refactor with Chat.for_user_query/1 2020-09-11 14:10:13 -05:00
Alex Gleason fb0de07343
AdminAPI: list chats for a user 2020-09-11 14:10:05 -05:00
Alex Gleason b40a627ab0
AdminAPI: delete a chat message 2020-09-11 14:09:58 -05:00
Alex Gleason f88dc1937e
MastodonAPI.StatusView.get_user/1 --> CommonAPI.get_user/1 2020-09-11 14:09:50 -05:00
Haelwenn (lanodan) Monnier f1f44069ae
Fetcher: Correctly return MRF reject reason 2020-09-11 20:00:41 +02:00
Ivan Tashkinov 0bda85857e Merge remote-tracking branch 'remotes/origin/develop' into media-preview-proxy
# Conflicts:
#	lib/pleroma/instances/instance.ex
2020-09-11 17:19:58 +03:00
rinpatch 9fb88c814d Merge branch 'feat/log-possible-hol' into 'develop'
ConnectionPool: Log possible HTTP1 blocks

See merge request pleroma/pleroma!2989
2020-09-11 12:50:05 +00:00
rinpatch 89a7efab69 ConnectionPool: Log possible HTTP1 blocks 2020-09-11 15:37:39 +03:00
Haelwenn 36c9197ac3 Apply 1 suggestion(s) to 1 file(s) 2020-09-11 10:46:16 +00:00
rinpatch 53dc61ba90 Merge branch 'bugfix/favicon-none-found' into 'develop'
instance: Handle not getting a favicon

See merge request pleroma/pleroma!2988
2020-09-11 10:42:25 +00:00
Haelwenn (lanodan) Monnier dbc013f24c
instance: Handle not getting a favicon 2020-09-11 11:37:46 +02:00
Haelwenn 03d1730f30 Merge branch 'fix/2134-old-cron-jobs' into 'develop'
Migration to remove old cron jobs

Closes #2134

See merge request pleroma/pleroma!2987
2020-09-11 08:58:01 +00:00
Alexander Strizhakov e3ca0a7e2d
migration to remove old cron jobs 2020-09-11 09:09:28 +03:00
Haelwenn (lanodan) Monnier f18178cb09
AttachmentValidator: directly embed url schema and pass it fix_media_type 2020-09-11 01:40:20 +02:00
Haelwenn (lanodan) Monnier 1b3d5956b1
Pipeline Ingestion: Article 2020-09-11 01:40:20 +02:00
Haelwenn (lanodan) Monnier 2132b24a9d
object_validators: likes & announcements as [ObjectID] 2020-09-11 01:39:39 +02:00
Haelwenn (lanodan) Monnier 846b59ccb0
Pipeline Ingestion: Video 2020-09-11 01:39:39 +02:00
Haelwenn (lanodan) Monnier b73e9ef686
transmogrifier: Call strip_internal_fields on pipeline ingestion 2020-09-11 01:39:38 +02:00
Haelwenn (lanodan) Monnier da876d09e8
federator: normalize only actor, catch actor error 2020-09-11 00:56:21 +02:00
Mark Felder 55562ca936 Merge branch 'develop' into feature/gen-magic 2020-09-10 16:05:22 -05:00
rinpatch 6316350918 Merge branch 'oban-overuse' into 'develop'
Expired activities as scheduled jobs in Oban

See merge request pleroma/pleroma!2916
2020-09-10 19:17:15 +00:00
Ivan Tashkinov 4d18a50f3c [#2497] Formatting fix. 2020-09-10 21:54:26 +03:00
rinpatch 82b56cdb9b CHANGELOG.md: clarify that the functionality is not removed, just the config options 2020-09-10 21:53:58 +03:00
Alexander Strizhakov 15aece7238 remove validate_expires_at from enqueue method 2020-09-10 21:52:31 +03:00
rinpatch a098e10fd6 Document ephemeral activity changes better
Also remove the example from the cheatsheet, there is no need for it
when the types are simple
2020-09-10 21:52:30 +03:00
Alexander Strizhakov 2c2094d4b2 configurable lifetime for ephemeral activities 2020-09-10 21:51:59 +03:00
Alexander Strizhakov 4954667fb2 changelog 2020-09-10 21:51:58 +03:00
Alexander Strizhakov f24828a3e8 oban warning 2020-09-10 21:51:30 +03:00
Alexander Strizhakov 29c1178c2b migration fix 2020-09-10 21:50:41 +03:00
Alexander Strizhakov eb5ff715f7 pin/unpin for activities with expires_at option 2020-09-10 21:50:41 +03:00
Alexander Strizhakov b3485a6dbf little clean up 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 6f2d114518 use another stream function in migration 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 357d971a10 expiration for new pipeline 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 93e1c8df9d reject activity creation
if passed expires_at option and expiring activities are not configured
2020-09-10 21:50:41 +03:00
Alexander Strizhakov 4981b5a1a3 copyright header 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 5381d4b78b drop activity_expirations table 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 5ad0cc4c86 move old expirations into Oban 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 629a8de9cb deprecation warning
changed namespace for activity expiration configuration
2020-09-10 21:50:41 +03:00
Alexander Strizhakov de4c935071 don't expire pinned posts 2020-09-10 21:50:41 +03:00
Alexander Strizhakov 9bf1065a06 schedule activity expiration in Oban 2020-09-10 21:50:40 +03:00
rinpatch 0254696e30 Merge branch 'feature/1790-oban-overuse-clear-oauth-token' into 'develop'
Feature/1790 removing expired tokens through Oban scheduled jobs

See merge request pleroma/pleroma!2957
2020-09-10 18:45:04 +00:00
rinpatch 541a3eede2 Merge branch 'chores/remove-ostatus-fixtures' into 'develop'
Remove OStatus in testsuite

See merge request pleroma/pleroma!2968
2020-09-10 18:41:00 +00:00
rinpatch 53cf7fef6e Merge branch 'fix/streaming-termination-errors' into 'develop'
Fix two pseudo-errors in websocket handler

Closes #2131

See merge request pleroma/pleroma!2982
2020-09-10 18:40:54 +00:00
rinpatch 45c299e5b5 Merge branch '2130-mfa-users-oauth-login-fix' into 'develop'
[#2130] Fixed OAuth OOB authentication for users with enabled MFA

Closes #2130

See merge request pleroma/pleroma!2979
2020-09-10 18:38:48 +00:00
rinpatch 275602daa7 Streaming integration tests: remove unexpected error assumption
For some reason instead of fixing unexpected errors, we made tests
assert they indeed trigger... Now that the errors are fixed these were
failing
2020-09-10 21:28:47 +03:00
Ivan Tashkinov dc4e06e199 [#2497] Removed support for thumbnail_max_* params for media preview proxy
(per https://git.pleroma.social/pleroma/pleroma/-/merge_requests/2497#note_70771)
2020-09-10 21:28:07 +03:00
rinpatch 01fa68fe45 Websocket handler: fix never matching code on failed auth
`:cowboy_req.reply` does not return tuples since 2.0, see
https://ninenines.eu/docs/en/cowboy/2.4/manual/cowboy_req.reply/
2020-09-10 21:26:52 +03:00
rinpatch e16e8f9816 Websocket handler: do not raise if handler is terminated before switching protocols
Closes #2131
2020-09-10 21:14:23 +03:00
rinpatch cb06e98da2 websocket handler: Do not log client ping frames as errors 2020-09-10 21:14:23 +03:00
rinpatch 9b6ab32166 Merge branch 'fix/tesla-client-opts' into 'develop'
Pass options without adapter key in tesla reverse proxy client

See merge request pleroma/pleroma!2985
2020-09-10 17:41:37 +00:00
Alexander Strizhakov e8bfb50fa3
pass options without adapter key 2020-09-10 20:09:44 +03:00
Alexander Strizhakov 8af1fd3223
oban warning 2020-09-10 16:01:20 +03:00
Alexander Strizhakov eca42566ba
formatting 2020-09-10 16:01:20 +03:00
Alexander Strizhakov e11fca88d4
migration to move tokens expiration into Oban 2020-09-10 16:01:20 +03:00
Alexander Strizhakov c6647c08e1
migration and changelog 2020-09-10 16:01:20 +03:00
Alexander Strizhakov 7dd986a563
expire mfa tokens through Oban 2020-09-10 16:01:19 +03:00
Alexander Strizhakov 3ce658b930
schedule expired oauth tokens deletion with Oban 2020-09-10 16:01:19 +03:00
lain c8c17d9c63 Merge branch 'fix/2132-emoji-packs' into 'develop'
use Pleroma.HTTP in emoji packs tasks

Closes #2132

See merge request pleroma/pleroma!2980
2020-09-10 11:05:00 +00:00
Maksim Pechnikov 9853c90abb added paginate links to headers for /chats/:id/messages 2020-09-10 12:39:29 +03:00
Ivan Tashkinov 148bc24435 [#2497] Removed Hackney-specific code
(no longer needed due to adapter options unification).
2020-09-10 11:54:10 +03:00
Alexander Strizhakov ab56dd54e7
use Pleroma.HTTP in emoji packs tasks 2020-09-10 11:23:39 +03:00
Ivan Tashkinov cad69669fc [#2130] Fixed OAuth OOB authentication for users with enabled MFA. 2020-09-09 22:44:38 +03:00
Ivan Tashkinov b4860c57a6 [#2497] Formatting fix. 2020-09-09 19:43:36 +03:00
Ivan Tashkinov 68a74d6659 [#2497] Added missing alias, removed legacy `:adapter` option specification for HTTP.get/_. 2020-09-09 19:30:42 +03:00
Mark Felder 4ee99dafcc Merge branch 'develop' into media-preview-proxy 2020-09-09 11:11:36 -05:00
rinpatch 9d20d29a79 Merge branch 'chore/concurrent_limiter_update' into 'develop'
bump concurrent_limiter

See merge request pleroma/pleroma!2978
2020-09-09 15:49:34 +00:00
rinpatch 0c1d243185 bump concurrent_limiter
Should fix gun deadlocks
2020-09-09 18:34:07 +03:00
Mark Felder 34d7e864db New mix tasks for controlling user confirmation status and sending confirmation mails 2020-09-09 09:10:44 -05:00
Mark Felder b900c06d4e Add tests for the bulk confirm/unconfirm tasks 2020-09-09 09:02:07 -05:00
Mark Felder 6c79a60649 Add test for pleroma.user set --confirmed
Order now matters because of testing shell_info
2020-09-09 08:44:01 -05:00
lain b9f4bb73d7 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2977
2020-09-09 11:34:31 +00:00
tarteka 6ec1a9ded1 Translated using Weblate (Spanish)
Currently translated at 9.4% (10 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/es/
2020-09-09 10:52:44 +00:00
tarteka ace94bfcc8 Added translation using Weblate (Spanish) 2020-09-09 09:49:27 +00:00
Alexander Strizhakov de2499e54b
don't run update in tests 2020-09-09 10:48:18 +03:00
Mark Felder bccef4b997 Pedantry 2020-09-08 17:01:55 -05:00
Mark Felder ed847474c3 Fix descriptions 2020-09-08 16:59:53 -05:00
Mark Felder d23d0c27c2 Handle possibility of user account in a bulk operation not having an email address 2020-09-08 16:48:54 -05:00
Mark Felder 75b6fef25d Add mix task for bulk [un]confirming the local instance users 2020-09-08 16:39:41 -05:00
Mark Felder 23ca5f75af Make it possible to bulk send confirmation emails to all unconfirmed users 2020-09-08 16:39:08 -05:00
rinpatch 7c055af567 Merge branch 'stable-sync/2.1.1' into 'develop'
Sync stable with develop after 2.1.1

Closes #2, #2047, #2095, #2116, #1987, and #2080

See merge request pleroma/pleroma!2974
2020-09-08 17:57:02 +00:00
rinpatch 5ef840ed9c Merge branch 'stable' into stable-sync/2.1.1 2020-09-08 20:34:02 +03:00
rinpatch 0d2814ec8e Metadata: Move restriction check from Feed provider to activated_providers 2020-09-08 20:21:34 +03:00
Mark Felder 2011142ed9 Use :restrict_unauthenticated testing for more granular control 2020-09-08 20:21:34 +03:00
Mark Felder 549c895d80 Document breaking change for metadata providers 2020-09-08 20:21:34 +03:00
Mark Felder 96697db3bc RelMe and Feed no longer configurable 2020-09-08 20:21:34 +03:00
Mark Felder a85ed6defb Do not serve RSS/Atom feeds when instance is private 2020-09-08 20:21:34 +03:00
Mark Felder 44ced17634 Fix test so setting doesn't leak 2020-09-08 20:21:34 +03:00
Mark Felder 14d07081fd Feed provider only generates a redirect, so always activate it.
Making this configurable is misleading.
2020-09-08 20:21:34 +03:00
Mark Felder ff07014b26 Disable providers of user and status metadata when instance is private 2020-09-08 20:21:34 +03:00
Mark Felder 630444ee08 Do not make RelMe metadata provider optional.
There's really no sound reason to turn this off anyway.
2020-09-08 20:21:34 +03:00
Haelwenn (lanodan) Monnier 947ee55ae2 user: harden get_friends_query(), get_followers_query() and their wrappers 2020-09-08 20:21:34 +03:00
Haelwenn (lanodan) Monnier 16c451f8f1 search: Apply following filter only when user is usable 2020-09-08 20:21:34 +03:00
Haelwenn (lanodan) Monnier 10ef532c63 AP C2S: Restrict character limit on Note 2020-09-08 20:21:34 +03:00
Egor Kislitsyn a781ac6ca5 Fix atom leak in AdminAPIController 2020-09-08 20:21:34 +03:00
rinpatch 425324aae3 Merge branch 'release/2.1.1' into 'stable'
2.1.1 release

See merge request pleroma/secteam/pleroma!13
2020-09-08 17:21:12 +00:00
rinpatch acf6393c87 SECURITY.md: we don't support 2.0 anymore, bump to 2.1 2020-09-08 20:13:00 +03:00
Haelwenn 073f5490ec Merge branch 'bugfix/mock' into 'develop'
mockfix but for non-secteam because gitlab

See merge request pleroma/pleroma!2973
2020-09-08 19:46:23 +03:00
rinpatch 7528a7e447 pleroma-fe bundle: update to 938887ef91a12dcaaaaa0884af4e76abd1c6c679 2020-09-08 19:45:44 +03:00
rinpatch 27c3973b78 Merge branch 'temp-hackney-fix' into 'develop'
temp hackney fix

See merge request pleroma/pleroma!2951
2020-09-08 19:45:44 +03:00
rinpatch 7490b76bbf Merge branch 'fix/upload-filter-exiftool-webp' into 'develop'
Skip processing webp image files because we can't strip EXIF

Closes #2080

See merge request pleroma/pleroma!2924
2020-09-08 19:45:44 +03:00
rinpatch e430e98e7d CHANGELOG.md: Add 2.1.1 entry 2020-09-08 19:45:44 +03:00
Haelwenn (lanodan) Monnier 921f926e96
Remove OStatus in testsuite 2020-09-08 18:43:57 +02:00
Haelwenn (lanodan) Monnier ee0e05f930
Drop unused "inReplyToAtomUri" in objects 2020-09-08 18:43:57 +02:00
Haelwenn 09416d8a03 Merge branch 'bugfix/mock' into 'develop'
mockfix but for non-secteam because gitlab

See merge request pleroma/pleroma!2973
2020-09-08 16:42:27 +00:00
Alexander Strizhakov 87d2805791
combo fixes 2020-09-08 17:40:23 +02:00
Alexander Strizhakov fd7e9bdd25
don't run async tests, which use Mock 2020-09-08 17:40:23 +02:00
a1batross 5056866be6 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-08 17:38:36 +02:00
feld bf048ab72f Merge branch 'develop' into 'develop'
ForceBotUnlistedPolicy

See merge request pleroma/pleroma!2967
2020-09-08 14:52:51 +00:00
Haelwenn 9e49f4627f Merge branch 'bugfix/favicon-empty-test' into 'develop'
Bugfix/favicon empty test

See merge request pleroma/pleroma!2972
2020-09-08 14:52:33 +00:00
Haelwenn (lanodan) Monnier f6723dc9bd
account_view_test: Remove empty test 2020-09-08 16:33:22 +02:00
Haelwenn (lanodan) Monnier 788dececff
test: remove extraneous :instances_favicons config bits 2020-09-08 16:32:54 +02:00
Mark Felder bb0d7b7aaa Revert "description.exs: add ForceBotUnlistedPolicy"
This reverts commit 7215563641.
2020-09-08 09:31:47 -05:00
Mark Felder 21efda2edb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into unlisted 2020-09-08 09:31:26 -05:00
Roman Chvanikov 91b9985e1c Pass expires_in param from status controller 2020-09-08 15:26:06 +03:00
rinpatch 0a05670b44 Merge branch 'fix/upload-filter-exiftool-webp' into 'develop'
Skip processing webp image files because we can't strip EXIF

Closes #2080

See merge request pleroma/pleroma!2924
2020-09-08 12:21:33 +00:00
Roman Chvanikov 880a92ccc7 Merge branch 'develop' into feature/expire-mutes 2020-09-08 15:16:43 +03:00
Roman Chvanikov e3f845b243 Add expiring mutes for activities 2020-09-08 15:13:50 +03:00
rinpatch 9c76769878 mix.exs: bump version to 2.1.1 2020-09-08 15:09:10 +03:00
rinpatch ce3474f4d3 Disable favicon scraping in tests 2020-09-08 15:09:10 +03:00
a1batross 2cf4d5b122 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-08 13:40:40 +02:00
Alibek Omarov 5d814f739c changelog: add ForceBotUnlistedPolicy 2020-09-08 11:35:34 +00:00
Alibek Omarov efff2caccc docs: cheatsheet: add ForceBotUnlistedPolicy 2020-09-08 11:34:04 +00:00
Alibek Omarov 7215563641 description.exs: add ForceBotUnlistedPolicy 2020-09-08 11:32:46 +00:00
rinpatch d34dc4a746 Merge branch 'fix/2108-adapter-options' into 'develop'
Adapter options unification

Closes #2108

See merge request pleroma/pleroma!2952
2020-09-08 11:20:31 +00:00
Roman Chvanikov f6b250fb8d Add test for expiring mutes 2020-09-08 14:11:00 +03:00
rinpatch 4b76d7ce67 Merge branch 'fix/admin-controller-atom-leak' into 'develop'
Fix atom leak in AdminAPIController

See merge request pleroma/secteam/pleroma!6
2020-09-08 14:00:00 +03:00
lain 9b85592b8b Merge branch 'fix/rich-media-fake-statuses' into 'develop'
Rich Media: Do not cache URLs for preview statuses

Closes #1987

See merge request pleroma/pleroma!2956
2020-09-08 13:56:42 +03:00
lain 4306050da9 Merge branch 'develop' into 'develop'
Added cmake

See merge request pleroma/pleroma!2953
2020-09-08 13:56:29 +03:00
rinpatch 59f5e39f9b Merge branch 'chore/fast_html-bump' into 'develop'
mix.lock: Bump fast_html

See merge request pleroma/pleroma!2950
2020-09-08 13:56:09 +03:00
rinpatch 964bc8e2e8 Merge branch 'bugfix/favicon-too-long' into 'develop'
instance: Drop favicon URLs longer than 255 characters

Closes #2116

See merge request pleroma/pleroma!2949
2020-09-08 13:55:52 +03:00
feld 43b07c31cb Merge branch 'fix/2095-deactivated-account-reset' into 'develop'
Disallow password resets for deactivated accounts

Closes #2095

See merge request pleroma/pleroma!2935
2020-09-08 13:53:47 +03:00
rinpatch 515116e2f0 Merge branch 'chore/fast-sanitize-bump' into 'develop'
mix.lock: bump fast_sanitize

See merge request pleroma/pleroma!2932
2020-09-08 13:53:32 +03:00
rinpatch dccbed856d Merge branch 'http-fixes' into 'develop'
Improvements and fixes for http requests

See merge request pleroma/pleroma!2904
2020-09-08 13:53:16 +03:00
Roman Chvanikov c56e3d4f3b Add expires_in param for account mutes 2020-09-08 13:26:44 +03:00
rinpatch ea4b6c64d6 Merge branch 'feat/rich-media-improvements' into 'develop'
Rich media improvements

See merge request pleroma/pleroma!2944
2020-09-08 13:00:49 +03:00
rinpatch 8c3241df44 Merge branch 'fix/2047-rich-media-parser' into 'develop'
RichMedia parser fix

Closes #2047

See merge request pleroma/pleroma!2941
2020-09-08 13:00:15 +03:00
rinpatch 13e606941c Merge branch 'fix/2087-metadata' into 'develop'
Fix/2087 metadata

See merge request pleroma/secteam/pleroma!11
2020-09-08 12:55:30 +03:00
rinpatch 74d46a1b09 Merge branch 'secfix/search-crash' into 'develop'
Fix crash done via search

See merge request pleroma/secteam/pleroma!12
2020-09-08 12:53:11 +03:00
rinpatch 84acfab156 Merge branch 'fix-searching-following' into 'develop'
search: fix 'following' query parameter

See merge request pleroma/pleroma!2943
2020-09-08 12:53:02 +03:00
rinpatch 718c7cc847 Merge branch 'fix/apc2s-limits' into 'develop'
AP C2S: Restrict character limit on Note

Closes #2

See merge request pleroma/secteam/pleroma!9
2020-09-08 12:51:38 +03:00
rinpatch 0f27211dd0 CHANGELOG.md: move the exiftool webp entry to a proper section
Also clarify how it was fixed
2020-09-08 12:30:01 +03:00
Mark Felder 4ea07f74e9 Revert/simplify.
We only need to check the content-type. There's no chance a webp file
will get mismatched as another image type.
2020-09-08 12:29:38 +03:00
Mark Felder 216c84a8f4 Bypass the filter based on content-type as well in case a webp image is uploaded with the wrong file extension. 2020-09-08 12:29:38 +03:00
Mark Felder 3a98960c26 Verify webp files are not processed with exiftool 2020-09-08 12:29:38 +03:00
Mark Felder 2165a24974 Improve upload filter return values so we can identify when filters make no changes to the input 2020-09-08 12:29:38 +03:00
Mark Felder fa347b9c2f Fix uploading webp image files when Exiftool Upload Filter is enabled 2020-09-08 12:29:38 +03:00
rinpatch d8a48f8386 CHANGELOG.md: Split settings renaming to 2 separate entries 2020-09-08 12:23:08 +03:00
Alibek Omarov 95688c90ad ForceBotUnlistedPolicy: simplify code 2020-09-08 01:15:15 +02:00
Alibek Omarov d074e54013 ForceBotUnlistedPolicy: try to fix test 2 2020-09-07 23:28:29 +02:00
Alibek Omarov 0a25c92cfa ForceBotUnlistedPolicy: try to fix test 2020-09-07 23:18:36 +02:00
Alibek Omarov d2fd1d3481 ForceBotUnlistedPolicy: fix test extension 2020-09-07 23:04:07 +02:00
Alibek Omarov 8b695c3eeb ForceBotUnlistedPolicy: format 2020-09-07 22:53:45 +02:00
Alibek Omarov 57cf0cc3b3 ForceBotUnlistedPolicy: add test 2020-09-07 22:50:57 +02:00
Alibek Omarov 699224a900 ForceBotUnlistedPolicy: initial add, tiny clean up from my previous version 2020-09-07 22:15:42 +02:00
a1batross 89890929d5 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-07 22:01:26 +02:00
Alexander Strizhakov 7ad1732ed2
changelog entry 2020-09-07 20:00:47 +03:00
Alexander Strizhakov 18d21aed00
deprecation warnings 2020-09-07 19:59:17 +03:00
Alexander Strizhakov 696bf09433
passing adapter options directly without adapter key 2020-09-07 19:59:17 +03:00
Alexander Strizhakov 8a3d43044a
migrations for renaming gun timeout options 2020-09-07 19:59:17 +03:00
Alexander Strizhakov a83916fdac
adapter options unification
not needed options deletion
2020-09-07 19:59:17 +03:00
rinpatch c5434dbefc Merge branch 'feature/1790-oban-overuse' into 'develop'
removing StatsWorker from Oban cron jobs

See merge request pleroma/pleroma!2963
2020-09-07 16:49:27 +00:00
rinpatch 8c6485c470 CHANGELOG.md: move Unreleased section ahead of unreleased-patch 2020-09-07 19:22:56 +03:00
Alexander Strizhakov ee67c98e55
removing Stats worker from Oban cron jobs 2020-09-07 19:16:14 +03:00
rinpatch 6c6de8e5df Merge branch 'temp-hackney-fix' into 'develop'
temp hackney fix

See merge request pleroma/pleroma!2951
2020-09-07 12:47:43 +00:00
rinpatch b5f3694302 Merge branch 'chore/back-to-upstream-tesla' into 'develop'
switch back to upstream tesla

See merge request pleroma/pleroma!2966
2020-09-07 12:38:22 +00:00
rinpatch 8628e1b216 switch back to upstream tesla
The patch we required got merged upstream: 9f7261ca49
2020-09-07 15:21:20 +03:00
rinpatch 1984ff3103 Add a changelog entry for hackney downgrade 2020-09-07 15:16:04 +03:00
rinpatch d5c286b802 Merge branch 'bugfix/favicon-too-long' into 'develop'
instance: Drop favicon URLs longer than 255 characters

Closes #2116

See merge request pleroma/pleroma!2949
2020-09-07 11:12:30 +00:00
lain fdab01ab56 Merge branch 'fix/rich-media-fake-statuses' into 'develop'
Rich Media: Do not cache URLs for preview statuses

Closes #1987

See merge request pleroma/pleroma!2956
2020-09-07 10:19:19 +00:00
Haelwenn 000c315ee7 Merge branch 'fix/no-rich-media-error' into 'develop'
RichMedia: do not log webpages missing metadata as errors

See merge request pleroma/pleroma!2960
2020-09-07 08:18:59 +00:00
Haelwenn 23932aaf38 Merge branch 'chore/add-cc-by-4' into 'develop'
Add a copy of CC-BY-4.0 to the repo

See merge request pleroma/pleroma!2962
2020-09-07 08:14:34 +00:00
Haelwenn (lanodan) Monnier 08aef7dd4e
instance: Log catch favicon errors as warnings 2020-09-07 08:40:52 +02:00
Maksim Pechnikov 917d325972 added api spec 2020-09-07 07:17:30 +03:00
Maksim Pechnikov 5ae56aafb2 added import mutes 2020-09-06 21:42:51 +03:00
Mark Felder 563718cab9 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into media-preview-proxy 2020-09-06 08:15:34 -05:00
Ivan Tashkinov 759f8bc3ae [#2497] Fixed MediaProxyWarmingPolicyTest. 2020-09-06 15:30:11 +03:00
rinpatch 0b4fa769f4 Add a copy of CC-BY-4.0 to the repo
We mentined it in COPYING, but didn't actually have a copy in the repo.
2020-09-06 11:38:38 +03:00
rinpatch 170599c390 RichMedia: do not log webpages missing metadata as errors
Also fixes the return value of Parser.parse on errors, previously
was just `:ok` due to the logger call in the end
2020-09-05 22:05:35 +03:00
rinpatch 047a60c46e Merge branch 'hotfix-the-hotfix' into 'develop'
ConnectionPool: fix the previous hotfix

See merge request pleroma/pleroma!2959
2020-09-05 19:04:19 +00:00
rinpatch 129a2f48df ConnectionPool middleware: handle connection opening errors 2020-09-05 21:36:17 +03:00
rinpatch 9d6aca5bee ConnectionPool: fix the previous hotfix
I rushed the hotfix and forgot how `pop_in` actually works,
I want to die. We need some integration tests for the HTTP client
2020-09-05 21:27:06 +03:00
rinpatch b42869424f Merge branch 'hotfix/tesla-env-no-access' into 'develop'
ConnectionPool middleware: fix a crash due to unimplemented behaviour

See merge request pleroma/pleroma!2958
2020-09-05 18:18:49 +00:00
rinpatch 5298de3be6 ConnectionPool middleware: fix a crash due to unimplemented behaviour
Structs don't implement Access behaviour, so this crashed. Tests didn't
catch it and I didn't test that part of the codepath. Very sorry
2020-09-05 21:17:03 +03:00
rinpatch e198ba492e Rich Media: Do not cache URLs for preview statuses
Closes #1987
2020-09-05 20:53:46 +03:00
rinpatch 8c8fb84a38 Merge branch 'fix/pool-middleware-reverseproxy-leak' into 'develop'
ConnectionPool middleware: Fix connection leak on ReverseProxy redirects

See merge request pleroma/pleroma!2954
2020-09-05 17:47:12 +00:00
Ivan Tashkinov 88a6ee4a59 [#2497] Func defs grouping fix. 2020-09-05 20:23:18 +03:00
Ivan Tashkinov f170d47130 [#2497] Adjusted media proxy preview invalidation. Allowed client-side caching for media preview. Adjusted prewarmer to fetch only proxiable URIs.
Removed :preview pool in favor of existing :media one. Misc. refactoring.
2020-09-05 20:19:09 +03:00
Ivan Tashkinov c3b02341bf [#2497] Made media preview proxy fall back to media proxy instead of to source url. Adjusted tests. Refactoring. 2020-09-05 16:16:35 +03:00
Alexander Strizhakov de7e2ae0b5
use override flag for hackney dependency 2020-09-05 11:15:27 +03:00
Haelwenn (lanodan) Monnier 0d91f65284
Prevent AccountView and instance.get_or_update_favicon fails 2020-09-05 05:43:50 +02:00
Haelwenn da4660d2bf Merge branch 'use-https-in-dockerfile' into 'develop'
Use TLS when adding Alpine community repository in Dockerfile

See merge request pleroma/pleroma!2955
2020-09-05 03:10:54 +00:00
James Alseth 9fd0e5e0dd Use TLS when adding Alpine community repository in Dockerfile 2020-09-04 19:19:56 -07:00
rinpatch 10da13c713 ConnectionPool middleware: Fix connection leak on ReverseProxy redirects
Requires a patched Tesla due to upstream not saving opts between
redirects, patch submitted at https://github.com/teamon/tesla/pull/414
2020-09-04 22:10:40 +03:00
lain 2cd2a8fda3 Merge branch 'develop' into 'develop'
Added cmake

See merge request pleroma/pleroma!2953
2020-09-04 18:19:23 +00:00
Farhan Khan 173b04df48 Added cmake 2020-09-04 18:03:58 +00:00
a1batross 80e3ad74cb Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-09-04 15:23:19 +02:00
Alexander Strizhakov 473458b0fb
fix for ReverseProxy 2020-09-04 14:45:30 +03:00
Alexander Strizhakov 8bd2b6eb13
temp hackney fix 2020-09-04 14:24:15 +03:00
Haelwenn 2b04cdf407 Merge branch 'feat/simplify-pool-managment' into 'develop'
HTTP: radically simplify pool checkin/checkout

See merge request pleroma/pleroma!2948
2020-09-04 10:27:46 +00:00
rinpatch 5dde1fdae2 Merge branch 'chore/fast_html-bump' into 'develop'
mix.lock: Bump fast_html

See merge request pleroma/pleroma!2950
2020-09-04 07:17:10 +00:00
Haelwenn (lanodan) Monnier bce22937dc
mix.lock: Bump fast_html
This update fixes an incorrect push to Hex that reverted the gcc-10 fix
2020-09-04 09:15:58 +02:00
rinpatch d34fe2840d HTTP: radically simplify pool checkin/checkout
Use a custom tesla middleware instead of adapter helper function +
custom redirect middleware.

This will also fix "Client died before releasing the connection"
messages when the request pool is overloaded. Since the checkout is
now done after passing ConcurrentLimiter.

This is technically less efficient, since the connection needs to be
checked in/out every time the middleware is left or entered respectively.
But I don't think the nanoseconds we might lose on redirects
to the same host are worth the complexity.
2020-09-03 23:44:13 +03:00
Mark Felder f25b0e87f3 URL passed to helper is already MediaProxy
Set :preview pool on the request
2020-09-03 15:28:57 -05:00
Mark Felder b529616e11 Increase pool and timeout for preview so it catches slow media pool responses 2020-09-03 15:08:12 -05:00
Mark Felder d1e1057e22 Merge branch 'media-preview-proxy' of git.pleroma.social:pleroma/pleroma into feld-media-preview-proxy 2020-09-03 14:48:43 -05:00
Mark Felder 6141eb94ab Fetch preview requests through the MediaProxy. Separate connection options are not needed.
Use a separate pool for preview requests
2020-09-03 14:42:11 -05:00
Ivan Tashkinov 60c925380d [#2497] Added support for enforcing output format for media proxy preview, used for avatar_static & header_static (AccountView). 2020-09-03 20:13:29 +03:00
Mark Felder 85446cc30c Merge branch 'develop' into media-preview-proxy 2020-09-03 10:34:06 -05:00
Gitea cb49ac86e1 Merge develop plerom a 2020-09-03 17:20:16 +02:00
lain 9433311923 Merge branch 'bugfix/incoming-poll-emoji' into 'develop'
Fix emoji in Question, force generated context/context_id insertion

Closes #1870

See merge request pleroma/pleroma!2915
2020-09-03 11:50:30 +00:00
lain 1d743ca829 Merge branch 'fix_install_fe_bug' into 'develop'
Fix frontend install mix task bug

See merge request pleroma/pleroma!2942
2020-09-03 09:56:17 +00:00
lain 5da3677607 Frontend mix task: Add tests. 2020-09-03 11:40:17 +02:00
lain f26b580e80 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into seanking/pleroma-fix_install_fe_bug 2020-09-03 11:29:39 +02:00
feld d1a6f67b1d Merge branch 'fix/2095-deactivated-account-reset' into 'develop'
Disallow password resets for deactivated accounts

Closes #2095

See merge request pleroma/pleroma!2935
2020-09-02 17:11:24 +00:00
lain 0ab03e8564 Merge branch 'fix/1991-tzdata-update' into 'develop'
user agent if Endpoint is not started yet

Closes #1991

See merge request pleroma/pleroma!2945
2020-09-02 17:09:55 +00:00
lain 119e11f455 Merge branch 'bugfix/mastoapi-lists' into 'develop'
Fix removing an account from a list

Closes #2103

See merge request pleroma/pleroma!2940
2020-09-02 17:03:45 +00:00
lain 581f382e71 ListController: DRY up stuff. 2020-09-02 18:32:00 +02:00
Mark Felder cbf7f0e029 Disallow password resets for deactivated accounts.
Ensure all responses to password reset events are identical.
2020-09-02 09:09:13 -05:00
rinpatch d6e979aebe Merge branch 'feat/rich-media-improvements' into 'develop'
Rich media improvements

See merge request pleroma/pleroma!2944
2020-09-02 13:46:11 +00:00
rinpatch d48fc90978 StatusView: Start fetching rich media cards as soon as possible 2020-09-02 16:45:54 +03:00
Alexander Strizhakov a11f23c130
user agent if Endpoint is not started yet 2020-09-02 15:45:47 +03:00
rinpatch 19691389b9 Rich media: Add failure tracking 2020-09-02 14:59:52 +03:00
rinpatch 46236d1d87 html.ex: optimize external url extraction
By using a :not() selector and only extracting attributes from the
first match.
2020-09-02 12:45:20 +03:00
rinpatch 47ff425cfd Merge branch 'fix/2047-rich-media-parser' into 'develop'
RichMedia parser fix

Closes #2047

See merge request pleroma/pleroma!2941
2020-09-02 09:38:43 +00:00
rinpatch b2d776d77d Merge branch 'http-fixes' into 'develop'
Improvements and fixes for http requests

See merge request pleroma/pleroma!2904
2020-09-02 09:36:56 +00:00
Alexander Strizhakov 84fbf16161
timeout option moved to gun adapter helper 2020-09-02 10:50:51 +03:00
Alexander Strizhakov 1c57ef4498
default pool for tz_data client 2020-09-02 10:33:43 +03:00
rinpatch 96de4bfbca Merge branch 'fix-searching-following' into 'develop'
search: fix 'following' query parameter

See merge request pleroma/pleroma!2943
2020-09-02 06:55:58 +00:00
Alexander Strizhakov 79f65b4374
correct pool and uniform headers format 2020-09-02 09:16:51 +03:00
Alexander Strizhakov 5e8adf91b4
don't overwrite passed pool option in http clients 2020-09-02 09:04:23 +03:00
Alexander Strizhakov c17d83cd73
improvements and fixes for http requests
- fix for gun worker termination in some circumstances
- pool for http clients (ex_aws, tzdata)
- default pool timeouts for gun
- gun retries on gun_down messages
- s3 upload timeout if streaming enabled
2020-09-02 09:04:23 +03:00
Karol Kosek 868057871a
search: fix 'following' query parameter
The parameter included the accounts that are following you (followers)
instead of those you are actually following.

Co-Authored-By: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-09-02 02:08:43 +02:00
Ivan Tashkinov 6ce28c4091 [#2497] Fix for png media proxy preview response headers (content-type & content-disposition). 2020-09-01 21:21:58 +03:00
Sean King 0a9c63fb43 Fix frontend install mix task bug 2020-09-01 12:20:32 -06:00
Alexander Strizhakov 03d06062ab
don't fail on url fetch 2020-09-01 19:39:07 +03:00
Haelwenn (lanodan) Monnier d872858046
Fix removing an account from a list
Mastodon (Frontend) changed a different method for deletes,
keeping old format as mastodon documentation is too loose
2020-09-01 12:49:32 +02:00
lain d48755791d Merge branch 'fix/static-fe-nil-bio-crash' into 'develop'
User table: ensure bio is always a string

Closes #2067

See merge request pleroma/pleroma!2938
2020-09-01 09:32:01 +00:00
rinpatch 126461942b User table: ensure bio is always a string
Gets rid of '|| ""' in multiple places and fixes #2067
2020-09-01 10:45:42 +03:00
Maksim Pechnikov 0d5088c2b8 remove `unread_conversation_count` from User 2020-09-01 09:37:08 +03:00
Haelwenn (lanodan) Monnier d9a21e4784
fetcher: Remove fix_object call for Question activities 2020-09-01 08:35:00 +02:00
Haelwenn (lanodan) Monnier b960cede9a
common_fixes: Force inserting context and context_id 2020-09-01 08:35:00 +02:00
Haelwenn (lanodan) Monnier a142da3e4f
Add new Emoji Ecto.Type and fix emoji in Question 2020-09-01 08:34:57 +02:00
Haelwenn (lanodan) Monnier 2ecc7d9230
transmogrifier: Remove mastodon emoji-format from emoji field 2020-09-01 08:29:53 +02:00
rinpatch dc3a418c27 application.ex: disable warnings_as_errors at runtime
see changed files for rationale
2020-09-01 09:08:54 +03:00
Haelwenn 9d63b2c9db Merge branch 'chat-relation-constraints' into 'develop'
Chats: Add cascading delete on both referenced users.

See merge request pleroma/pleroma!2934
2020-08-31 20:55:05 +00:00
lain 0b621a834a Chats: Add cascading delete on both referenced users.
Also remove the now-superfluous join in the chat controller,
which was only used to filter out these cases.
2020-08-31 16:48:17 +02:00
Ivan Tashkinov 0a839d51a7 [#2497] Added Cache-Control response header for media proxy preview endpoint. 2020-08-31 13:08:50 +03:00
lain e0eb90f62a Merge branch 'issue/2068' into 'develop'
[#2068] marks notifications as read after mute

Closes #2068

See merge request pleroma/pleroma!2930
2020-08-31 09:21:02 +00:00
lain d91c4feebe Notification: Small refactor. 2020-08-31 11:02:54 +02:00
rinpatch 0417b2f649 Merge branch 'chore/fast-sanitize-bump' into 'develop'
mix.lock: bump fast_sanitize

See merge request pleroma/pleroma!2932
2020-08-31 07:22:35 +00:00
rinpatch 858e9a59ed mix.lock: bump fast_sanitize
The update brings a better error message for when cmake isn't installed
2020-08-31 09:54:16 +03:00
Mark Felder 3737f38432 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-30 11:28:45 -05:00
Mark Felder 4ef210a587 Credo 2020-08-30 09:32:22 -05:00
Mark Felder 2d2af75777 Support PNG previews to preserve alpha channels 2020-08-30 09:17:24 -05:00
href 24d522c3b3 QtFastStart: optimize
~4-6x faster
~3~4x memory usage reduction (now mostly adds what we are rewriting in
the metadatas)
2020-08-29 13:05:23 +02:00
href dfceb03cf4 Rewrite MP4/MOV binaries to be faststart
In some cases, MP4/MOV files can have the data _before_ the meta-data.

Thus, ffmpeg (and all similar tools) cannot really process the input if
it's given over stdin/streaming/pipes.

BUT I REALLY DON'T WANT TO MAKE TEMPORARY FILES

so here we go, an implementation of qtfaststart in elixir.
2020-08-28 21:14:28 +02:00
Maksim Pechnikov f0fefc4f5c marks notifications as read after mute 2020-08-28 18:17:44 +03:00
lain 51844b1e42 Merge branch 'stable-sync/2.1.0' into 'develop'
Merge stable in develop and bump development version

Closes #1610, #1621, #1613, #1375, #1374, #1614, #1422, #1595, #1620, #1364, #1640, #1643, #1653, #1624, #764, #1687, #1698, #1670, #1677, #1727, #1559, #1746, #1313, #1810, #751, and #866

See merge request pleroma/pleroma!2928
2020-08-28 14:40:26 +00:00
lain b41c8cff18 Merge branch 'mention-sudo-pleroma-when-updating' into 'develop'
Add mention of sudo -Hu pleroma to update docs

See merge request pleroma/pleroma!2929
2020-08-28 14:12:23 +00:00
Shpuld Shpludson 35da3be9dd Add mention of sudo -Hu pleroma to docs 2020-08-28 13:50:21 +00:00
rinpatch ce387ce730 mix.exs: bump development version after 2.1.0 release 2020-08-28 16:15:57 +03:00
a1batross 4bc769dc83 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-28 15:09:47 +02:00
lain 73dd5bdb7d Merge branch 'release/2.1.0' into 'stable'
Release/2.1.0

See merge request pleroma/pleroma!2927
2020-08-28 12:17:19 +00:00
lain b141e35d64 Mix: Update version 2020-08-28 11:34:48 +02:00
lain 4e022fc16c Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-2.1-rc0 2020-08-28 11:33:11 +02:00
Mark Felder 5b4d483f52 Add a note about the avatars and banners situation 2020-08-27 17:28:21 -05:00
Mark Felder 67c79394e8 Support static avatars and header images with Mediaproxy Preview 2020-08-27 17:15:23 -05:00
Mark Felder 3a5231ec8f Keep args construction within video/image scopes instead of mangling down in fifo town 2020-08-27 16:33:37 -05:00
Mark Felder dd1de994d5 Try to trick ffmpeg into working with this named pipe 2020-08-27 13:10:40 -05:00
Mark Felder f1218a2b4e ffmpeg needs input from fifo path, not stdin 2020-08-27 12:47:29 -05:00
Mark Felder ef9d12fcc5 Attempt at supporting video thumbnails via ffmpeg 2020-08-27 12:31:55 -05:00
Haelwenn 6b01a09a08 Merge branch '2078-list-fixes' into 'develop'
Resolve "List timeline returns incorrectly assigned Account for replies and repeats"

Closes #2070 and #2078

See merge request pleroma/pleroma!2923
2020-08-27 17:05:53 +00:00
Mark Felder 157ecf4022 Follow redirects.
I think we should be using some global adapter options here, though.
2020-08-27 11:46:56 -05:00
lain 82bf27172c Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-2.1-rc0 2020-08-27 15:38:03 +02:00
lain 1c05819c9b Merge branch '2081-deleted-user-chats' into 'develop'
ChatController: Don't die if the recipient is gone.

Closes #2081

See merge request pleroma/pleroma!2926
2020-08-27 11:18:42 +00:00
lain 78939c1d16 ChatController: Don't die if the recipient is gone. 2020-08-27 12:13:18 +02:00
rinpatch 22050f9ec0 Merge branch 'update/admin-fe-20200826' into 'develop'
Update AdminFE build in preparation for 2.1.0 release

See merge request pleroma/pleroma!2925
2020-08-27 04:11:34 +00:00
Mark Felder 697bea0473 Move arg for images to the list so we can reuse these fifo functions for videos 2020-08-26 17:43:25 -05:00
Mark Felder 9567b96c79 Rename to make it obvious this is for images not videos 2020-08-26 16:40:13 -05:00
Mark Felder 2cfe2dc81b Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-26 16:37:57 -05:00
Mark Felder eead2276e7 Ensure GIFs are redirected to the original or they become static. 2020-08-26 16:18:11 -05:00
Mark Felder f1b9e3595d Update AdminFE build in preparation for 2.1.0 release 2020-08-26 15:43:34 -05:00
Mark Felder 2c95533ead Change method of convert using stdout, make progressive jpegs 2020-08-26 15:37:45 +00:00
Mark Felder d4d1192341 Remove auto-orient; don't use it on previews, only originals 2020-08-26 14:28:25 +00:00
href bc94f0c6da Use mkfifo to feed ImageMagick 2020-08-26 16:12:34 +02:00
lain 5dba3a50fc Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-2.1-rc0 2020-08-26 15:58:49 +02:00
rinpatch 6f17aea066 Merge branch 'fix/fast_html-build-errors' into 'develop'
fix fast_html build errors with gcc 10 by bumping fast_sanitize

Closes #2058

See merge request pleroma/pleroma!2922
2020-08-26 13:49:52 +00:00
lain 5ffd20f3b5 Changelog: Add info about list fixes. 2020-08-26 15:40:00 +02:00
lain cfc99fe05c TimelineController: Keys are atoms now.
Closes #2078
Closes #2070
2020-08-26 15:37:30 +02:00
rinpatch 6da17f88d6 fix fast_html build errors with gcc 10 by bumping fast_sanitize
Closes #2058
2020-08-26 16:31:02 +03:00
rinpatch 6ef9db0557 Merge branch '2079-welcome-message-docs' into 'develop'
Cheatsheet: Remove misleading example

Closes #2079

See merge request pleroma/pleroma!2921
2020-08-26 13:11:17 +00:00
lain b76839e008 Cheatsheet: Remove misleading example 2020-08-26 13:53:16 +02:00
lain fc42446755 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-2.1-rc0 2020-08-26 13:17:39 +02:00
lain 7975351550 Merge branch 'chore/release-template-merge-back-to-develop' into 'develop'
release MR template: add a note about merging stable changes back to develop

See merge request pleroma/pleroma!2920
2020-08-26 05:50:41 +00:00
rinpatch dcd06488e0 release MR template: add a note about merging stable changes back to
develop
2020-08-26 07:09:28 +03:00
Mark Felder a136e7e9b5 Try specifying fd0, force jpg out 2020-08-25 18:10:27 -05:00
Mark Felder afa03ca8e2 Allow both stdin and stdout 2020-08-25 17:36:53 -05:00
Mark Felder ddbddc08fc Redirects for videos right now 2020-08-25 17:31:55 -05:00
Haelwenn fd04137e18 Merge branch 'buildx-multiarch-arm32v7' into 'develop'
Add multiarch support to docker container, fixes pleroma/pleroma-docker-compose#2

Closes pleroma-docker-compose#2

See merge request pleroma/pleroma!2789
2020-08-25 22:27:19 +00:00
Mark Felder 899ea2da3e Switch to imagemagick, only support videos 2020-08-25 17:18:22 -05:00
feld fb33321fa2 Merge branch 'feature/1952-read-muted-notifications' into 'develop'
Automatically mark notifications about statuses from muted users and threads as read

Closes #1952

See merge request pleroma/pleroma!2893
2020-08-25 21:32:32 +00:00
Haelwenn 976094cd7b Merge branch '2077-fix-bogus-webfinger-ids' into 'develop'
Webfinger: Handle bogus ids better.

Closes #2077

See merge request pleroma/pleroma!2919
2020-08-25 20:01:43 +00:00
Mark Felder 479578b148 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-25 11:57:23 -05:00
lain 112bec5225 Webfinger: Handle bogus ids better. 2020-08-25 17:35:59 +02:00
lain 49a436ad3e Mix: Make rc version explicit. 2020-08-25 16:07:07 +02:00
lain ea2b5c07e3 Merge branch 'stable' of git.pleroma.social:pleroma/pleroma into pleroma-2.1-rc0 2020-08-25 15:38:12 +02:00
lain 361aa22e28 Merge branch 'frontend-bundles-downloads' into 'develop'
frontend install mix tasks

See merge request pleroma/pleroma!2841
2020-08-25 10:34:09 +00:00
lain 6d6e43fd09 Description: Update description. 2020-08-25 11:49:44 +02:00
lain c1d51944c7 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-25 11:44:51 +02:00
lain 5722b0e2e5 Merge branch 'docs/update-clients' into 'develop'
clients.md: Remove Nekonium, Twidere-iOS, Feather; Add DashFE and BloatFE

See merge request pleroma/pleroma!2914
2020-08-25 07:41:25 +00:00
Maksim b267b751d4 Apply 1 suggestion(s) to 1 file(s) 2020-08-25 05:38:25 +00:00
Haelwenn (lanodan) Monnier 16f777a7b2
clients.md: Remove Nekonium, Twidere-iOS, Feather; Add DashFE and BloatFE 2020-08-24 23:14:07 +02:00
feld 3d5940da3e Merge branch 'feature/add-preload-to-description' into 'develop'
Add Pleroma.Web.Preload to description.exs

See merge request pleroma/pleroma!2913
2020-08-24 20:41:33 +00:00
Angelina Filippova 6e5678b5af Add Pleroma.Web.Preload to description.exs 2020-08-24 22:43:37 +03:00
feld d39abd02ac Merge branch 'relay-fix-admin-fe' into 'develop'
Relay fix for admin-fe

See merge request pleroma/pleroma!2902
2020-08-24 17:03:18 +00:00
Maksim Pechnikov 14ec12ac95 added tests 2020-08-24 15:01:45 +03:00
a1batross 46365535dd Revert "Revert "Update frontend""
This reverts commit ee9b93a890.
2020-08-23 15:29:40 +02:00
a1batross ee9b93a890 Revert "Update frontend"
This reverts commit 5bcf15d553.
2020-08-23 15:21:37 +02:00
a1batross 8cd3e28f1c Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-23 15:18:06 +02:00
a1batross 1165c5d491 Revert "Revert "Update frontend""
This reverts commit dd8a4e8c74.
2020-08-23 15:17:58 +02:00
Mark Felder 98f8851f29 Use the image thumbnail for rich metadata (OGP/Twittercards) 2020-08-22 15:12:11 -05:00
Maksim Pechnikov 0922791e4d updated errors on add emoji 2020-08-22 10:56:26 +03:00
Maksim Pechnikov f5845ff033 upload emoji zip file 2020-08-22 10:42:02 +03:00
href edde0d9b54 Remove newline for linter 2020-08-21 17:40:49 +00:00
Mark Felder 4e6eb22b4a Try to warm the cache with the preview image if preview proxy enabled 2020-08-21 12:19:35 -05:00
href 967afa064b Fix truncated images 2020-08-21 17:02:57 +00:00
lain e1c8c599ff Merge branch 'features/validators-event' into 'develop'
Pipeline Ingestion: Event

See merge request pleroma/pleroma!2909
2020-08-21 16:10:30 +00:00
lain 02db6c596e Merge branch 'feature/2071-actor-type' into 'develop'
Adding actor type in user show

Closes #2071

See merge request pleroma/pleroma!2910
2020-08-21 08:36:56 +00:00
Alexander Strizhakov 1f8c32b773
adding actor type in user show 2020-08-21 10:38:56 +03:00
Ivan Tashkinov aa0a5ffb48 [#2497] Media preview proxy: added `quality` config setting, adjusted width/height defaults. 2020-08-21 08:59:08 +03:00
Haelwenn (lanodan) Monnier 36c125a071
Pipeline Ingestion: Event 2020-08-20 21:49:26 +02:00
Ivan Tashkinov 02ad1cd8e9 [#2497] Media preview proxy: added Content-Disposition header with filename to response. 2020-08-20 09:58:50 +03:00
Ivan Tashkinov 4ee15e991e [#2497] Media preview proxy config refactoring & documentation. 2020-08-19 21:36:26 +03:00
lain 5c2b6922e1 Merge branch 'features/validators-audio2' into 'develop'
Pipeline Ingestion: Audio (Part 2)

See merge request pleroma/pleroma!2903
2020-08-19 12:59:41 +00:00
lain c1277be041 AudioHandlingTest: Make mock explicit 2020-08-19 14:36:42 +02:00
lain 9aae342e7a Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/validators-audio2 2020-08-19 14:10:11 +02:00
lain 5054a6aa9a Merge branch 'fix-arm64' into 'develop'
CI: Fix release builds once more.

See merge request pleroma/pleroma!2907
2020-08-19 11:41:00 +00:00
lain d833d2c1fd CI: Fix release builds once more. 2020-08-19 13:37:33 +02:00
lain 4681771af4 Merge branch 'email-tests' into 'develop'
Fix for sometimes failing email tests

See merge request pleroma/pleroma!2906
2020-08-19 10:56:07 +00:00
Alexander Strizhakov c68bcae362
fix for sometimes failing tests 2020-08-19 12:57:29 +03:00
lain 1c6303f620 Merge branch 'mix-task-fixes' into 'develop'
Fixes for mix tasks

See merge request pleroma/pleroma!2905
2020-08-19 09:48:40 +00:00
Alexander Strizhakov 4727030f59
fixes for mix tasks
- fix for `mix pleroma.database update_users_following_followers_counts`
- raise error, if fetch was unsuccessful in emoji tasks
- fix for `pleroma.digest test` task
2020-08-19 11:06:03 +03:00
Alexander Strizhakov 13f6029b4b
additional changelog entry 2020-08-19 08:55:03 +03:00
Alexander Strizhakov fa23d5d3d3
changelog entry 2020-08-19 08:41:39 +03:00
Alexander Strizhakov 7dc275b69b
relay fix for admin-fe 2020-08-19 08:41:39 +03:00
Maksim Pechnikov 7794d7c694 added Pleroma.Web.PleromaAPI.EmojiFileController 2020-08-19 06:50:20 +03:00
Haelwenn (lanodan) Monnier 5316e231b0
Pipeline Ingestion: Audio (Part 2) 2020-08-19 00:06:31 +02:00
Haelwenn 3d5d8c05c9 Merge branch '2064-image-blanking' into 'develop'
Resolve "Make default image description blank"

Closes #2064

See merge request pleroma/pleroma!2899
2020-08-18 19:02:33 +00:00
feld fa8a87eca1 Merge branch 'improve/freebsd-rc-script' into 'develop'
Improve FreeBSD rc script

See merge request pleroma/pleroma!2901
2020-08-18 15:57:43 +00:00
Mark Felder dfcb1401c7 Improve FreeBSD rc script
Passes rclint now, $HOME is dynamic, and properly matches process name for signalling shutdown.
2020-08-18 10:24:34 -05:00
Ivan Tashkinov da116d81fb [#2497] Added video preview proxy. Switched from exexec to Port. 2020-08-18 18:23:27 +03:00
Ivan Tashkinov 27e7999a15 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-08-18 18:02:09 +03:00
lain 8d70692abf Merge branch 'freebsd-docs' into 'develop'
FreeBSD installation process

See merge request pleroma/pleroma!2887
2020-08-18 12:56:28 +00:00
lain 83cef25794 Merge branch 'chore/improve-descriptions' into 'develop'
Improve description for mediaproxy cache invalidation settings

See merge request pleroma/pleroma!2891
2020-08-18 12:56:07 +00:00
lain 52a79506c7 Test config: Default to filename for descriptions 2020-08-18 14:37:35 +02:00
lain 67ec8e87ff Merge branch 'features/validators-audio' into 'develop'
Pipeline Ingestion: Audio

See merge request pleroma/pleroma!2897
2020-08-18 12:27:45 +00:00
lain f0a8d723bb Transmogrifier Test: Extract audio tests. 2020-08-18 13:37:28 +02:00
lain 3998ef9d64 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/validators-audio 2020-08-18 13:31:42 +02:00
lain 566749f77a Merge branch 'purge-user' into 'develop'
Purge a local user upon deletion, fixes #2062

Closes #2062

See merge request pleroma/pleroma!2898
2020-08-18 11:31:13 +00:00
lain 757410a177 Changelog: Add info about upload description changes 2020-08-18 13:24:39 +02:00
lain 368fd04b47 Cheatsheet: Add information about filename descriptions 2020-08-18 13:22:00 +02:00
lain aabc26a573 Pleroma.Upload: Set default upload name / description based on config. 2020-08-18 13:21:30 +02:00
lain 42ce7a4bab Merge branch 'features/validators_use_ectotypes' into 'develop'
object_validators: Use ecto_types where available

See merge request pleroma/pleroma!2896
2020-08-18 11:01:38 +00:00
lain 548ca43bcf Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/validators_use_ectotypes 2020-08-18 12:38:13 +02:00
Alex Gleason a0f5eb1a55
Test that `POST /api/pleroma/delete_account` purges the user 2020-08-18 00:24:28 -05:00
Alex Gleason dcc8926ff1
Test purging a user with User.delete/1 2020-08-18 00:10:09 -05:00
Alex Gleason 72cbe20a58
Purge most user fields upon deletion, "right to be forgotten" #859 2020-08-17 23:44:44 -05:00
Alex Gleason c12c576ee2
Also purge bio and display name 2020-08-17 22:11:45 -05:00
Alex Gleason d55faa2f8f
Purge a local user upon deletion, fixes #2062 2020-08-17 21:52:28 -05:00
Haelwenn (lanodan) Monnier 2f8c3c842d
common_fixes: Remove Utils.make_date call 2020-08-18 02:24:48 +02:00
Haelwenn (lanodan) Monnier c9d6638461
common_fixes: Get fixes common from Audio and Question 2020-08-18 02:24:48 +02:00
Haelwenn (lanodan) Monnier 2bc08d5573
Pipeline Ingestion: Audio 2020-08-18 02:02:34 +02:00
Haelwenn (lanodan) Monnier b1fc4fe0ca
fetcher: fallback to [] when to/cc is nil
Related: https://git.pleroma.social/pleroma/pleroma/-/issues/2063
2020-08-18 02:02:20 +02:00
Haelwenn (lanodan) Monnier 7a273087ed
object_validators: Use ecto_types where available 2020-08-17 23:47:00 +02:00
lain 34b099fffa Merge branch 'issue/1936' into 'develop'
[#1936] Ability to search for banned MediaProxy URLs 

See merge request pleroma/pleroma!2873
2020-08-17 13:05:20 +00:00
rinpatch f06444a289 Merge branch 'invisible-index' into 'develop'
Migrations: Add an index on the `invisible` field on users.

See merge request pleroma/pleroma!2895
2020-08-17 12:38:14 +00:00
lain e154fcf525 Merge branch '2046-default-restrict-unauthenticated-basing-on-instance-privacy' into 'develop'
[#2046] Defaulted pleroma/restrict_unauthenticated basing on instance privacy

Closes #2046

See merge request pleroma/pleroma!2890
2020-08-17 12:26:53 +00:00
lain 5ea752dab2 Migrations: Add an index on the `invisible` field on users. 2020-08-17 14:11:36 +02:00
rinpatch 1f2aad6fda Merge branch 'fix/start-ssl-if-ssl-required' into 'develop'
Start :ssl if not started when running migration or rollback

Closes #2056

See merge request pleroma/pleroma!2894
2020-08-17 08:44:26 +00:00
Hugo b2d3b26511 Apply 1 suggestion(s) to 1 file(s) 2020-08-17 07:58:24 +00:00
Hugo Müller-Downing 317b6c6c52 Start :ssl if not started when running migration or rollback 2020-08-17 17:34:03 +10:00
Sergey Suprunenko 25c69e271a
Make notifications about new statuses from muted threads read 2020-08-17 00:11:33 +02:00
Maksim Pechnikov f6da12f45d fix search media proxy urls 2020-08-16 06:54:48 +03:00
Ivan Tashkinov 60ac83a4c1 [#2046] Added test for pleroma/restrict_unauthenticated defaults on private instance. Updated docs and changelog. 2020-08-15 18:30:20 +03:00
Sergey Suprunenko 0865f36965
Mark notifications about statuses from muted users as read automatically 2020-08-15 15:27:41 +02:00
rinpatch ec242b4706 Merge branch 'fix/docs-tabs' into 'develop'
Docs: Fix the way tabs are declared

Closes #2045

See merge request pleroma/pleroma!2892
2020-08-15 07:42:10 +00:00
rinpatch 4fcf272717 Docs: Fix the way tabs are declared
Since python doesn't have a way to lock deps for a particlar project
by default, I didn't bother with it. This resulted in mkdocs updating at
some point, bringing a breaking change to how tabs are declared and
broken tabs on docs-develop.pleroma.social. I've learned my lesson
and locked deps with pipenv in pleroma/docs!5. This MR updates Pleroma
docs to use the new tab style, fortunately my editor did most of it.

Closes #2045
2020-08-15 09:55:59 +03:00
feld 57a00e22c4 Merge branch 'update/admin-fe-20200814' into 'develop'
Update AdminFE bundle for 2.1.0 release

See merge request pleroma/pleroma!2889
2020-08-14 18:26:23 +00:00
Mark Felder 6c3130ef47 Improve description for mediaproxy cache invalidation settings 2020-08-14 13:07:58 -05:00
Ivan Tashkinov 95529ab709 [#2046] Defaulted pleroma/restrict_unauthenticated basing on instance privacy setting (i.e. restrict on private instances only by default). 2020-08-14 20:55:45 +03:00
Mark Felder f510dc30b4 Update AdminFE bundle for 2.1.0 release 2020-08-14 12:48:49 -05:00
lain 33e508d7c6 Merge branch '1806-mogrifun' into 'develop'
Mogrifun: Add a line about the purpose of the module.

Closes #1806

See merge request pleroma/pleroma!2888
2020-08-14 17:15:59 +00:00
lain 76ce3a1c9e Mogrifun: Add a line about the purpose of the module. 2020-08-14 18:27:18 +02:00
a1batross dd8a4e8c74 Revert "Update frontend"
This reverts commit 5bcf15d553.
2020-08-14 10:19:45 +02:00
Farhan Khan e8c20c42cd minor changes 2020-08-14 00:21:42 -04:00
Farhan Khan a5144f05c2 Removed a trailing comment 2020-08-13 22:49:50 -04:00
Farhan Khan 816c04abdc Updates 2020-08-13 22:38:23 -04:00
Farhan Khan b0c456d18d more acme.sh updates 2020-08-13 22:18:33 -04:00
Farhan Khan f2665547f5 acme updates 2020-08-13 21:24:08 -04:00
Farhan Khan 24eb917dbc Rearranging acme 2020-08-13 20:58:46 -04:00
Farhan Khan cba9f368af Added comment 2020-08-13 19:34:04 -04:00
a1batross 81435a3f1a Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-14 01:25:16 +02:00
Farhan Khan b5f48275c5 Minor patch update 2020-08-13 19:08:13 -04:00
Farhan Khan 33ea430f3b acme.sh and netbsd to freebsd updates 2020-08-13 18:59:14 -04:00
Farhan Khan 53c4215ef1 Updated some more instruction specifics. 2020-08-13 18:59:14 -04:00
Farhan Khan f6686a64af Updated ssl and domain name updates
Removed the reference to niaa
2020-08-13 18:59:14 -04:00
Farhan Khan da5aca27a8 Minor reorganization 2020-08-13 18:59:13 -04:00
Farhan Khan 07376bd21a Adding installation documentation for FreeBSD + rc.d script 2020-08-13 18:59:13 -04:00
feld 014f91c1c3 Merge branch 'issue/2036-part-2' into 'develop'
[#2036] fixed cron worker

See merge request pleroma/pleroma!2886
2020-08-13 21:35:40 +00:00
Maksim Pechnikov 9b055f7211 fix cron wroker 2020-08-13 21:03:15 +03:00
Maksim Pechnikov 3515cb5c3a fix Cron.PurgeExpiredActivitiesWorker 2020-08-13 21:01:21 +03:00
feld 14a06e63f6 Merge branch 'fix/activity-expirations-again' into 'develop'
Fix activity expirations again

See merge request pleroma/pleroma!2866
2020-08-13 17:38:19 +00:00
Haelwenn fbc220d09c Merge branch 'nitfix/side-effects-typo' into 'develop'
side_effects: Fix typo on notification

See merge request pleroma/pleroma!2885
2020-08-13 16:11:06 +00:00
Haelwenn (lanodan) Monnier 4f3c955f26
side_effects: Fix typo on notification 2020-08-13 18:10:43 +02:00
Haelwenn f99b8a25eb Merge branch 'reject' into 'develop'
Move Accepts and Rejects to the Pipeline

See merge request pleroma/pleroma!2878
2020-08-13 16:04:43 +00:00
lain 8d5f9d4b28 Merge branch 'ci-fix-2' into 'develop'
CI: Add cmake to build

See merge request pleroma/pleroma!2884
2020-08-13 14:40:31 +00:00
lain 035c44dd7b CI: Add cmake to build 2020-08-13 16:38:04 +02:00
lain 06e435c959 Merge branch 'update-frontend-2020-08-13' into 'develop'
Update frontend

See merge request pleroma/pleroma!2883
2020-08-13 14:07:01 +00:00
lain 5bcf15d553 Update frontend 2020-08-13 16:04:34 +02:00
lain 88ec5c2de5 Merge branch 'cmake' into 'develop'
Build files: Add cmake

See merge request pleroma/pleroma!2882
2020-08-13 12:28:10 +00:00
lain a47406d577 Build files: Add cmake 2020-08-13 14:12:45 +02:00
lain 2bc2b321b6 Merge branch 'fix/users_ap_id_not_null' into 'develop'
Ensure ap_id column in users table cannot be null

See merge request pleroma/pleroma!2875
2020-08-13 11:01:03 +00:00
lain aaf7bd89a7 Migrations: Fix Logger requirements. 2020-08-13 12:32:05 +02:00
lain 5be25b3e38 Merge branch '1152-deletion' into 'develop'
User deletion issue exploration

See merge request pleroma/pleroma!2879
2020-08-13 09:06:33 +00:00
Maksim Pechnikov 56470647de Merge branch 'develop' into issue/1936 2020-08-13 09:00:25 +03:00
Alexander Strizhakov 29a7bcd5bb
reverting pinned posts in filtering 2020-08-12 20:01:21 +03:00
Alexander Strizhakov 3ab83f837e
don't load pinned activities in due_expirations 2020-08-12 19:46:47 +03:00
feld a94210c70b Merge branch 'docs_improve_static_dir_documentation' into 'develop'
Improve static_dir documentation

See merge request pleroma/pleroma!2864
2020-08-12 16:39:19 +00:00
feld 3aa7969ff9 Update robots_txt.md 2020-08-12 16:19:34 +00:00
feld dfc56de167 Merge branch 'feature/update-welcome-setting-in-description' into 'develop'
Update :welcome settings in description.exs

Closes #2024

See merge request pleroma/pleroma!2843
2020-08-12 16:18:40 +00:00
Mark Felder b89fc1f227 Add warning to the migration 2020-08-12 11:13:24 -05:00
Mark Felder 091da10832 Add the ActivityExpirationPolicy MRF to docs and clarify post expiration criteria. 2020-08-12 11:00:01 -05:00
Mark Felder 98058bd06e Merge branch 'develop' into fix/activity-expirations-again 2020-08-12 09:42:28 -05:00
lain 05ff666f99 AdminApiControllerTest: Add test that `deleted` users get deactivated. 2020-08-12 16:31:00 +02:00
Ivan Tashkinov f50c653c8d Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-08-12 17:13:01 +03:00
lain 2e347e8286 ActivityPub: Remove `reject`, move everything to the Pipeline. 2020-08-12 15:07:46 +02:00
lain 7224bf309e Transmogrifier: Move Rejects to the Pipeline 2020-08-12 14:48:51 +02:00
Alexander Strizhakov eec1ba232c
don't expire pinned posts 2020-08-12 15:15:17 +03:00
lain 62f7cca9a1 Transmogrifier Tests: Extract rejections. 2020-08-12 13:39:54 +02:00
lain bb92ad44a6 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into reject 2020-08-12 12:53:04 +02:00
Alexander Strizhakov 57b455de5a
leave expirations with Create and Note types 2020-08-12 12:41:47 +03:00
Maksim Pechnikov 644effc63b update docs 2020-08-12 08:51:09 +03:00
rinpatch 86c18e4165 Merge branch 'issue/2036-job-monitor' into 'develop'
[#2036] fix job monitor

See merge request pleroma/pleroma!2877
2020-08-12 03:30:01 +00:00
Maksim Pechnikov 76462efbfa fix job monitor 2020-08-11 22:06:33 +03:00
lain 500576dcb6 Linting fixes. 2020-08-11 19:22:14 +02:00
Mark Felder 724ed354f2 Ensure only Note objects are set to expire 2020-08-11 11:28:22 -05:00
lain 0589e9156a Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fix/activity-expirations-again 2020-08-11 17:49:24 +02:00
lain 25bfee0d12 ActivityPub: Remove ActivityPub.accept
Switch to the pipeline in CommonAPI and SideEffects
2020-08-11 17:43:16 +02:00
Mark Felder ff4e282aad Ensure ap_id column in users table cannot be null 2020-08-11 10:27:07 -05:00
lain f988d82e46 Transmogrifier: Handle accepts with the pipeline 2020-08-11 17:26:01 +02:00
lain 9dda13bfa1 Transmogrifier Test: Remove mastodon hack test. 2020-08-11 16:22:15 +02:00
lain 3f6d50111e Linter fixes. 2020-08-11 16:07:42 +02:00
lain c66f6bd0ad Merge branch 'set-approval-pending-default-to-false' into 'develop'
Set `users.approval_pending` default to `false`

See merge request pleroma/pleroma!2874
2020-08-11 13:59:17 +00:00
lain da3f9b9988 Transmogrifier: Remove handling of orphaned accepts
This was a Mastodon 2.3 issue and has been fixed for a long time.
According to fediverse.networks, less than one percent of servers
still run a version this old or older.
2020-08-11 15:41:19 +02:00
lain 8b1e8bec2f AcceptValidation: Codify accept rules. 2020-08-11 15:32:52 +02:00
Egor Kislitsyn 304ed35743
Set `users.approval_pending` default to `false` 2020-08-11 17:21:17 +04:00
lain f1a0c10b17 AcceptValidator: Add basic validator with tests. 2020-08-11 15:13:07 +02:00
Ivan Tashkinov 2def3cbf41 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	config/config.exs
#	mix.lock
2020-08-11 15:13:29 +03:00
lain 8f9fbc86c0 Transmogrifier: Small readability changes. 2020-08-11 14:02:09 +02:00
lain 54a6855ddf Transmogrifier Tests: Extract Accept handling 2020-08-11 14:01:45 +02:00
lain 686002164a Merge branch '204-fix' into 'develop'
Fix 500 errors when returning :no_content, fixes #2029

Closes #2029

See merge request pleroma/pleroma!2856
2020-08-11 09:18:56 +00:00
lain 9a9121805c Apply 1 suggestion(s) to 1 file(s) 2020-08-11 09:08:27 +00:00
lain 677abbf0ee Merge branch 'fix/activity-expirations-again' of git.pleroma.social:pleroma/pleroma into fix/activity-expirations-again 2020-08-11 10:55:10 +02:00
lain 7e4932362b SideEffects: Handle strange deletion case. 2020-08-11 10:54:38 +02:00
Maksim Pechnikov 345ac512e4 added paginate+search for admin/MediaProxy URLs 2020-08-11 10:30:13 +03:00
feld 78484fe0ef Merge branch 'admin-active-filter' into 'develop'
Admin API: Filter out unapproved users when the `active` filter is on

Closes #2037

See merge request pleroma/pleroma!2872
2020-08-10 17:16:38 +00:00
Mark Felder 024b7ce0b7 Merge branch 'develop' into fix/activity-expirations-again 2020-08-10 11:32:24 -05:00
Egor Kislitsyn 249f21dcbb Admin API: Filter out unapproved users when the `active` filter is on 2020-08-10 18:27:39 +04:00
lain 93fbf39954 Merge branch 'revert-a6d3bb5f' into 'develop'
Revert "Merge branch 'issue/1023' into 'develop'"

Closes #2033

See merge request pleroma/pleroma!2868
2020-08-10 13:59:38 +00:00
lain 353f3466d6 Merge branch 'remove-unreachable-code' into 'develop'
Transmogrifier: Remove duplicate code.

See merge request pleroma/pleroma!2871
2020-08-10 13:47:20 +00:00
lain 73af60d02f Merge branch 'develop' into 'develop'
docs: add cmake to other installation guides

Closes #2039

See merge request pleroma/pleroma!2870
2020-08-10 13:47:02 +00:00
lain 517d42646a Merge branch '2039-cmake' into 'develop'
Docs: Add cmake dependency

Closes #2039

See merge request pleroma/pleroma!2869
2020-08-10 13:46:52 +00:00
lain 11fc90744c Transmogrifier: Remove duplicate code. 2020-08-10 15:31:36 +02:00
Alibek Omarov a2f2ba3fbb docs: add cmake to other installation guides 2020-08-10 16:24:45 +03:00
lain 4d76c0ec8b Docs: Add cmake dependency 2020-08-10 15:12:45 +02:00
lain 5c4548d5e7 Revert "Merge branch 'issue/1023' into 'develop'"
This reverts merge request !2763
2020-08-10 13:05:13 +00:00
a1batross 463ba54c03 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-10 15:01:02 +02:00
Ilja bd7bf6cd19 Apply 1 suggestion(s) to 1 file(s) 2020-08-10 11:29:54 +00:00
Ilja a4a2d38640 Apply 1 suggestion(s) to 1 file(s) 2020-08-10 11:29:40 +00:00
rinpatch 00a4980c61 Merge branch 'fix/flaky-migration-episode-666' into 'develop'
20200802170532_fix_legacy_tags: Select only fields the migration needs

See merge request pleroma/pleroma!2863
2020-08-10 09:17:08 +00:00
rinpatch 21dfcafeb1 Merge branch '2038-old-update-info' into 'develop'
AccountController: Build the correct update activity.

Closes #2038

See merge request pleroma/pleroma!2867
2020-08-10 09:04:16 +00:00
rinpatch 15fa3b6bd8 20200802170532_fix_legacy_tags: chunk the user query 2020-08-10 11:56:37 +03:00
rinpatch a818587467 20200802170532_fix_legacy_tags: Select only fields the migration needs
Selecting the full struct will break as soon as a new field is added.
2020-08-10 11:55:58 +03:00
lain 66122a11b5 AccountController: Build the correct update activity.
Will fix federation issues.
2020-08-10 10:33:05 +02:00
lain 0149dd0146 Merge branch 'feat/floki-fast-html-2' into 'develop'
Update to fast_html 2 and use it for Floki parsing

See merge request pleroma/pleroma!2861
2020-08-09 11:18:00 +00:00
lain 7625e50950 Merge branch 'security-policy' into 'develop'
Add security policy for Pleroma backend

Closes #1848

See merge request pleroma/pleroma!2862
2020-08-09 11:06:54 +00:00
lain d0fc48ea67 Merge branch 'develop' into 'feat/floki-fast-html-2'
# Conflicts:
#   config/config.exs
2020-08-09 10:53:58 +00:00
Mark Felder e08ea01d09 Limit expirations for each cron execution to 50.
This should prevent servers from being crushed. 50/min is a pretty good rate.
2020-08-08 12:49:02 -05:00
Mark Felder 761cc5b4a2 Don't filter on local 2020-08-08 12:44:18 -05:00
Mark Felder cf4c97242b Ensure we only expire Create activities with the Mix task 2020-08-08 12:40:52 -05:00
Mark Felder 2e7c5fe2de Add migration to remove invalid activity expirations 2020-08-08 12:33:37 -05:00
a1batross 34056771fd Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-08 17:55:02 +02:00
lain ad29a4f2cf Merge branch 'ensure-expiration-mix-task' into 'develop'
Add mix task to add expiration to all local statuses

Closes #2020

See merge request pleroma/pleroma!2865
2020-08-08 15:16:55 +00:00
Egor Kislitsyn e5557bf8ba
Add mix task to add expiration to all local statuses 2020-08-08 16:29:40 +04:00
Ilja e0dee833f2 Improve static_dir documentation
* It was still written for From Source installs. Now it's both OTP and From Source
* I linked to the cheatsheet where it was about configuration
* I moved the mix tasks of the robot.txt section to the CLI tasks and linked to it
    * i checked the code at https://git.pleroma.social/pleroma/pleroma/-/blob/develop/lib/mix/tasks/pleroma/robotstxt.ex and it doesn't seem to more than just this one command with this option
* I also added the location of robot.txt and an example to dissallow everything, but allow the fediverse.network crawlers
* The Thumbnail section still linked to distsn.org which doesn't exist any more. I changed it to a general statemant that it can be used by external applications. (I don't know any that actually use it.)
* Both the logo and TOS need an extra `static` folder. I've seen confusion about that in #pleroma so I added an Important note.
2020-08-08 12:21:44 +02:00
Alex Gleason 4af1b80381
Clean up account aliases 2020-08-07 17:37:15 -05:00
Alex Gleason 1a5a7ba6e8
Merge remote-tracking branch 'upstream/develop' into aliases 2020-08-07 16:35:15 -05:00
lain 47698fc322 Merge branch 'fix/ldap-auth-issues' into 'develop'
Fix LDAP auth issues

Closes #1646

See merge request pleroma/pleroma!2852
2020-08-07 20:59:44 +00:00
Mark Felder 54e2af8293 Merge branch 'develop' into fix/ldap-auth-issues 2020-08-07 14:55:22 -05:00
Mark Felder 474147a67a Make a new function instead of overloading register_changeset/3 2020-08-07 14:54:14 -05:00
rinpatch 881fdb3a97 Add security policy for Pleroma backend
Closes #1848
2020-08-07 21:27:15 +03:00
Angelina Filippova f21b6ebd5d Merge branch 'feature/update-welcome-setting-in-description' of git.pleroma.social:pleroma/pleroma into feature/update-welcome-setting-in-description 2020-08-07 21:05:44 +03:00
Angelina Filippova 8e1f7a3eff Add new `image` type to settings whose values are image urls 2020-08-07 21:04:13 +03:00
Alex Gleason 673e8e3ac1
Force 204 responses to be empty, fixes #2029 2020-08-07 13:02:39 -05:00
rinpatch 39ca4a23c6 Merge branch 'authenticator-docs' into 'develop'
Docs: Remove wrong / confusing auth docs.

Closes #2028

See merge request pleroma/pleroma!2860
2020-08-07 17:51:48 +00:00
lain 60fe0a08f0 Docs: Remove wrong / confusing auth docs. 2020-08-07 17:59:55 +02:00
rinpatch cb376c4c4c CI: install cmake since fast_html now requires it 2020-08-07 18:06:54 +03:00
lain 199ad47c22 Docs: Add OTP commands to frontend docs. 2020-08-07 17:04:44 +02:00
lain 9cebdf30a4 Merge branch 'spoopy-user' into 'develop'
restricted_nicknames: Add names from MastoAPI endpoints

See merge request pleroma/pleroma!2857
2020-08-07 14:51:26 +00:00
Mark Felder 6ddea8ebe8 Add a note about the proper value for uid 2020-08-07 09:42:10 -05:00
rinpatch 568ded5aa4 Merge branch 'object-age-changelog' into 'develop'
Changelog: Add information about the object age policy

See merge request pleroma/pleroma!2859
2020-08-07 14:21:28 +00:00
lain ebb30128af Changelog: Add information about the object age policy 2020-08-07 16:20:13 +02:00
lain 50d5bdfd31 Mix Task Frontend test: Expand. 2020-08-07 16:03:06 +02:00
rinpatch c662b09eee mix.exs: update fast_sanitize to 0.2.0 2020-08-07 16:45:33 +03:00
rinpatch 7e23a48d38 rel me test: fix HTML so broken browsers (and therefore
lexbor) refuse to parse it like mochiweb does
2020-08-07 16:45:33 +03:00
rinpatch 325c7c924b Make Floki use fast_html 2020-08-07 16:45:33 +03:00
lain de00a4c0f1 Mix Task Frontend Test: Capture IO. 2020-08-07 15:27:41 +02:00
lain d97b76104e Mix Task Frontend: Add tests. 2020-08-07 15:10:34 +02:00
lain b2b9eaa903 Merge branch 'frontend-bundles-downloads' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-07 15:02:16 +02:00
lain e5ab5fbe76 Mix task frontend: Read the docs. 2020-08-07 15:01:08 +02:00
lain 3f88366e2a Apply 1 suggestion(s) to 1 file(s) 2020-08-07 11:07:02 +00:00
lain 34cbe9f44a Merge branch 'features/poll-validation' into 'develop'
Poll and votes pipeline ingestion

Closes #1362 and #1852

See merge request pleroma/pleroma!2635
2020-08-07 10:44:06 +00:00
Maksim Pechnikov 8e90cc58e7 Merge branch 'develop' into feature/update-welcome-setting-in-description 2020-08-07 09:48:34 +03:00
Maksim Pechnikov 6e6276b4f8 added test 2020-08-07 09:47:05 +03:00
Ivan Tashkinov 56ddf20208 Removed unused alias. 2020-08-07 09:43:49 +03:00
Ivan Tashkinov 1298a2ea2c Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	mix.lock
2020-08-07 09:38:05 +03:00
Alex Gleason e639eee82e
restricted_nicknames: Add names from MastoAPI endpoints 2020-08-06 18:01:29 -05:00
lain b9ebb55d2a Merge branch '2025-oauth-login-default-to-all-scopes' into 'develop'
[#2025] Defaulted OAuth login scopes choice to all scopes when user selects no scopes

Closes #2025

See merge request pleroma/pleroma!2855
2020-08-06 16:54:32 +00:00
lain 03da653a12 Description: Refactor. 2020-08-06 16:41:56 +02:00
lain bf95dfb240 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-06 15:22:20 +02:00
Ivan Tashkinov 135ae4e35a [#2025] Defaulted OAuth login scopes choice to all scopes when user selects no scopes. 2020-08-06 16:00:00 +03:00
lain 10b0e55acf Merge branch 'whole-word-filter-hotfix' into 'develop'
Update filter_view.ex to return whole_word actual value

See merge request pleroma/pleroma!2851
2020-08-06 08:35:39 +00:00
lain 4b47d9c5b6 Merge branch 'command-available-check' into 'develop'
#1939  Check command availability for exiftool and git

See merge request pleroma/pleroma!2753
2020-08-06 08:27:10 +00:00
Guy Sheffer 0c4e855663 Add checksum to docker buildx, add aarch/arm64 to the list of platforms 2020-08-06 09:50:10 +03:00
Mary Kate f785dba09b changelog for filter whole_word fix 2020-08-05 15:41:35 -05:00
Mary Kate d6ab9f2132 update test for whole_word in filter 2020-08-05 15:36:25 -05:00
Alex Gleason 24ce9c011c Apply 1 suggestion(s) to 1 file(s) 2020-08-05 19:33:51 +00:00
Alex Gleason cc196e2cd5
Merge remote-tracking branch 'upstream/develop' into restrict-domain 2020-08-05 13:08:31 -05:00
Alex Gleason ad9c925efb
Speed up instance timeline query 2020-08-05 13:08:13 -05:00
Mark Felder cb7879c7c1 Add note about removal of Pleroma.Web.Auth.LDAPAuthenticator fallback to Pleroma.Web.Auth.PleromaAuthenticator 2020-08-05 11:53:57 -05:00
Mark Felder 2a4bca5bd7 Comments are good when they're precise... 2020-08-05 11:40:09 -05:00
Roman Chvanikov 7569f225f1 Move checks to application startup 2020-08-05 19:38:55 +03:00
Mark Felder 81126b0142 Add email to user account only if it exists in LDAP 2020-08-05 11:36:12 -05:00
Roman Chvanikov 4672b61106 Merge branch 'develop' into command-available-check 2020-08-05 19:16:48 +03:00
lain 7755f49e28 Merge branch 'migrate-legacy-tags' into 'develop'
Migrate legacy tags set by AdminFE to match TagPolicy, #2010

See merge request pleroma/pleroma!2836
2020-08-05 16:03:11 +00:00
lain 9688e332d0 Merge branch 'refactor/config-get' into 'develop'
Refactor Pleroma.Config.get to return consistent results for nil values

Closes #2001

See merge request pleroma/pleroma!2853
2020-08-05 15:59:30 +00:00
lain 9d7ce1a6d0 CommonValidations: More refactors. 2020-08-05 17:56:12 +02:00
lain 3655175639 CommonValidations: Refactor `same_domain?` 2020-08-05 17:36:27 +02:00
lain 9c96fc052a CommonValidations: Extract modification right checker 2020-08-05 17:26:53 +02:00
lain 2173945f90 MailerTest: Give it some time. 2020-08-05 17:26:03 +02:00
Roman Chvanikov 8c57a299b4 Handle non-list keys in Config.fetch/1 2020-08-05 18:23:12 +03:00
Mark Felder 2192d1e492 Permit LDAP users to register without capturing their password hash
We don't need it, and local auth fallback has been removed.
2020-08-05 10:07:31 -05:00
Roman Chvanikov 2299bfe4c1 Merge branch 'develop' into refactor/config-get 2020-08-05 17:46:24 +03:00
Roman Chvanikov 97b5701449 Update clear_config macro 2020-08-05 17:46:14 +03:00
Mark Felder d5e4d8a6f3 Define default authenticator in the config 2020-08-05 09:41:17 -05:00
lain 5221879c35 Fix linting. 2020-08-05 15:40:32 +02:00
Mark Felder 0f9aecbca4 Remove fallback to local database when LDAP is unavailable.
In many environments this will not work as the LDAP password and the copy stored in Pleroma will stay synchronized.
2020-08-05 08:18:16 -05:00
Mark Felder f7146583e5 Remove LDAP mail attribute as a requirement for registering an account 2020-08-05 08:15:57 -05:00
lain f889400d05 Questions: Move fixes to validators. 2020-08-05 14:51:33 +02:00
lain b5f0cef156 Apply 1 suggestion(s) to 1 file(s) 2020-08-05 11:33:21 +00:00
lain 70522989d9 Apply 1 suggestion(s) to 1 file(s) 2020-08-05 11:14:58 +00:00
lain 00c4c6a382 CommonValidations: Remove superfluous function
The `is_active` functionality was integrated into the presence
checker.
2020-08-05 12:24:34 +02:00
Roman Chvanikov 6f60ac9f41 Refactor config 2020-08-05 13:00:49 +03:00
lain 19c108170e Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/poll-validation 2020-08-05 11:12:14 +02:00
lain 474aba984f Merge branch 'unique-app-id' into 'develop'
Add unique index for apps.client_id, fixes #2022

Closes #2022

See merge request pleroma/pleroma!2844
2020-08-05 09:08:50 +00:00
lain e8d10237da Merge branch 'fix/incorrect-expirations' into 'develop'
Add a migration to clean up activity_expirations table

See merge request pleroma/pleroma!2848
2020-08-05 08:55:39 +00:00
lain bd157b7369 Merge branch 'fix-link-color' into 'develop'
templates/layout/app.html.eex: fix link color

See merge request pleroma/pleroma!2850
2020-08-05 08:11:58 +00:00
MK Fain f341a8e142 Update filter_view.ex to return whole_word actual value 2020-08-05 02:01:27 +00:00
Karol Kosek 577b11167c
templates/layout/app.html.eex: fix link color 2020-08-05 00:01:30 +02:00
Mark Felder 079e410d6e Add a migration to clean up activity_expirations table 2020-08-04 14:58:42 -05:00
rinpatch b1b6a7dfa8 Merge branch 'deactivated-user-posts' into 'develop'
Deactivated user posts

Closes #2011

See merge request pleroma/pleroma!2845
2020-08-04 19:17:30 +00:00
rinpatch fede37e4c6 Merge branch 'chore/consolidate-rich-media-http' into 'develop'
Consolidate construction of Rich Media Parser HTTP requests

See merge request pleroma/pleroma!2827
2020-08-04 19:16:38 +00:00
Alex Gleason 184742af5e
Unique apps.client_id for new installations, fixes #2022 2020-08-04 13:31:40 -05:00
lain 917aa090f0 Merge branch 'fix/activity-expiration-policy' into 'develop'
Fix ActivityExpirationPolicy

Closes #2019

See merge request pleroma/pleroma!2847
2020-08-04 16:30:09 +00:00
Egor Kislitsyn 91fbb5b21f
Fix ActivityExpirationPolicy 2020-08-04 18:26:37 +04:00
lain b55e26e816 Merge branch 'chore/credo-alias' into 'develop'
Add a simple credo mix alias to run the same checks we use in CI

See merge request pleroma/pleroma!2846
2020-08-04 14:09:23 +00:00
Mark Felder 697e3db01c Add analyze mix alias to run the same credo checks we use in CI 2020-08-04 08:55:40 -05:00
lain 878c7f3f30 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/poll-validation 2020-08-04 15:28:41 +02:00
lain 532d6f94ae Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads 2020-08-04 15:10:36 +02:00
lain 36aa34a1a8 MastodonAPITest: Do the needful 2020-08-04 15:08:51 +02:00
a1batross 903bd5b89e Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-04 14:51:09 +02:00
Haelwenn (lanodan) Monnier 0f088d8ce3
question_validator: Allow content to be an empty-string (blank) 2020-08-04 14:29:16 +02:00
lain 1a00713744 CommonValidations: Treat deactivated users as not present. 2020-08-04 14:17:03 +02:00
lain 0cfadcf2ca TransmogrifierTest: Add test for deactivated users 2020-08-04 14:15:32 +02:00
Angelina Filippova 8bb5441547 Update descriptions in :frontends group 2020-08-04 15:10:44 +03:00
lain e92c040ad3 CommonAPITest: Add test that deactivated users can't post. 2020-08-04 14:08:12 +02:00
lain 988ca4ab6a Test Config: Don't have any MRFs by default 2020-08-04 14:07:10 +02:00
lain 953f71bcfa App Test: Make more resilient 2020-08-04 13:38:30 +02:00
Roman Chvanikov 56e9bf3393 Unify Config.get behaviour for atom/list key param 2020-08-04 14:35:47 +03:00
lain 28584bb224 Merge branch 'email-blacklist' into 'develop'
Add email blacklist, fixes #1404

Closes #1404

See merge request pleroma/pleroma!2837
2020-08-04 11:00:30 +00:00
lain 2f4289d455 Changelog: Add info about email blacklist 2020-08-04 12:49:56 +02:00
Alex Gleason 4f57e85ab9
Email blacklist: Update phrasing again 2020-08-03 22:20:49 -05:00
Alex Gleason 058daf498f
Email blacklist: Update response phrasing 2020-08-03 19:57:53 -05:00
Angelina Filippova 63b1ca6a07 Add label to :restrict_unauthenticated setting, fix typos 2020-08-04 02:21:25 +03:00
Angelina Filippova ae95472dcc Update :welcome settings description 2020-08-04 02:04:29 +03:00
Angelina Filippova 1489c2ae5f Fix :args settings description in Upload.Filter.Mogrify group 2020-08-04 01:45:18 +03:00
lain e3953923ac Merge branch 'fixes_1957_add_option_to_send_user_chatmessage_instead_of_dm' into 'develop'
fixes 1957 Add option to send user chatmessage instead of dm

Closes #1957

See merge request pleroma/pleroma!2782
2020-08-03 21:01:56 +00:00
a1batross 109ac74725 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-03 22:23:58 +02:00
Ilja cbf8bfc694 Improved WelcomeChatMessageTest
* Checks if message is the same using ==/2 instead of =~/2
2020-08-03 20:13:43 +02:00
Mark Felder 016d8d6c56 Consolidate construction of Rich Media Parser HTTP requests 2020-08-03 12:37:31 -05:00
Ilja 13e5540c2c Apply 1 suggestion(s) to 1 file(s) 2020-08-03 16:44:56 +00:00
lain e26f2c9135 Changelog: Update with frontend mix task. 2020-08-03 18:23:26 +02:00
lain 8b1da33a54 Docs: Add info about installing from a local path. 2020-08-03 17:50:53 +02:00
lain 5c2745725e Docs: Document installation of frontends
Co-authored-by: Roman Chvanikov <chvanikoff@pm.me>
2020-08-03 17:44:59 +02:00
lain 187d9bda0f Description: Add new fields for frontend configuration. 2020-08-03 16:39:01 +02:00
lain 56b5b9aa27 Merge branch 'follower-mrf-again' into 'develop'
Follower mrf again

See merge request pleroma/pleroma!2833
2020-08-03 14:22:11 +00:00
lain de3bdc63ad AccountControllerTest: Add test for message returned. 2020-08-03 15:00:14 +02:00
lain 66ebd88634 Merge branch 'config/default_ok_oldage' into 'develop'
config: :mrf, :policies default to ObjectAgePolicy

Closes #2000

See merge request pleroma/pleroma!2814
2020-08-03 12:50:29 +00:00
lain 5876d5123c Merge branch 'object-age-fix' into 'develop'
MRF Object Age Policy: Don't break on messages without cc/to

See merge request pleroma/pleroma!2840
2020-08-03 12:50:10 +00:00
lain 10c792110e MRF Object Age Policy: Don't break on messages without cc/to 2020-08-03 14:12:32 +02:00
lain e45e07d2b5 Merge branch 'indigenous-client' into 'develop'
Add indigenous to clients

See merge request pleroma/pleroma!2835
2020-08-03 11:37:55 +00:00
lain 8fcbfd961d Merge branch 'reportnote-test' into 'develop'
ReportNote test

Closes #2014

See merge request pleroma/pleroma!2839
2020-08-03 09:55:56 +00:00
Alex Gleason f9301044ed
Add ReportNote test 2020-08-02 17:45:15 -05:00
Alex Gleason 77b48cb4ce
Factory: Add report_activity_factory 2020-08-02 16:36:55 -05:00
Alex Gleason dc88b6f091
Add email blacklist, fixes #1404 2020-08-02 14:53:42 -05:00
Alex Gleason c2c3dd4613
Migrate legacy tags set by AdminFE to match TagPolicy, #2010 2020-08-02 13:42:23 -05:00
swentel 0012894d4e Add indigenous to clients 2020-08-02 19:33:22 +02:00
Alex Gleason e9cff69bce
Add TagPolicy as default MRF, #2010 2020-08-02 12:24:40 -05:00
Ilja f671d7e68c Add welcome chatmessages
* I added the option in config/config.exs
* created a new module lib/pleroma/user/welcome_chat_message.ex
* Added it to the registration flow
* added to the cheatsheet
* added to the config/description.ex
* added to the Changelog.md
2020-08-02 15:54:59 +02:00
a1batross 3be312d6f0 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-08-02 12:45:24 +02:00
Alex Gleason cb1e3893aa
SimpleMRF: Add missing :followers_only to config.exs 2020-08-01 16:08:29 -05:00
lain 70951d042b Merge branch '1985-unobtrusive-autologin-on-registration' into 'develop'
[#1985] Prevented force login on registration if account approval and/or email confirmation needed

Closes #1985

See merge request pleroma/pleroma!2823
2020-08-01 15:58:17 +00:00
rinpatch 69b9c328c9 Merge branch 'fix/gun-nxdomain-no-error-tuple' into 'develop'
ConnectionPool: fix gun open errors being returned without an error tuple

Closes #2008

See merge request pleroma/pleroma!2832
2020-08-01 15:17:41 +00:00
rinpatch 45be1fe00e ConnectionPool: fix gun open errors being returned without an error tuple
When gun shuts down due to the host being unreachable, the worker
process shuts down with the same shutdown reason since they are linked.
Gun doesn't have error tuples in it's shutdown reason though, so we need
to handle it in get_conn.

Closes #2008
2020-08-01 18:02:26 +03:00
rinpatch 3a6a4dd77a Merge branch 'fix/gun-limiter' into 'develop'
Fix ConnecitonPool deadlocking after reaching the connection limit

Closes #1977

See merge request pleroma/pleroma!2830
2020-08-01 10:49:35 +00:00
rinpatch 87180ff817 Fix ConnecitonPool deadlocking after reaching the connection limit
The issue was with ConcurrentLimiter not decrementing counters on
overload. It was fixed in the latest commit, but concurrentlimiter
version wasn't updated in Pleroma for some reason.

Closes #1977
2020-08-01 12:18:56 +03:00
rinpatch f1f4b1863f Merge branch 'fix/user-agent-overriding' into 'develop'
Don't override user-agent header if it's been set

Closes #1923

See merge request pleroma/pleroma!2829
2020-08-01 07:25:32 +00:00
Roman Chvanikov 4bf44b7d65 Don't override user-agent header if it's been set 2020-08-01 10:04:25 +03:00
lain 7e01339ddd Frontend mix task: Support installation from local file. 2020-07-31 17:58:50 +02:00
lain 4b18a07392 Revert "Merge branch 'revert-1ac0969c' into 'develop'"
This reverts merge request !2825
2020-07-31 15:18:04 +00:00
lain 8ca993c789 Merge branch 'revert-1ac0969c' into 'develop'
Revert "Merge branch 'mrf-silence-2' into 'develop'"

See merge request pleroma/pleroma!2825
2020-07-31 15:17:33 +00:00
lain 010d77ec85 Revert "Merge branch 'mrf-silence-2' into 'develop'"
This reverts merge request !2820
2020-07-31 15:17:09 +00:00
lain 1ac0969c72 Merge branch 'mrf-silence-2' into 'develop'
MRF silencing alternative solution

See merge request pleroma/pleroma!2820
2020-07-31 14:43:33 +00:00
a1batross a9b7355bc1 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-31 14:11:45 +02:00
Haelwenn (lanodan) Monnier ac2598307d
Merge remote-tracking branch 'pleroma/develop' into features/poll-validation 2020-07-31 13:57:21 +02:00
Ivan Tashkinov 27b0a8b155 [#1985] Prevented force login on registration if account approval and/or email confirmation needed.
Refactored login code in OAuthController, reused in AccountController. Added tests.
2020-07-31 14:13:38 +03:00
lain 37b9e5e138 Apply 1 suggestion(s) to 1 file(s) 2020-07-31 10:29:16 +00:00
Haelwenn (lanodan) Monnier 0309514656
Default MRF to ObjectAgePolicy, 7 days threshold 2020-07-31 12:13:08 +02:00
lain a1a43f39dc Merge branch 'deactivate-gun-again' into 'develop'
Config: Default to Hackney again

See merge request pleroma/pleroma!2821
2020-07-31 09:11:24 +00:00
lain 7bcd2e948e Config: Default to Hackney again
Gun is still acting up.
2020-07-31 10:50:45 +02:00
lain 1dd162a5f7 SimplePolicy: Fix problem with DM leaks. 2020-07-31 09:57:30 +02:00
feld ac0a8dfdd4 Merge branch 'chore/fix-docs-typo' into 'develop'
Fix example json response

See merge request pleroma/pleroma!2819
2020-07-30 21:25:30 +00:00
Mark Felder 052833f8ee Fix example json response 2020-07-30 15:57:41 -05:00
feld 09aef71db9 Merge branch 'fix/configdb-otp-instructions' into 'develop'
OTP users need Pleroma running to execute pleroma_ctl, so reorganize instructions.

See merge request pleroma/pleroma!2817
2020-07-30 20:28:28 +00:00
Haelwenn d1cf1108ac Merge branch 'render-preview-cards-in-chats' into 'develop'
Render preview cards in chats

See merge request pleroma/pleroma!2816
2020-07-30 20:08:03 +00:00
Haelwenn 87fe31fb5c Merge branch '1993-confirm-users-on-registration' into 'develop'
AccountController: Don't explicitly ask to keep users unconfirmed.

Closes #1993

See merge request pleroma/pleroma!2809
2020-07-30 20:01:04 +00:00
Mark Felder 24169ae2e6 Merge branch 'develop' into fix/configdb-otp-instructions 2020-07-30 13:04:49 -05:00
lain a3c37379e9 ChatMessage schema: Add preview cards. 2020-07-30 19:57:45 +02:00
lain 781b270863 ChatMessageReferenceView: Display preview cards. 2020-07-30 19:57:26 +02:00
Mark Felder cfc6484c40 OTP users need Pleroma running to execute pleroma_ctl, so reorganize instructions. 2020-07-30 12:37:56 -05:00
feld 16b7b494ba Merge branch 'chore/fix-configdb-docs-formatting' into 'develop'
Attempt to fix markdown formatting

See merge request pleroma/pleroma!2815
2020-07-30 17:29:31 +00:00
Mark Felder 1f24186036 Attempt to fix markdown formatting 2020-07-30 12:01:46 -05:00
lain 873ff5ce14 Merge branch 'hide-reactions' into 'develop'
Let favourites and emoji reactions optionally be hidden

See merge request pleroma/pleroma!2804
2020-07-30 12:41:47 +00:00
lain e2e66e50d3 SimplePolicyTest: Add test for leaking DMs. 2020-07-30 14:29:00 +02:00
a1batross 2708d3f6d1 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-30 14:27:30 +02:00
lain 99bfdffb1d Config: Add kenoma as available frontend. 2020-07-30 14:17:58 +02:00
lain 4ce4d799fd Config: Add frontend information. 2020-07-30 14:14:58 +02:00
lain 2e20ceee52 Mix tasks: Add frontend task to download and install frontends.
Co-authored-by: Roman Chvanikov <chvanikoff@pm.me>
2020-07-30 14:12:41 +02:00
lain d39b72c8fa Merge branch 'feature/captcha-expose-timeout' into 'develop'
Expose seconds_valid in Pleroma Captcha API endpoint

Closes #1954

See merge request pleroma/pleroma!2812
2020-07-30 08:41:46 +00:00
lain 20d89472e3 Apply 1 suggestion(s) to 1 file(s) 2020-07-30 08:00:07 +00:00
lain a0623c5db2 Merge branch 'issue/1933-update-dependency' into 'develop'
[#1933] update dependency

See merge request pleroma/pleroma!2813
2020-07-30 07:57:26 +00:00
Maksim Pechnikov 56171cbde6 set versions 2020-07-30 09:23:35 +03:00
Maksim Pechnikov b261135683 updated `cors_plug` 2020-07-30 09:12:42 +03:00
Maksim Pechnikov aac7e0314e set `postgrex` version 2020-07-30 09:08:50 +03:00
Maksim Pechnikov 4f10ef5e46 set `web_push_encryption` version 2020-07-30 09:08:03 +03:00
Maksim Pechnikov df82839c30 updated `calendar` package 2020-07-30 08:58:19 +03:00
Maksim Pechnikov cff7bb5cd4 Merge branch 'develop' into issue/1933-update-dependency 2020-07-30 08:52:13 +03:00
Mark Felder 33f0427809 Expose seconds_valid in Pleroma Captcha API endpoint 2020-07-29 16:07:22 -05:00
Alex Gleason 702f0fb822
Merge remote-tracking branch 'upstream/develop' into mrf-silence 2020-07-29 13:01:16 -05:00
Alex Gleason 93638935d7
SimpleMRF: :silence --> :followers_only 2020-07-29 12:58:08 -05:00
Alex Gleason 00d090004e
:show_reactions, refactor the other test 2020-07-29 12:50:11 -05:00
Alex Gleason 026a51cb27
:show_reactions, add CHANGELOG.md, refactor test 2020-07-29 12:45:32 -05:00
Alex Gleason d8a01c9432
Merge remote-tracking branch 'upstream/develop' into hide-reactions 2020-07-29 12:43:39 -05:00
lain d249f91b3f Descriptions: Update with admin frontend info 2020-07-29 16:27:11 +02:00
lain dc36d6e9d2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-admin 2020-07-29 16:24:22 +02:00
lain a6d3bb5f30 Merge branch 'issue/1023' into 'develop'
[#1023] added generated  `pleroma.env`

See merge request pleroma/pleroma!2763
2020-07-29 13:45:15 +00:00
lain d9bf2c58df Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1993-confirm-users-on-registration 2020-07-29 14:42:09 +02:00
Haelwenn 269b61a240 Merge branch '1996-dont-break-on-chatmessages' into 'develop'
EnsureRePrepended: Don't break on chat messages.

Closes #1996

See merge request pleroma/pleroma!2808
2020-07-29 12:20:04 +00:00
lain de5c7e20a3 Merge branch 'bugfix/remote-user-atom' into 'develop'
feed/user_controller: Return 404 when the user is remote

Closes #1911

See merge request pleroma/pleroma!2811
2020-07-29 12:16:20 +00:00
Haelwenn (lanodan) Monnier 2e27847573
feed/user_controller: Return 404 when the user is remote 2020-07-29 14:02:02 +02:00
lain 79f9ddd8b7 Merge branch 'by-approval' into 'develop'
Registrations "by approval" mode

Closes #1931

See merge request pleroma/pleroma!2757
2020-07-29 11:27:26 +00:00
lain f715bf1915 Changelog: Include frontend information. 2020-07-29 13:09:42 +02:00
lain 54afb35685 Cheatsheet: Update frontends information. 2020-07-29 13:06:51 +02:00
lain e2f82968e8 Config: Update frontend config example 2020-07-29 13:04:29 +02:00
lain 66974e17a0 Endpoint: Serve a dynamically configured admin interface 2020-07-29 13:03:04 +02:00
lain 6a25f72a75 FrontendStatic: Work correctly for other frontend types. 2020-07-29 13:02:48 +02:00
lain c25c21dd22 AccountController: Don't explicitly ask to keep users unconfirmed.
Confirmation is set in User.register_changeset based on the config
settings.
2020-07-29 11:47:03 +02:00
lain edf8b6abfe EnsureRePrepended: Don't break on chat messages. 2020-07-29 10:53:08 +02:00
Maksim Pechnikov cd2423d7f5 update mogrify package 2020-07-29 09:22:49 +03:00
Maksim Pechnikov b4603a9c9c set http_signatures version 2020-07-29 07:23:06 +03:00
Maksim Pechnikov d6e36aaf06 set `jason` version 2020-07-29 07:13:59 +03:00
Maksim Pechnikov 88f57418c8 updated `pot` package 2020-07-29 07:02:36 +03:00
Maksim Pechnikov 992a271196 updated the minor version packages 2020-07-29 07:00:27 +03:00
Maksim Pechnikov ed881247b7 set swoosh version 2020-07-29 06:50:00 +03:00
Maksim Pechnikov 15b8446cdb updated dev & test packages 2020-07-29 06:47:56 +03:00
Alex Gleason 2a99e7df8e
SimpleMRF silence: optimize, work okay with nil values in addressing 2020-07-28 20:32:58 -05:00
Alex Gleason 3c90f7f715
SimpleMRF: Let instances be silenced 2020-07-28 19:06:42 -05:00
rinpatch 93dbba9b8a Merge branch 'fix/gun-pool-missing-cast' into 'develop'
gun ConnectionPool: Re-add a missing cast for remove_client

See merge request pleroma/pleroma!2805
2020-07-28 21:16:45 +00:00
rinpatch dab1d8c98e gun ConnectionPool: Re-add a missing cast for remove_client 2020-07-28 23:48:41 +03:00
Alex Gleason 3b7c454418
Let favourites and emoji reactions optionally be hidden 2020-07-28 14:58:30 -05:00
rinpatch f462f1c101 Merge branch 'gun-replace-cast-with-call' into 'develop'
gun ConnectionPool: replace casts with calls

See merge request pleroma/pleroma!2803
2020-07-28 19:13:54 +00:00
rinpatch 4ce6179dc7 gun ConnectionPool: replace casts with calls
The slowdown from this is most likely immesurable, however it eliminates
possible false positives when tracking dead clients.
2020-07-28 20:49:48 +03:00
lain 7f76700baf Merge branch 'chore/frontends-config-clarification' into 'develop'
Clarify location of frontends directory

See merge request pleroma/pleroma!2802
2020-07-28 17:32:18 +00:00
Mark Felder bee29f6610 Clarify location of frontends directory 2020-07-28 12:10:04 -05:00
lain 165ea038bd Merge branch 'frontend-bundles-redux' into 'develop'
Changeable frontends MVP

See merge request pleroma/pleroma!2801
2020-07-28 16:45:21 +00:00
lain 81350faa8e Cheatsheet: Add even more info. 2020-07-28 17:50:32 +02:00
lain 393128fb02 Cheatsheet: Add more info. 2020-07-28 17:48:35 +02:00
lain 08732e8a03 Docs: Add frontend info to cheat sheet. 2020-07-28 17:46:37 +02:00
Roman Chvanikov d64c976390 Add description for configuration. 2020-07-28 17:40:21 +02:00
lain ad5c42628a FrontendStatic: Add plug to serve frontends based on configuration. 2020-07-28 17:35:16 +02:00
lain 14c28dcbd1 InstanceStatic: Refactor. 2020-07-28 15:44:47 +02:00
lain 68b3372345 Merge branch 'issue/1986-earmark' into 'develop'
[#1986] locked the earmark version

See merge request pleroma/pleroma!2800
2020-07-28 08:40:20 +00:00
lain e5ac9534aa Merge branch 'cleanup/masto_fe-default_settings' into 'develop'
masto_fe_view: Remove @default_settings

See merge request pleroma/pleroma!2799
2020-07-28 07:41:44 +00:00
Maksim Pechnikov 3e5fb90eaa locked earmark version 2020-07-28 07:00:02 +03:00
Alex Gleason f688c8df82
Fix User.registration_reason HTML sanitizing issues 2020-07-27 20:36:31 -05:00
Alex Gleason f43518eb74
Lint, fix test 2020-07-27 19:22:31 -05:00
Haelwenn 057936bf0b Merge branch 'embedded-object-federation' into 'develop'
Embedded object federation

Closes #1959

See merge request pleroma/pleroma!2794
2020-07-27 21:20:52 +00:00
Alex Gleason 520dce857e
Add :registration_reason_length to description.exs 2020-07-27 15:24:20 -05:00
Alex Gleason 6f44a0ee84
Add configurable registration_reason limit 2020-07-27 15:13:34 -05:00
Alex Gleason 6747bf2e16
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-27 12:29:18 -05:00
lain e1a1c8e7de Merge branch 'develop' into 'cleanup/masto_fe-default_settings'
# Conflicts:
#   lib/pleroma/web/views/masto_fe_view.ex
2020-07-27 16:35:47 +00:00
Haelwenn (lanodan) Monnier 4a6389316d
masto_fe_view: Remove @default_settings 2020-07-27 17:59:13 +02:00
lain 9e6f4694dd Pipeline: Unify embedded_object / object_data, move to validator. 2020-07-27 16:39:50 +02:00
lain 762c9ea564 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into embedded-object-federation 2020-07-27 16:19:45 +02:00
lain 2a3abfd326 Merge branch 'issue/1934-welcome-email' into 'develop'
[#1934] welcome email

See merge request pleroma/pleroma!2786
2020-07-27 12:34:36 +00:00
lain 0d5d1c62ef Apply 1 suggestion(s) to 1 file(s) 2020-07-27 12:24:41 +00:00
Haelwenn 64b21cee14 Merge branch 'fix/reverse-proxy-no-body-connection-leak' into 'develop'
ReverseProxy: Fix a gun connection leak when there is an error with no body

See merge request pleroma/pleroma!2798
2020-07-27 08:20:46 +00:00
Haelwenn 58c09a8258 Merge branch 'fix/update-types-in-link-formatter' into 'develop'
Update types in Pleroma.Formatter group in description.exs

See merge request pleroma/pleroma!2796
2020-07-27 08:11:07 +00:00
Alex Gleason 6931dbfa58
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-26 15:46:14 -05:00
rinpatch 6bf8eee5f9 ReverseProxy tesla client: remove handling of old_conn
This is no longer relevant because we use a custom
FollowRedirects middleware now
2020-07-26 20:52:00 +03:00
rinpatch a7616dec8c Merge branch 'patch-3' into 'develop'
OpenAPI: Replace actor_id by account_id to follow ChatMessage schema

See merge request pleroma/pleroma!2797
2020-07-26 16:38:57 +00:00
rinpatch d4fbec62a3 ReverseProxy: Fix a gun connection leak when there is an error with no
body

- Modify `close/1` function to do the same thing it does for hackney,
which is - close the client rather than the whole connection
- Release the connection when there is no body to chunk
2020-07-26 19:30:17 +03:00
Alibek Omarov 6107440ea0 OpenAPI: remove accidentally pasted buffer data 2020-07-26 13:59:46 +00:00
Alibek Omarov b31844d6e0 OpenAPI: Replace actor_id by account_id to follow ChatMessage schema 2020-07-26 13:54:56 +00:00
lain ce9647aed7 Merge branch 'fix/mix-tasks' into 'develop'
Fix/mix tasks

Closes #1972 and #1970

See merge request pleroma/pleroma!2795
2020-07-26 11:47:18 +00:00
Angelina Filippova 4d80cf5409 Update types in Pleroma.Formatter group 2020-07-26 01:48:50 +03:00
Maksim Pechnikov 643664d583 added migrate old settings to new 2020-07-25 09:16:43 +03:00
Mark Felder 65a1b048a8 Ensure Oban is available during mix tasks.
Fixes: mix pleroma.user rm username
2020-07-24 12:06:56 -05:00
Mark Felder 9be6668236 Fix mix tasks that make HTTP calls by starting the Gun connection pool 2020-07-24 12:05:42 -05:00
a1batross 59b09042b9 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-24 15:12:23 +02:00
Lain Soykaf 1dd6de03ee CommonAPI Tests: Check that undoing objects federates them as embeds. 2020-07-24 14:54:13 +02:00
Lain Soykaf 3d13fb05f8 Side Effects: On undoing, put information about the undone object. 2020-07-24 14:40:22 +02:00
Lain Soykaf 91f3cf9bc6 Pipeline: Add embedded object federation. 2020-07-24 14:06:41 +02:00
Maksim Pechnikov 61ef1fca4b remove duplicate module 2020-07-24 08:35:06 +03:00
feld 51627a10e5 Merge branch 'unblock-domain-via-query' into 'develop'
Allow unblocking a domain via query params

Closes #1971

See merge request pleroma/pleroma!2783
2020-07-23 20:06:11 +00:00
Mark Felder 4bfad0b483 Support blocking via query parameters as well and document the change. 2020-07-23 12:59:40 -05:00
feld a74951a3b0 Merge branch 'feature/add-mrf-related-policies' into 'develop'
Add MRF related policies field to description.exs

See merge request pleroma/pleroma!2790
2020-07-23 17:23:18 +00:00
Haelwenn 6100b90209 Merge branch '1976-status-view-fixes' into 'develop'
StatusView: Handle badly formatted emoji reactions.

Closes #1976

See merge request pleroma/pleroma!2788
2020-07-23 16:58:36 +00:00
Maksim Pechnikov 67ab9a7928 Merge branch 'develop' into issue/1934-welcome-email 2020-07-23 16:36:27 +03:00
lain 76aa49a0c5 Merge branch '1973-chats-fix-with-restrict-unauthenticated' into 'develop'
[#1973] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated setting

Closes #1973

See merge request pleroma/pleroma!2791
2020-07-23 12:52:02 +00:00
Ivan Tashkinov 9ea51a6de5 [#2791] AccountView: renamed `:force` option to `:skip_visibility_check`. 2020-07-23 15:08:30 +03:00
lain b2ba70eec4 Merge branch 'bugfix/mrf-reject-logging' into 'develop'
Fix #783: Make MRF reject log as info level instead of error

Closes #783

See merge request pleroma/pleroma!2758
2020-07-23 11:08:29 +00:00
lain 250e0369c7 Merge branch 'issue/1878' into 'develop'
[#1878] fix reset confirmation email in admin section

See merge request pleroma/pleroma!2751
2020-07-23 10:56:33 +00:00
lain a81581472f Merge branch 'linkify' into 'develop'
Fix Linkify

See merge request pleroma/pleroma!2792
2020-07-23 10:28:52 +00:00
Maksim Pechnikov 7991ddad58 added warning to use old keys 2020-07-23 09:01:37 +03:00
Alex Gleason b6488a4db4
Update linkify migration tests to use config from ConfigDB 2020-07-22 16:11:53 -05:00
Alex Gleason c7a0016f9f
Migration to fix malformed Pleroma.Formatter config 2020-07-22 14:32:45 -05:00
Alex Gleason b87a1f8eaf
Refactor require_migration/1 into a test helper function 2020-07-22 14:32:44 -05:00
Alex Gleason 67389b77af
Add AutolinkerToLinkify migration test 2020-07-22 14:32:24 -05:00
Alex Gleason 7045db5a50
Fix linkify ConfigDB migration 2020-07-22 11:38:55 -05:00
Ivan Tashkinov 6f5f7af607 [#1973] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated.
Made `Pleroma.Web.MastodonAPI.AccountView.render("show.json", _)` demand :for or :force option in order to prevent incorrect rendering of empty map instead of expected user representation with truish :restrict_unauthenticated setting.
2020-07-22 19:06:00 +03:00
Angelina Filippova 188b0dc72d Add related_policy field 2020-07-22 18:15:30 +03:00
lain 1c9752cff4 Merge branch 'fix/pleroma-api-emoji-packs' into 'develop'
Fix /api/pleroma/emoji/packs index endpoint.

See merge request pleroma/pleroma!2777
2020-07-22 15:09:32 +00:00
Guy Sheffer f9e8a94106 Add multiarch support to docker container, fixes https://git.pleroma.social/pleroma/pleroma-docker-compose/-/issues/2 2020-07-22 17:26:36 +03:00
Maksim Pechnikov db0224d174 added check user email for welcome email 2020-07-22 16:00:49 +03:00
Lain Soykaf 0cb9e1da74 StatusView: Handle badly formatted emoji reactions. 2020-07-22 14:44:06 +02:00
Maksim Pechnikov 5879d36854 fix sender for welcome email 2020-07-22 15:34:47 +03:00
a1batross 35fc40fc78 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-22 13:35:21 +02:00
lain 96f023be5c Merge branch 'bugfix/limiter_git_url' into 'develop'
mix.exs: Append .git to git repo URLs

Closes #1980

See merge request pleroma/pleroma!2787
2020-07-22 11:22:34 +00:00
Haelwenn (lanodan) Monnier c8fe0321b0
mix.exs: Append .git to git repo URLs
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/1980
2020-07-22 12:00:07 +02:00
Maksim Pechnikov 8d6f7aec21 Merge branch 'develop' into issue/1023 2020-07-22 09:24:16 +03:00
Maksim Pechnikov b620290dd9 update description 2020-07-22 09:20:00 +03:00
Maksim Pechnikov 7cafb96c02 added tests 2020-07-22 08:58:06 +03:00
Mark Felder b157b7dab3 Document the emoji packs API fix 2020-07-21 17:29:11 -05:00
Mark Felder 109836306c Test that Emoji Packs can be listed when instance is not public 2020-07-21 17:27:13 -05:00
Mark Felder 341a8f3500 Skip the correct plug 2020-07-21 17:26:59 -05:00
lain 5b1eeb06d8 Revert "Merge branch 'revert-2b5d9eb1' into 'develop'"
This reverts merge request !2784
2020-07-21 22:18:17 +00:00
lain c36113cdf5 Merge branch 'revert-2b5d9eb1' into 'develop'
Revert "Merge branch 'linkify' into 'develop'"

See merge request pleroma/pleroma!2784
2020-07-21 22:18:02 +00:00
lain 696c13ce54 Revert "Merge branch 'linkify' into 'develop'"
This reverts merge request !2677
2020-07-21 22:17:34 +00:00
Mark Felder 97c60b6a43 Merge branch 'develop' into fix/pleroma-api-emoji-packs 2020-07-21 16:25:45 -05:00
lain 2b5d9eb105 Merge branch 'linkify' into 'develop'
AutoLinker --> Linkify, update to latest version

See merge request pleroma/pleroma!2677
2020-07-21 19:35:43 +00:00
lain fa2421dd7e Merge branch 'gopher-fix' into 'develop'
Gopher: using atom keys in search params

See merge request pleroma/pleroma!2775
2020-07-21 19:31:03 +00:00
Ivan Tashkinov b8021016eb [#2497] Resolved merge conflicts. 2020-07-21 20:03:14 +03:00
Egor Kislitsyn bdb3375933
Allow unblocking a domain via query params 2020-07-21 16:06:46 +04:00
Alexander Strizhakov 6afc6717d6
copy tmp file if test depends on it 2020-07-21 10:31:58 +03:00
Maksim Pechnikov 3edaecae96 added welcome email 2020-07-21 09:25:53 +03:00
Alex Gleason 204dddcfaa
Pleroma.Formatter can have partial updates 2020-07-20 13:45:05 -05:00
a1batross ca2596d29c Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-20 19:06:04 +02:00
Alex Gleason 5d263dfdb3
Update linkify to latest release 2020-07-20 09:29:03 -05:00
Haelwenn 1b82b7eac9 Merge branch 'patch-1' into 'develop'
fix markdown rendering withing <details>; typo parent**s**_visible

See merge request pleroma/pleroma!2781
2020-07-20 13:52:56 +00:00
Dym Sohin 531c3ab9f3 fix markdown rendering withing <details>; typo parent**s**_visible 2020-07-20 11:41:43 +00:00
Ivan Tashkinov bdf57b8ef4 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	config/config.exs
#	lib/pleroma/web/media_proxy/media_proxy.ex
#	mix.lock
#	test/web/media_proxy/media_proxy_test.exs
2020-07-19 20:05:37 +03:00
Alex Gleason afa8b469ed
Allow restricting public timeline by instance 2020-07-18 19:35:07 -05:00
Alex Gleason ae74c52e22
Test angry face in formatter D:< #1968 2020-07-18 15:26:23 -05:00
a1batross 6bedfd81fa Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-18 20:56:37 +02:00
feld f0d13fc3f7 Merge branch 'fix/followredirects-hackney' into 'develop'
Don't enable Pleroma.HTTP.Middleware.FollowRedirects unless Gun is used

Closes #1966 and #1961

See merge request pleroma/pleroma!2778
2020-07-18 16:49:30 +00:00
href 4bac25e6f5 Don't enable Pleroma.HTTP.Middleware.FollowRedirects unless Gun is used 2020-07-18 13:17:38 +02:00
KokaKiwi 7ce722ce3e
Fix /api/pleroma/emoji/packs index endpoint. 2020-07-18 12:55:04 +02:00
Alex Gleason bd1e2e3a58
Validate alias IDs 2020-07-17 19:17:15 -05:00
Alex Gleason d0eb43b58b
Add account aliases 2020-07-17 16:17:49 -05:00
Haelwenn 10d46235cf Merge branch 'fix-1958' into 'develop'
OpenAPI: Add :id to follower/following endpoints, fixes #1958

Closes #1958

See merge request pleroma/pleroma!2772
2020-07-17 18:54:30 +00:00
Alex Gleason 48f8b26c92
OpenAPI: Add :id to follower/following endpoints, fixes #1958 2020-07-17 12:35:28 -05:00
Alex Gleason 15f8921b11
Test that unapproved users can never log in regardless of admin settings 2020-07-17 12:26:52 -05:00
Alex Gleason 5756843736
Fully delete users with status :approval_pending 2020-07-17 12:19:41 -05:00
Haelwenn b782739ffe Merge branch 'feature/expose-post-formats' into 'develop'
Expose the post formats in /api/v1/instance

See merge request pleroma/pleroma!2776
2020-07-17 16:52:59 +00:00
Mark Felder 20a496d2cb Expose the post formats in /api/v1/instance 2020-07-17 10:45:41 -05:00
Alexander Strizhakov af376cbffb
using atom keys in search params 2020-07-17 18:06:05 +03:00
feld 64b4de4af1 Merge branch 'feature/totp-input-improvements' into 'develop'
Improve TOTP token and recovery input fields in OAuth login

See merge request pleroma/pleroma!2769
2020-07-17 14:36:38 +00:00
Mark Felder 62438530e2 TOTP length is configurable, so we can't hardcode this here. 2020-07-17 08:19:49 -05:00
rinpatch a3fdd1446f Merge branch 'chore/issue-template-remove-tasks' into 'develop'
Bug issue template: remove choice in "Installation type"

See merge request pleroma/pleroma!2774
2020-07-17 08:05:16 +00:00
rinpatch 2a3bb23091 Bug issue template: remove choice in "Installation type"
It made gitlab display "1 of 2 tasks completed" when one is chosen,
which is totally not what this was used for.
2020-07-17 11:03:47 +03:00
Alex Gleason 5e74556703
Sanitize `reason` param in POST /api/v1/accounts 2020-07-16 20:25:53 -05:00
Alex Gleason 613e096389
Migrate :auto_linker --> Pleroma.Formatter in ConfigDB 2020-07-16 16:35:03 -05:00
Alex Gleason 880301985b
Formatter: Test link with local mention 2020-07-16 16:34:43 -05:00
Alex Gleason 5701840d30
Use updated Linkify from git 2020-07-16 15:01:13 -05:00
Alex Gleason 6fdaee7cae
description.exs typofixes 2020-07-16 14:52:48 -05:00
Alex Gleason 38425ebdbf
Merge remote-tracking branch 'upstream/develop' into linkify 2020-07-16 14:51:36 -05:00
Mark Felder 3be64556db Improve TOTP token and recovery input fields in OAuth login 2020-07-16 13:11:03 -05:00
Maksim Pechnikov 5fcb3e8738 fix docs 2020-07-16 16:35:09 +03:00
Maksim 16da9f5cfd Apply 1 suggestion(s) to 1 file(s) 2020-07-16 13:30:28 +00:00
Maksim c72676d22f Apply 1 suggestion(s) to 1 file(s) 2020-07-16 13:30:17 +00:00
Maksim Pechnikov 6c59fe259d Merge branch 'develop' into issue/1023 2020-07-16 08:53:21 +03:00
Maksim Pechnikov 4e0e19a706 update task messages 2020-07-16 08:52:14 +03:00
feld 3a2b2cb6f2 Merge branch 'refactor/gun-pool-registry' into 'develop'
Refactor gun pooling and simplify adapter option insertion

Closes #1834, #1700, and #1680

See merge request pleroma/pleroma!2479
2020-07-15 23:10:52 +00:00
Alex Gleason 02cc42e72c
Squash User approval migrations 2020-07-15 17:08:46 -05:00
Alex Gleason 9ce95fa68f
Use `approval_required` in /api/v1/instance 2020-07-15 17:04:30 -05:00
Mark Felder b2d398b1d0 Merge branch 'develop' into refactor/gun-pool-registry 2020-07-15 13:34:27 -05:00
feld 00f9b53f07 Merge branch 'refactor/notification_settings' into 'develop'
Refactor notification settings

See merge request pleroma/pleroma!2602
2020-07-15 15:22:39 +00:00
Mark Felder 34d1d3e93e Update FE bundle 2020-07-15 09:38:56 -05:00
Mark Felder 9d30bacace Merge branch 'develop' into refactor/notification_settings 2020-07-15 09:30:23 -05:00
rinpatch 0fe36b311c Merge branch 'features/mrf-reasons' into 'develop'
Add rejection reason to our MRFs

See merge request pleroma/pleroma!2759
2020-07-15 14:00:22 +00:00
rinpatch 2ce141fb0e Merge branch 'fix/oban-pruning' into 'develop'
Bring back oban job pruning

Closes #1945

See merge request pleroma/pleroma!2768
2020-07-15 13:52:01 +00:00
feld a2f9bc77b6 Merge branch 'issue/sign-authority' into 'develop'
Include port in host for signatures

See merge request pleroma/pleroma!2766
2020-07-15 13:44:52 +00:00
Haelwenn (lanodan) Monnier d29b8997f4
MastoAPI: fix & test giving MRF reject reasons 2020-07-15 15:25:33 +02:00
rinpatch c413649a8d Bring back oban job pruning
Closes #1945
2020-07-15 16:20:17 +03:00
rinpatch 7115c5f82e ConnectionPool.Worker: do not stop with an error when there is a timeout
This produced error log messages about GenServer termination
every time the connection was not open due to a timeout.

Instead we stop with `{:shutdown, <gun_error>}` since shutting down
when the connection can't be established is normal behavior.
2020-07-15 15:58:08 +03:00
Maksim Pechnikov 3f8bff8d6b Merge branch 'develop' into issue/sign-authority 2020-07-15 15:49:46 +03:00
href 6d583bcc3b Set a default timeout for Gun adapter timeout 2020-07-15 15:26:35 +03:00
href e499275076 Don't test tls_options in adapter helper test. 2020-07-15 15:26:35 +03:00
href afd378f84c host is now useless 2020-07-15 15:26:35 +03:00
href ce1a42bd04 Simplify TLS opts
- `verify_fun` is not useful now
- use `customize_check_hostname` (OTP 20+ so OK)
- `partial_chain` is useless as of OTP 21.1 (wasn't there, but hackney/..
uses it)
2020-07-15 15:26:35 +03:00
href ebfa591689 Go back to upstream Tesla 2020-07-15 15:26:35 +03:00
href 6b1f6a1cf7 Bump gun 2020-07-15 15:26:35 +03:00
href 53ba6815b1 parentheses... 2020-07-15 15:26:35 +03:00
href 23d714ed30 Fix race in enforcer/reclaimer start 2020-07-15 15:26:35 +03:00
href 6a0f2bdf8c Ensure connections error get known by the caller 2020-07-15 15:26:35 +03:00
href 46dd276d68 ConnectionPool.Worker: Open gun conn in continue instead of init 2020-07-15 15:26:35 +03:00
rinpatch 33747e9366 config.exs: set gun retries to 0
The new pooling code just removes the connection when it's down,
there is no need to reconnect a connection that is just sitting idle,
better just open a new one next time it's needed
2020-07-15 15:26:35 +03:00
rinpatch a705637dcf Connection Pool: fix LRFU implementation to not actually be LRU
The numbers of the native time unit were so small the CRF was always 1,
making it an LRU. This commit switches the time to miliseconds and changes
the time delta multiplier to the one yielding mostly highest hit rates according
to the paper
2020-07-15 15:26:35 +03:00
rinpatch 9b73c35ca8 Request limiter setup: consider {:error, :existing} a success
When the application restarts (which happens after certain config
changes), the limiters are not destroyed, so `ConcurrentLimiter.new`
will produce {:error, :existing}
2020-07-15 15:26:35 +03:00
rinpatch 12fa5541f0 FollowRedirects: Unconditionally release the connection if there is an error
There is no need for streaming the body if there is no body
2020-07-15 15:26:35 +03:00
rinpatch 9df5918974 config.exs: make gun the default again 2020-07-15 15:26:35 +03:00
rinpatch 37f1e781cb Gun adapter helper: fix wildcard cert issues on OTP 23
See https://bugs.erlang.org/browse/ERL-1260 for more info.

The ssl match function is basically copied from mint, except
that `:string.lowercase/1` was replaced by `:string.casefold`.
It was a TODO in mint's code, so might as well do it since we don't need
to support OTP <20.

Closes #1834
2020-07-15 15:26:35 +03:00
rinpatch 007843b75e Add documentation for new connection pool settings and remove some
`:retry_timeout` and `:retry` got removed because reconnecting on failure is
something the new pool intentionally doesn't do.

`:max_overflow` had to go in favor of `:max_waiting`, I didn't reuse the key because
the settings are very different in their behaviour.

`:checkin_timeout` got removed in favor of `:connection_acquisition_wait`,
I didn't reuse the key because the settings are somewhat different.

I didn't do any migrations/deprecation warnings/changelog entries because
these settings were never in stable.
2020-07-15 15:26:35 +03:00
rinpatch 7882f28569 Use erlang monotonic time for CRF calculation 2020-07-15 15:26:35 +03:00
rinpatch 00926a63fb Adapter Helper: Use built-in ip address type 2020-07-15 15:26:35 +03:00
rinpatch bf3492ceb3 Connection Pool: add tests 2020-07-15 15:26:35 +03:00
rinpatch 721e89e88b Remove tests for old pool 2020-07-15 15:26:35 +03:00
rinpatch 4128e3a84a HTTP: Implement max request limits 2020-07-15 15:26:35 +03:00
rinpatch 94c8f3cfaf Use a custom pool-aware FollowRedirects middleware 2020-07-15 15:26:35 +03:00
rinpatch 281ddd5e37 Connection pool: fix connections being supervised by gun_sup 2020-07-15 15:26:35 +03:00
rinpatch 1b15cb066c Connection pool: Add client death tracking
While running this in production I noticed a number of ghost
processes with all their clients dead before they released the connection,
so let's track them to log it and remove them from clients
2020-07-15 15:26:35 +03:00
rinpatch e94ba05e52 Connection pool: Fix a possible infinite recursion if the pool is exhausted 2020-07-15 15:26:35 +03:00
rinpatch 7738fbbaf5 Connection pool: implement logging and telemetry events 2020-07-15 15:26:25 +03:00
rinpatch 0ffde499b8 Connection Pool: register workers using :via 2020-07-15 15:24:47 +03:00
rinpatch ec9d0d146b Connection pool: Fix race conditions in limit enforcement
Fixes race conditions in limit enforcement by putting worker processes
in a DynamicSupervisor
2020-07-15 15:17:27 +03:00
rinpatch d08b157699 Connection pool: check that there actually is a result
Sometimes connections died before being released to the pool, resulting
in MatchErrors
2020-07-15 15:17:27 +03:00
rinpatch fffbcffb8c Connection Pool: don't enforce pool limits if no new connection needs to be opened 2020-07-15 15:17:27 +03:00
rinpatch 58a4f350a8 Refactor gun pooling and simplify adapter option insertion
This patch refactors gun pooling to use Elixir process registry and
simplifies adapter option insertion.

Having the pool use process registry instead of a GenServer has a number of advantages:
- Simpler code: the initial implementation adds about half the lines of code it deletes
- Concurrency: unlike a GenServer, ETS-based registry can handle multiple checkout/checkin
requests at the same time
- Precise and easy idle connection clousure: current proposal for closing idle connections in
the GenServer-based pool needs to filter through all connections once a minute and compare their
last active time with closing time. With Elixir process registry this can be done
by just using `Process.send_after`/`Process.cancel_timer` in the worker process.
- Lower memory footprint: In my tests `gun-memory-leak` branch uses about 290mb on peak load (250 connections)
and 235mb on idle (5-10 connections). Registry-based pool uses 210mb on idle and 240mb on peak load
2020-07-15 15:17:27 +03:00
Haelwenn (lanodan) Monnier e4beff90f5
Create Question: Add context field to create 2020-07-15 12:32:43 +02:00
Haelwenn (lanodan) Monnier 922ca23298
Question: Add tests on HTML tags in options
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/1362
2020-07-15 12:32:43 +02:00
Haelwenn (lanodan) Monnier bfe2dafd39
{Answer,Question}Validator: Keep both actor and attributedTo for now but sync them 2020-07-15 12:32:42 +02:00
Haelwenn (lanodan) Monnier c19bdc811e
Fix attachments in polls 2020-07-15 12:32:42 +02:00
lain 040524c09f Merge branch 'tests/apc2s-update_outbox' into 'develop'
AP C2S tests: Make sure you can't use another user's AP id

See merge request pleroma/pleroma!2767
2020-07-15 10:12:44 +00:00
Haelwenn (lanodan) Monnier d713930ea7
Fixup for EctoType module move 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 435a65b976
QuestionValidator: Use AttachmentValidator 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier fe6924d00d
CreateGenericValidator: add expires_at 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 39870d99b8
transmogrifier tests: Move & enhance in specialised modules 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 82895a4012
SideEffects: port ones from ActivityPub.do_create and ActivityPub.insert 2020-07-15 11:40:23 +02:00
Haelwenn (lanodan) Monnier 4f70fd4105
question_validator: remove conversation field 2020-07-15 11:39:56 +02:00
Haelwenn (lanodan) Monnier 173f69c854
question_validator: fix for mastodon poll expiration
Mastodon activities do not have a "closed" field, this could be seen on
https://pouet.it/users/lanodan_tmp/statuses/104345126997708380
which runs Mastodon 3.1.4 (SDF runs 3.1.2)
2020-07-15 11:39:56 +02:00
Haelwenn (lanodan) Monnier 47ba796f41
create_question_validator: remove validate_recipients_match 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier ad867ccfa1
fetcher: Reinject Question through validator 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 6b9c4bc1f1
fetcher: more descriptive variable names 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 4644a8bd10
Fix multiple-choice poll detection 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 10bd08ef07
transmogrifier_test: test date, anyOf and oneOf completely 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier 89a2433154
QuestionOptionsValidator: inline schema for replies 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier c5efaf6b00
AnswerValidator: Create 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier 7bcd7a9595
QuestionValidator: Create 2020-07-15 11:39:53 +02:00
Haelwenn (lanodan) Monnier 6d8427cca2
AP C2S tests: Make sure you can't use another user's AP id 2020-07-15 09:59:24 +02:00
Alex Gleason 0d004a9d04
Email admins when a new unapproved account is up for review 2020-07-14 20:31:20 -05:00
Alex Gleason 48983e9421
Merge remote-tracking branch 'upstream/develop' into by-approval 2020-07-14 18:56:40 -05:00
Alex Gleason df3d1bf5e5
Add :approval_pending to User @type account_status 2020-07-14 18:56:36 -05:00
Alex Gleason e82060c472
Update CHANGELOG.md 2020-07-14 18:47:23 -05:00
Alex Gleason fab44f6970
Test User with confirmation_pending: true, approval_pending: true 2020-07-14 18:46:57 -05:00
Alex Gleason 20d24741af
AdminAPI: Add `PATCH /api/pleroma/admin/users/approve` endpoint 2020-07-14 18:02:44 -05:00
Alex Gleason 33f1b29b2c
AdminAPI: Filter users by `need_approval` 2020-07-14 14:29:03 -05:00
Alex Gleason b750129da1
AdminAPI: Return `approval_pending` with users 2020-07-14 13:47:05 -05:00
Maksim Pechnikov 1dd767b8c7 Include port in host for signatures 2020-07-14 21:44:08 +03:00
Mark Felder 777a7edc6b Lint and fix test to match new log message 2020-07-14 13:15:37 -05:00
Mark Felder 37297a8482 Improve error messages 2020-07-14 13:12:16 -05:00
Alex Gleason a1570ba6ad
AdminAPI: Return `registration_reason` with users 2020-07-14 13:08:39 -05:00
feld 3f65f2ea79 Merge branch 'feature/1922-media-proxy-whitelist' into 'develop'
Support for hosts with scheme in MediaProxy whitelist setting

Closes #1922

See merge request pleroma/pleroma!2754
2020-07-14 18:07:44 +00:00
feld 63798e89de Merge branch 'fix/scrubber-recompile-warnings-as-errors' into 'develop'
Fix in-db configuration in dev environment

See merge request pleroma/pleroma!2764
2020-07-14 18:05:36 +00:00
feld 2909dc873b Merge branch '1940-admin-token-oauthless-auth' into 'develop'
[#1940] Reinstated OAuth-less `admin_token` authentication

Closes #1940

See merge request pleroma/pleroma!2760
2020-07-14 16:48:26 +00:00
Ivan Tashkinov 124b4709dc [#1940] Added `admin_token` param (as `admin_api_params/0`) to existing Admin API OpenAPI operations. 2020-07-14 19:31:05 +03:00
Mark Felder ce314e6fe2 Clarify description and suggestion 2020-07-14 11:24:58 -05:00
feld 246f49d685 Merge branch '1916-transmogrifier-skipping-oddities-in-address-fields' into 'develop'
Transmogrifier: filtering weirdness in address fields

Closes #1916

See merge request pleroma/pleroma!2762
2020-07-14 15:17:25 +00:00
rinpatch 2d5e96ea8b Merge branch 'fix/oban-2.0-in-db-config' into 'develop'
Migrate in-db config after updating to Oban 2.0

See merge request pleroma/pleroma!2765
2020-07-14 10:39:08 +00:00
rinpatch e6ccc25565 Fix in-db configuration in dev environment
Previously, in-db configuration only worked when `warnings_as_errors`
was disabled because re-compiling scrubbers on application restart
created a warning about module conflicts. This patch fixes that
by enabling `ignore_module_conflict` option of the compiler at runtime,
and enables `warnings_as_errors` in prod since there is no reason
to keep it disabled anymore.
2020-07-14 13:16:54 +03:00
rinpatch 8d56fb6d22 Migrate in-db config after updating to Oban 2.0 2020-07-14 13:15:46 +03:00
Haelwenn (lanodan) Monnier 858d9fc7e8
MRF Policies: Return a {:reject, reason} instead of {:reject, nil} 2020-07-14 11:04:16 +02:00
Ivan Tashkinov 9b225db7d8 [#1940] Applied rate limit for requests with bad `admin_token`. Added doc warnings on `admin_token` setting. 2020-07-14 11:58:41 +03:00
Ivan Tashkinov cf3f8cb72a [#1940] Reinstated OAuth-less `admin_token` authentication. Refactored UserIsAdminPlug (freed from checking admin scopes presence). 2020-07-19 21:35:57 +03:00
Maksim Pechnikov 3062f86613 added generated `pleroma.env` 2020-07-14 09:05:34 +03:00
Alex Gleason 5ddf0415c4
Accept `reason` in POST /api/v1/accounts and store in DB 2020-07-14 00:22:12 -05:00
= b221b640a2 Transmogrifier: filtering weirdness in address fields 2020-07-13 22:43:21 +03:00
Mark Felder 80c21100db Merge branch 'develop' into refactor/notification_settings 2020-07-13 13:32:21 -05:00
feld 5d215fd81f Merge branch 'config-behaviours-runtime' into 'develop'
Config/Docs: Expand behaviour suggestions modules at runtime

Closes #1941

See merge request pleroma/pleroma!2755
2020-07-13 15:45:25 +00:00
feld 8f9ee694ed Merge branch 'features/profile-fields-emojo' into 'develop'
user: Add support for custom emojis in profile fields

See merge request pleroma/pleroma!2741
2020-07-13 15:43:46 +00:00
feld 63fef0c0fb Merge branch 'chore/improve-database-config-docs' into 'develop'
Improve database config migration and add documentation

See merge request pleroma/pleroma!2756
2020-07-13 15:42:20 +00:00
feld db529d454e Merge branch 'fix/mediaproxy-cache-settings-types' into 'develop'
Update types for :headers and :options settings in Pleroma.Web.MediaProxy.Invalidation.Http

See merge request pleroma/pleroma!2735
2020-07-13 15:38:56 +00:00
Mark Felder d1cd3f4ec0 Lint 2020-07-13 10:32:17 -05:00
Mark Felder 442fe3cd45 Show examples for both OTP and source 2020-07-13 09:56:05 -05:00
Mark Felder e1908a5270 Pick up env for both source and OTP installs 2020-07-13 08:39:56 -05:00
Haelwenn (lanodan) Monnier ce243b107f
Use Logger.info for {:reject, reason} 2020-07-13 15:26:31 +02:00
Haelwenn (lanodan) Monnier 2aac92e9e0
Transmogrifier.fix_in_reply_to/2: Use warn for non-fatal fail to get replied-to post 2020-07-13 15:26:30 +02:00
a1batross 665ccdf617 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-13 14:26:36 +02:00
Haelwenn f918b6f86d Merge branch '1937-renaming' into 'develop'
ActivityPub: Don't rename a clashing nickname with the same ap id.

Closes #1937

See merge request pleroma/pleroma!2748
2020-07-13 12:06:43 +00:00
Alex Gleason bcfd38c8f3
Make a user unapproved when registering with `account_approval_required` on 2020-07-12 22:55:37 -05:00
Alex Gleason e4e5577818
Prevent unapproved users from logging in 2020-07-12 22:55:26 -05:00
Alex Gleason 51ab8d0128
Add `account_approval_required` instance setting 2020-07-12 20:27:58 -05:00
Alex Gleason a62f17da17
Add `approval_pending` field to User 2020-07-12 20:27:14 -05:00
Mark Felder 46b123cded Still allow passing the arg, but fallback to MIX_ENV 2020-07-12 10:59:12 -05:00
Mark Felder 0871e8b8fe Make the query more precise 2020-07-12 10:43:24 -05:00
Mark Felder 133004e22d Improve database config migration and add documentation 2020-07-12 10:38:07 -05:00
href 4347d2de5e Config/Docs: Expand behaviour suggestions at runtime 2020-07-12 17:23:33 +02:00
Alexander Strizhakov b376442325
MediaProxy whitelist setting now supports hosts with scheme
added deprecation warning about using bare domains
2020-07-12 12:41:40 +03:00
Angelina Filippova 0eeeaa37e8 Update types in MRF Keyword group 2020-07-12 01:38:16 +03:00
Roman Chvanikov 3116a75e80 Check if mogrify available before calling it 2020-07-11 18:22:03 +03:00
Roman Chvanikov 523f1b93a4 Remove Logger requirement 2020-07-11 18:15:51 +03:00
Roman Chvanikov 45bd64e2a7 Error in Filter.Exiftool if exiftool not found 2020-07-11 18:11:23 +03:00
Roman Chvanikov 05187d497d One can not simply call application modules from mix.exs 2020-07-11 16:09:46 +03:00
Roman Chvanikov aedbbec88a Add Pleroma.Utils.command_available?/1 and use where appropriate 2020-07-11 15:48:45 +03:00
lain 11dd29ef3f Merge branch 'feature/upload-filter-exiftool' into 'develop'
Add Pleroma.Upload.Filter.Exiftool

Closes #1935

See merge request pleroma/pleroma!2744
2020-07-11 11:31:44 +00:00
lain c409a064ba Merge branch 'patch-3' into 'develop'
docs: API: fix update_credentials endpoints path, clarify update/verify_credentials endpoints paths

See merge request pleroma/pleroma!2752
2020-07-11 11:30:02 +00:00
Alibek Omarov d885540590 docs: API: fix update_credentials endpoints path, clarify update/verify_credentials endpoints paths 2020-07-11 11:02:13 +00:00
Maksim Pechnikov 62fc8eab0d fix reset confirmation email in admin section 2020-07-11 07:20:35 +03:00
Angelina Filippova 98c56ff477 Remove :regex from types 2020-07-11 04:32:44 +03:00
Angelina Filippova 02b2747d42 Update types for :params, :match_actor and :replace settings 2020-07-11 04:17:21 +03:00
Mark Felder b329f05ed6 Remove unused @types 2020-07-10 17:08:54 -05:00
Mark Felder 9e45672674 Add a moduledoc 2020-07-10 17:07:28 -05:00
Mark Felder 6167593881 Support Exiftool for stripping EXIF data
We really only want to strip location data anyway, and mogrify strips color profiles.
2020-07-10 16:46:26 -05:00
feld d6f67fa91b Merge branch 'issue/1790-updated-oban' into 'develop'
[#1790] updated oban to 2.0.0

See merge request pleroma/pleroma!2674
2020-07-10 17:39:46 +00:00
feld 167a619432 Merge branch 'fix/1924-s3-descriptions' into 'develop'
docs and descriptions for s3 settings

Closes #1924

See merge request pleroma/pleroma!2745
2020-07-10 16:42:35 +00:00
feld 76f5f61713 Merge branch 'chore/should-document-that' into 'develop'
Probably worth documenting the MediaProxy fix

See merge request pleroma/pleroma!2750
2020-07-10 16:38:05 +00:00
Mark Felder 3c0c1fd2ef Merge branch 'develop' into issue/1790-updated-oban 2020-07-10 11:34:53 -05:00
Mark Felder d7a37fddd1 Switch to the official Oban 2.0.0 release 2020-07-10 11:33:08 -05:00
Mark Felder 0517d3252e Probably worth documenting the MediaProxy fix 2020-07-10 11:22:29 -05:00
feld ce9514000d Merge branch 'proxy-range-and-chunk' into 'develop'
ReverseProxy: Streaming and disable encoding if Range

Closes #1860 and #1823

See merge request pleroma/pleroma!2749
2020-07-10 16:18:28 +00:00
Mark Felder 72b3dbf4d1 Credo line length complaint 2020-07-10 11:04:19 -05:00
href a1dace088c ReverseProxy: Streaming and disable encoding if Range
Fixes #1823
Fixes #1860
2020-07-10 17:23:11 +02:00
lain 93e494ec21 ActivityPub: Don't rename a clashing nickname with the same ap id. 2020-07-10 14:10:44 +02:00
lain fba1ee7d7b Merge branch 'chat-federation-information' into 'develop'
Add an `accepts_chat_messages` to user, expose in api and federation

See merge request pleroma/pleroma!2716
2020-07-10 10:37:42 +00:00
lain b39eb6ecc5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into chat-federation-information 2020-07-10 12:26:53 +02:00
a1batross 74558c5de8 mrf: bring back ForceBotUnlistedPolicy, fix for chats 2020-07-10 12:01:36 +02:00
a1batross ec5a968bab Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-10 11:46:42 +02:00
lain 8aa7143f46 Merge branch 'bump-fe-2020-07-10' into 'develop'
Update frontend

See merge request pleroma/pleroma!2747
2020-07-10 09:45:10 +00:00
lain 328062308a Update frontend 2020-07-10 11:41:10 +02:00
Haelwenn 31a0ed5d01 Merge branch 'admin-api-user-credentials-for-remote-users-fix' into 'develop'
Admin API: fix `GET /api/pleroma/admin/users/:nickname/credentials` returning 404 when getting the credentials of a remote user while `:instance, :limit_to_local_content` is set to `:unauthenticated`

Closes admin-fe#107 and #1788

See merge request pleroma/pleroma!2554
2020-07-10 09:22:14 +00:00
lain 48f98a2748 Merge branch 'mix-tasks-improvement' into 'develop'
Mix tasks improvement

See merge request pleroma/pleroma!2723
2020-07-10 08:58:44 +00:00
lain 4d809144d8 Merge branch 'cluster-test-ci' into 'develop'
RE-enable cluster tests on CI

See merge request pleroma/pleroma!2743
2020-07-10 08:56:12 +00:00
Haelwenn 4ac6e6283f Merge branch 'develop' into 'admin-api-user-credentials-for-remote-users-fix'
# Conflicts:
#   CHANGELOG.md
2020-07-10 08:55:15 +00:00
Haelwenn 5ea6387572 Merge branch 'user-search-nickname-rank-boost' into 'develop'
Improved search results for localized nickname match

See merge request pleroma/pleroma!2733
2020-07-10 08:49:14 +00:00
Haelwenn 8743df5193 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2739
2020-07-10 08:45:39 +00:00
Ben Is b6de9b1987 Translated using Weblate (Italian)
Currently translated at 100.0% (106 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/it/
2020-07-10 08:27:50 +00:00
Ben Is 11c9654a32 Translated using Weblate (Polish)
Currently translated at 66.0% (70 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2020-07-10 08:27:50 +00:00
Haelwenn 77c4c60e55 Merge branch 'prometheus-update' into 'develop'
prometheus update for OTP 23

See merge request pleroma/pleroma!2746
2020-07-10 08:27:41 +00:00
Alexander Strizhakov b6688030fa
prometheus update for OTP 23 2020-07-10 10:35:59 +03:00
Alexander Strizhakov b1b8f5f11a
docs and descriptions for s3 settings 2020-07-10 09:16:53 +03:00
Angelina Filippova ac9f18de11 Update type for :replace settings 2020-07-10 03:32:53 +03:00
Angelina Filippova 6b9210e886 Update type for :groups setting 2020-07-10 03:07:55 +03:00
stwf 08211eff22 Re-enable the federated tests, increase timeout 2020-07-09 13:49:30 -04:00
feld 4301ae3861 Merge branch 'feature/add-adminfe-url-to-report-mails' into 'develop'
Add AdminFE reports URL to report emails

Closes #1926

See merge request pleroma/pleroma!2742
2020-07-09 17:23:15 +00:00
Haelwenn (lanodan) Monnier cc7153cd82
user: Add support for custom emojis in profile fields 2020-07-09 19:21:58 +02:00
Mark Felder 2b979cc90c Add AdminFE reports URL to report emails 2020-07-09 11:55:40 -05:00
Alexander Strizhakov 79707e879d
cleap up 2020-07-09 19:13:16 +03:00
feld 4db6678429 Merge branch 'chore/use-the-alias' into 'develop'
Use the Pleroma.Config alias

See merge request pleroma/pleroma!2740
2020-07-09 16:08:34 +00:00
Alexander Strizhakov d5fcec8315
fix for info after tag/untag user 2020-07-09 18:59:48 +03:00
Alexander Strizhakov c2edfd16e0
fix for user revoke invite task 2020-07-09 18:59:15 +03:00
Mark Felder d23804f191 Use the Pleroma.Config alias 2020-07-09 10:53:51 -05:00
feld 6b14f0c514 Merge branch 'fix/csp-for-captcha' into 'develop'
Add Captcha endpoint to CSP headers when MediaProxy is enabled.

See merge request pleroma/pleroma!2718
2020-07-09 14:33:24 +00:00
Mark Felder 49c4e24953 Merge branch 'develop' into fix/csp-for-captcha 2020-07-09 09:08:59 -05:00
lain 8ca1f3e8c6 Merge branch '1723-token-fixes' into 'develop'
AccountController: Return scope in proper format.

Closes #1723

See merge request pleroma/pleroma!2694
2020-07-09 13:10:05 +00:00
lain f4469dc741 Merge branch 'features/favicons' into 'develop'
Add support for remote favicons

See merge request pleroma/pleroma!2261
2020-07-09 13:09:31 +00:00
Haelwenn bdc7b60610 Merge branch '1925-muting-reblogs' into 'develop'
AccountController: Fix muting / unmuting reblogs.

Closes #1925

See merge request pleroma/pleroma!2732
2020-07-09 12:10:26 +00:00
eugenijm c2be0da79f Admin API: fix `GET /api/pleroma/admin/users/:nickname/credentials` returning 404 when getting the credentials of a remote user while `:instance, :limit_to_local_content` is set to `:unauthenticated` 2020-07-09 14:57:40 +03:00
Haelwenn 68036f5a3b Merge branch 'follow-pipeline' into 'develop'
Handle `Follow` activities with the pipeline

See merge request pleroma/pleroma!2734
2020-07-09 10:32:24 +00:00
Haelwenn 34d6009d82 Merge branch 'patch-2' into 'develop'
fix wide2x emojis within nicknames

See merge request pleroma/pleroma!2737
2020-07-09 09:50:08 +00:00
lain 393a588265 Merge branch 'patch-1' into 'develop'
added link to changelog, removed repetition

See merge request pleroma/pleroma!2736
2020-07-09 09:42:39 +00:00
lain 6d688f14fa Merge branch 'bugfix/status-deletion' into 'develop'
#1920 fix activity deletion

See merge request pleroma/pleroma!2721
2020-07-09 09:37:52 +00:00
Dym Sohin ab773fa5c9 [static-fe] limit according to- and within- existing ruleset 2020-07-09 09:37:50 +00:00
lain 8be0c04b40 Merge branch 'issue/1880' into 'develop'
[#1880] fixed delete `Like` activity in remove user

See merge request pleroma/pleroma!2725
2020-07-09 09:31:15 +00:00
lain 8594181597 Update static-fe.css 2020-07-09 09:30:15 +00:00
lain 6854c5ba2f Merge branch 'patch-3' into 'develop'
missed `:` (colon) before mrf_steal_emoji

See merge request pleroma/pleroma!2738
2020-07-09 09:25:10 +00:00
Dym Sohin 6465257e1f missed `:` (colon) before mrf_steal_emoji 2020-07-09 09:23:21 +00:00
Dym Sohin 8eecc708ef fix wide2x emojis within nicknames 2020-07-09 09:03:24 +00:00
Alexander Strizhakov 4cbafcef0c
load default config in mix tasks 2020-07-09 11:17:43 +03:00
Maksim Pechnikov 31259cabcc fix test 2020-07-09 07:16:52 +03:00
Dym Sohin 6e54972252 added link to changelog, removed repetition 2020-07-09 03:15:51 +00:00
Angelina Filippova 33e6285636 Update types for :headers and :options settings in MediaProxy Invalidation group 2020-07-09 01:33:23 +03:00
Ivan Tashkinov 123352ffa1 Removed unused trigram index on `users`. Fixed `users_fts_index` usage. 2020-07-08 22:50:15 +03:00
a1batross 71db915828 emr: static: make emojis bigger 2020-07-08 18:29:33 +02:00
stwf af9eb7a2b1 re-enable federation tests 2020-07-08 11:32:04 -04:00
lain 00e54f8fe7 ActivityPub: Remove `follow` and fix issues. 2020-07-08 17:07:24 +02:00
lain 9dda8b5427 CommonAPI: Switch to pipeline for following. 2020-07-08 15:40:56 +02:00
Alexander Strizhakov b28cc15459
don't restart pleroma in mix tasks 2020-07-08 15:58:47 +03:00
Alexander Strizhakov 72ad3a66f4
don't fully start pleroma in mix tasks 2020-07-08 15:58:47 +03:00
lain 172f4aff8e Transmogrifier: Move following to the pipeline. 2020-07-08 14:30:53 +02:00
lain 29fa75d00d Notification: For follows, notify the followed. 2020-07-08 14:29:29 +02:00
lain 7d0e2b3fdd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into follow-pipeline 2020-07-08 13:23:07 +02:00
lain cdc153db31 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/1880 2020-07-08 13:21:58 +02:00
lain 6335b32aa8 Merge branch '1895-hashtag-timeline-restrict-unauthenticated-fix' into 'develop'
[#1895] Made hashtag timeline respect `:restrict_unauthenticated` instance setting

Closes #1895

See merge request pleroma/pleroma!2731
2020-07-08 10:55:03 +00:00
Ivan Tashkinov 704a383055 Improved search results for localized nickname match. Tweaked user search to rank nickname matches higher than name matches. 2020-07-08 13:14:18 +03:00
Ivan Tashkinov a6495f4a68 [#1895] credo fix. 2020-07-08 12:54:23 +03:00
lain c0385cf47a AccountController: Fix muting / unmuting reblogs. 2020-07-08 11:52:29 +02:00
Ivan Tashkinov 3f8370a285 [#1895] Applied code review suggestion. 2020-07-08 12:36:44 +03:00
Maksim Pechnikov e341f81785 fixed delete `Like` activity in remove user 2020-07-08 09:06:23 +03:00
Haelwenn (lanodan) Monnier 31fef95e35
Add changelog and documentation 2020-07-08 06:29:24 +02:00
Haelwenn (lanodan) Monnier 312fc55f14
Add [:instances_favicons, :enabled] setting, defaults to false 2020-07-08 06:28:40 +02:00
Haelwenn (lanodan) Monnier 8c9df2d2e6
instance: Prevent loop of updates 2020-07-08 06:28:40 +02:00
Haelwenn (lanodan) Monnier 013e2c5057
Use instances table instead of Cachex 2020-07-08 06:28:39 +02:00
Haelwenn (lanodan) Monnier 6a679d80c9
Move get_favicon to Pleroma.Instances, use / 2020-07-08 06:28:39 +02:00
Haelwenn (lanodan) Monnier f6d09fafee
Add support for remote favicons 2020-07-08 06:28:39 +02:00
Haelwenn a8447c3803 Merge branch '1918-avatar-background-header-reset-2' into 'develop'
Resolve "Better support for resetting avatar/header/background"

Closes #1918

See merge request pleroma/pleroma!2729
2020-07-08 03:25:30 +00:00
Haelwenn db13acf242 Merge branch 'fix/twitter-rich-media-preview' into 'develop'
Add "Bot" to User Agent to coerce Twitter into serving OGP <meta> tags.

Closes #1923

See merge request pleroma/pleroma!2730
2020-07-08 03:05:20 +00:00
lain 8939ff39e4 Merge branch 'remove-twitter-api' into 'develop'
Remove some TwitterAPI endpoints

See merge request pleroma/pleroma!2327
2020-07-07 18:26:07 +00:00
Ivan Tashkinov 20461137a3 [#1895] Documentation hints on private instances and instance/restrict_unauthenticated setting. 2020-07-07 20:44:16 +03:00
Ivan Tashkinov 3e08e77151 [#1895] Made hashtag timeline respect `:restrict_unauthenticated` instance setting. 2020-07-07 20:37:11 +03:00
Mark Felder 18438a9bf0 Add "Bot" to User Agent to coerce Twitter into serving OGP <meta> tags. 2020-07-07 11:21:05 -05:00
lain 4c9295adcc Update frontend 2020-07-07 17:13:23 +02:00
lain 92e6801c17 Changelog: Add info about avatar removal 2020-07-07 16:53:54 +02:00
lain c8dd973af5 AccountController: Remove unused `update_?` routes.
These were not documented and are also not used anymore.
2020-07-07 16:53:20 +02:00
lain 1adda637d3 Docs: Document resetting of images 2020-07-07 16:53:12 +02:00
lain 59cf78e412 AccountController: Allow removal / reset of user images. 2020-07-07 16:53:03 +02:00
lain 4b53499bdc Merge branch 'develop' into 'develop'
added hyper:// to default protocols

See merge request pleroma/pleroma!2727
2020-07-07 11:41:56 +00:00
lain 9ad305209a Merge branch 'bugfix/peertube-videos' into 'develop'
Fix getting videos from peertube

See merge request pleroma/pleroma!2728
2020-07-07 09:14:50 +00:00
Haelwenn fa0fa4552f Merge branch 'feature/1392-support-irreversible-filters' into 'develop'
Updates for Feature/1392 support irreversible filters

Closes #1392

See merge request pleroma/pleroma!2186
2020-07-07 08:23:49 +00:00
Haelwenn (lanodan) Monnier fbb9743a70
Fix getting videos from peertube 2020-07-07 09:38:38 +02:00
DYM a784c09db8 added hyper:// to default protocols 2020-07-07 09:05:54 +02:00
Haelwenn d81acb5f62 Merge branch 'description-limits' into 'develop'
Add limits to image descriptions

See merge request pleroma/pleroma!2724
2020-07-07 03:00:52 +00:00
Haelwenn 2a323d3797 Merge branch '1507-static-fe-prioritize-json' into 'develop'
StaticFE: Prioritize json in requests.

Closes #1507

See merge request pleroma/pleroma!2695
2020-07-07 00:04:24 +00:00
Mark Felder da4029391d IO list, not concatenation 2020-07-06 11:28:08 -05:00
Mark Felder 65843d92c4 Simplify the logic 2020-07-06 10:59:41 -05:00
lain a6a12b241f FollowValidator: Add basic validation. 2020-07-06 15:57:19 +02:00
lain 4e3b3998ad BlockValidation test: Rename. 2020-07-06 15:44:35 +02:00
lain eb87430803 ObjectValidator tests: Extract block validation tests. 2020-07-06 15:14:58 +02:00
lain 410c1fab31 ObjectValidator tests: Extract update validation tests. 2020-07-06 15:13:11 +02:00
lain b2e1ea9226 ObjectValidation tests: Extract announce validation tests. 2020-07-06 15:11:49 +02:00
lain bbaf108aee ObjectValidator tests: Extract undo validation tests. 2020-07-06 15:09:41 +02:00
lain 168256dce9 ObjectValidation tests: Extract like validation tests. 2020-07-06 15:08:11 +02:00
lain e6a13d97d0 ObjectValidation tests: Extract delete validation tests. 2020-07-06 15:05:02 +02:00
lain 60d4c6c91d ObjectValidator tests: Extract emoji react testing 2020-07-06 15:02:35 +02:00
lain e0baaa967c ObjectValidator tests: Extract chat tests 2020-07-06 13:01:44 +02:00
lain 0aa4c20d78 ObjectValidator Test: Extract attachments. 2020-07-06 12:59:06 +02:00
lain 65fd28e0c4 Config: Remove Statusnet preloader. 2020-07-06 12:25:25 +02:00
lain 28feba8af4 Preloaders: Remove status_net preloader 2020-07-06 12:24:45 +02:00
lain f787eb1acf Update frontend 2020-07-06 12:20:20 +02:00
lain 30d0df8e2f Update frontend 2020-07-06 12:17:08 +02:00
lain 1963e143c5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remove-twitter-api 2020-07-06 12:15:59 +02:00
lain 158c26d7dd StaticFE Plug: Use phoenix helper to get the requested format. 2020-07-06 12:11:10 +02:00
lain ed4f9f6a29 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1507-static-fe-prioritize-json 2020-07-06 12:07:56 +02:00
lain 208baf157a ActivityPub: Add new 'capabilities' to user. 2020-07-06 11:38:40 +02:00
lain 74b88c0a8b Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into chat-federation-information 2020-07-06 11:27:06 +02:00
rinpatch 69f0b286f7 Merge branch '1915-dont-filter-announce-notifications' into 'develop'
Streamer: Don't filter out announce notifications.

Closes #1915

See merge request pleroma/pleroma!2719
2020-07-06 09:21:03 +00:00
lain a2cabb99ca Merge branch 'filter-tesla-config' into 'develop'
Filter tesla config

See merge request pleroma/pleroma!2722
2020-07-06 09:20:10 +00:00
lain 58da575935 Changelog: Document description limits. 2020-07-06 11:18:01 +02:00
lain 729506c56a Docs: document instance differences 2020-07-06 11:16:58 +02:00
lain cc8b4e48d9 InstanceView: Add chat limit, description limit 2020-07-06 11:12:37 +02:00
lain 2e21ae1b6d Docs: Add description limits to cheat sheet 2020-07-06 11:08:53 +02:00
lain af7720237b Upload: Restrict description length 2020-07-06 11:08:13 +02:00
Alexander Strizhakov 818f3c2393
test fixes 2020-07-06 09:30:43 +03:00
Alexander Strizhakov 028a241b7d
tests fixes 2020-07-06 09:30:42 +03:00
Alexander Strizhakov da509487b2
adding benchmarks in new format 2020-07-06 09:30:42 +03:00
Alexander Strizhakov 20c27bef40
renaming back and reject nil on create 2020-07-06 09:30:42 +03:00
Alexander Strizhakov 52ff75413a
Apply suggestion to test/notification_test.exs 2020-07-06 09:30:42 +03:00
Alexander Strizhakov 086a260c04
Apply suggestion to test/notification_test.exs 2020-07-06 09:30:42 +03:00
Alexander Strizhakov 771748db1f
Apply suggestion to lib/pleroma/filter.ex 2020-07-06 09:30:41 +03:00
Alexander Strizhakov 6558f31cda
don't filter notifications for follow and move types 2020-07-06 09:30:41 +03:00
Sergey Suprunenko 8277b29790
Restrict thread statuses that contain user's irreversible filters 2020-07-06 09:30:39 +03:00
Sergey Suprunenko 5af1bf443d
Skip notifications for statuses that contain an irreversible filtered word 2020-07-06 09:28:22 +03:00
Sergey Suprunenko 4a8c26654e
Restrict statuses that contain user's irreversible filters 2020-07-06 09:28:21 +03:00
Alexander Strizhakov 465ddcfd20
migration to delete migrated tesla setting 2020-07-06 09:12:29 +03:00
Alexander Strizhakov 480dfafa83
don't save tesla settings into db 2020-07-06 08:48:20 +03:00
Roman Chvanikov fc1f34b851 Delete activity before sending response to client 2020-07-06 00:01:25 +03:00
Ivan Tashkinov 9faa632037 [#2497] Fixed merge issue. 2020-07-05 19:02:43 +03:00
Mark Felder af612bd006 Ensure all CSP parameters for remote hosts have a scheme 2020-07-05 10:11:43 -05:00
a1batross 4adcdd02b4 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-05 13:06:34 +02:00
lain cf56655614 Streamer: Don't filter out announce notifications. 2020-07-04 17:11:37 +02:00
Mark Felder 991bd78dda Document the Captcha CSP fix 2020-07-03 17:19:43 -05:00
Mark Felder e9a28078ad Rename function and clarify that CSP is only strict with MediaProxy enabled 2020-07-03 17:18:22 -05:00
Mark Felder eaa59daa4c Add Captcha endpoint to CSP headers when MediaProxy is enabled.
Our CSP rules are lax when MediaProxy enabled, but lenient otherwise.

This fixes broken captcha on instances not using MediaProxy.
2020-07-03 17:06:20 -05:00
Mark Felder e8710a3f87 Revert "Document Oban update"
This reverts commit bc956d0c41.
2020-07-03 13:49:02 -05:00
Mark Felder bc956d0c41 Document Oban update 2020-07-03 11:29:17 -05:00
Mark Felder 4d3d867f10 Update Oban to 2.0-rc3 2020-07-03 10:37:07 -05:00
Mark Felder 4695bdd81b Merge branch 'develop' into issue/1790-updated-oban 2020-07-03 10:36:41 -05:00
lain c2a052a346 Merge branch 'features/mastoapi-2.9.0-status_text' into 'develop'
MastoAPI 2.9.0: status text on deletion

See merge request pleroma/pleroma!2690
2020-07-03 15:06:33 +00:00
lain 9a27ef47f1 Merge branch '1912-leading-trailing-space-search' into 'develop'
SearchController: Trim query.

Closes #1912

See merge request pleroma/pleroma!2717
2020-07-03 14:59:12 +00:00
lain cbf2fe9649 Update changelog 2020-07-03 16:46:11 +02:00
lain d3efb50262 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/mastoapi-2.9.0-status_text 2020-07-03 16:44:31 +02:00
lain 19fbfbb767 Merge branch '1892-exclude-bots-from-search-results' into 'develop'
[#1892] Exclusion of service actors from user search results

Closes #1892

See merge request pleroma/pleroma!2708
2020-07-03 14:38:22 +00:00
lain 945e75c8e8 SearchController: Trim query. 2020-07-03 16:36:55 +02:00
lain ef4c16f6f1 Update changelog 2020-07-03 15:59:42 +02:00
lain 01695716c8 Docs: Document `accepts_chat_messages` setting. 2020-07-03 15:55:18 +02:00
lain e3b5559780 AccountController: Make setting accepts_chat_messages possible. 2020-07-03 15:54:25 +02:00
lain 4a7b89e372 ChatMessageValidator: Additional validation. 2020-07-03 15:13:27 +02:00
lain 3ca9af1f9f Account Schema: Add `accepts_chat_messages` 2020-07-03 14:31:04 +02:00
lain b374fd622b Docs: Document the added `accepts_chat_messages` user property. 2020-07-03 14:24:54 +02:00
lain 5c0bf4c472 ActivityPub: Ingest information about chat acceptance. 2020-07-03 13:58:34 +02:00
lain 8289ec67a8 Litepub: Add acceptsChatMessages to schema. 2020-07-03 13:39:21 +02:00
lain 26a7cc3f00 UserView: Add acceptsChatMessages field 2020-07-03 13:38:59 +02:00
lain db76c26469 AccountViewTest: Fix test. 2020-07-03 13:24:16 +02:00
lain 37fdb05058 User, Migration: Change `accepts_chat_messages` to be nullable
This is to model the ambiguous state of most users.
2020-07-03 13:12:23 +02:00
lain 3250228be9 AccountView: Add 'accepts_chat_messages' to view. 2020-07-03 13:07:33 +02:00
lain 98bfdba108 User: On registration, set `accepts_chat_messages` to true. 2020-07-03 12:47:05 +02:00
lain 8ad166e8e3 Migrations: Add `accepts_chat_messages` to users. 2020-07-03 12:46:28 +02:00
rinpatch 86151b23a6 Merge branch '1910-migration-fix' into 'develop'
Notification Backfill: Explicitly select the needed fields.

Closes #1910

See merge request pleroma/pleroma!2715
2020-07-03 10:44:19 +00:00
lain 59b426ebef Notification Backfill: Explicitly select the needed fields.
Prevents a crashing migration when we change user fields.
2020-07-03 11:25:12 +02:00
Ivan Tashkinov 90764670dc [#1892] Excluded internal users (applications) from user search results, reinstated service actors in search results. 2020-07-03 11:02:15 +03:00
feld fd5ad99ace Merge branch 'feature/1885-MRF-metadata' into 'develop'
Feature/1885 mrf metadata

Closes #1885

See merge request pleroma/pleroma!2693
2020-07-02 19:44:05 +00:00
feld 4f8e0170e9 Merge branch 'activation-meta' into 'develop'
Add more FE-required fields to /api/v1/instance

See merge request pleroma/pleroma!2613
2020-07-02 18:12:03 +00:00
Mark Felder 8121e46f25 Merge branch 'develop' into activation-meta 2020-07-02 13:01:22 -05:00
Mark Felder 02d855b2b9 Document the new API extension of /api/v1/instance 2020-07-02 12:59:45 -05:00
Mark Felder d44ec2bf4c Remove camelCase from the keys 2020-07-02 12:55:08 -05:00
Mark Felder 80076f1974 Lint, long lines 2020-07-02 10:33:27 -05:00
Mark Felder d169e51b7e Improve descriptions, move primary MRF settings to top for AdminFE ordering 2020-07-02 10:27:15 -05:00
Mark Felder a5d611abc2 Update AdminFE build to utilize new MRF metadata 2020-07-02 10:16:19 -05:00
Mark Felder 6b5563ed2c Merge branch 'develop' into feature/1885-MRF-metadata 2020-07-02 09:57:57 -05:00
Ivan Tashkinov 61180ab6f4 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	config/config.exs
#	lib/pleroma/web/media_proxy/media_proxy.ex
#	lib/pleroma/web/media_proxy/media_proxy_controller.ex
2020-07-02 16:36:54 +03:00
rinpatch 4c044f6225 Merge branch 'fetcher-fixes' into 'develop'
Don't fail fetching when the user in a replied-to message can't be fetched.

See merge request pleroma/pleroma!2711
2020-07-02 10:17:51 +00:00
rinpatch b0439df1b5 Merge branch '1907-fix-announce-streaming' into 'develop'
Resolve "Streaming API: Repeats of your posts from random people are pushed to the timeline"

Closes #1907

See merge request pleroma/pleroma!2714
2020-07-02 10:08:42 +00:00
lain d884b6f704 Merge branch 'feature/update-description' into 'develop'
Update settings descriptions and labels

See merge request pleroma/pleroma!2709
2020-07-02 08:43:32 +00:00
lain bad08f34ca Credo fixes. 2020-07-02 09:57:31 +02:00
lain ce9b7c0e0f Changelog: Update with stream changes. 2020-07-02 09:54:48 +02:00
lain 311b7c19d0 Streamer: Align announce streaming with polling. 2020-07-02 09:50:26 +02:00
lain 61fe94d698 SideEffects: Refactor. 2020-07-02 09:33:50 +02:00
a1batross 959beb3ca5 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into emr_develop 2020-07-01 21:08:11 +02:00
rinpatch fa7a0be225 Merge branch '1716-handle-nickname-clashes' into 'develop'
ActivityPub: Handle clashing nicknames for the same ap id

Closes #1716

See merge request pleroma/pleroma!2712
2020-07-01 13:51:23 +00:00
lain fedfe8f7d6 ActivityPub: Handle clashing nicknames for the same ap id
If we get a new user (identified by ap_id) that would have the same
nickname as an existing user, give the existing user a nickname that
is prepended with the user id, as this will never clash.

This can happen when a user switches server software and that soft-
ware generates ap ids in a different way.
2020-07-01 12:26:07 +02:00
lain ce92e6e5ce Fetcher: Work when we can't get the OP. 2020-07-01 11:48:51 +02:00
lain 8ae572d5ae Fixtures: Pretty print. 2020-07-01 11:47:45 +02:00
lain d889c9ca70 Merge branch 'revert-651f2695' into 'develop'
Revert "Merge branch 'avatar-removing' into 'develop'"

See merge request pleroma/pleroma!2710
2020-07-01 09:18:02 +00:00
lain 691742e62d Revert "Merge branch 'avatar-removing' into 'develop'"
This reverts merge request !2701
2020-07-01 08:51:56 +00:00
Angelina Filippova df2d6564d5 Add labels, update descriptions and labels 2020-07-01 03:01:15 +03:00
Alex Gleason 8daacc9114
AutoLinker --> Linkify, update to latest version
https://git.pleroma.social/pleroma/elixir-libraries/linkify
2020-06-30 16:39:15 -05:00
Haelwenn 9cf4bfcd81 Merge branch 'chore/rename-user-settings-column' into 'develop'
Rename user.settings column

See merge request pleroma/pleroma!2707
2020-06-30 20:51:10 +00:00
Mark Felder 5a8e0208b1 Add fields limits to instance metadata, add tests 2020-06-30 15:25:10 -05:00
Mark Felder 0883a706dc Merge branch 'develop' into activation-meta 2020-06-30 15:09:03 -05:00
Ivan Tashkinov 3d2989278c [#1892] Excluded bot actors (applications, services) from search results. 2020-06-30 21:26:39 +03:00
Mark Felder d69af7f742 Rename user.settings column
This is used exclusively by MastoFE/GlitchFE now
2020-06-30 11:50:53 -05:00
lain b9e6ad571a Merge branch 'preloadfixups' into 'develop'
Some fixups for the preload.

See merge request pleroma/pleroma!2692
2020-06-30 10:52:55 +00:00
lain 8b7055e25e Credo fixes 2020-06-30 11:55:58 +02:00
lain 0176b7bca2 Merge branch 'preload-fixups-2' into preloadfixups 2020-06-30 11:40:34 +02:00
lain 2382a2a151 Preload: Load the correct instance panel 2020-06-30 11:35:54 +02:00
lain 34c9446cb1 Merge branch 'patch-1' into 'develop'
Use correct PostgreSQL version command in bug template

See merge request pleroma/pleroma!2706
2020-06-30 08:42:45 +00:00
normandy 27542f19c6 Use correct PostgreSQL version command in bug template 2020-06-30 03:12:30 +00:00
rinpatch 7bb3618939 Merge branch 'fix-notification-filtering' into 'develop'
Notifications: Never return `nil` in the notification list.

See merge request pleroma/pleroma!2705
2020-06-29 18:06:25 +00:00
lain 09c5991f82 Apply suggestion to lib/pleroma/notification.ex 2020-06-29 16:04:14 +00:00
lain b2b332984c Merge branch 'fix/cast-and-validate' into 'develop'
Fix CastAndValidate plug

Closes #1889

See merge request pleroma/pleroma!2704
2020-06-29 15:59:40 +00:00
lain c01f4ca07f Notification: Remove TODO. 2020-06-29 17:52:56 +02:00
lain 90083a754d Notifications: Never return `nil` in the notification list. 2020-06-29 17:48:18 +02:00
Egor Kislitsyn 3aa04b81c4
Test default "content-type" for CastAndValidate 2020-06-29 19:47:04 +04:00
feld 344a9b28b3 Merge branch 'fix/swoosh-sendmail' into 'develop'
updated swoosh

See merge request pleroma/pleroma!2703
2020-06-29 15:24:39 +00:00
Egor Kislitsyn 979f02ec94
Fix CastAndValidate plug 2020-06-29 17:33:00 +04:00
Maksim Pechnikov dc60b1ee58 updated swoosh 2020-06-29 16:27:01 +03:00
Egor Kislitsyn 67d92ac7b7
Remove `/statusnet/config` 2020-06-29 17:00:37 +04:00
lain 07ff2d62f4 Merge branch 'rich-media-parser-exclude-attachment-links' into 'develop'
excluding attachment links from RichMedia

See merge request pleroma/pleroma!2702
2020-06-29 12:44:58 +00:00
Egor Kislitsyn 8693e01799
Fix warning 2020-06-29 16:29:51 +04:00
Alexander Strizhakov 6512ef6879
excluding attachment links from RichMedia 2020-06-29 15:25:57 +03:00
Egor Kislitsyn 4a306720e8
Merge branch 'develop' into remove-twitter-api 2020-06-29 16:09:49 +04:00
lain 59540131c1 Credo fixes. 2020-06-29 14:09:03 +02:00
lain f308196b75 Token Response: Remove empty file. 2020-06-29 13:52:50 +02:00
lain e374872fe7 AccountOperation: Correctly describe create response. 2020-06-29 13:49:48 +02:00
lain bb168ed94a OAuth: Extract view-type functions to a view. 2020-06-29 13:39:09 +02:00
lain 651f269568 Merge branch 'avatar-removing' into 'develop'
UpdateCredentialsTest: Add test for removing profile images.

See merge request pleroma/pleroma!2701
2020-06-29 11:16:30 +00:00
lain e64d08439e UpdateCredentialsTest: Add test for removing profile images. 2020-06-29 12:40:23 +02:00
lain 8630a6c7f5 Preloaders: Use strings as keys. 2020-06-29 11:41:00 +02:00
lain a19f8778af User preloader: Put user info at correct key 2020-06-29 11:06:20 +02:00
lain 577da132da Merge branch '1031-parent-visible' into 'develop'
Resolve "Add `pleroma.parent_visible` to the status view"

Closes #1031

See merge request pleroma/pleroma!2679
2020-06-29 08:39:51 +00:00
lain e229640372 Merge branch 'openapi/schema-account-pleromafields' into 'develop'
ApiSpec.Schemas.Account: import description from differences_in_mastoapi_responses

See merge request pleroma/pleroma!2700
2020-06-29 08:32:56 +00:00
Haelwenn (lanodan) Monnier 9f51b03eed
ApiSpec.Schemas.Account: import description from differences_in_mastoapi_responses 2020-06-29 03:31:33 +02:00
Haelwenn cf1bd386c6 Merge branch 'docs/mastoapi-account-fields' into 'develop'
differences_in_mastoapi_responses: Update account fields

See merge request pleroma/pleroma!2699
2020-06-29 00:56:02 +00:00
Haelwenn (lanodan) Monnier efb5d64e50
differences_in_mastoapi_responses: Update account fields 2020-06-29 02:40:32 +02:00
lain 4b32bc80de Merge branch 'reduce-preloading-defaults' into 'develop'
Config: Reduce default preloaders to configuration endpoints.

See merge request pleroma/pleroma!2697
2020-06-27 10:40:29 +00:00
lain 0313520cd2 Config: Reduce default preloaders to configuration endpoints.
Fetching the timeline is a bit heavy to do by default.
2020-06-27 12:18:37 +02:00
lain dc31fbfe6c Merge branch 'fix/fetcher-transmogrifier-error' into 'develop'
object/fetcher: Pass full Transmogrifier error

See merge request pleroma/pleroma!2696
2020-06-27 09:41:35 +00:00
Alexander Strizhakov f89390110b
added tab & labels for mrf policies 2020-06-27 12:18:34 +03:00
Mark Felder ce85db41a3 Lint 2020-06-26 14:35:04 -05:00
Haelwenn (lanodan) Monnier 1566543bec
object/fetcher: Pass full Transmogrifier error 2020-06-26 20:10:47 +02:00
Haelwenn (lanodan) Monnier 244655e884
MastoAPI: Show source field when deleting 2020-06-26 19:52:20 +02:00
Mark Felder 76313e8162 Document breaking change of hide_notification_details setting 2020-06-26 12:48:05 -05:00
Mark Felder 69848d5c97 Rename notification "privacy_option" setting 2020-06-26 12:45:46 -05:00
Haelwenn bf1c5e255a Merge branch 'block-handling' into 'develop'
Handle blocks with the pipeline

See merge request pleroma/pleroma!2685
2020-06-26 17:41:00 +00:00
Haelwenn 09478c9cf7 Merge branch '1258-anti-link-spam-exemption' into 'develop'
AntiSpamLinkPolicy: Exempt local users.

Closes #1258

See merge request pleroma/pleroma!2686
2020-06-26 16:59:46 +00:00
Mark Felder fd5e797379 Simplify notification filtering settings further 2020-06-26 11:24:28 -05:00
Mark Felder b950fb01db Merge branch 'develop' into refactor/notification_settings 2020-06-26 10:23:19 -05:00
lain a5bbfa21a1 StaticFE: Prioritize json in requests. 2020-06-26 16:27:39 +02:00
lain f378e93bf4 AccountController: Return scope in proper format. 2020-06-26 16:15:27 +02:00
lain a2002ebb63 Preloading: Fix nodeinfo url. 2020-06-26 14:48:23 +02:00
lain 4a7a34ae8c Preloading: Return correct data for statusnet stuff. 2020-06-26 14:47:38 +02:00
Alexander Strizhakov e7bc0273e5
additional data to MRF policies in descriptions 2020-06-26 15:22:08 +03:00
lain 6db9f7cdb3 Merge branch 'fix-chats' into 'develop'
Nodeinfo: Add chat information back in.

See merge request pleroma/pleroma!2691
2020-06-26 11:09:37 +00:00
lain 7ed2296416 Nodeinfo: Add chat information back in. 2020-06-26 13:04:15 +02:00
lain 15a8b70318 User: Don't unfollow on block when the relevant setting is set. 2020-06-26 12:06:00 +02:00
lain c3383d4fab BlockValidator: Restore old behavior for incoming blocks. 2020-06-26 11:58:40 +02:00
Alexander Strizhakov 91cd023720
Pleroma.Upload.Filter.Mogrify args description 2020-06-26 09:03:07 +03:00
Haelwenn (lanodan) Monnier 27c33f216a
activity_draft: Add source field 2020-06-26 05:48:25 +02:00
Haelwenn 7c7a6509b9 Merge branch 'hotfix/preload-tests-nodeinfo' into 'develop'
nodeinfo: Fix MRF transparency

See merge request pleroma/pleroma!2689
2020-06-26 03:48:25 +00:00
Haelwenn (lanodan) Monnier d6c958b4c2
nodeinfo: Fix MRF transparency 2020-06-26 05:33:59 +02:00
feld 8288419686 Merge branch 'preload-data' into 'develop'
Preload data into index.html

Closes #1660

See merge request pleroma/pleroma!2381
2020-06-25 21:35:39 +00:00
feld 2e39fbe02e Merge branch 'mastoapi-omitted' into 'develop'
MastoAPI differences: Document not implemented features

See merge request pleroma/pleroma!2687
2020-06-25 21:25:02 +00:00
feld bb275c4985 Merge branch 'update/admin-fe-20200625' into 'develop'
Update AdminFE build

See merge request pleroma/pleroma!2688
2020-06-25 20:09:19 +00:00
Mark Felder d9e4623628 Update AdminFE build 2020-06-25 14:55:00 -05:00
Mark Felder 433c01b370 Merge branch 'develop' into refactor/notification_settings 2020-06-25 14:26:21 -05:00
Alex Gleason 28d4e60f66
MastoAPI differences: Document not implemented features 2020-06-25 12:32:06 -05:00
lain 1d0804b49f Merge branch 'chore/remove-reference-to-distsn' into 'develop'
Remove reference to defunct distsn.org

See merge request pleroma/pleroma!2675
2020-06-25 10:42:57 +00:00
lain 04abee782b AntiSpamLinkPolicy: Exempt local users. 2020-06-25 12:40:39 +02:00
lain f585622f85 Apply suggestion to config/description.exs 2020-06-25 10:17:16 +00:00
lain 1cd1977c0f Merge branch 'issue/1872-ex_aws' into 'develop'
[#1872] use Pleroma.HTTP for ExAws.S3

See merge request pleroma/pleroma!2683
2020-06-25 10:14:19 +00:00
lain 84f9ca1956 Blocking: Don't federate if the options is set. 2020-06-25 12:03:14 +02:00
lain 44bb7cfccd ActivityPub: Remove `block`. 2020-06-25 11:51:33 +02:00
lain 8cfb58a8c0 AccountController: Extract blocking to CommonAPI. 2020-06-25 11:44:04 +02:00
lain e38293c8f1 Transmogrifier: Switch to pipeline for Blocks. 2020-06-25 11:33:54 +02:00
lain 89e5b2046b ObjectValidator: Basic `Block` support. 2020-06-25 11:13:35 +02:00
lain d137f934df Transmogrifier Test: Extract block handling. 2020-06-25 10:54:00 +02:00
lain 0e26ef2ab9 Merge branch 'fix/following-request-from-deactivated' into 'develop'
Filter outstanding follower requests from deactivated accounts

Closes #1771

See merge request pleroma/pleroma!2682
2020-06-25 06:50:44 +00:00
Maksim Pechnikov 439a1a0218 added wrapper Pleroma.HTTP for ExAws.S3 2020-06-25 07:12:29 +03:00
Mark Felder 67ab580553 Filter outstanding follower requests from deactivated accounts 2020-06-24 17:18:53 -05:00
Maksim Pechnikov cc837f9d15 fixed config/descpiption.exs 2020-06-24 21:21:33 +03:00
lain ae94fcc95f Merge branch 'fix-emoji-pagination' into 'develop'
Fix for emoji pagination in pack show

See merge request pleroma/pleroma!2681
2020-06-24 15:23:20 +00:00
Alexander Strizhakov aae1af8cf1
fix for emoji pagination in pack show 2020-06-24 18:06:30 +03:00
lain 4c5fb831b3 Status schema: Add parent_visible. 2020-06-24 14:33:00 +02:00
lain 1702239428 Changelog: Put info under API header. 2020-06-24 14:30:12 +02:00
lain 79ee914bc2 Changelog: Add info about parent_visible field 2020-06-24 13:32:14 +02:00
lain 637bae42b4 Docs: Document added parent_visible field. 2020-06-24 13:31:42 +02:00
lain 35f6770436 StatusView: Add pleroma.parent_visible 2020-06-24 13:29:08 +02:00
lain 88ccade1cb Merge branch 'feature/admin-api-status-count-per-instance' into 'develop'
admin api status count per instance

See merge request pleroma/pleroma!2500
2020-06-24 10:42:07 +00:00
lain 510031ece2 Merge branch 'issue/1872-updated-tzdata' into 'develop'
[#1872] use Pleroma.HTTP for Tzdata

See merge request pleroma/pleroma!2678
2020-06-24 09:00:17 +00:00
lain 65f3eb333b Apply suggestion to test/http/tzdata_test.exs 2020-06-24 08:50:33 +00:00
Maksim Pechnikov 721fc7c554 added wrapper Pleroma.HTTP for Tzdata.HTTPClient 2020-06-24 09:12:32 +03:00
feld b4a502fc8b Merge branch 'moving-mrf-namespace-migration-fix' into 'develop'
Moving to mrf namespace migration fix

See merge request pleroma/pleroma!2676
2020-06-23 18:51:37 +00:00
Maksim Pechnikov 71e233268a oban 2.0-rc2 2020-06-23 21:47:01 +03:00
lain 98af7b59e4 Merge branch 'update-validator' into 'develop'
Update validator

See merge request pleroma/pleroma!2668
2020-06-23 18:10:33 +00:00
Roman Chvanikov 1471b70ef1 Merge develop 2020-06-23 20:56:55 +03:00
Alexander Strizhakov cb96c82f70
moving to mrf namespace migration fix 2020-06-23 20:28:48 +03:00
Haelwenn c7d69e9256 Merge branch 'feature/1631-redesign-mrf-configuration' into 'develop'
Moving mrf settings from instance to separate mrf group

Closes #1631

See merge request pleroma/pleroma!2320
2020-06-23 16:38:27 +00:00
Mark Felder 54039100fe Remove reference to defunct distsn.org 2020-06-23 11:17:26 -05:00
Maksim Pechnikov a8d967762e migrate to oban 2.0-rc1 2020-06-23 15:09:01 +03:00
lain b7f297f0bd Merge branch 'issue/1798' into 'develop'
[#1798] fixed migration the settings to DB

See merge request pleroma/pleroma!2655
2020-06-23 10:54:15 +00:00
lain aee815b478 ObjectValidator: Clarify type of object. 2020-06-23 12:37:05 +02:00
lain 59e2a1018a Merge branch 'fix_1586_provide_index_md' into 'develop'
Fix 1586 provide index md

See merge request pleroma/pleroma!2669
2020-06-23 10:06:47 +00:00
lain adc199c6a8 ActivityPubControllerTest: Capture error log 2020-06-23 12:04:51 +02:00
lain d93e01137b ActivityPubControllerTest: Testing changes. 2020-06-23 11:43:20 +02:00
lain 2737809bbf An act of desperation. 2020-06-23 11:03:32 +02:00
lain 2c603f2009 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into update-validator 2020-06-23 10:17:12 +02:00
Maksim Pechnikov 84aa9c78dd fix tests 2020-06-23 09:08:24 +03:00
Maksim Pechnikov 2715c40e1d added tests 2020-06-23 06:59:00 +03:00
Haelwenn 3875a507d4 Merge branch '@doc/apc2s-upload-media' into 'develop'
ActivityPubController: Update upload_media @doc

See merge request pleroma/pleroma!2673
2020-06-23 03:04:27 +00:00
Haelwenn (lanodan) Monnier c116b6d6d6
ActivityPubController: Update upload_media @doc
Small cherry-pick from https://git.pleroma.social/pleroma/pleroma/-/merge_requests/1810
2020-06-23 04:42:44 +02:00
Haelwenn d21ef5e66b Merge branch 'fix/missing-default-instance_thumbnail_config' into 'develop'
Add missing default config value for :instance, instance_thumbnail

See merge request pleroma/pleroma!2672
2020-06-23 01:55:33 +00:00
Mark Felder df5e048cbb Do not need a function to provide fallback value with default defined in config.exs 2020-06-22 17:39:02 -05:00
Mark Felder bf8310f380 Add missing default config value for :instance, instance_thumbnail
Follows up on b7fc61e17b
2020-06-22 17:35:02 -05:00
Haelwenn 98f014d3be Merge branch 'warning/mastofe-settings-blob' into 'develop'
Add warning against parsing/reusing MastoFE settings blob

See merge request pleroma/pleroma!2671
2020-06-22 21:59:21 +00:00
Haelwenn (lanodan) Monnier 8f6ba4b22f
Add warning against parsing/reusing MastoFE settings blob 2020-06-22 23:45:29 +02:00
lain 46f7e51b27 Merge branch 'add-muted-to-notifications' into 'develop'
Add `pleroma.is_muted` property to notifications

Closes #1812

See merge request pleroma/pleroma!2670
2020-06-22 15:40:09 +00:00
Egor Kislitsyn b3a549e916
Update NotificationOperation spec 2020-06-22 19:18:33 +04:00
Egor Kislitsyn 7e6f43c0d7
Add `is_muted` to notifications 2020-06-22 19:03:04 +04:00
Maksim Pechnikov b0a40fc2e4 added verify RUM settings before start app 2020-06-22 17:27:49 +03:00
lain 59bdef0c33 Merge branch 'feature/1739-account-endpoints' into 'develop'
account visibility in masto api

Closes #1739

See merge request pleroma/pleroma!2488
2020-06-22 12:37:10 +00:00
lain 31489bc864 Merge branch 'docs_use_include_for_install_further_reading' into 'develop'
Add include for the "Further reading" section

See merge request pleroma/pleroma!2667
2020-06-22 12:35:00 +00:00
lain 8b5bdd164e Merge branch 'fix/1825-admin-api-error-codes' into 'develop'
Proper error codes for error in adminFE

Closes #1825

See merge request pleroma/pleroma!2665
2020-06-22 12:25:12 +00:00
lain a0762fd5ea Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2661
2020-06-22 12:23:45 +00:00
Ilja 499324f7be Removed a space that was too much 2020-06-22 14:22:23 +02:00
Ilja 1e089cdf29 I forgot to git add some files, oops (should be squashed with MR) 2020-06-22 14:18:55 +02:00
Ilja a3b10a4f64 Fix 1586 Docs: provide a index.md
* I renamed the introduction.md to index.md
* I moved over the FE parts to an index file in the FE repo (will do an MR in the FE repo to actually add it)
* While I was at it, I also fixed some broken links
2020-06-22 14:13:30 +02:00
lain b05f795326 Credo fixes 2020-06-22 14:02:29 +02:00
lain e785cd5cae ActivityPub: Remove `update` and switch to pipeline. 2020-06-22 13:59:45 +02:00
Ben Is 68c812eb2e Translated using Weblate (Italian)
Currently translated at 0.9% (1 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/it/
2020-06-22 11:34:18 +00:00
Ben Is 4f5af68b3e Added translation using Weblate (Italian) 2020-06-22 11:34:18 +00:00
rinpatch c75ba63bef Merge branch '1865-media-only' into 'develop'
Resolve "/api/v1/accounts/:id/statuses?only_media=true returns media that is not owned"

Closes #1865

See merge request pleroma/pleroma!2650
2020-06-22 11:34:07 +00:00
lain 1e7ca24430 Update Handling Test: Fix for re-used update ids. 2020-06-22 13:23:21 +02:00
lain 9438f83f83 Transmogrifier: Handle `Update` with the pipeline. 2020-06-22 13:16:05 +02:00
lain 31a4d42ce0 SideEffects: Handle user updating. 2020-06-22 13:15:37 +02:00
rinpatch 282f492cd5 Merge branch '1883-mrf-chat' into 'develop'
HellthreadPolicy: Restrict to Notes and Articles.

Closes #1883

See merge request pleroma/pleroma!2666
2020-06-22 10:00:13 +00:00
Ilja 9f7ee5dfa2 Add include for the "Further reading" section
* I added an include and use this include for the installation guides that already had this section
* I added the "Further reading" section as well as te "Questions" section to the English guides that didn't have it yet
* I added a first point "How Federation Works/Why is my Federated Timeline empty?" to link to lains blogpost about this because we still get this question a lot in the #pleroma support channel
* I reordered the list a bit
2020-06-22 11:41:22 +02:00
lain 93ae1c8bd3 Merge branch 'feature/1854-emoji-pagination' into 'develop'
Emoji and packs pagination

Closes #1854

See merge request pleroma/pleroma!2658
2020-06-22 08:41:09 +00:00
lain 35e9282ffd HellthreadPolicy: Restrict to Notes and Articles. 2020-06-22 10:35:11 +02:00
a1batross 807413d66e Merge develop 2020-06-21 15:23:29 +02:00
lain 6efd3730c3 Merge branch 'bugfix/mix.exs-version-dot-git-less' into 'develop'
mix.exs: version git-less (part 2, MacOS-compat)

See merge request pleroma/pleroma!2420
2020-06-20 16:22:01 +00:00
Alexander Strizhakov b5f13af7ba Apply suggestion to lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex 2020-06-20 10:59:08 +00:00
Alexander Strizhakov c5863438ba
proper error codes for error in adminFE 2020-06-20 13:53:57 +03:00
lain 31761340fe Merge branch 'feature/support-bot-field-in-update-credentials' into 'develop'
Support 'bot' field in account update_credentials

Closes #1600 and #1467

See merge request pleroma/pleroma!2662
2020-06-20 09:57:12 +00:00
lain 50d0c58003 Merge branch 'docs/attachment_links' into 'develop'
cheatsheet.md: no_attachment_links → attachment_links

See merge request pleroma/pleroma!2664
2020-06-20 09:56:04 +00:00
lain 6f6ccfccca Merge branch 'cleanup/object-conversation' into 'develop'
Stop filling conversation field on incoming objects (legacy, unused)

See merge request pleroma/pleroma!2663
2020-06-20 09:45:01 +00:00
lain 0e789bc55f Apply suggestion to lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex 2020-06-20 09:39:50 +00:00
Haelwenn (lanodan) Monnier 15ba539258
cheatsheet.md: no_attachment_links → attachment_links 2020-06-20 11:39:06 +02:00
lain 4cb7b1ebc6 Apply suggestion to lib/mix/tasks/pleroma/config.ex 2020-06-20 09:34:34 +00:00
lain 7d542450b1 Merge branch 'develop' into '1865-media-only'
# Conflicts:
#   CHANGELOG.md
2020-06-20 09:33:18 +00:00
Alexander Strizhakov 1a704e1f1e
fix for packs pagination 2020-06-20 10:56:28 +03:00
Haelwenn (lanodan) Monnier 3d4cfc9c5f
Stop filling conversation field on incoming objects (legacy, unused)
conversation field is still set for outgoing federation for compatibility.
2020-06-20 00:08:26 +02:00
feld f928267773 Merge branch 'issue/1855' into 'develop'
#1855 MediaProxy cache invalidation via Admin API

See merge request pleroma/pleroma!2648
2020-06-19 20:38:22 +00:00
Sergey Suprunenko ac0344dd24
Only accounts with Service actor_type are considered as bots 2020-06-19 21:19:00 +02:00
Sergey Suprunenko b63646169d
Add support for bot field in update_credentials 2020-06-19 21:18:07 +02:00
lain 75670a99e4 UpdateValidator: Only allow updates from the user themselves. 2020-06-19 16:38:57 +02:00
lain 436bb0cd12 Merge branch 'add-troubleshooting-info' into 'develop'
README: Add some troubleshooting info for compilation issues.

See merge request pleroma/pleroma!2660
2020-06-19 14:26:43 +00:00
lain d54b0432ea README: Add some troubleshooting info for compilation issues. 2020-06-19 15:49:34 +02:00
lain cafdf18408 Merge branch '1873-pagination-fixes' into 'develop'
[#1873] :offset pagination param support, hashtags pagination

Closes #1873

See merge request pleroma/pleroma!2659
2020-06-19 13:42:57 +00:00
lain 372533b7c3 Merge branch 'dry-up-follower-update' into 'develop'
User: update_follower_count refactor.

See merge request pleroma/pleroma!2649
2020-06-19 13:40:34 +00:00
lain abdb540d45 ObjectValidators: Add basic UpdateValidator. 2020-06-19 15:30:30 +02:00
Ivan Tashkinov 5237a2df9f [#1873] Fixes missing :offset pagination param support. Added pagination support for hashtags search. 2020-06-19 16:14:06 +03:00
lain 7e488cd4a7 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into update-validator 2020-06-19 14:56:50 +02:00
Alexander Strizhakov 02ca8a363f
default page size for files 2020-06-19 14:46:38 +03:00
Alexander Strizhakov 0c739b423a
changelog entry 2020-06-19 12:31:55 +03:00
Alexander Strizhakov 3e3f9253e6
adding overall count for packs and files 2020-06-19 10:17:24 +03:00
Alexander Strizhakov 4975ed86bc
emoji pagination for pack show action 2020-06-18 18:50:03 +03:00
Alexander Strizhakov 3becdafd33
emoji packs pagination 2020-06-18 14:32:21 +03:00
Maksim Pechnikov e4c61f1741 added test 2020-06-18 05:45:15 +03:00
Maksim Pechnikov c9b5e3feda revert 'database' option to rejected keys 2020-06-18 05:29:31 +03:00
Maksim Pechnikov 4044f24e2e fix test 2020-06-18 05:06:28 +03:00
Mark Felder 2731ea1334 Change references from "deleted_urls" to "banned_urls" as nothing is handled via media deletions anymore; all actions are manual operations by an admin to ban the url 2020-06-17 13:13:55 -05:00
Mark Felder c08c9db0c1 Remove misleading is_ prefix from boolean function 2020-06-17 13:02:01 -05:00
Mark Felder 71a5d9bffb Empty list as default 2020-06-17 12:54:02 -05:00
Mark Felder 3462d4b995 Merge branch 'develop' into issue/1855 2020-06-17 12:50:06 -05:00
lain d772361e62 Merge branch 'fix/1787-mogrify-args' into 'develop'
Moving custom ecto types in context folders

See merge request pleroma/pleroma!2652
2020-06-17 15:53:24 +00:00
rinpatch 43a47bf5cc Merge branch 'fix/notification-type' into 'develop'
Remove `poll` from `notification_type` OpenAPI spec

Closes #1867

See merge request pleroma/pleroma!2657
2020-06-17 15:21:42 +00:00
Egor Kislitsyn d4b5a9730e
Remove `poll` from `notification_type` OpenAPI spec 2020-06-17 18:47:59 +04:00
Maksim 96493da7bd Apply suggestion to test/web/media_proxy/invalidation_test.exs 2020-06-17 13:14:01 +00:00
Maksim 9a371bf5f6 Apply suggestion to lib/pleroma/web/media_proxy/invalidations/script.ex 2020-06-17 13:12:38 +00:00
Maksim 44ce97a9c9 Apply suggestion to lib/pleroma/web/media_proxy/invalidations/script.ex 2020-06-17 13:12:32 +00:00
Maksim 078d687e6e Apply suggestion to test/web/media_proxy/media_proxy_controller_test.exs 2020-06-17 12:58:50 +00:00
Maksim 2991aae4c4 Apply suggestion to test/web/media_proxy/invalidations/script_test.exs 2020-06-17 12:58:38 +00:00
Maksim 11b22a4229 Apply suggestion to test/web/media_proxy/invalidations/http_test.exs 2020-06-17 12:58:33 +00:00
Maksim 6d33a3a51b Apply suggestion to test/web/admin_api/controllers/media_proxy_cache_controller_test.exs 2020-06-17 12:58:28 +00:00
Maksim 793a53f1ec Apply suggestion to test/web/admin_api/controllers/media_proxy_cache_controller_test.exs 2020-06-17 12:58:16 +00:00
Maksim 1b45bc7b2a Apply suggestion to test/web/admin_api/controllers/media_proxy_cache_controller_test.exs 2020-06-17 12:58:08 +00:00
Maksim 74fd761637 Apply suggestion to lib/pleroma/web/media_proxy/invalidation.ex 2020-06-17 12:56:30 +00:00
Maksim abfb1c756b Apply suggestion to docs/API/admin_api.md 2020-06-17 12:56:17 +00:00
Maksim 90613348ed Apply suggestion to docs/API/admin_api.md 2020-06-17 12:56:13 +00:00
rinpatch 4ec2fb967e Merge branch 'features/users-raw_bio' into 'develop'
User: Add raw_bio, storing unformatted bio

See merge request pleroma/pleroma!2326
2020-06-17 10:34:23 +00:00
Alexander Strizhakov 9a82de219c
formatting 2020-06-17 10:50:05 +03:00
Alexander Strizhakov abda3f2d92
suggestion for changelog 2020-06-17 10:47:20 +03:00
Alexander Strizhakov a77b0388f4
credo fix 2020-06-17 10:31:06 +03:00
Maksim Pechnikov 02a5648feb fixed migration the settings to DB 2020-06-17 09:15:35 +03:00
rinpatch bb68f9d27c Merge branch 'release/update-otp-elixir' into 'develop'
Update elixir image used for OTP releases

See merge request pleroma/pleroma!2654
2020-06-17 00:00:51 +00:00
rinpatch 281ecd6b30 CHANGELOG.md: mention minimal elixir version update 2020-06-17 02:30:38 +03:00
rinpatch 55d8263c00 Update OTP releases to official images of 1.10.3
This is necessary since we bumped required version of elixir to 1.9.

The dlsym bug should be gone by now.
2020-06-17 02:27:28 +03:00
lain 83e5b95102 Merge branch 'hotfix/notification-migration' into 'develop'
Chunk the notification type backfill migration

See merge request pleroma/pleroma!2653
2020-06-16 21:07:04 +00:00
rinpatch 5c0e1039ce Chunk the notification type backfill migration
Long-term we want that migration to be done entirely in SQL,
but for now this is a hotfix to not cause OOMs on large databases.

This is using a homegrown version of `Repo.stream`, it's worse in
terms of performance than the upstream since it doesn't use the same
prepared query for chunk queries, but unlike the upstream it supports
preloads.
2020-06-16 23:53:13 +03:00
Haelwenn b536e57124 Merge branch '1866-last-status-stuff' into 'develop'
Resolve "/api/v1/conversations returns the wrong `last_status`"

Closes #1866

See merge request pleroma/pleroma!2647
2020-06-16 18:10:00 +00:00
href 39f7fc5b8e Update majic & call plug before OpenApiSpex 2020-06-16 19:00:54 +02:00
Alexander Strizhakov b66e6eb521
fixes for tests 2020-06-16 19:03:45 +03:00
Alexander Strizhakov ed189568f3
moving mrf settings from instance to separate group 2020-06-16 18:32:18 +03:00
Alexander Strizhakov 3c2cee33ad
moving custom ecto types in context folders 2020-06-16 17:50:33 +03:00
href f124f68205 Switch from gen_magic to majic, use Majic.Plug, remove Pleroma.MIME 2020-06-16 15:27:27 +02:00
rinpatch 8bfacffabc Merge branch 'elixir-1.9' into 'develop'
Upgrade to Elixir 1.9

See merge request pleroma/pleroma!2651
2020-06-16 13:18:29 +00:00
Steven Fuchs aca6a7543a Upgrade to Elixir 1.9 2020-06-16 13:18:29 +00:00
lain 4baf5ffe73 Merge branch 'fix/1787-mogrify-args' into 'develop'
Mogrify args in adminFE

Closes #1787

See merge request pleroma/pleroma!2616
2020-06-16 13:17:52 +00:00
href ec1452fd1c Pleroma.MIME: use gen_magic 2020-06-16 15:15:50 +02:00
Alexander Strizhakov 32c6576b60
naming 2020-06-16 15:54:22 +03:00
Alexander Strizhakov e1603ac8fe
fix attemps to merge map 2020-06-16 15:54:22 +03:00
Alexander Strizhakov 23decaab81
fix for updated hackney
warning: :hackney_connect.partial_chain/1 is undefined or private
2020-06-16 15:54:22 +03:00
Alexander Strizhakov 9a4fde9766
Mogrify args as custom tuples 2020-06-16 15:53:28 +03:00
lain 015f9258a9 Transmogrifier: Extract user update handling tests. 2020-06-16 14:48:46 +02:00
lain 4733f6a337 Changelog: Add info about `only_media` changes. 2020-06-16 13:09:28 +02:00
lain 1eb6cedaad ActivityPub: When restricting to media posts, only show 'Creates'. 2020-06-16 13:08:27 +02:00
Maksim Pechnikov b023110799 fixed a visibility of functions 2020-06-15 20:48:22 +03:00
stwf faba1a6e33 fix tests 2020-06-15 12:25:03 -04:00
lain 1e49bfa9ac Merge branch 'merge-ogp-twitter-parsers' into 'develop'
Merge OGP parser with TwitterCard

Closes #1835

See merge request pleroma/pleroma!2642
2020-06-15 12:41:48 +00:00
lain e1ee8bc1da User: update_follower_count refactor. 2020-06-15 14:29:34 +02:00
Maksim Pechnikov 579763126f Merge branch 'develop' into issue/1855 2020-06-15 15:24:55 +03:00
Maksim Pechnikov efdfc85c2d update docs 2020-06-15 15:24:00 +03:00
Egor Kislitsyn bd63089a63
Fix tests 2020-06-15 16:20:05 +04:00
Egor Kislitsyn 58e4e3db8b
Merge remote-tracking branch 'origin/develop' into merge-ogp-twitter-parsers 2020-06-15 16:03:40 +04:00
Maksim Pechnikov 62b8c31b7a added tests 2020-06-15 14:55:00 +03:00
lain 1092b36500 Changelog: Add info about conversation view changes. 2020-06-15 12:30:11 +02:00
lain b7df7436c8 Conversations: Return last dm for conversation, not last message. 2020-06-15 12:27:13 +02:00
lain 448e93ce2c Merge branch 'notifications-filtering' into 'develop'
Mastodon API return full result set in notifications

See merge request pleroma/pleroma!2552
2020-06-15 07:57:58 +00:00
Maksim Pechnikov 2e8a236cef fix invalidates media url's 2020-06-14 21:02:57 +03:00
eugenijm b15cfc3d36 Mastodon API: ensure the notification endpoint doesn't return less than the requested amount of records unless it's the last page 2020-06-14 18:27:11 +03:00
rinpatch 271ea5068f Merge branch '1851-favorites-pagination' into 'develop'
StatusController: Correctly paginate favorites.

Closes #1851

See merge request pleroma/pleroma!2636
2020-06-13 17:20:43 +00:00
lain 1d625c29a0 ControllerHelper: Always return id field. 2020-06-13 13:12:43 +02:00
lain 4b865bba10 Apply suggestion to lib/pleroma/web/controller_helper.ex 2020-06-13 10:37:15 +00:00
href cb7be6eef2 Remove use of atoms in MRF.UserAllowListPolicy 2020-06-13 12:08:46 +03:00
Egor Kislitsyn 520367d6fd Fix atom leak in Rich Media Parser 2020-06-13 12:08:46 +03:00
rinpatch f891e2b2f1 Merge branch 'release/2.0.7' into 'stable'
Release/2.0.7

See merge request pleroma/secteam/pleroma!8
2020-06-13 09:07:02 +00:00
Mark Felder 26f710b9e3 Merge branch 'develop' into preload-data 2020-06-12 16:52:52 -05:00
Haelwenn e2793744c5 Merge branch 'patch-1' into 'develop'
Update pleroma.nginx to support TLSv1.3

See merge request pleroma/pleroma!2644
2020-06-12 21:46:16 +00:00
rinpatch d050d21103 Apply suggestion to CHANGELOG.md 2020-06-12 20:06:49 +00:00
rinpatch ffd12d3a1e CHANGELOG.md: add 2.0.7 entry 2020-06-12 21:09:40 +03:00
rinpatch 9046f85ced mix.exs: bump to 2.0.7 2020-06-12 21:09:28 +03:00
feld 90676bdfe3 Merge branch 'fix/csp-mediaproxy-base-url' into 'develop'
HTTP security plug: add media proxy base url host to csp

See merge request pleroma/pleroma!2638
2020-06-12 20:43:59 +03:00
rinpatch cd2df734dd Merge branch 'bugfix/csp-unproxied' into 'develop'
http_security_plug.ex: Fix non-proxied media

See merge request pleroma/pleroma!2610
2020-06-12 20:43:36 +03:00
Haelwenn (lanodan) Monnier e313aa0977 static-fe.css: Restore and move to /priv/static/static-fe 2020-06-12 20:42:43 +03:00
Haelwenn 4115701f71 Merge branch 'recipients-experiments' into 'develop'
ActivityPub: Don't show announces of your own objects in timeline.

See merge request pleroma/pleroma!2637
2020-06-12 16:57:13 +00:00
href 8efd1614ec Remove use of atoms in MRF.UserAllowListPolicy 2020-06-12 18:57:46 +03:00
Egor Kislitsyn 8b8b8599e9 Fix atom leak in Rich Media Parser 2020-06-12 18:51:42 +03:00
Egor Kislitsyn 09d31d24de
Return an empty map from Pleroma.Web.RichMedia.Parsers.OGP.parse/2 2020-06-12 18:39:51 +04:00
Egor Kislitsyn 697cf92024
Merge remote-tracking branch 'origin/develop' into merge-ogp-twitter-parsers 2020-06-12 18:25:29 +04:00
lain e557265a03 Merge branch 'global-status-expiration' into 'develop'
Global status expiration

See merge request pleroma/pleroma!2208
2020-06-12 14:14:09 +00:00
lain 4655407451 Apply suggestion to config/description.exs 2020-06-12 14:03:33 +00:00
feld 6d902916dd Merge branch 'features/mix-task-reset-mfa' into 'develop'
New mix task: pleroma.user reset_mfa <nickname>

See merge request pleroma/pleroma!2643
2020-06-12 14:01:19 +00:00
feld ebbf2189ee Merge branch 'chore/bump-changelog' into 'develop'
Add changelog entry for emoji pack reload command

See merge request pleroma/pleroma!2646
2020-06-12 13:55:13 +00:00
Mark Felder e505e59d9c Document new mix task feature to reset mfa 2020-06-12 08:51:11 -05:00
Mark Felder 34593d6aa5 Merge branch 'develop' into features/mix-task-reset-mfa 2020-06-12 08:43:50 -05:00
Mark Felder c2048f75cd Add changelog entry for emoji pack reload command 2020-06-12 08:42:23 -05:00
lain 1419c67f4d Merge branch 'feature/cli-reload-emoji' into 'develop'
Add command to reload emoji packs from cli for OTP users

Closes #1814

See merge request pleroma/pleroma!2639
2020-06-12 13:32:59 +00:00
feld 11aa02bb10 Merge branch '1794-hashtags-construction-from-uri-fix' into 'develop'
[#1794] Fixes URI query handling for hashtags extraction in search

Closes #1794

See merge request pleroma/pleroma!2645
2020-06-12 12:31:27 +00:00
Maksim Pechnikov f9dcf15ecb added admin api for MediaProxy cache invalidation 2020-06-12 14:49:54 +03:00
Ivan Tashkinov 2188097066 [#1794] Fixes URI query handling for hashtags extraction in search. 2020-06-12 14:25:41 +03:00
normandy 122328b93a Update pleroma.nginx to support TLSv1.3
Based on SSL config from https://ssl-config.mozilla.org/
2020-06-12 02:05:49 -04:00
Haelwenn (lanodan) Monnier 40970f6bb9
New mix task: pleroma.user reset_mfa <nickname> 2020-06-11 22:54:48 +02:00
Egor Kislitsyn 2419776e19
Deprecate Pleroma.Web.RichMedia.Parsers.OGP 2020-06-11 23:11:46 +04:00
feld 5474b5c988 Merge branch 'fix/csp-mediaproxy-base-url' into 'develop'
HTTP security plug: add media proxy base url host to csp

See merge request pleroma/pleroma!2638
2020-06-11 16:18:06 +00:00
Mark Felder 7f7a1a4676 Check for media proxy base_url, not Upload base_url 2020-06-11 11:05:22 -05:00
Mark Felder 8a59fde0e5 Merge branch 'develop' into fix/csp-mediaproxy-base-url 2020-06-11 10:25:00 -05:00
a1batross 5b55244336 Merge develop into emr_develop 2020-06-11 17:06:40 +02:00
a1batross 7ba6917634 Merge tag 'v2.0.6' into emr_develop 2020-06-11 16:48:13 +02:00
feld 5d6ec6e5fc Merge branch '1794-hashtags-construction-from-uri' into 'develop'
[#1794] Hashtags search fix for URI as query string

Closes #1794

See merge request pleroma/pleroma!2641
2020-06-11 14:04:51 +00:00
Egor Kislitsyn 1f35acce54
Merge OGP parser with TwitterCard 2020-06-11 17:57:31 +04:00
Ivan Tashkinov b28cec4271 [#1794] Fixes URI query handling for hashtags extraction in search. 2020-06-11 16:05:14 +03:00
lain 5e44e9d698 Apply suggestion to lib/pleroma/web/controller_helper.ex 2020-06-10 18:56:46 +00:00
Mark Felder 7c47f791a8 Add command to reload emoji packs from cli for OTP users
Not useful for source releases as we don't have a way to automate connecting to the running instance.
2020-06-10 13:02:08 -05:00
rinpatch 99afc7f4e4 HTTP security plug: add media proxy base url host to csp 2020-06-10 20:09:16 +03:00
lain 5d87405b51 ActivityPubTest: Update test for atomized parameters. 2020-06-10 16:55:30 +02:00
Thibaut Girka 570123ae21 Add test 2020-06-10 16:53:24 +02:00
rinpatch 7aa6c82937 Merge branch 'remake-remodel-dms' into 'develop'
Chats / ChatMessages

See merge request pleroma/pleroma!2429
2020-06-10 12:05:45 +00:00
lain 600e2ea073 ActivityPubTest: Make test easier to understand. 2020-06-10 12:15:56 +02:00
lain 9e411372d0 ActivityPub: Don't show announces of your own objects in timeline. 2020-06-10 12:10:09 +02:00
lain 86fec45f40 ControllerHelper: Fix wrong comparison. 2020-06-10 11:09:45 +02:00
lain b4c50be9df Apply suggestion to lib/pleroma/web/controller_helper.ex 2020-06-10 08:12:29 +00:00
lain be7c322865 Apply suggestion to lib/pleroma/web/controller_helper.ex 2020-06-10 08:02:35 +00:00
lain c4f267b3be Apply suggestion to lib/pleroma/web/controller_helper.ex 2020-06-10 08:02:26 +00:00
rinpatch 6c90fc8e70 Merge branch 'release/2.0.6' into 'stable'
Release/2.0.6

See merge request pleroma/pleroma!2632
2020-06-09 18:06:27 +00:00
lain 1b746cfbbb Merge branch 'add-url-to-admin-account-view' into 'develop'
Add `url` field to AdminAPI.AccountView

See merge request pleroma/pleroma!2633
2020-06-09 12:59:14 +00:00
Egor Kislitsyn 3dd1de61a7 Add `url` field to AdminAPI.AccountView 2020-06-09 16:02:42 +04:00
lain 063e6b9841 StatusController: Correctly paginate favorites.
Favorites were paginating wrongly, because the pagination headers
where using the id of the id of the `Create` activity, while the
ordering was by the id of the `Like` activity. This isn't easy to
notice in most cases, as they usually have a similar order because
people tend to favorite posts as they come in. This commit adds a
way to give different pagination ids to the pagination helper, so
we can paginate correctly in cases like this.
2020-06-09 10:53:40 +02:00
lain 064c4f86f3 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-09 09:36:07 +02:00
lain 674efb0ad2 Merge branch 'features/mediatype-mime-valid' into 'develop'
transmogrifier: MIME.valid?/1 for mediaType

See merge request pleroma/pleroma!2634
2020-06-09 07:32:43 +00:00
lain 40d5058cc4 Merge branch 'remake-remodel-dms' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-09 09:21:44 +02:00
lain e1bc37d118 MigrationHelper: Move notification backfilling to own module. 2020-06-09 09:20:55 +02:00
lain fc04a138d4 Apply suggestion to lib/pleroma/notification.ex 2020-06-08 20:01:37 +00:00
Haelwenn (lanodan) Monnier fe1cb56fdc
transmogrifier: MIME.valid?/1 for mediaType
No issues with the rest of the network yet but this makes sure it will work
once https://git.pleroma.social/pleroma/pleroma/-/merge_requests/2429
is merged.
2020-06-08 21:04:30 +02:00
rinpatch f05f206e13 CHANGELOG.md: add 2.0.6 entry 2020-06-08 22:00:27 +03:00
Roman Chvanikov 604a83ae3e merge develop 2020-06-08 19:21:07 +03:00
Egor Kislitsyn d44843e677
Restrict ActivityExpirationPolicy to Notes only 2020-06-08 17:56:34 +04:00
Egor Kislitsyn da22119c2f
Merge branch 'develop' into global-status-expiration 2020-06-08 17:21:47 +04:00
lain d192492658 Merge branch 'openapi/admin/relay' into 'develop'
Add OpenAPI spec for AdminAPI.RelayController

See merge request pleroma/pleroma!2579
2020-06-08 11:07:01 +00:00
lain c450b248cc Merge branch 'feature/delete-follow-requests-on-user-deletion' into 'develop'
Delete outgoing pending follow requests on user deletion

See merge request pleroma/pleroma!2631
2020-06-08 10:54:43 +00:00
lain 3b5282bef2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-08 11:19:18 +02:00
lain a1aa9fa913 Merge branch 'activity-pub-use-atoms-as-keys' into 'develop'
Use atoms as keys in `ActivityPub.fetch_*` options

See merge request pleroma/pleroma!2629
2020-06-08 09:11:55 +00:00
lain 89b85f6529 ChatController: Remove nonsensical pagination. 2020-06-08 11:09:53 +02:00
lain 7d66dd180a Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-08 10:18:10 +02:00
rinpatch fe8cf54829 mix.exs: bump version to 2.0.6 2020-06-08 01:33:07 +03:00
rinpatch ada9d15eee Merge branch 'recipients-query-speedup' into 'develop'
Greatly speed up recipients query

See merge request pleroma/pleroma!2558
2020-06-08 01:32:35 +03:00
lain eabf9317b5 Migrations: Add index on client_id and client_secret for apps.
Greatly speeds up app lookup.
2020-06-08 01:20:48 +03:00
lain c29ad60c20 Activity.Queries: Use correct actor restriction. 2020-06-08 01:20:13 +03:00
lain e9aa6a3fa4 ActivityPub: Change ordering to `nulls last` in favorites query
This makes it use our existing index and speeds up the query.
2020-06-08 01:19:57 +03:00
rinpatch 3687788cf2 Merge branch 'notification-fixes' into 'develop'
Notification performance fixes

See merge request pleroma/pleroma!2595
2020-06-08 00:58:31 +03:00
rinpatch f10b40828f [stable rewrite]: fix streamer streaming out announces from a muted thread
Use parent object instead of activity because context is null of Announce activity from Mastodon.
2020-06-08 00:58:31 +03:00
Haelwenn 9396b2f8cf Merge branch 'features/apc2s-pagination' into 'develop'
Fix AP C2S pagination

Closes #866 and #751

See merge request pleroma/pleroma!2491
2020-06-08 00:58:31 +03:00
Roman Chvanikov 0186f56d93 Update crypt library 2020-06-08 00:58:31 +03:00
Alexander Strizhakov cf6501f314 fix for syslog compile with updated rebar3 2020-06-08 00:58:31 +03:00
rinpatch df06bab437 [stable rewrite] update hackney to 1.16.0 and add support for tlsv1.3 2020-06-08 00:58:31 +03:00
rinpatch a51284b60a Merge branch 'fix/mediaproxy-bypass-emoji' into 'develop'
Fix profile emojis bypassing mediaproxy and harden CSP

Closes #1810

See merge request pleroma/pleroma!2596
2020-06-08 00:58:30 +03:00
lain 1a2acce7c5 Docs: Document new mandatory parameter. 2020-06-07 20:23:17 +02:00
lain fe2a5d0614 ChatController: Make last_read_id mandatory. 2020-06-07 20:22:08 +02:00
Sergey Suprunenko 8d9e586887
Delete pending follow requests on user deletion 2020-06-07 17:31:37 +02:00
lain 680fa5fa36 Docs: Update docs on mark as read. 2020-06-07 15:41:46 +02:00
lain 801e668a97 ChatController: Add `last_read_id` option to mark_as_read. 2020-06-07 15:38:33 +02:00
lain 2cdaac4330 SideEffects: Move streaming of chats to after the transaction. 2020-06-07 14:52:56 +02:00
lain 1a11f0e453 Chats: Change id to flake id. 2020-06-07 14:25:30 +02:00
lain 0365053c8d AttachmentValidator: Check if the mime type is valid. 2020-06-07 09:19:00 +02:00
lain 40fc4e974e Notfication: Add validation of notification types 2020-06-06 16:59:08 +02:00
lain f4cf4ae16e ChatController: Use new oauth scope *:chats. 2020-06-06 16:48:02 +02:00
Haelwenn (lanodan) Monnier e1b07402ab
User: Add raw_bio, storing unformatted bio
Related: https://git.pleroma.social/pleroma/pleroma/issues/1643
2020-06-06 16:23:16 +02:00
lain f77d4a302d Credo fixes. 2020-06-06 15:51:08 +02:00
lain 9189b489ee Migrations: Move Notification migration code to helper 2020-06-06 15:33:02 +02:00
lain 9fa3f0b156 Notification: Change type of `type` to an enum. 2020-06-06 13:08:45 +02:00
lain ca0e6e702b ChatMessageReference -> Chat.MessageReference 2020-06-06 11:51:10 +02:00
lain 137adef6e0 ChatMessageReference: Use FlakeId.Ecto.Type
No need for compat because this is brand new.
2020-06-06 10:42:24 +02:00
lain 239d03499e Chat: creation_cng -> changeset
Make our usage of this more uniform.
2020-06-06 10:38:45 +02:00
lain c5e3f2454c Docs: Unify parameters in examples. 2020-06-06 10:35:38 +02:00
lain 4e8c0eecd5 WebPush: Don't break on contentless chat messages. 2020-06-06 09:46:07 +02:00
Egor Kislitsyn 167812a3f2
Fix pagination 2020-06-05 23:18:29 +04:00
Egor Kislitsyn b02df1803e
Merge remote-tracking branch 'origin/develop' into activity-pub-use-atoms-as-keys 2020-06-05 23:15:10 +04:00
lain f24d2f714f Credo fixes 2020-06-05 17:18:48 +02:00
lain a8ca030d85 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-05 16:53:56 +02:00
Haelwenn d74985af23 Merge branch 'features/apc2s-pagination' into 'develop'
Fix AP C2S pagination

Closes #866 and #751

See merge request pleroma/pleroma!2491
2020-06-05 14:52:09 +00:00
Haelwenn 657e1583f8 Merge branch 'features/put_if_present' into 'develop'
Create Pleroma.Maps.put_if_present(map, key, value, value_function // &{:ok, &1}) :: map

See merge request pleroma/pleroma!2436
2020-06-05 14:48:02 +00:00
Haelwenn 54bae06b4f Create Pleroma.Maps.put_if_present(map, key, value, value_fun // &{:ok, &1})
Unifies all the similar functions to one and simplify some blocks with it.
2020-06-05 14:48:02 +00:00
lain 115d08a754 Pipeline: Add a side effects step after the transaction finishes
This is to run things like streaming notifications out, which will
sometimes need data that is created by the transaction, but is
streamed out asynchronously.
2020-06-05 16:47:02 +02:00
lain 65689ba9bd If Credo fixes is so good, why is there no Credo fixes 2? 2020-06-05 13:10:48 +02:00
lain f3ea6ee2c8 Credo fixes. 2020-06-05 12:45:25 +02:00
lain 0efa8aa0b9 Transmogrifier: For follows, create notifications last.
As the notification type changes depending on the follow state,
the notification should not be created and streamed out before the
state settles. For this reason, the notification creation has been
delayed until it's clear if the user has been followed or not.

This is a bit hacky but it will be properly rewritten using the
pipeline soon.
2020-06-05 12:26:07 +02:00
lain cc8a7dc205 SideEffects / ChatView: Add an unread cache.
This is to prevent wrong values in the stream.
2020-06-05 12:01:33 +02:00
lain aa2ac76510 Notification: Don't break on figuring out the type of old EmojiReactions 2020-06-04 20:40:46 +02:00
lain d44da91bbf SubscriptionOperation: Let chat mentions through. 2020-06-04 20:28:33 +02:00
Egor Kislitsyn 317e2b8d61
Use atoms as keys in `ActivityPub.fetch_*` functions options 2020-06-04 21:36:26 +04:00
lain 74edd4f391 Merge branch 'remake-remodel-dms' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-04 19:24:07 +02:00
lain 56dfa0e0fb Transmogrifier: Update notification after accepting. 2020-06-04 19:22:49 +02:00
lain 9a53f619e0 Apply suggestion to test/chat_message_reference_test.exs 2020-06-04 15:16:15 +00:00
lain 41503b1673 Apply suggestion to test/web/activity_pub/transmogrifier/chat_message_test.exs 2020-06-04 15:16:10 +00:00
lain 00748e9650 ChatMessageReferences: Change seen -> unread 2020-06-04 17:14:42 +02:00
stwf a42d135cce test fix 2020-06-04 10:51:24 -04:00
minibikini b57e4ad1ab Merge branch 'develop' into 'openapi/admin/relay'
# Conflicts:
#   lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
2020-06-04 13:29:32 +00:00
lain f5cb1f3616 Merge branch 'openapi/admin/config' into 'develop'
Add OpenAPI spec to AdminAPI.ConfigController

See merge request pleroma/pleroma!2606
2020-06-04 13:00:13 +00:00
lain 6e103a18af Docs: Document WebPush changes. 2020-06-04 14:49:36 +02:00
lain b952f3f379 WebPush: Push out chat message notications. 2020-06-04 14:49:10 +02:00
lain 5d7dda883e SideEffectsTest: More tests. 2020-06-04 14:46:41 +02:00
Egor Kislitsyn a8132690bd
Fix credo 2020-06-04 13:46:13 +04:00
Egor Kislitsyn 70f054b083
Merge branch 'develop' into openapi/admin/relay 2020-06-04 13:30:14 +04:00
Egor Kislitsyn b4d5bdd6f1
Merge branch 'develop' into openapi/admin/config 2020-06-04 13:28:00 +04:00
stwf 75e886b506 fix config 2020-06-03 17:32:03 -04:00
stwf 906ac57ba8 Merge branch 'preload-data' of git.pleroma.social:stwf/pleroma into preload-data
# Conflicts:
#	lib/pleroma/web/preload/status_net.ex
2020-06-03 17:25:53 -04:00
stwf 5677b21e82 clean up 2020-06-03 17:24:35 -04:00
stwf 3b8180d7d1 add status_net/config 2020-06-03 16:34:03 -04:00
stwf dbcc1b105e encode data properly 2020-06-03 16:34:03 -04:00
stwf 29ae5bb771 preload data into index.html 2020-06-03 16:34:03 -04:00
lain e46aecda55 Notification: Fix notifications backfill for compacted activities 2020-06-03 20:51:59 +02:00
stwf aa26dc6a13 add status_net/config 2020-06-03 13:40:48 -04:00
lain e213e31577 Changelog: Add chats to changelog. 2020-06-03 19:25:57 +02:00
lain 286bd8eb83 Docs: Add `mark_message_as_read` to docs 2020-06-03 19:24:37 +02:00
lain b3407344d3 ChatController: Add function to mark single message as read. 2020-06-03 19:21:23 +02:00
lain d6693a9102 Merge branch 'openapi/admin/reports' into 'develop'
Add OpenAPI spec for AdminAPI.ReportController

See merge request pleroma/pleroma!2628
2020-06-03 17:00:59 +00:00
lain c020fd4352 ChatMessageReferenceView: Return read status as `unread`. 2020-06-03 18:58:58 +02:00
Egor Kislitsyn c16315d055
Add OpenAPI spec for AdminAPI.ReportController 2020-06-03 19:17:05 +04:00
Egor Kislitsyn 9d572f2f66
Move report actions to AdminAPI.ReportController 2020-06-03 19:17:04 +04:00
lain fb4ae9c720 Streamer, SideEffects: Stream out ChatMessageReferences
Saves us a few calles to fetch things from the DB that we already
have.
2020-06-03 16:45:04 +02:00
Haelwenn 18b050dfd1 Merge branch 'openapi/update-admin-api/status' into 'develop'
Update OpenAPI spec for AdminAPI.StatusController

See merge request pleroma/pleroma!2624
2020-06-03 14:04:12 +00:00
lain 903955b189 FollowingRelationship: Remove meaningless change 2020-06-03 14:40:44 +02:00
lain 7b79871e97 Migrations: Add chat_id, seen index to ChatMessageReferences
This ensures fast count of unseen messages
2020-06-03 14:34:33 +02:00
lain 1e9efcf7c3 Migrations: Fix migration module name 2020-06-03 14:27:54 +02:00
lain 7f5c5b11a5 Chats: Remove `unread` from the db, calculate from unseen messages. 2020-06-03 14:26:50 +02:00
lain d28d88766b Merge branch 'admin-api/account-view' into 'develop'
Use AdminAPI.StatusView in api/admin/users

Closes #1836

See merge request pleroma/pleroma!2627
2020-06-03 11:28:56 +00:00
lain 8edead7c1d Migration: Remove superfluous imports 2020-06-03 13:19:38 +02:00
lain 73127cff75 Credo fixes. 2020-06-03 13:17:29 +02:00
lain 6413e06a86 Migrations: Add unique index to ChatMessageReferences. 2020-06-03 13:13:44 +02:00
lain 2591745fc2 ChatMessageReferences: Move tests 2020-06-03 12:56:39 +02:00
Egor Kislitsyn 8a43611e01
Use AdminAPI.StatusView in api/admin/users 2020-06-03 14:53:46 +04:00
lain f3ccd50a33 ChatMessageReferences: Adjust views 2020-06-03 12:49:53 +02:00
lain aa22fce8f4 ChatMessageReference: Introduce and switch in chat controller. 2020-06-03 12:30:12 +02:00
lain 12c2b3b831 Merge branch 'patch-3' into 'develop'
docs: clients.md: Add Husky

See merge request pleroma/pleroma!2626
2020-06-03 07:18:32 +00:00
Alibek Omarov 030240ee8f docs: clients.md: Add Husky 2020-06-03 04:36:09 +00:00
feld 6c1c2cddec Merge branch 'fix/1794-hashtag-search-results' into 'develop'
[#1794] Improvements to hashtags extraction from search query

Closes #1794

See merge request pleroma/pleroma!2611
2020-06-02 16:30:03 +00:00
Egor Kislitsyn 7922e63825
Update OpenAPI spec for AdminAPI.StatusController 2020-06-02 19:08:09 +04:00
Egor Kislitsyn 68cb152a08
Merge branch 'develop' into openapi/admin/relay 2020-06-02 18:50:37 +04:00
stwf f73b2063f4 encode data properly 2020-06-02 10:18:06 -04:00
lain 879304dcd9 Merge branch 'replies-domain-block' into 'develop'
Replies domain block

Closes #1650

See merge request pleroma/pleroma!2622
2020-06-02 14:14:23 +00:00
lain 5da38c15cd Merge branch 'openapi/admin/oauth-apps' into 'develop'
Add OpenAPI spec for AdminAPI.OAuthAppContoller

See merge request pleroma/pleroma!2582
2020-06-02 14:13:24 +00:00
lain 6977500ef7 Merge branch 'tagline' into 'develop'
Update default instance description

See merge request pleroma/pleroma!2600
2020-06-02 14:10:53 +00:00
lain 022d975a39 Merge branch 'openapi/admin/invites' into 'develop'
Add OpenAPI spec for AdminAPI.InviteController

See merge request pleroma/pleroma!2585
2020-06-02 14:10:21 +00:00
lain 2860c66e88 Merge branch 'feature/embeddable-posts' into 'develop'
Add embeddable posts

Closes #1288

See merge request pleroma/pleroma!2319
2020-06-02 14:04:34 +00:00
lain 2c6ebe709a Credo fixes 2020-06-02 15:14:52 +02:00
lain 6cd2fa2a4c Migrations: Add a migration to backfill notification types. 2020-06-02 15:13:19 +02:00
lain 38dce485c4 Notification: Add function to backfill notification types 2020-06-02 14:50:10 +02:00
lain 904295d53b Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-02 14:28:01 +02:00
lain 37542a9dfa Activity: Remove notifications-related functions. 2020-06-02 14:22:16 +02:00
lain 127ccc4e1c NotificationController: Don't return chat_mentions by default. 2020-06-02 14:05:53 +02:00
lain cd2abcc0e3 Merge branch 'fix/invisible-repeats' into 'develop'
Do not include activities of invisible users unless explicitly requested

Closes #1833

See merge request pleroma/pleroma!2620
2020-06-02 11:32:03 +00:00
lain 805ab86933 Notifications: Make notifications save their type. 2020-06-02 13:24:34 +02:00
rinpatch 165a4b2a69 Do not include activities of invisible users unless explicitly requested
Closes #1833
2020-06-02 13:34:12 +03:00
lain 2db7a0d6b6 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2623
2020-06-02 09:15:56 +00:00
Fristi 81fb45a71b Translated using Weblate (Dutch)
Currently translated at 29.2% (31 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/nl/
2020-06-02 08:49:35 +00:00
lain d111eae798 Merge branch 'feature/status-by-id-account-view' into 'develop'
another view for account in admin-fe status_show

Closes #1783

See merge request pleroma/pleroma!2543
2020-06-02 08:49:24 +00:00
lain 8e1db6a835 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-02 10:43:13 +02:00
Alexander Strizhakov 19f468c5bc
replies filtering for blocked domains 2020-06-02 09:00:10 +03:00
rinpatch 6fb900a496 Merge branch 'user-updates' into 'develop'
AccountController: Federate user account changes.

Closes pleroma-support#33 and #1801

See merge request pleroma/pleroma!2617
2020-06-01 20:48:11 +00:00
rinpatch d67b8a96c7 Merge branch 'only-creates-in-public-tl' into 'develop'
TimelineController: Only return `Create` in public timelines.

Closes #1833 and #1821

See merge request pleroma/pleroma!2618
2020-06-01 20:45:59 +00:00
Alexander Strizhakov 7e6ec778d9
exclude replies on blocked domains 2020-06-01 21:17:32 +03:00
Egor Kislitsyn 6b84c62d4a
Merge remote-tracking branch 'origin/develop' into feature/embeddable-posts 2020-06-01 17:38:57 +04:00
lain fa37bfff99 Merge branch 'default-to-hackney-again' into 'develop'
Config: Default to Hackney again

See merge request pleroma/pleroma!2619
2020-06-01 13:24:03 +00:00
lain af9090238e CommonAPI: Newlines -> br for chat messages. 2020-06-01 15:14:22 +02:00
Egor Kislitsyn a7627bdc7a
Merge remote-tracking branch 'origin/develop' into global-status-expiration 2020-06-01 15:48:51 +04:00
lain ac31f687c0 Config: Default to Hackney again
Gun needs some server setting changes (files) and has problems with
OTP 23 (wildcards), so use Hackney as a default again for now.
2020-06-01 13:35:39 +02:00
lain 8ff3425828 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-06-01 13:34:13 +02:00
lain d4d4b92f75 TimelineController: Only return `Create` in public timelines. 2020-06-01 13:17:56 +02:00
lain 9460983032 AccountController: Federate user account changes.
Hotfixy commit, will be moved to the pipeline.
2020-06-01 13:03:22 +02:00
Alex Gleason 954acdda20
Add `account_activation_required` to /api/v1/instance 2020-05-31 11:36:49 -05:00
Haelwenn e96765df6b Merge branch 'chore/bump-hackney' into 'develop'
mix.lock: update hackney to 1.16.0

Closes #1612

See merge request pleroma/pleroma!2614
2020-05-30 15:51:19 +00:00
lain beeeed5b58 Merge branch 'test/fix-config-setting-in-user-test' into 'develop'
Fix config setting to not affect other tests

See merge request pleroma/pleroma!2615
2020-05-30 14:03:43 +00:00
Roman Chvanikov b973d0b2f0 Fix config setting to not affect other tests 2020-05-30 16:47:09 +03:00
rinpatch 0cb7b0ea84 hackney adapter helper: support tlsv1.3 and remove custom opts
- partitial_chain is no longer exported, but it seems to be the default anyway.
- The bug that caused sni to not be sent automatically seems to be fixed -
https://github.com/benoitc/hackney/issues/612
2020-05-30 15:36:55 +03:00
lain 6ff079ca9f Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-30 12:31:12 +02:00
lain 8bdf18d7c1 CommonAPI: Linkify chat messages. 2020-05-30 12:30:31 +02:00
lain 2c9465cc51 SafeText: Let through basic html. 2020-05-30 12:17:18 +02:00
lain b004c427a0 Merge branch 'conversation-pagination' into 'develop'
Conversation pagination

See merge request pleroma/pleroma!2601
2020-05-30 10:02:37 +00:00
Steven Fuchs 6d4b80822b Conversation pagination 2020-05-30 10:02:37 +00:00
Ivan Tashkinov 24f40b8a26 [#1794] Fixed search query splitting regex to deal with Unicode. Adjusted a test. 2020-05-30 10:29:08 +03:00
Ivan Tashkinov 78c80a261a Merge remote-tracking branch 'remotes/origin/develop' into fix/1794-hashtag-search-results 2020-05-30 08:51:38 +03:00
rinpatch d23b3701d8 Merge branch 'bugfix/csp-unproxied' into 'develop'
http_security_plug.ex: Fix non-proxied media

See merge request pleroma/pleroma!2610
2020-05-29 21:23:49 +00:00
rinpatch 32ba2b7f9f Merge branch 'media-docs' into 'develop'
Docs: Attachement limitations in MastoAPI differences

See merge request pleroma/pleroma!2607
2020-05-29 21:20:36 +00:00
rinpatch d2a1975e56 mix.lock: update hackney to 1.16.0
Closes #1612
2020-05-30 00:18:17 +03:00
rinpatch 109af93227 Apply suggestion to lib/pleroma/plugs/http_security_plug.ex 2020-05-29 21:15:07 +00:00
lain f361264e1a Merge branch 'hotfix/streamer-test-unused-var-warning' into 'develop'
fix unused var warning in streamer test

See merge request pleroma/pleroma!2612
2020-05-29 20:31:07 +00:00
Roman Chvanikov 0a83af330b fix unused var warning 2020-05-29 23:05:03 +03:00
rinpatch 660d49227b Merge branch 'connect-src' into 'develop'
Add blob: to connect-src CSP, fixes #1827

Closes #1827

See merge request pleroma/pleroma!2608
2020-05-29 19:26:54 +00:00
Ivan Tashkinov c181e555db [#1794] Improvements to hashtags extraction from search query. 2020-05-29 22:03:14 +03:00
stwf d67b302810 preload data into index.html 2020-05-29 14:15:24 -04:00
Alex Gleason d38f28870e
Add blob: to connect-src CSP 2020-05-29 11:08:17 -05:00
lain 219d2b3146 Merge branch 'fix-streaming' into 'develop'
Fix argument error in streamer

See merge request pleroma/pleroma!2609
2020-05-29 15:42:43 +00:00
feld 81db758e8e Merge branch 'mix/database-vacuum-options' into 'develop'
Database vacuum mix task

See merge request pleroma/pleroma!2599
2020-05-29 15:33:35 +00:00
kPherox 9ca978494f
Add test for stream boosts of mastodon user 2020-05-30 00:31:20 +09:00
kPherox de0e262839
Fix argument error in streamer
`Repo.exists` can't use `nil` as it is unsafe.
Use parent object instead of activity because currently Announce activity's context is null.
2020-05-30 00:31:18 +09:00
Haelwenn (lanodan) Monnier da1e31fae3
http_security_plug.ex: Fix non-proxied media 2020-05-29 17:20:09 +02:00
Mark Felder 1b586ff3ae Document new database vacuum tasks 2020-05-29 10:17:06 -05:00
Haelwenn (lanodan) Monnier a43b435c0a
AP C2S: allow limit & order on outbox & read_inbox 2020-05-29 16:14:45 +02:00
Haelwenn (lanodan) Monnier 2c18830d0d
Bugfix: router: allow basic_auth for outbox 2020-05-29 16:14:45 +02:00
Haelwenn (lanodan) Monnier b3b367b894
Bugfix: Reuse Controller.Helper pagination for APC2S 2020-05-29 16:14:45 +02:00
lain 32431ad1ee Docs: Also add the streaming docs to the Chat api doc. 2020-05-29 16:07:40 +02:00
lain 3898dd69a6 SideEffects: Ensure a chat is present before streaming something out. 2020-05-29 16:05:02 +02:00
lain b08baf905b Docs: Document streaming differences 2020-05-29 16:03:55 +02:00
lain 767ce8b803 StreamerView: Actually send Chats, not ChatMessages. 2020-05-29 16:02:45 +02:00
lain 863c02b25d SideEffects: Stream out chat messages. 2020-05-29 15:44:03 +02:00
lain c86a88edec Streamer: Add a chat message stream. 2020-05-29 15:24:41 +02:00
lain 9848978109 Merge branch 'fix-relay-repeat-notification' into 'develop'
Fix relay repeat notification

See merge request pleroma/pleroma!2590
2020-05-29 10:42:49 +00:00
lain af6d01ec93 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-29 12:36:17 +02:00
kPherox 228ff3760e
Use `User.is_internal_user?` instead 2020-05-29 19:07:05 +09:00
kPherox 9df5b1e6ae
Don't make relay announce notification 2020-05-29 19:06:38 +09:00
rinpatch 396bc69aee Merge branch 'fix/mediaproxy-bypass-emoji' into 'develop'
Fix profile emojis bypassing mediaproxy and harden CSP

Closes #1810

See merge request pleroma/pleroma!2596
2020-05-29 09:46:31 +00:00
rinpatch 27180611df HTTP Security plug: make starting csp string generation more readable 2020-05-29 12:32:48 +03:00
Alex Gleason 394258d548
Docs: Attachement limitations in MastoAPI differences 2020-05-28 16:11:33 -05:00
Mark Felder d4b20c96c4 Migrate old notification settings to new variants 2020-05-28 15:34:11 -05:00
Egor Kislitsyn 06f20e9181
Add OpenApi spec to AdminAPI.ConfigController 2020-05-28 23:11:12 +04:00
Egor Kislitsyn d1ee3527ef
Move config actions to AdminAPI.ConfigController 2020-05-28 22:23:15 +04:00
Mark Felder 4c82f657c5 Formatting 2020-05-28 13:22:28 -05:00
lain 1d30608e20 Merge branch 'fix/1557-gets-local-pack' into 'develop'
get-packs for local generated pack

Closes #1557

See merge request pleroma/pleroma!2604
2020-05-28 17:08:30 +00:00
lain f6ddf0cc50 Merge branch 'feature/1792-update-actor-type' into 'develop'
Validate actor type

See merge request pleroma/pleroma!2593
2020-05-28 16:58:28 +00:00
Alex Gleason d4a18d44fe
Update default instance description 2020-05-28 11:56:30 -05:00
lain ddbf7084e2 Merge branch 'update-install-guides' into 'develop'
Update installation guides

See merge request pleroma/pleroma!2603
2020-05-28 16:54:09 +00:00
Alexander Strizhakov ae05792d2a
get-packs for local generated pack 2020-05-28 19:41:34 +03:00
Egor Kislitsyn 800e624058
Update installation guides 2020-05-28 19:32:56 +04:00
Mark Felder 9eea800026 Refactor notification settings 2020-05-28 10:16:09 -05:00
rinpatch 089d72d2e6 Merge branch 'chore/fix-spelling' into 'develop'
Fix minor spelling error

See merge request pleroma/pleroma!2598
2020-05-28 11:38:35 +00:00
Mark Felder 92fba24c74 Alpha sort 2020-05-27 17:17:06 -05:00
Mark Felder 30f96b19c1 Abstract out the database maintenance. I'd like to use this from AdminFE too. 2020-05-27 16:40:51 -05:00
Mark Felder 0d57e06626 Make clearer that this is time and resource consuming 2020-05-27 16:31:37 -05:00
Mark Felder 73ca57e4f1 Make it obvious a full vacuum can take a while 2020-05-27 16:27:29 -05:00
Mark Felder a2f57bd82b Permit easy access to vaccum full and analyze via a mix task 2020-05-27 16:27:07 -05:00
Mark Felder 95f6240889 Fix minor spelling error 2020-05-27 14:34:37 -05:00
rinpatch a23df89b5d Merge branch 'bundle/adminfe-20200527' into 'develop'
Update AdminFE build, re-enables emoji packs

See merge request pleroma/pleroma!2597
2020-05-27 19:22:53 +00:00
Mark Felder d28b9708d2 Update AdminFE build, re-enables emoji packs 2020-05-27 13:50:24 -05:00
rinpatch 29ff6d414b HTTP security plug: Harden img-src and media-src when MediaProxy is enabled 2020-05-27 21:41:19 +03:00
rinpatch 455a402c8a HTTP Security plug: rewrite &csp_string/0
- Directives are now separated with ";" instead of " ;",
according to https://www.w3.org/TR/CSP2/#policy-parsing
the space is optional
- Use an IO list, which at the end gets converted to a binary as
opposed to ++ing a bunch of arrays with binaries together and joining
them to a string. I doubt it gives any significant real world advantage,
but the code is cleaner and now I can sleep at night.
- The static part of csp is pre-joined to a single binary at compile time.
Same reasoning as the last point.
2020-05-27 21:31:47 +03:00
rinpatch 8f6d428880 AccountView: Use mediaproxy URLs for emojis
Also use atom keys in emoji maps instead of binaries

Closes #1810
2020-05-27 19:44:02 +03:00
rinpatch 78c46fb7ba MediaProxy test: use config macros instead of directly putting values
They were not properly cleaned later and caused trouble for another tests
2020-05-27 19:34:56 +03:00
kPherox 48fd9be65a
Exclude post actor from to of relay announce 2020-05-27 23:51:15 +09:00
rinpatch d35be02e70 Merge branch 'refactor-add-mention-step-one' into 'develop'
Fix ObjectView calling into strange functions

Closes #1807

See merge request pleroma/pleroma!2580
2020-05-27 14:17:12 +00:00
rinpatch 91f73a7592 Merge branch 'notification-fixes' into 'develop'
Notification performance fixes

See merge request pleroma/pleroma!2595
2020-05-27 13:45:14 +00:00
lain 73f222d76a Migrations: Make user_id index on notifications better for query. 2020-05-27 12:56:15 +02:00
Alexander Strizhakov 047a11c48f Apply suggestion to lib/pleroma/web/admin_api/controllers/admin_api_controller.ex 2020-05-27 10:55:42 +00:00
Egor Kislitsyn c6290be682
Fix typo 2020-05-27 14:42:21 +04:00
lain b8e029b5ea Notification: Actually preload objects. 2020-05-27 12:41:06 +02:00
lain b9e2678b9e Merge branch 'fav-speedup' into 'develop'
ActivityPub: Change ordering to `nulls last` in favorites query

See merge request pleroma/pleroma!2594
2020-05-27 08:02:00 +00:00
lain 7e13200869 ActivityPub: Change ordering to `nulls last` in favorites query
This makes it use our existing index and speeds up the query.
2020-05-27 09:46:12 +02:00
Alexander Strizhakov 3249141588
validate actor type 2020-05-27 10:14:22 +03:00
rinpatch cf139b06a3 Merge branch 'fav-speedup' into 'develop'
Fix favorites query performance

See merge request pleroma/pleroma!2591
2020-05-26 16:33:13 +00:00
rinpatch 3601c0015c Merge branch '1808-pleroma-sucks' into 'develop'
Resolve "Don't fail message ingestions when we can't update a user"

Closes #1808

See merge request pleroma/pleroma!2576
2020-05-26 15:57:01 +00:00
rinpatch 5ad28ff405 Merge branch 'apps-index' into 'develop'
Migrations: Add index on client_id and client_secret for apps.

See merge request pleroma/pleroma!2589
2020-05-26 15:56:23 +00:00
rinpatch ed08da9135 Merge branch '1813-throttling' into 'develop'
Mastodon API Controllers: Use the correct params for rate limiting.

Closes #1813

See merge request pleroma/pleroma!2586
2020-05-26 15:55:09 +00:00
lain d8d99fd4cf Activity.Queries: Use correct actor restriction. 2020-05-26 17:46:16 +02:00
lain acba7043be Migrations: Add index on client_id and client_secret for apps.
Greatly speeds up app lookup.
2020-05-26 16:46:57 +02:00
lain 5083558ecd Merge branch 'restore-new-image' into 'develop'
Config: Restore old new background image

See merge request pleroma/pleroma!2588
2020-05-26 14:17:54 +00:00
lain 337ca33e5e Config: Restore old new background image
Became lost in a settings restructure
2020-05-26 16:00:56 +02:00
lain b233c8e55c Merge branch 'fix/oban-warnings' into 'develop'
Fix Oban warnings

See merge request pleroma/pleroma!2587
2020-05-26 12:41:46 +00:00
Egor Kislitsyn 2069ec5006
Fix Oban warnings 2020-05-26 16:11:42 +04:00
lain 51bc6674f6 Mastodon API Controllers: Use the correct params for rate limiting. 2020-05-26 13:45:54 +02:00
Egor Kislitsyn fca48154a2
Add AdminAPI.InviteView 2020-05-26 15:21:33 +04:00
Egor Kislitsyn 2a4f965191
Add OpenAPI spec for AdminAPI.InviteTokenController 2020-05-26 15:03:07 +04:00
Egor Kislitsyn 95ebfb9190
Move invite actions to AdminAPI.InviteTokenController 2020-05-26 15:03:07 +04:00
lain 644195e31e Merge branch '1501-include-unlisted-posts-in-user-feed' into 'develop'
[#1501] Made user feed contain public and unlisted activities

Closes #1501

See merge request pleroma/pleroma!2584
2020-05-26 10:56:40 +00:00
Alexander Strizhakov 8f08384d80
another view for account in admin-fe status_show 2020-05-26 13:48:39 +03:00
lain c8803965af Merge branch 'skip-crypt-test' into 'develop'
Skip failing `:crypt` test on mac

See merge request pleroma/pleroma!2583
2020-05-26 08:32:13 +00:00
Ivan Tashkinov d7a57004ef [#1501] Made user feed contain public and unlisted activities. 2020-05-25 23:27:47 +03:00
Egor Kislitsyn e32b7ae044
Skip failing `:crypt` test on mac 2020-05-25 23:01:37 +04:00
Egor Kislitsyn 0ba1f2631a
Add OpenAPI spec for AdminAPI.OAuthAppContoller 2020-05-25 22:04:06 +04:00
lain 09d8b9cb55 Merge branch '1471-tuning-advice' into 'develop'
Docs: Document reasonable Postgres settings.

See merge request pleroma/pleroma!2581
2020-05-25 17:45:40 +00:00
lain af3568a6d9 Docs: sql -> SQL 2020-05-25 19:26:07 +02:00
lain f7cb3f4cfc Apply suggestion to docs/installation/otp_en.md 2020-05-25 17:11:35 +00:00
lain dbd07d29a3 Streamer: Don't crash on streaming chat notifications 2020-05-25 17:27:45 +02:00
lain 2c25087d20 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-25 16:52:03 +02:00
lain 6a85fe1f9d Docs: Document reasonable Postgres settings. 2020-05-25 15:53:14 +02:00
lain 6bd7070b00 Transmogrifier: Use a simpler way to get mentions. 2020-05-25 15:08:43 +02:00
lain 5fef405208 User: Change signature of get_users_from_set 2020-05-25 15:06:35 +02:00
Egor Kislitsyn cbcd592300
Add OpenAPI spec for AdminAPI.RelayController 2020-05-25 16:51:16 +04:00
lain f20dff451e Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1808-pleroma-sucks 2020-05-25 14:01:16 +02:00
lain 6783d544b2 Merge branch 'flaky-tests' into 'develop'
Flaky tests

See merge request pleroma/pleroma!2578
2020-05-25 12:00:53 +00:00
lain 5d5db7e5b7 StealEmojiPolicyTest: Clean up. 2020-05-25 14:00:18 +02:00
lain 2dff376041 StealEmojiPolicyTest: Fix flaky test. 2020-05-25 13:58:14 +02:00
lain ee35bb5ac2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-25 13:57:27 +02:00
lain aeb0875025 StealEmojiPolicyTest: Fix flaky test. 2020-05-25 13:48:47 +02:00
lain ec470c4c77 Merge branch 'openapi/admin/status' into 'develop'
Add OpenAPI spec for AdminAPI.StatusController

See merge request pleroma/pleroma!2566
2020-05-25 11:40:54 +00:00
lain 3bec0d2e50 Factory: Set users to be ap_enabled by default. 2020-05-25 12:59:42 +02:00
lain 0c970a9d44 UserTest: Add test for user refreshing. 2020-05-25 12:49:38 +02:00
lain d0c26956da User: Don't error out if we want to refresh a user but can't 2020-05-25 12:46:14 +02:00
rinpatch 7bc2ec0aa2 Merge branch 'mastodon-migration-compat' into 'develop'
Add compatibility routes for converted mastodon instances

Closes #1797

See merge request pleroma/pleroma!2572
2020-05-24 19:05:57 +00:00
lain 72189d227f Merge branch 'priv-warning' into 'develop'
priv/static: Add a warning discouraging admins from modifying the static files directly

See merge request pleroma/pleroma!2571
2020-05-22 17:20:23 +00:00
lain ddbbefeb2e Merge branch 'feature/configure-filename-truncate' into 'develop'
Configurable filename truncation threshold

Closes #1799

See merge request pleroma/pleroma!2573
2020-05-22 16:05:35 +00:00
Roman Chvanikov 5d60b25e69 Apply suggestion to lib/pleroma/web/common_api/utils.ex 2020-05-22 15:44:10 +00:00
Roman Chvanikov 8eb1dfadca Update CHANGELOG and docs 2020-05-22 18:30:13 +03:00
Roman Chvanikov cc82229ba7 Add filename_display_max_length config 2020-05-22 18:19:25 +03:00
lain 3506e95499 Add Changelog 2020-05-22 17:13:09 +02:00
lain 91c8467582 OStatusController: Add Mastodon activity compat route. 2020-05-22 17:11:59 +02:00
lain 355aa3bdc7 ActivityPubController: Add Mastodon activity compat route. 2020-05-22 17:06:12 +02:00
lain 8a4bd9e5d1 OStatusController: Add Mastodon compatibility route for objects. 2020-05-22 16:47:22 +02:00
rinpatch 1fa7aa9fc5 Merge branch 'emoji-react-better-errors' into 'develop'
EmojiReactionController: Return more appropriate error.

See merge request pleroma/pleroma!2569
2020-05-22 14:36:08 +00:00
rinpatch 96650c55ae Merge branch 'fix/notifications-api' into 'develop'
Fix notifications mark as read API

Closes #1800

See merge request pleroma/pleroma!2570
2020-05-22 14:35:13 +00:00
rinpatch fabc11bf9a priv/static: Add a warning discouraging admins from modifying the static files directly 2020-05-22 17:33:19 +03:00
Egor Kislitsyn ba106aa9c8
Fix notifications mark as read API 2020-05-22 18:15:36 +04:00
lain ca755f9a73 ActivityPubController: Add Mastodon compatibility route. 2020-05-22 16:15:29 +02:00
lain bcb549531f EmojiReactionController: Return more appropriate error. 2020-05-22 14:38:28 +02:00
Ivan Tashkinov 0e23138b50 [#2497] Specified SHELL in .gitlab-ci.yml as required for `exexec`. 2020-05-22 10:35:48 +03:00
Haelwenn 7b02bfca51 Merge branch 'announce-validator' into 'develop'
Announce validator

See merge request pleroma/pleroma!2567
2020-05-22 05:47:53 +00:00
Haelwenn a57e7f3503 Merge branch '1113-op-mentioning' into 'develop'
CommonAPI: Change public->private implicit addressing.

Closes #1113

See merge request pleroma/pleroma!2563
2020-05-22 05:22:07 +00:00
Ivan Tashkinov 3a1e810aaa [#2497] Customized `exexec` launch to support root operation (currently required by Gitlab CI). 2020-05-21 21:47:32 +03:00
Ivan Tashkinov 610343edb3 [#2497] Image preview proxy: image resize & background color fix with ffmpeg -filter_complex. 2020-05-21 17:35:42 +03:00
lain e0d1a942a6 Merge branch 'issue/1707' into 'develop'
[#1707] fixed `mix pleroma.instance gen`

See merge request pleroma/pleroma!2565
2020-05-21 14:32:49 +00:00
lain ab1154e13f Merge branch 'admin-logo-upload' into 'develop'
Ability to upload background, logo, default user avatar, instance thumbnail, and the NSFW hiding image

See merge request pleroma/pleroma!2388
2020-05-21 14:30:34 +00:00
lain 578ed3a37f Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-21 15:35:13 +02:00
lain a42a0716ec Merge branch 'features/emoji_stealer' into 'develop'
MRF.StealEmojiPolicy: New Policy

See merge request pleroma/pleroma!2385
2020-05-21 13:31:49 +00:00
lain f166316f50 Merge branch 'openapi/pleroma-api/pleroma' into 'develop'
Add OpenAPI spec for PleromaAPI.PleromaAPIController

See merge request pleroma/pleroma!2564
2020-05-21 13:30:09 +00:00
lain 283fb1e05b Merge branch 'issue/749' into 'develop'
[#749] unsubscribes of friends when user deactivated

See merge request pleroma/pleroma!2513
2020-05-21 13:27:44 +00:00
Egor Kislitsyn 45d2c4157f
Add OpenAPI spec for AdminAPI.StatusController 2020-05-21 17:23:12 +04:00
lain c4a5cead51 UploadTest: Fix test. 2020-05-21 15:17:39 +02:00
lain cc0d462e91 Attachments: Have the mediaType on the root, too. 2020-05-21 15:08:56 +02:00
lain 814c3e5171 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-21 15:00:05 +02:00
lain bf1b221f94 Credo fixes for the credo god. 2020-05-21 14:12:32 +02:00
lain cdc6ba8d7b AnnounceValidator: Check for announcability 2020-05-21 13:58:18 +02:00
lain c76267afb9 Credo fixes. 2020-05-21 13:31:52 +02:00
lain 23e248694d Announcements: Fix all tests. 2020-05-21 13:16:21 +02:00
lain d9d425708e SideEffects: Builed out Announce effects. 2020-05-21 12:43:09 +02:00
lain 4ae2f75c3e Apply suggestion to docs/administration/CLI_tasks/user.md 2020-05-21 10:27:06 +00:00
Egor Kislitsyn 9de9760aa6
Move status actions to AdminAPI.StatusController 2020-05-21 13:52:30 +04:00
Maksim Pechnikov 9bc5e18ade rename mix task: `pleroma.user unsubscribe` -> `pleroma.user deactivate` 2020-05-21 08:06:57 +03:00
eugenijm b7fc61e17b Added the ability to upload background, logo, default user avatar, instance thumbnail, and the NSFW hiding image via AdminFE 2020-05-21 04:41:42 +03:00
Maksim Pechnikov c96f425cb0 fixed `mix pleroma.instance gen` 2020-05-20 21:30:41 +03:00
Haelwenn 42b06d78df Merge branch 'chore/update-config-fe' into 'develop'
Synchronize :fe settings in config.exs

See merge request pleroma/pleroma!2560
2020-05-20 17:45:19 +00:00
Ivan Tashkinov 6fd4f58ead Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-05-20 20:27:03 +03:00
Ivan Tashkinov 1871a5ddb4 [#2497] Image preview proxy: implemented ffmpeg-based resizing, removed eimp & mogrify-based resizing. 2020-05-20 20:26:43 +03:00
Mark Felder 4c48626585 Also add new sidebarRight setting 2020-05-20 12:22:31 -05:00
lain 39031f4860 Pipeline: Don't federate if federation is disabled. 2020-05-20 16:36:55 +02:00
lain e42bc5f557 Announcements: Handle through common pipeline. 2020-05-20 15:44:37 +02:00
lain 265746b21f Merge branch 'openapi/pleroma-api/emojis' into 'develop'
Add OpenAPI spec for EmojiPackController

See merge request pleroma/pleroma!2549
2020-05-20 12:08:28 +00:00
lain c7cdc553ff Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into announce-validator 2020-05-20 14:02:40 +02:00
lain 423ea497bb Merge branch 'feature/1734-user-deletion' into 'develop'
User deletion

Closes #1734

See merge request pleroma/pleroma!2493
2020-05-20 11:43:49 +00:00
lain 67844a8b11 Merge branch 'openapi/fix-spec' into 'develop'
Add `background_image` to `InstanceOperation`

See merge request pleroma/pleroma!2562
2020-05-20 11:40:05 +00:00
lain eb5f428565 CommonAPI: Change public->private implicit addressing.
This will not add the OP to the `to` field anymore when going from
public to private.
2020-05-20 13:38:47 +02:00
Egor Kislitsyn 26f01744bc
Add `background_image` to `InstanceOperation` 2020-05-20 15:18:58 +04:00
Egor Kislitsyn 5ba6e1c322
Move notification actions to PleromaAPI.NotificationController 2020-05-20 15:15:13 +04:00
Egor Kislitsyn f3fc8b22b1
Move conversation actions to PleromaAPI.ConversationController 2020-05-20 15:15:13 +04:00
Egor Kislitsyn 9a5de0f454
Move reaction actions to EmojiReactionController 2020-05-20 15:15:13 +04:00
Egor Kislitsyn 490a3a34b6
Add OpenAPI spec for PleromaAPI.PleromaAPIController 2020-05-20 15:15:13 +04:00
Haelwenn 94ba5a7802 Merge branch 'exposed-background-image' into 'develop'
InstanceView: Expose background image link.

See merge request pleroma/pleroma!2545
2020-05-20 10:53:54 +00:00
lain 6dd1575c64 Merge branch 'issue/1509' into 'develop'
[#1509]  purge media from cache after delete

See merge request pleroma/pleroma!2539
2020-05-20 10:35:36 +00:00
lain 2a74565090 Changelog: Add background to instance 2020-05-20 12:14:17 +02:00
lain 5b8105928b Docs: Add background_image in instance 2020-05-20 12:13:57 +02:00
lain 8a6ddf26ac InstanceOperation: Add background image to example 2020-05-20 12:12:07 +02:00
lain c3cfe87c60 Merge branch 'mastofe/bundle-2020-05-20' into 'develop'
MastoFE: update to bundle-2020-05-20

See merge request pleroma/pleroma!2561
2020-05-20 09:12:35 +00:00
Haelwenn (lanodan) Monnier c2dd4639d6
MastoFE: update to bundle-2020-05-20 2020-05-20 07:55:14 +02:00
Maksim 376147fb82 Apply suggestion to installation/nginx-cache-purge.sh.example 2020-05-20 04:12:21 +00:00
Haelwenn 5a149e5788 Merge branch 'openapi/pleroma-api/scrobble' into 'develop'
Add OpenAPI spec for PleromaAPI.ScrobbleController

See merge request pleroma/pleroma!2559
2020-05-20 04:00:46 +00:00
Maksim Pechnikov b5b9d161cd update purge script 2020-05-20 06:56:04 +03:00
Mark Felder 918ee46417 Synchronize :fe settings in config.exs 2020-05-19 16:05:39 -05:00
rinpatch 48bcb22146 Merge branch 'recipients-query-speedup' into 'develop'
Greatly speed up recipients query

See merge request pleroma/pleroma!2558
2020-05-19 14:32:27 +00:00
Egor Kislitsyn 47ed9ee441
Fix summary 2020-05-19 17:29:58 +04:00
lain be322541c8 User.Query: Remove superfluous `distinct` 2020-05-19 14:36:34 +02:00
lain 2328eff09c UserTest: Hide warning in tests. 2020-05-19 14:36:13 +02:00
Egor Kislitsyn 6609714d66
Move Scrobble views to ScrobbleView 2020-05-19 16:26:06 +04:00
Egor Kislitsyn 524d04d921
Add OpenAPI spec for PleromaAPI.ScrobbleController 2020-05-19 16:26:06 +04:00
lain a985bd57b4 User.Query: Speed up recipients query. 2020-05-19 14:11:32 +02:00
lain 7075fa92a5 Merge branch 'deps/update-crypt' into 'develop'
Update crypt library

See merge request pleroma/pleroma!2557
2020-05-19 11:57:01 +00:00
Roman Chvanikov 512261c97d Update crypt library 2020-05-19 14:46:06 +03:00
Egor Kislitsyn e4c720f14c
Fix typo 2020-05-19 14:59:50 +04:00
Haelwenn 58ccd2bbfd Merge branch 'openapi/pleroma-api/mascot' into 'develop'
Add OpenAPI spec for MascotController

See merge request pleroma/pleroma!2553
2020-05-19 09:41:57 +00:00
Haelwenn 7e3814390e Merge branch 'issue/1667' into 'develop'
[#1667] fix api/v1/accounts/update_credentials

See merge request pleroma/pleroma!2556
2020-05-19 06:56:44 +00:00
Haelwenn 86f50a809f Merge branch 'support/docs' into 'develop'
fix docs

See merge request pleroma/pleroma!2555
2020-05-19 06:43:57 +00:00
Maksim Pechnikov 41f8f17260 fix api/v1/accounts/update_credentials 2020-05-19 09:42:41 +03:00
Maksim Pechnikov ed442a225a removed Quantum from docs 2020-05-19 06:15:42 +03:00
Maksim Pechnikov 5f0a3ac74d added tests 2020-05-19 06:05:09 +03:00
lain d19c716770 AttachmentValidator: Handle empty mediatypes 2020-05-18 20:17:28 +02:00
Egor Kislitsyn d4a7577cde
Fix API documentation 2020-05-18 22:01:38 +04:00
Egor Kislitsyn fe5d423b43
Add OpenAPI spec for MascotController 2020-05-18 22:01:18 +04:00
rinpatch a66da971ff Merge branch 'openapi/use-boolean-like-in-requests' into 'develop'
[OpenAPI] Use BooleanLike in all request bodies

Closes #1782

See merge request pleroma/pleroma!2551
2020-05-18 17:13:53 +00:00
Egor Kislitsyn 45c3a72404
[OpenAPI] Use BooleanLike in all request bodies 2020-05-18 20:58:59 +04:00
lain be4db41d71 ChatMessageValidator: Allow one message in an array, too. 2020-05-18 18:45:33 +02:00
lain 0d417e005d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-18 18:38:32 +02:00
lain 8e9c939e42 Merge branch 'direct-timeline-with-muted-param-fix' into 'develop'
Fixed missing support for `with_muted` param in direct timeline

See merge request pleroma/pleroma!2548
2020-05-18 16:27:54 +00:00
Ivan Tashkinov 5735b5c8be Fixed missing support for `with_muted` param in direct timeline. 2020-05-18 19:00:00 +03:00
Egor Kislitsyn aef31c69df
Rename EmojiAPIController to EmojiPackController 2020-05-18 19:43:25 +04:00
Egor Kislitsyn 8bde8dfec2
Cleanup Pleroma.Emoji.Pack 2020-05-18 19:43:23 +04:00
Egor Kislitsyn 6e4de715b3
Add OpenAPI spec for PleromaAPI.EmojiAPIController 2020-05-18 19:28:46 +04:00
lain 0d5bce018d AnnounceValidator: Validate for existing announce 2020-05-18 16:54:10 +02:00
lain 17a8342c1e ObjectValidators: Add basic Announce validator. 2020-05-18 16:45:11 +02:00
lain 63ab2743ce TransmogrifierTest: Fix tests. 2020-05-18 15:47:26 +02:00
lain 7d381b16b7 Transmogrifier Test: Extract Announce handling. 2020-05-18 14:48:37 +02:00
lain 20a22362b8 Merge branch 'copyright' into 'develop'
Copyright update

See merge request pleroma/pleroma!2547
2020-05-18 12:35:27 +00:00
Alexander Strizhakov 215daabdb4
copyright update 2020-05-18 15:15:51 +03:00
lain 5c502eb3ad Merge branch '1778-benchmark-fix' into 'develop'
Load Testing: adjust to new CommonAPI.post format.

Closes #1778

See merge request pleroma/pleroma!2546
2020-05-18 12:14:24 +00:00
lain 15c7e3b4bf Merge branch 'docs/storing-remote-media' into 'develop'
Document how to store remote media permanently

See merge request pleroma/pleroma!1871
2020-05-18 11:59:07 +00:00
lain 7b500d6b4f Load Testing: adjust to new CommonAPI.post format. 2020-05-18 13:56:58 +02:00
lain 188b32145e InstanceView: Expose background image link.
This will make it easier for more clients to support this feature.
2020-05-18 13:29:30 +02:00
lain 96f7b1b140 Merge branch 'show-media-endpoint-fixes' into 'develop'
MediaController OAuth scope assignments fix

See merge request pleroma/pleroma!2541
2020-05-18 10:57:59 +00:00
Roman Chvanikov 1be6b3056e Use indexed split_part/3 to get a hostname rather than ts_ functions 2020-05-18 12:38:16 +03:00
Roman Chvanikov 01bd6a1e54 Merge branch 'develop' into feature/admin-api-status-count-per-instance 2020-05-18 11:56:27 +03:00
rinpatch 1199cf3a78 Merge branch '1763-password-updates' into 'develop'
Authentication Plug: Update bcrypt password on login.

Closes #1763

See merge request pleroma/pleroma!2542
2020-05-18 07:57:13 +00:00
Alexander Strizhakov 0321a3e078
test naming fix 2020-05-18 10:34:50 +03:00
Alexander Strizhakov 1671864d88
return :visible instead of boolean 2020-05-18 10:34:50 +03:00
Alexander Strizhakov b1aa402229
removing 410 status 2020-05-18 10:34:50 +03:00
Alexander Strizhakov e7bc2f980c
account visibility 2020-05-18 10:34:49 +03:00
Ivan Tashkinov 9b76565264 MediaController: enforced owner-only access in :show action.
Improved error response on denied access (now 403). Adjusted tests.
2020-05-18 09:51:53 +03:00
Maksim Pechnikov c33a4315fb updated docs 2020-05-18 06:48:19 +03:00
lain baf051a59e SideEffects: Don't update unread count for actor in chatmessages. 2020-05-17 12:22:26 +02:00
lain 9c17109765 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-17 12:14:49 +02:00
lain 8bfd9710ae Pleroma Authenticator: Also update passwords here. 2020-05-17 11:53:17 +02:00
lain bfdd90f6d7 AuthenticationPlug: Also update crypt passwords. 2020-05-17 11:40:25 +02:00
lain baef35bcc8 Authentication Plug: Update bcrypt password on login. 2020-05-17 10:31:01 +02:00
lain b0ccdb5af4 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2535
2020-05-17 07:58:24 +00:00
Jędrzej Tomaszewski 4b6190baec Translated using Weblate (Polish)
Currently translated at 65.0% (69 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2020-05-17 07:49:01 +00:00
Fristi 5725e03f55 Added translation using Weblate (Dutch) 2020-05-17 07:49:01 +00:00
lain 64b3d81e50 Merge branch 'feature/remove-settings-that-shouldnt-be-altered' into 'develop'
Remove settings that shouldn't be altered

Closes admin-fe#110

See merge request pleroma/pleroma!2540
2020-05-17 07:48:52 +00:00
lain 21c85a106c Merge branch 'pleroma-fe-2020-05-13-with-relationships-support' into 'develop'
PleromaFE bundle supporting `with_relationships` param

See merge request pleroma/pleroma!2530
2020-05-17 07:26:56 +00:00
lain 4b28d812cf Merge branch 'restricted-relations-embedding' into 'develop'
Restricted support for embedded relationships

See merge request pleroma/pleroma!2456
2020-05-17 07:26:51 +00:00
Ivan Tashkinov af9dfdce6b MediaController OAuth scope assignments fix.
Typo fix (`def get_media` instead of `def show`).
2020-05-17 08:46:43 +03:00
Maksim Pechnikov 3f8d68bdf3 added example cache purge script 2020-05-17 05:56:20 +03:00
Angelina Filippova 4a925b964a Remove description of the settings that should't be altered 2020-05-16 20:39:42 +03:00
lain d96f8f17e8 Merge branch 'features/mastoapi_v2_media' into 'develop'
MastodonAPI: /api/v2/media endpoints

See merge request pleroma/pleroma!2439
2020-05-16 17:13:38 +00:00
lain d15aa9d950 Merge branch 'develop' into 'remove-twitter-api'
# Conflicts:
#   lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
2020-05-16 17:07:09 +00:00
Ivan Tashkinov 978ccf8f97 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-05-16 16:14:50 +03:00
rinpatch 3bc1138dd9 Merge branch '1757-fix-unblocks-too' into 'develop'
CommonAPI: Unblock a user even if we don't have an activity.

Closes #1757

See merge request pleroma/pleroma!2538
2020-05-16 11:17:14 +00:00
lain 2dcb26a6e5 CommonAPI: Unblock a user even if we don't have an activity. 2020-05-16 12:28:24 +02:00
Maksim Pechnikov cb40602a16 added media proxy invalidation 2020-05-15 21:39:42 +03:00
lain aeacfb2479 Merge branch 'chore/update-fe-settings-and-docs' into 'develop'
Synchronize PleromaFE settings

See merge request pleroma/pleroma!2532
2020-05-15 14:37:38 +00:00
lain 5633637862 Merge branch 'fix/digest-task-otp' into 'develop'
Fix digest mix task on OTP releases

See merge request pleroma/pleroma!2526
2020-05-15 14:22:59 +00:00
lain fee3aa82e8 Merge branch 'fix/database-config' into 'develop'
Returning partial chain

Closes #1772

See merge request pleroma/pleroma!2537
2020-05-15 13:45:02 +00:00
Alexander Strizhakov 3c29f4f957
returning partial chain 2020-05-15 16:16:02 +03:00
lain f012c3a202 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-15 13:33:04 +02:00
lain 1d18721a3c Chats: Add updated_at to Schema and docs. 2020-05-15 13:18:41 +02:00
rinpatch 081d1d3f48 Merge branch 'openapi/nullable-request-fields' into 'develop'
[OpenAPI] Mark all not required request fields as nullable

Closes #1761

See merge request pleroma/pleroma!2536
2020-05-15 11:13:08 +00:00
Egor Kislitsyn e090191d03
[OpenAPI] Mark all not required request fields as nullable 2020-05-15 14:55:41 +04:00
rinpatch 907acbf62b Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2531
2020-05-15 05:06:29 +00:00
Ivan Tashkinov e4b12494d7 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy
# Conflicts:
#	mix.lock
2020-05-14 20:19:56 +03:00
Ivan Tashkinov f1f588fd52 [#2497] Added support for :eimp for image resizing. 2020-05-14 20:18:31 +03:00
Michał Sidor 0d074751b5 Translated using Weblate (Polish)
Currently translated at 61.3% (65 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2020-05-14 16:07:45 +00:00
Michał Sidor 08f5e49395 Translated using Weblate (Polish)
Currently translated at 55.6% (59 of 106 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/pl/
2020-05-14 16:07:45 +00:00
Michał Sidor c2e57f2981 Added translation using Weblate (Polish) 2020-05-14 16:07:45 +00:00
rinpatch e455ca3f3e Merge branch 'feature/database-configuration-whitelist' into 'develop'
Database configuration whitelist

See merge request pleroma/pleroma!2522
2020-05-14 16:07:37 +00:00
Stephanie Wilde-Hobbs 80308c5c26
Add config migration disclaimer to config whitelist documentation 2020-05-14 15:56:14 +01:00
lain 4157c459b8 Merge branch 'bcrypt-auth' into 'develop'
Handle bcrypt passwords for Mastodon migration

See merge request pleroma/pleroma!2527
2020-05-14 14:36:56 +00:00
Alex Gleason 5b0f27d23d
Pbkdf2.verify_pass --> AuthenticationPlug.checkpw 2020-05-14 08:57:38 -05:00
Egor Kislitsyn bb03dfdb03
Do not require `description` in `update` action 2020-05-14 16:29:32 +04:00
Egor Kislitsyn 0f885b4b86
Fix OpenAPI spec 2020-05-14 16:18:30 +04:00
Stephanie Wilde-Hobbs 3eff542678
Add Changelog entry 2020-05-14 12:43:54 +01:00
Stephanie Wilde-Hobbs 20cbfb5cb5
Allow whitelisting whole groups 2020-05-14 12:43:53 +01:00
lain 3342846ac2 ChatView: Add update_at field. 2020-05-14 13:20:28 +02:00
Steph 5c6f575315
Style fixes 2020-05-14 12:15:48 +01:00
Haelwenn (lanodan) Monnier 099e314a1b
Add OpenAPISpex for MediaController 2020-05-14 12:13:25 +02:00
lain a2a8c8e9e0 Merge branch 'features/openrc-console' into 'develop'
init.d/pleroma: Add option to attach an elixir console

See merge request pleroma/pleroma!1704
2020-05-14 09:27:33 +00:00
lain 39ec1af993 Merge branch 'openapi/pleroma-api/accounts' into 'develop'
Add OpenAPI spec for PleromaAPI.AccountController

See merge request pleroma/pleroma!2528
2020-05-14 09:25:18 +00:00
lain 41db52729e Apply suggestion to docs/configuration/storing_remote_media.md 2020-05-14 09:14:59 +00:00
lain 359d7b0a6d Apply suggestion to lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex 2020-05-14 09:09:11 +00:00
lain 1c2629328d Apply suggestion to lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex 2020-05-14 09:07:09 +00:00
lain 4134bfbbb2 Merge branch 'pleroma_internal' into 'develop'
Add `pleroma_internal` as an internal field

See merge request pleroma/pleroma!2533
2020-05-14 08:22:53 +00:00
Haelwenn (lanodan) Monnier cb363f0183
MastodonAPI: /api/v2/media endpoints 2020-05-14 10:14:28 +02:00
Haelwenn (lanodan) Monnier e688d4ee69
MRF.StealEmojiPolicy: New Policy
Inspired by https://git.pleroma.social/moonman/emoji-stealer-mrf/-/blob/master/steal_emoji_policy.ex
2020-05-14 09:59:56 +02:00
Mark Felder 54b4824186 Lint 2020-05-13 17:07:14 -05:00
Mark Felder 6f53d8815e Clarify where the Features panel is 2020-05-13 16:57:33 -05:00
Mark Felder 2560a4aa56 Formatting 2020-05-13 16:51:23 -05:00
Mark Felder 0c82a967ec Add missing showFeaturesPanel setting 2020-05-13 16:49:56 -05:00
Mark Felder 5131149056 add postContentType setting 2020-05-13 16:45:16 -05:00
Mark Felder 52a95a0265 Add missing nsfwCensorImage option 2020-05-13 16:40:04 -05:00
Mark Felder 923ab78807 Add missing hideSitename setting 2020-05-13 16:36:33 -05:00
Mark Felder c86cdb76a7 Add hideFilteredStatuses and hideMutedPosts settings 2020-05-13 16:35:12 -05:00
Mark Felder 7f00698c3b Add greentext option 2020-05-13 16:32:38 -05:00
Mark Felder 38fb5eaf6a formattingOptionsEnabled no longer exists 2020-05-13 16:31:15 -05:00
Mark Felder 4bdde143f9 Add disableChat option 2020-05-13 16:30:24 -05:00
Mark Felder 2420d7f439 Spelling/grammar 2020-05-13 16:26:49 -05:00
Mark Felder 4aad764c1d enableEmojiPicker is not a setting 2020-05-13 16:24:37 -05:00
Mark Felder 2e28b50132 scopeOptionsEnabled has been replaced with minimalScopesMode 2020-05-13 16:23:42 -05:00
Mark Felder e2c80e62f1 Stickers setting does not exist 2020-05-13 16:19:17 -05:00
Mark Felder 1e48aee50e Alpha sort FE config descriptions 2020-05-13 16:18:26 -05:00
Alex Gleason 249e009c5e
Add `pleroma_internal` as an internal field 2020-05-13 16:14:24 -05:00
Mark Felder 1b93581162 Synchronize suggestions with all available static/config.json settings 2020-05-13 16:03:42 -05:00
Mark Felder 3525400eb2 Sync FE static/config.json 2020-05-13 15:57:39 -05:00
Roman Chvanikov 8a383707ae Merge develop 2020-05-13 19:56:40 +03:00
rinpatch d7d352b869 Merge branch 'weblate-pleroma-pleroma' into 'develop'
Translations update from Weblate

See merge request pleroma/pleroma!2529
2020-05-13 16:26:34 +00:00
Ivan Tashkinov 74912dd9ee PleromaFE bundle supporting `with_relationships` param.
https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1107/diffs?commit_id=9c7cb3a95431bbea44391f79da465f77565a4b49
2020-05-13 19:20:21 +03:00
Ivan Tashkinov 8062d590dd [#2456] OpenAPI-related tweaks. Removed support for `with_relationships` param in `GET /api/v1/accounts/search`. 2020-05-13 18:56:45 +03:00
Alex Gleason 9cbf17d59f
Handle bcrypt passwords for Mastodon migration 2020-05-13 10:53:56 -05:00
Egor Kislitsyn 6802dc28ba
Add OpenAPI spec for PleromaAPI.AccountController 2020-05-13 19:06:46 +04:00
Haelwenn (lanodan) Monnier 5f5681282e Translated using Weblate (French)
Currently translated at 100.0% (90 of 90 strings)

Translation: Pleroma/Pleroma backend
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma/fr/
2020-05-13 13:38:40 +00:00
lain da550be066 Merge branch 'fix/1742-random-failing-tests' into 'develop'
Fix sporadically failing tests

See merge request pleroma/pleroma!2524
2020-05-13 13:38:32 +00:00
lain 0f0acc740d Chat: Allow posting without content if an attachment is present. 2020-05-13 15:31:28 +02:00
Ivan Tashkinov 59b6d5f2aa [#2456] Changed `embed_relationships` param to `with_relationships`. 2020-05-13 15:08:07 +03:00
lain 06cad239e5 InstanceView: Add pleroma chat messages to nodeinfo 2020-05-13 14:05:22 +02:00
Michael Weiss ae3b0b4c0d
Fix digest mix task on OTP releases
This is based on #2191, credit belongs to @rinpatch.
2020-05-13 13:34:03 +02:00
lain 3cff4e24cd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-13 12:44:16 +02:00
lain 6706cdce65 Merge branch 'openapi/suggestions' into 'develop'
Add OpenAPI spec for SuggestionController

See merge request pleroma/pleroma!2525
2020-05-13 10:34:04 +00:00
Egor Kislitsyn bcadbf964a
Add OpenAPI spec for SuggestionController 2020-05-13 14:15:24 +04:00
Ivan Tashkinov 33b798425f [#2456] Post-merge fix. 2020-05-13 12:50:52 +03:00
Ivan Tashkinov fd2fb2bb2e Merge remote-tracking branch 'remotes/origin/develop' into restricted-relations-embedding
# Conflicts:
#	lib/pleroma/web/mastodon_api/controllers/status_controller.ex
#	lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex
#	test/web/mastodon_api/controllers/timeline_controller_test.exs
#	test/web/mastodon_api/views/status_view_test.exs
2020-05-13 12:42:36 +03:00
lain 156c8a5088 Merge branch 'openapi/statuses' into 'develop'
Add OpenAPI spec for StatusController

See merge request pleroma/pleroma!2521
2020-05-13 09:34:30 +00:00
lain 1307d6ca3c Merge branch 'openapi/timelines' into 'develop'
Add OpenAPI spec for TimelineController

See merge request pleroma/pleroma!2506
2020-05-13 09:33:37 +00:00
Alexander Strizhakov fbe3d3aa5f
ignore order 2020-05-13 11:38:23 +03:00
Alexander Strizhakov 2c356a4bac
don't use async with global mocks 2020-05-13 11:38:23 +03:00
Alexander Strizhakov 12635bc156
don't use global mocks in setup callbacks 2020-05-13 11:38:22 +03:00
Alexander Strizhakov b962b24e6f
don't run in async if tests depend on env config 2020-05-13 11:38:22 +03:00
Alexander Strizhakov ec27f346ee
correct order for publised in assert 2020-05-13 11:38:22 +03:00
Alexander Strizhakov e0944dee99
make test fail everytime 2020-05-13 11:38:22 +03:00
Alexander Strizhakov 712055612f
don't run tests which change env in async 2020-05-13 11:38:22 +03:00
Alexander Strizhakov 4ba913d641
{:error, :enoent} s3 fix
s3 tests were executed before temp file was uploaded
2020-05-13 11:38:21 +03:00
lain 3210e939bf Merge branch 'upgrade-comeonin' into 'develop'
Upgrade Comeonin to v5

See merge request pleroma/pleroma!2523
2020-05-13 07:45:35 +00:00
Alex Gleason b46811a074
Upgrade Comeonin to v5
https://github.com/riverrun/comeonin/blob/master/UPGRADE_v5.md
2020-05-12 17:14:59 -05:00
Egor Kislitsyn 79ad12064d
Fix format 2020-05-13 01:59:17 +04:00
minibikini cb1a3e196c Apply suggestion to lib/pleroma/web/api_spec/operations/status_operation.ex 2020-05-12 21:23:43 +00:00
minibikini 5a2333925c Apply suggestion to lib/pleroma/web/api_spec/operations/status_operation.ex 2020-05-12 21:23:36 +00:00
minibikini 822e9c09aa Apply suggestion to lib/pleroma/web/api_spec/operations/status_operation.ex 2020-05-12 21:23:21 +00:00
minibikini 40646a7e0e Apply suggestion to lib/pleroma/web/api_spec/operations/status_operation.ex 2020-05-12 21:14:52 +00:00
minibikini 0bb164a3e1 Apply suggestion to lib/pleroma/web/api_spec/operations/status_operation.ex 2020-05-12 21:12:22 +00:00
minibikini 648cc0d72d Apply suggestion to lib/pleroma/web/api_spec/operations/status_operation.ex 2020-05-12 21:09:26 +00:00
Egor Kislitsyn 7803a85d2c
Add OpenAPI spec for StatusController 2020-05-13 00:25:21 +04:00
rinpatch c74018e6a7 Merge branch 'fix/eldap-required' into 'develop'
fix eldap being required for non-OTP releases

See merge request pleroma/pleroma!2520
2020-05-12 20:20:19 +00:00
Stephanie Wilde-Hobbs a2fcfc78c9
Filter config descriptions by config whitelist 2020-05-12 21:07:33 +01:00
rinpatch da2fe8920d fix eldap being required for non-OTP releases 2020-05-12 23:03:21 +03:00
Ivan Tashkinov bfb48e3db6 [#2456] OpenAPI: added `embed_relationships` param definition. 2020-05-12 20:55:01 +03:00
rinpatch 2b18b8a263 Merge branch 'streamer-get-topic' into 'develop'
Expand and authorize streams in Streamer directly

See merge request pleroma/pleroma!2519
2020-05-12 17:02:57 +00:00
href 68cca29dcf Fix typo in test 2020-05-12 18:51:10 +02:00
rinpatch 24c8c13640 Merge branch '1757-blocks-breaking-on-disabled-outgoing-blocks' into 'develop'
ActivityPub: Fix non-federating blocks.

Closes #1757

See merge request pleroma/pleroma!2514
2020-05-12 16:45:46 +00:00
rinpatch 4cc71aad65 Merge branch '1748-remote-following-follower-count' into 'develop'
Transmogrifier: On incoming follow accept, update follow counts.

Closes #1748

See merge request pleroma/pleroma!2515
2020-05-12 16:44:58 +00:00
Ivan Tashkinov 63a1a82f38 [#2456] Added support for `embed_relationships` param, nailed down endpoints which should support it. Fixed :source_mutes relationships subset fetching. 2020-05-12 19:14:35 +03:00
Stephanie Wilde-Hobbs 620247a015
Add database configuration whitelist 2020-05-12 17:12:27 +01:00
href e6d8cacf2d Expand and authorize streams in Streamer directly 2020-05-12 18:04:47 +02:00
lain fdc9ac8897 Merge branch 'otp-version-update-suggestion' into 'develop'
Startup: suggest updating OTP when the version is too low for gun

See merge request pleroma/pleroma!2518
2020-05-12 14:53:26 +00:00
lain c0ea5c60e4 ChatController: Don't return chats for user you've blocked. 2020-05-12 16:43:04 +02:00
lain be5d0a9bde Merge branch '1020-honk-announces' into 'develop'
Transmogrifier: Add tests for certain announces

Closes #1020

See merge request pleroma/pleroma!2516
2020-05-12 14:35:51 +00:00
rinpatch 8308611279 Startup: suggest updating OTP when the version is too low for gun
I've seen quite a few people wonder what to do when presented with
this error message.
2020-05-12 17:30:39 +03:00
rinpatch d17040e997 Merge branch 'giving-up' into 'develop'
Give up for now and make gitlab retry failed jobs.

See merge request pleroma/pleroma!2517
2020-05-12 13:23:40 +00:00
lain 2f2e5fea34 Give up for now and make gitlab retry failed jobs. 2020-05-12 15:02:37 +02:00
lain e44166b510 Credo fixes. 2020-05-12 14:44:11 +02:00
lain a61120f497 Documention: Add chat message deletion docs 2020-05-12 13:25:25 +02:00
lain ec72cba43e Chat Controller: Add basic error handling. 2020-05-12 13:23:09 +02:00
lain dcb5cda324 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-12 13:13:43 +02:00
lain b5aa204eb8 ChatController: Support deletion of chat messages. 2020-05-12 13:13:03 +02:00
lain dfb90a1fd6 Transmogrifier: Add tests for certain announces 2020-05-12 12:50:48 +02:00
lain ca31af473c Transmogrifier: On incoming follow accept, update follow counts. 2020-05-12 12:29:37 +02:00
lain d0ba1844b0 ActivityPub: Fix non-federating blocks. 2020-05-12 10:52:46 +02:00
Maksim Pechnikov 63477d07ad unsubscribes of friends when user deactivated 2020-05-12 08:14:42 +03:00
rinpatch f8190aea5e Merge branch 'fix/issue-1676' into 'develop'
[#1676] fixed 'source' object in verify_credentials

See merge request pleroma/pleroma!2492
2020-05-11 22:30:36 +00:00
rinpatch 2ead4e108a Merge branch 'migration-fix-markers' into 'develop'
Markers migration: Fix migration for very large list of markers

See merge request pleroma/pleroma!2511
2020-05-11 22:13:08 +00:00
rinpatch 9b33cab06e Merge branch 'chore/gettext-update' into 'develop'
Gettext: remove english messages and update the pot file

See merge request pleroma/pleroma!2512
2020-05-11 21:52:57 +00:00
rinpatch 952c6b29a1 Gettext: remove english messages and update the pot file
Having an English file doesn't make any sense, since English
is the source language for error messages. Also Weblate complains about it
2020-05-12 00:40:13 +03:00
Ivan Tashkinov 1b23acf164 [#2497] Media preview proxy for images: fixes, tweaks, refactoring, tests adjustments. 2020-05-11 23:21:53 +03:00
lain f6aa0b4a07 Migration: Fix typo 2020-05-11 22:03:29 +02:00
lain f71376e30e Migration: Enum.chunk is deprecated. 2020-05-11 22:00:01 +02:00
lain d8dd945a03 Markers migration: Fix migration for very large list of markers 2020-05-11 21:52:47 +02:00
rinpatch 768c18facb Merge branch 'fix/streamer-timeout' into 'develop'
Fix streamer timeout

Closes #1735 and #1753

See merge request pleroma/pleroma!2509
2020-05-11 17:07:55 +00:00
lain f28ed36b4d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-11 17:14:58 +02:00
href e2b15e8ad3 Fix streamer timeout (closes #1753).
Cowboy handles automatically responding to the client's ping, but
doesn't automatically send a :ping frame to the client.
2020-05-11 16:51:34 +02:00
lain e432314105 Merge branch '1439-favorite-deletion' into 'develop'
SideEffects test: Add test for favorite deletion.

Closes #1439

See merge request pleroma/pleroma!2508
2020-05-11 13:58:18 +00:00
lain 679afb2de4 SideEffects test: Add test for favorite deletion. 2020-05-11 15:38:19 +02:00
rinpatch 79cd723a1e Merge branch '1204-object-pruning-deletion' into 'develop'
Deletion: Handle the case of pruned objects.

Closes #1204

See merge request pleroma/pleroma!2507
2020-05-11 13:31:11 +00:00
lain 5367a00257 Deletion: Handle the case of pruned objects. 2020-05-11 15:06:23 +02:00
Egor Kislitsyn 3bde0fa3f6
Add OpenAPI spec for TimelineController 2020-05-11 15:43:03 +04:00
lain fdb98715b8 Chat: Fix wrong query. 2020-05-11 10:58:14 +02:00
lain 84bb116ae3 Merge branch 'descriptions-fix' into 'develop'
copy/paste fix for descriptions

See merge request pleroma/pleroma!2504
2020-05-11 08:03:09 +00:00
Alexander Strizhakov da6a38d205
copy/paste fix for descriptions 2020-05-11 09:35:20 +03:00
lain 1b1dfb54eb Credo fixes. 2020-05-10 13:28:05 +02:00
lain 8cc8d960af Documentation: Add GET /chats/:id 2020-05-10 13:27:40 +02:00
lain 8d5597ff68 ChatController: Add GET /chats/:id 2020-05-10 13:26:14 +02:00
lain 172d9b1193 Chat: Add last_message to schema. 2020-05-10 13:08:01 +02:00
lain 17be3ff669 Documentation: Add last_message to chat docs. 2020-05-10 13:01:20 +02:00
lain f335e1404a ChatView: Add the last message to the view. 2020-05-10 13:00:01 +02:00
lain e297d8c649 Documentation: Add attachment docs 2020-05-10 12:34:12 +02:00
lain c272669909 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-10 12:32:57 +02:00
lain 1054e89762 ChatOperation: Add media id to example 2020-05-10 12:30:24 +02:00
lain 7ca83e71a9 Merge branch 'shortening-modules-name' into 'develop'
Descriptions that module names are shortened

See merge request pleroma/pleroma!2428
2020-05-10 09:05:22 +00:00
Ivan Tashkinov b960a9430d [#2456] credo fix. 2020-05-10 09:35:12 +03:00
Ivan Tashkinov b0d0d8f91b Merge remote-tracking branch 'remotes/origin/develop' into restricted-relations-embedding 2020-05-10 09:17:16 +03:00
Ivan Tashkinov aee88d11be [#2456] Removed support for embedded relationships in account view. 2020-05-10 09:16:48 +03:00
Roman Chvanikov f3f8ed9e19 Set sum types in query 2020-05-10 09:13:24 +03:00
rinpatch b3e6953d23 Merge branch 'fix/skeleton-migration-nonlocal-locals' into 'develop'
insert skeletons migration: fix for non-local locals

Closes #1746

See merge request pleroma/pleroma!2502
2020-05-09 21:52:00 +00:00
rinpatch 0ad89762a1 insert skeletons migration: fix for non-local locals
Apparently some instances have local users with local ap_ids
that are marked as local: false. Needs more investigation into how
that happened.

In the meantime, the skeleton migration was patched to just ignore
all known ap ids, not just locals. Doesn't seem to slow down the migration
too much on patch.cx

Closes #1746
2020-05-09 22:07:35 +03:00
Ivan Tashkinov ac4250a18c [#2456] Clarified `skip_relationships` option (and its default of `false`) for MastodonAPI.AccountView. 2020-05-09 19:03:07 +03:00
rinpatch d73e8b6b12 Merge branch 'pleroma-fe-2020-05-08-7a0e554d' into 'develop'
PleromaFE bundle dropping requirement for embedded account relationships

See merge request pleroma/pleroma!2494
2020-05-09 15:30:39 +00:00
Ivan Tashkinov 14a49a0483 [#2456] Dropped support for embedded `pleroma/account/relationship` in statuses and notifications. 2020-05-09 18:05:44 +03:00
rinpatch 5e1d994785 Merge branch 'fix/eldap-otp' into 'develop'
include eldap in OTP releases

Closes #1313

See merge request pleroma/pleroma!2501
2020-05-09 12:18:44 +00:00
rinpatch b6d1bcc55d include eldap in OTP releases
Closes #1313
2020-05-09 15:17:12 +03:00
Roman Chvanikov 4c19702390 Add docs 2020-05-09 14:32:08 +03:00
Roman Chvanikov 56819f7f06 Use index on refresh_counter_cache 2020-05-09 13:13:26 +03:00
Roman Chvanikov 4f26539717 Fix credo warning 2020-05-09 11:59:49 +03:00
Roman Chvanikov 5c368b004b Fix refresh_counter_cache test 2020-05-09 11:49:54 +03:00
Roman Chvanikov 01b06d6dbf Show progress in refresh_counter_cache task 2020-05-09 11:43:31 +03:00
Roman Chvanikov 942093683a Merge branch 'develop' into feature/admin-api-status-count-per-instance 2020-05-09 11:31:34 +03:00
Roman Chvanikov cbe383ae83 Update stats admin endpoint 2020-05-09 11:30:37 +03:00
lain c962c6afb3 Merge branch 'fix/healthcheck-total-alloc' into 'develop'
healthcheck: report real amount of memory allocated by beam

See merge request pleroma/pleroma!2499
2020-05-09 08:10:56 +00:00
Roman Chvanikov 39d2f2118a update counter_cache logic 2020-05-09 01:20:50 +03:00
rinpatch 30eaef9d61 healthcheck: report real amount of memory allocated by beam
as opposed to memory currently in use
2020-05-08 23:57:47 +03:00
rinpatch df82ee4179 Merge branch 'chore/changelog-sync' into 'develop'
CHANGELOG.md: Add entries from 2.0.3

See merge request pleroma/pleroma!2498
2020-05-08 20:56:16 +00:00
rinpatch f4d50fbd81 CHANGELOG.md: Add entries from 2.0.3 2020-05-08 23:54:16 +03:00
Ivan Tashkinov bbdad85568 Initial implementation of image preview proxy. Media proxy tests refactoring. 2020-05-08 23:06:47 +03:00
feld 3a014dd609 Merge branch 'chore/description-grammar' into 'develop'
Minor grammar nit

See merge request pleroma/pleroma!2496
2020-05-08 19:48:39 +00:00
Mark Felder c9344b5f2d Minor grammar nit 2020-05-08 14:36:59 -05:00
feld 65299daa85 Merge branch 'fix/adminfe-icons' into 'develop'
Restore deleted icons. No idea how this happened.

See merge request pleroma/pleroma!2495
2020-05-08 19:34:12 +00:00
Mark Felder 6a291b1834 Restore deleted icons. No idea how this happened. 2020-05-08 14:22:49 -05:00
Roman Chvanikov 0c2b09a9ba Add migration for counter_cache table update 2020-05-08 22:08:11 +03:00
Ivan Tashkinov b2924ab1fb Merge remote-tracking branch 'remotes/origin/develop' into restricted-relations-embedding 2020-05-08 21:37:55 +03:00
Ivan Tashkinov 0e1bda55e8 PleromaFE bundle dropping requirement for embedded account relationships in statuses / notifications.
7a0e554daf
2020-05-08 21:33:56 +03:00
lain 03529f6a05 Transmogrifier: Don't modify attachments for chats. 2020-05-08 18:26:35 +02:00
rinpatch 570940a3fd Merge branch 'bugfix/fix-like-notifications' into 'develop'
Notifications: Simplify recipient calculation for some Activities.

See merge request pleroma/pleroma!2486
2020-05-08 15:00:43 +00:00
Alexander Strizhakov 287f781808
user deletion 2020-05-08 17:11:17 +03:00
lain d0bf8cfb8f Credo fixes. 2020-05-08 14:11:58 +02:00
lain 7637ef4203 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-08 13:13:37 +02:00
lain fbcc53760e Merge branch 'feature/emojireactvalidator' into 'develop'
Move EmojiReacts to the Pipeline.

See merge request pleroma/pleroma!2473
2020-05-08 10:41:41 +00:00
lain 7e9aaa0d02 Transmogrifier tests: Remove more double tests. 2020-05-08 11:43:07 +02:00
lain f1274c3326 Transmogrifier tests: Remove double tests. 2020-05-08 11:41:13 +02:00
Maksim Pechnikov 4d71c4b805 fixed 'source' object in verify_credentials 2020-05-08 12:35:34 +03:00
lain 6acbe45eb2 Builder: Extract common features of likes and reactions. 2020-05-08 11:30:31 +02:00
lain 0cf43391f2 Merge branch 'issue/1276-2' into 'develop'
[#1276] added an endpoint for getting unread notification count

See merge request pleroma/pleroma!2392
2020-05-08 09:23:01 +00:00
Maksim Pechnikov a081135365 revert mix.lock 2020-05-08 12:06:24 +03:00
lain 218a22c9a3 Merge branch 'fix/privacy-notification' into 'develop'
Privacy option affects all push notifications, not just Direct Messages

Closes #1745

See merge request pleroma/pleroma!2485
2020-05-08 09:04:24 +00:00
Maksim Pechnikov b078e0567d Merge branch 'develop' into issue/1276-2 2020-05-08 08:51:09 +03:00
Haelwenn 769d95644d Merge branch 'feature/restrict-c2s' into 'develop'
AP C2S: Restrict creation to `Note`s for now.

See merge request pleroma/pleroma!2472
2020-05-07 22:29:16 +00:00
lain ef55d24054 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/emojireactvalidator 2020-05-07 18:53:34 +02:00
rinpatch bef08b85e5 Merge branch 'feature/undo-validator-reduced' into 'develop'
Move Undo (except undo follow) to the common pipeline

See merge request pleroma/pleroma!2489
2020-05-07 14:28:10 +00:00
Mark Felder ea01e647df Test Direct, Public, and Favorite notifications with privacy option 2020-05-07 09:13:43 -05:00
lain 516ff945ce Merge branch 'openapi/search' into 'develop'
Add OpenAPI spec for SearchController

See merge request pleroma/pleroma!2484
2020-05-07 13:38:34 +00:00
rinpatch 9f2bb22e15 Merge branch 'fix/streamer-wrong-arg-order' into 'develop'
Streamer: Fix wrong argument order when rendering activities to authenticated user

Closes #1747

See merge request pleroma/pleroma!2490
2020-05-07 13:26:29 +00:00
rinpatch eb1f2fcbc6 Streamer: Fix wrong argument order when rendering activities to authenticated user
Closes #1747
2020-05-07 16:13:24 +03:00
lain d11eea62b1 Credo fixes 2020-05-07 15:09:37 +02:00
lain fb2d284d28 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-07 15:05:40 +02:00
lain 7ac0cffb34 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/emojireactvalidator 2020-05-07 15:03:12 +02:00
lain 788b7e7bbd Merge fixes. 2020-05-07 14:52:37 +02:00
lain cda410adfd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/undo-validator-reduced 2020-05-07 14:45:35 +02:00
lain f0c22df226 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/undo-validator-reduced 2020-05-07 14:45:20 +02:00
rinpatch b7635bf2b6 Merge branch 'fix/downgraded-deps' into 'develop'
Restore mix.lock after 2FA merge

See merge request pleroma/pleroma!2487
2020-05-07 11:47:11 +00:00
rinpatch 9c3c142c32 Restore mix.lock after 2FA merge
It downgraded a bunch of deps, including plug. Which resulted in errors
since pleroma was using a feature plug didn't support at the time.
2020-05-07 14:35:29 +03:00
lain 8ae4d64d47 Apply suggestion to lib/pleroma/notification.ex 2020-05-07 11:01:52 +00:00
lain 3f867d8e9b Apply suggestion to lib/pleroma/web/api_spec/operations/search_operation.ex 2020-05-07 10:48:09 +00:00
lain f57fa2a00d Notifications: Simplify recipient calculation for some Activities.
Fixes the 'getting notfications for other people's posts' bug.
2020-05-07 12:43:30 +02:00
Egor Kislitsyn dc4a448f48
Add OpenAPI spec for SearchController 2020-05-07 14:04:48 +04:00
Egor Kislitsyn cdca62e8d4
Add schema for Tag 2020-05-07 14:04:07 +04:00
lain 4c92dfb73e Merge branch 'openapi/polls' into 'develop'
Add OpenAPI spec for PollController

See merge request pleroma/pleroma!2476
2020-05-07 09:19:45 +00:00
lain 4061841846 Merge branch 'streamer-worker-registry' into 'develop'
Streamer rework

See merge request pleroma/pleroma!2426
2020-05-07 09:13:32 +00:00
href 9491ba3e49 Streamer rework 2020-05-07 09:13:32 +00:00
lain f4c2bf0985 Merge branch 'issue/209' into 'develop'
[#209] 2FA/two_factor_authentication support

See merge request pleroma/pleroma!801
2020-05-07 08:14:54 +00:00
Maksim 3d0c567fbc Pleroma.Web.TwitterAPI.TwoFactorAuthenticationController -> Pleroma.Web.PleromaAPI.TwoFactorAuthenticationController 2020-05-07 08:14:54 +00:00
Mark Felder a2580adc91 Hide the sender when privacy option is enabled 2020-05-06 16:42:27 -05:00
Mark Felder 57736c1833 Privacy option affects all push notifications, not just Direct Messages 2020-05-06 16:30:05 -05:00
lain 68a126317d Merge branch 'fix/syslog-compile' into 'develop'
Fix for syslog compile with updated rebar3

See merge request pleroma/pleroma!2482
2020-05-06 15:44:21 +00:00
lain 1748e26948 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-06 17:36:08 +02:00
Alexander Strizhakov 4b00eb93fe
fix for syslog compile with updated rebar3 2020-05-06 18:04:16 +03:00
feld a32483f224 Merge branch 'docs/chat-in-cheatsheet' into 'develop'
Add :chat to cheatsheet

See merge request pleroma/pleroma!2480
2020-05-06 14:42:55 +00:00
rinpatch 473b0d9f3d Merge branch 'feature/delete-validator' into 'develop'
Move deletions to the common pipeline

Closes #1497

See merge request pleroma/pleroma!2441
2020-05-06 14:32:58 +00:00
lain fc9d0b6eec Credo fixes. 2020-05-06 16:31:21 +02:00
lain 20baa2eaf0 ChatMessages: Add attachments. 2020-05-06 16:12:36 +02:00
Mark Felder d7537a37c7 Add :chat to cheatsheet 2020-05-06 08:55:09 -05:00
feld b73b173114 Merge branch 'fix/apache-cert-chain' into 'develop'
Apache chain issue fix

See merge request pleroma/pleroma!2478
2020-05-06 13:33:24 +00:00
Alexander Strizhakov 3c42caa85c
apache chain issue fix 2020-05-06 16:20:47 +03:00
Maksim Pechnikov bd261309cc added `unread_notifications_count` for `/api/v1/accounts/verify_credentials` 2020-05-06 15:08:38 +03:00
Maksim Pechnikov 8b97b6f5ba Merge branch 'develop' into issue/1276-2 2020-05-06 14:47:50 +03:00
Egor Kislitsyn 06c69c0a0a
Fix description 2020-05-06 14:18:19 +04:00
lain 205313e541 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-06 11:44:30 +02:00
lain 07e7c80bc9 Merge branch 'plug-if-unless-func-options-refactoring' into 'develop'
Refactoring of :if_func / :unless_func plug options

See merge request pleroma/pleroma!2446
2020-05-06 09:14:05 +00:00
lain a716543267 Merge branch 'openapi/subscriptions' into 'develop'
Add OpenAPI spec for SubscriptionController

See merge request pleroma/pleroma!2444
2020-05-06 09:10:17 +00:00
lain 61ea8f1f5a Merge branch 'openapi/markers' into 'develop'
Add OpenAPI spec for MarkerController

See merge request pleroma/pleroma!2386
2020-05-06 09:06:50 +00:00
lain df846eda71 Merge branch 'bugfix/sensitive_object' into 'develop'
Transmogrifier.set_sensitive/1: Keep sensitive set to true

Closes #954

See merge request pleroma/pleroma!2470
2020-05-06 09:04:13 +00:00
lain c3f1ce80eb Merge branch 'fix/1726-user-pagination' into 'develop'
Pagination fix for service users filters in admin api

Closes #1726

See merge request pleroma/pleroma!2452
2020-05-06 09:01:42 +00:00
lain 0a88bf6a9d Merge branch 'openapi/follow_requests' into 'develop'
Add OpenAPI spec for FollowRequestController

See merge request pleroma/pleroma!2448
2020-05-06 09:00:39 +00:00
lain 957172a307 Merge branch 'openapi/filters' into 'develop'
Add OpenAPI spec for FilterController

See merge request pleroma/pleroma!2382
2020-05-06 08:51:10 +00:00
lain f84c8f2f0d Merge branch 'feature/1728-webfinger-acct-scheme' into 'develop'
Webfinger: Request account info with the acct scheme

Closes #1728

See merge request pleroma/pleroma!2465
2020-05-06 08:46:45 +00:00
lain 1ee34d4acb Merge branch 'openapi/instance' into 'develop'
Add OpenAPI spec for InstanceController

See merge request pleroma/pleroma!2450
2020-05-06 08:46:14 +00:00
lain 7fdc7078ae Merge branch 'openapi/lists' into 'develop'
Add OpenAPI spec for ListController

See merge request pleroma/pleroma!2453
2020-05-06 08:43:21 +00:00
lain 76c1a7a34b Merge branch 'openapi/conversations' into 'develop'
Add OpenAPI spec for ConversationController

See merge request pleroma/pleroma!2445
2020-05-06 08:40:04 +00:00
Maksim Pechnikov fb38b7339c Merge branch 'develop' into issue/1276-2 2020-05-06 05:55:39 +03:00
Haelwenn 7612d9403d Merge branch 'openapi/scheduled_activities' into 'develop'
Add OpenAPI spec for ScheduledActivityController

See merge request pleroma/pleroma!2477
2020-05-06 01:04:50 +00:00
Egor Kislitsyn 332e016bcd
Add OpenAPI spec for ScheduledActivityController 2020-05-05 23:42:24 +04:00
Egor Kislitsyn 6ba25d1197
Add Attachment schema 2020-05-05 23:42:24 +04:00
lain 9637cded21 Chat: Fix missing chat id on second 'get' 2020-05-05 20:07:47 +02:00
Egor Kislitsyn 0a1394cc1a
Add OpenAPI spec for PollController 2020-05-05 20:14:22 +04:00
lain 92caae5923 Undoing: Move undoing blocks to the pipeline everywhere. 2020-05-05 18:02:24 +02:00
lain a3bb2e5474 Undoing: Move undoing announcements to the pipeline everywhere. 2020-05-05 16:42:34 +02:00
lain b34debe615 Undoing: Move undoing reactions to the pipeline everywhere. 2020-05-05 16:17:09 +02:00
Egor Kislitsyn 3a45952a3a
Add OpenAPI spec for ConversationController 2020-05-05 17:44:46 +04:00
Egor Kislitsyn 32ca9f2c59
Render mastodon-like errors in FilterController 2020-05-05 17:41:16 +04:00
Egor Kislitsyn 46aae346f8
Move single used schemas to Filter operation schema 2020-05-05 17:41:01 +04:00
Egor Kislitsyn 7e7a3e1544
Add OpenAPI spec for FilterController 2020-05-05 17:41:01 +04:00
lain 42a2acac46 Merge branch 'feature/1720-status-view' into 'develop'
Admin API fetch status by id

Closes #1720

See merge request pleroma/pleroma!2475
2020-05-05 13:40:12 +00:00
Egor Kislitsyn ec1e4b4f1a
Add OpenAPI spec for FollowRequestController 2020-05-05 17:40:00 +04:00
minibikini 42a4a863f1
Apply suggestion to lib/pleroma/web/api_spec/operations/instance_operation.ex 2020-05-05 17:24:40 +04:00
minibikini 3817f179d7
Apply suggestion to lib/pleroma/web/api_spec/operations/instance_operation.ex 2020-05-05 17:24:40 +04:00
minibikini b5189d2c50
Apply suggestion to lib/pleroma/web/api_spec/operations/instance_operation.ex 2020-05-05 17:24:40 +04:00
Egor Kislitsyn 88a14da817
Add OpenAPI spec for InstanceController 2020-05-05 17:24:16 +04:00
Alexander Strizhakov e7d8ab8303
admin_api fetch status by id 2020-05-05 16:18:56 +03:00
lain a3071f0231 Undoing: Move undoing likes to the pipeline everywhere. 2020-05-05 15:08:41 +02:00
Egor Kislitsyn f2bf4390f4
Fix descriptions for List API spec 2020-05-05 17:05:35 +04:00
Egor Kislitsyn 5ec6aad567
Add OpenAPI spec for ListController 2020-05-05 17:05:34 +04:00
Egor Kislitsyn babcae7130
Move single used schemas to Marker operation schema 2020-05-05 16:45:34 +04:00
Egor Kislitsyn 8096565653
Add OpenAPI spec for MarkerController 2020-05-05 16:44:16 +04:00
Egor Kislitsyn d861b0790a
Add OpenAPI spec for SubscriptionController 2020-05-05 16:43:00 +04:00
lain f1da8882f9 UndoValidator: Add UndoValidator. 2020-05-05 14:17:47 +02:00
rinpatch 33f2976020 Merge branch 'feature/1737-magic-key-field' into 'develop'
User, Webfinger: Remove OStatus vestiges

Closes #1737

See merge request pleroma/pleroma!2471
2020-05-05 12:10:10 +00:00
rinpatch 5482a1f6ef Merge branch 'openapi/validation-plug' into 'develop'
Ignore unexpected query params and ENUM values

Closes #1719

See merge request pleroma/pleroma!2468
2020-05-05 12:08:58 +00:00
lain 8b2457bdbf Transmogrifier tests: Extract Undo handling 2020-05-05 13:25:34 +02:00
lain d201527004 Apply suggestion to lib/pleroma/web/web_finger/web_finger.ex 2020-05-05 11:17:44 +00:00
Egor Kislitsyn cc922e7d8c
Document configuration for Pleroma.Web.ApiSpec.CastAndValidate 2020-05-05 15:01:33 +04:00
Egor Kislitsyn decaa64f75
Merge branch 'develop' into global-status-expiration 2020-05-05 14:28:54 +04:00
lain db55dc9445 ActivityPub: Remove `react_with_emoji`. 2020-05-05 12:28:28 +02:00
lain ad771546d8 Transmogrifier: Move emoji reactions to common pipeline. 2020-05-05 12:11:46 +02:00
lain 142bf0957c Transmogrifier: Extract EmojiReact tests. 2020-05-05 11:20:53 +02:00
lain f21f538293 LikeValidator: Add defaults for recipients back in. 2020-05-05 10:38:59 +02:00
lain c297667f16 Merge branch 'fix/issue-1729' into 'develop'
Only update follower/following stats for actor types of users and bots.

Closes #1565 and #1729

See merge request pleroma/pleroma!2464
2020-05-05 08:21:39 +00:00
lain 2cb3f8a8cf Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/delete-validator 2020-05-05 10:19:01 +02:00
lain 6400998820 AP C2S: Restrict creation to `Note`s for now. 2020-05-05 10:12:37 +02:00
lain 6a2905ccf0 WebFinger Test: Add back test. 2020-05-05 09:55:33 +02:00
lain f897da2115 WebFinger: Add back in subscribe_address.
It's used for remote following.
2020-05-05 09:36:38 +02:00
lain 8bed6ea922 User, Webfinger: Remove OStatus vestiges
Mainly the `magic_key` field
2020-05-05 09:25:09 +02:00
Haelwenn (lanodan) Monnier bf0e41f0da
Transmogrifier.set_sensitive/1: Keep sensitive set to true 2020-05-04 23:36:00 +02:00
feld b1c29e2de8 Merge branch 'feature/update-labels-for-activating-settings' into 'develop'
Fix inconsistency in language for activating settings in description.exs

Closes admin-fe#108

See merge request pleroma/pleroma!2469
2020-05-04 20:24:08 +00:00
Angelina Filippova 2ab52d5224 Fix inconsistency in language for activating settings 2020-05-04 22:41:14 +03:00
Egor Kislitsyn 1cb89aac1e
Enable strict validation mode in dev and test environments 2020-05-04 22:35:28 +04:00
Egor Kislitsyn e55fd530bc
Render better errors for ENUM validation 2020-05-04 22:33:34 +04:00
Egor Kislitsyn f070b5569c
Add a config option to enable strict validation 2020-05-04 22:33:05 +04:00
Egor Kislitsyn 4b9ab67aa8
Ignore unexpected ENUM values in query string 2020-05-04 21:46:25 +04:00
lain c23cb8d37a Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-04 19:24:04 +02:00
minibikini bfbff7d826 Apply suggestion to lib/pleroma/web/api_spec/cast_and_validate.ex 2020-05-04 16:38:23 +00:00
Egor Kislitsyn d08c63500b
Ignore unexpected query params 2020-05-04 20:16:44 +04:00
rinpatch 378ab2db97 Merge branch 'feature/favorite-refactor' into 'develop'
Like activities: Move fixes to validator.

See merge request pleroma/pleroma!2467
2020-05-04 15:47:04 +00:00
lain 3559dd1085 Transmogrifier: Rely on LikeValidator. 2020-05-04 17:18:38 +02:00
lain 0f9bed022f LikeValidator: Fix up context. 2020-05-04 17:18:17 +02:00
lain e03c301ebe LikeValidator: Fix up missing recipients. 2020-05-04 17:08:31 +02:00
lain 335aabc39c Transmogrifier tests: Extract like tests. 2020-05-04 14:45:28 +02:00
lain 13ab8defc0 Pipeline: Move transctioning to common pipeline. 2020-05-04 14:34:19 +02:00
lain ec24c70db8 ActivityPub: Don't fetch `Application` follower counts. 2020-05-04 14:22:54 +02:00
lain 7ff2a7dae2 Docs: Add Chat mark_as_read docs 2020-05-04 13:12:21 +02:00
lain b04328c3de ChatController: Add mark_as_read 2020-05-04 13:10:36 +02:00
lain 30590cf46b CommonAPI: Refactor for readability 2020-05-04 12:53:40 +02:00
lain 57e6f2757a ChatOperation: Make simple schema into inline schema 2020-05-04 12:47:23 +02:00
lain 7dd47bee82 Update changelog 2020-05-04 12:22:31 +02:00
lain dcf535fe77 Credo fixes. 2020-05-04 11:32:11 +02:00
lain 651935f137 Schemas: Refactor to our naming scheme. 2020-05-04 11:08:00 +02:00
lain c40afe5ba0 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-05-04 10:43:20 +02:00
Maksim Pechnikov fe7a0d660e Merge branch 'develop' into issue/1276-2 2020-05-04 06:08:49 +03:00
lain 9249742f13 Types.Recipients: Simplify reducer. 2020-05-03 15:28:24 +02:00
lain a35b76431c Credo fixes. 2020-05-03 14:58:24 +02:00
lain a7966f2080 Webfinger: Request account info with the acct scheme 2020-05-03 13:48:01 +02:00
lain 1974d0cc42 DeleteValidator: The deleted activity id is an object id 2020-05-03 13:02:57 +02:00
lain 6c337489f4 Various testing fixes in relation to user deletion. 2020-05-03 13:01:19 +02:00
lain 6fb96f64c1 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/delete-validator 2020-05-03 12:55:29 +02:00
lain 4dfc617cdf Transmogrifier: Don't fetch actor that's guaranteed to be there. 2020-05-03 12:51:28 +02:00
Lain Soykaf f20a1a27ef DeleteValidator: Improve code readability 2020-05-03 12:19:01 +02:00
Mark Felder 370e313e2d Only update follower/following stats for actor types of users and bots. 2020-05-02 13:28:10 -05:00
lain 095635453a Replace deprecated Roma by Fedi. 2020-05-02 18:10:50 +00:00
rinpatch 3126f8a334 Merge branch 'feature/1710-consolidate-instance-info' into 'develop'
Feature/1710 consolidate instance info

Closes #1710

See merge request pleroma/pleroma!2430
2020-05-02 16:44:55 +00:00
rinpatch d589f3dcfb CHANGELOG.md: Add entry for re-registration ban 2020-05-02 19:05:13 +03:00
rinpatch 9a92e5a351 Reword changelog entry for follow relationship bug 2020-05-02 19:05:13 +03:00
eugenijm 66a8e1312d Mastodon API: do not create a following relationship if the corresponding follow request doesn't exist when calling `POST /api/v1/follow_requests/:id/authorize` 2020-05-02 19:05:13 +03:00
rinpatch e55876409b Deactivate local users on deletion instead of deleting the record
Prevents the possibility of re-registration, which allowed to read
DMs of the deleted account.

Also includes a migration that tries to find any already deleted
accounts and insert skeletons for them.

Closes pleroma/pleroma#1687
2020-05-02 19:05:13 +03:00
rinpatch e186d9941d Merge branch 'fix/1732-authless-following-followers' into 'develop'
[FIX] [#1732] Made AP C2S :followers and :following endpoints serve on no auth

Closes #1732

See merge request pleroma/pleroma!2463
2020-05-02 15:39:31 +00:00
Ivan Tashkinov 2d07ed7747 [#1732] Made AP C2S :followers and :following endpoints serve on no auth
(as for related :api pipeline endpoints).
2020-05-02 18:28:04 +03:00
rinpatch 9e3ec58280 Merge branch 'follow-request-notifications' into 'develop'
Follow request notifications enforcement

See merge request pleroma/pleroma!2451
2020-05-02 12:24:49 +00:00
rinpatch 8ea522b4b6 Merge branch 'pleroma-fe-2020-05-02-5f90b6a3' into 'develop'
PleromaFE bundle supporting follow request notifications

See merge request pleroma/pleroma!2462
2020-05-02 12:24:22 +00:00
Ivan Tashkinov f1bba5c787 PleromaFE bundle supporting follow request notifications.
5f90b6a384
2020-05-02 14:37:40 +03:00
Haelwenn 0dfb5ad0ad Merge branch 'bugfix/static-fe.css' into 'develop'
static-fe.css: Restore and move to /priv/static/static-fe

See merge request pleroma/pleroma!2458
2020-05-02 06:37:33 +00:00
Haelwenn (lanodan) Monnier c6ddfa8f95
static-fe.css: Restore and move to /priv/static/static-fe 2020-05-02 08:28:42 +02:00
Ivan Tashkinov cf5ca7e45b Merge remote-tracking branch 'remotes/origin/develop' into follow-request-notifications 2020-05-02 07:39:19 +03:00
rinpatch ae921a0c24 Merge branch 'fix/sporadic-test-failure-alias' into 'develop'
Fix sporadic test compilation failure caused by unused alias

See merge request pleroma/pleroma!2460
2020-05-01 22:01:35 +00:00
rinpatch b1e2ad3f27 Merge branch 'fix/notificatons-follow-request-validation' into 'develop'
OpenAPI: Add `follow_request` to notification types

Closes #1731

See merge request pleroma/pleroma!2459
2020-05-01 20:22:37 +00:00
rinpatch c18ef452b0 OpenAPI: Add `follow_request` to notification types
Closes #1731
2020-05-01 23:14:20 +03:00
rinpatch e7b1df7252 Fix sporadic test compilation failure caused by unused alias 2020-05-01 22:50:40 +03:00
lain 4c0af1cb66 Merge branch 'fix/openapi-limit' into 'develop'
OpenAPI: Remove max pagination limit from the spec

See merge request pleroma/pleroma!2457
2020-05-01 18:46:18 +00:00
rinpatch 85105f7aae OpenAPI: Remove max pagination limit from the spec
In an ideal world clients wouldn't try to request more than the max
hardcoded limit, but SubwayTooter does.
2020-05-01 21:33:34 +03:00
rinpatch ed8282c091 Merge branch 'bugfix/1727-fix-signature-decoding' into 'develop'
Bugfix/1727 fix signature decoding

Closes #1727

See merge request pleroma/pleroma!2454
2020-05-01 16:48:31 +00:00
Ivan Tashkinov d5cdc907e3 Restricted embedding of relationships where applicable (statuses / notifications / accounts rendering).
Added support for :skip_notifications for accounts listing (index.json).
Adjusted tests.
2020-05-01 18:45:24 +03:00
lain ed4e9e6435 Merge branch 'fix-notifications-loading-in-pleroma-fe' into 'develop'
Notifications loading fix (PleromaFE)

See merge request pleroma/pleroma!2455
2020-05-01 15:38:36 +00:00
Ivan Tashkinov 57b31e79c2 Updated PleromaFE bundle to prevent notifications loading issue due to unsupported parameter (`with_move`). 2020-05-01 17:59:29 +03:00
lain 3453e54e6b MappedSignatureToIdentityPlug: Fix. 2020-05-01 15:58:47 +02:00
lain a912f72a36 Signature: Handle non-ap ids in key ids.
Mastodon and Gab sometimes send the format `acct:name@server`.
2020-05-01 15:54:38 +02:00
Alexander Strizhakov aea781cbd8
credo fix 2020-05-01 16:31:05 +03:00
lain 3370bb0e46 Merge branch 'openapi/notifications' into 'develop'
Add OpenAPI spec for NotificationController

See merge request pleroma/pleroma!2437
2020-05-01 13:09:36 +00:00
lain 607e06c245 Merge branch 'openapi/reports' into 'develop'
Add OpenAPI spec for ReportController

See merge request pleroma/pleroma!2434
2020-05-01 12:48:56 +00:00
lain 44fbd09709 Merge branch 'issue/1577' into 'develop'
[#1577] fix mediaType of object

See merge request pleroma/pleroma!2372
2020-05-01 12:38:46 +00:00
lain 1ead5f49b8 AdminApiController: Use common pipeline for user deletion. 2020-05-01 14:30:39 +02:00
lain ebbd9c7f36 AdminAPIController: Refactor. 2020-05-01 14:22:39 +02:00
lain 51f1dbf0a2 User deletion mix task: Use common pipeline. 2020-05-01 14:05:25 +02:00
lain 2008fa9c7f Merge branch 'fix/captcha' into 'develop'
Fix account registration when captcha is enabled but not provided

Closes #1712

See merge request pleroma/pleroma!2438
2020-05-01 11:47:58 +00:00
lain ab01863abf Merge branch 'feature/delete-validator' of git.pleroma.social:pleroma/pleroma into feature/delete-validator 2020-05-01 13:35:42 +02:00
lain 5f42e6629d DeleteValidator: Only allow deletion of certain types. 2020-05-01 13:34:47 +02:00
Alexander Strizhakov ecf37b46d2
pagination fix for service users filters 2020-05-01 14:31:24 +03:00
Ivan Tashkinov 92efb888c7 Made follow request notifications non-optional (removed config switch). 2020-05-01 09:51:41 +03:00
Maksim Pechnikov a92c713d9c Merge branch 'develop' into issue/1276-2 2020-05-01 06:21:59 +03:00
rinpatch 0dd863f8f5 Merge branch 'update/admin-fe-20200429' into 'develop'
Update AdminFE build in preparation for the 2.0.3 release

See merge request pleroma/pleroma!2442
2020-04-30 22:33:56 +00:00
lain da4b79a56d Merge branch 'tests/more-apc2s' into 'develop'
Increase tests on AP C2S

See merge request pleroma/pleroma!2449
2020-04-30 22:19:26 +00:00
Lain Soykaf 93f64aba78 Merge branch 'develop' of ssh://git.pleroma.social/pleroma/pleroma into feature/delete-validator 2020-04-30 22:44:31 +02:00
lain 32b8386ede DeleteValidator: Don't federate local deletions of remote objects.
Closes #1497
2020-04-30 21:23:18 +02:00
lain a81342a234 Merge branch 'dismiss-notification-on-follow-request-rejection' into 'develop'
Dismiss the follow request notification on rejection

See merge request pleroma/pleroma!2447
2020-04-30 18:38:52 +00:00
lain 999d639873 ActivityPub: Remove `delete` function.
This is handled by the common pipeline now.
2020-04-30 20:13:47 +02:00
lain 3b443cbc1d User: Use common pipeline to delete user activities 2020-04-30 20:08:25 +02:00
lain 5da08c2b73 SideEffects: Fix comment 2020-04-30 19:53:30 +02:00
lain 500f5ec14e SideEffects: On deletion, reduce the reply count cache 2020-04-30 19:47:13 +02:00
Haelwenn (lanodan) Monnier f1523f9acd
Increase tests on AP C2S
Related: https://git.pleroma.social/pleroma/pleroma/-/issues/954
2020-04-30 18:56:57 +02:00
lain 60db58a1c6 Credo fixes. 2020-04-30 18:38:37 +02:00
lain ab60ee1776 SideEffects: On deletion, reduce the User note count. 2020-04-30 18:19:39 +02:00
lain 3d0dc58e2e SideEffectsTest: Test streaming. 2020-04-30 18:10:36 +02:00
Haelwenn 55a3a3c3e5 Merge branch 'emoji-upload' into 'develop'
Updated emoji API endpoints

Closes #1649, #1604, and #1545

See merge request pleroma/pleroma!2179
2020-04-30 16:09:51 +00:00
lain 315b773dd9 ObjectValidator: Refactor. 2020-04-30 17:58:31 +02:00
lain c832d96fc9 SideEffects: Stream out deletes. 2020-04-30 17:58:09 +02:00
lain 4500fdc04c DeleteValidator: Add internal helper field after validation. 2020-04-30 17:53:02 +02:00
lain 143353432a StreamerTest: Separate deletion test. 2020-04-30 17:52:29 +02:00
eugenijm bef34568f0 Dismiss the follow request notification on rejection 2020-04-30 18:38:19 +03:00
Ivan Tashkinov 2c4844237f Refactoring of :if_func / :unless_func plug options (general availability). Added tests for Pleroma.Web.Plug. 2020-04-30 18:19:51 +03:00
Alexander Strizhakov 4a487e4d0b
fix for auth check 2020-04-30 17:50:57 +03:00
lain 14c6672193 AP C2S: Use common pipelin for deletes. 2020-04-30 16:49:41 +02:00
lain fdd8e7f276 CommonAPI: Use common pipeline for deletions. 2020-04-30 16:15:38 +02:00
lain c9bfa51ea9 Credo fixes. 2020-04-30 15:58:37 +02:00
lain 417eed4a2b SideEffects: Handle deletions. 2020-04-30 15:57:27 +02:00
lain 1fb383f368 DeleteValidator: Deleting a user is valid. 2020-04-30 15:42:30 +02:00
lain 4dc5302f45 Transmogrifier: Handle incoming deletes for non-user objects. 2020-04-30 15:26:23 +02:00
Alexander Strizhakov 631e8c1feb
docs update 2020-04-30 16:09:23 +03:00
Alexander Strizhakov 1fd40532ae
docs fix 2020-04-30 16:09:23 +03:00
Alexander Strizhakov 1c1b7e22af
list of options for pack metadata 2020-04-30 16:09:22 +03:00
Alexander Strizhakov 36abeedf9f
error rename 2020-04-30 16:09:22 +03:00
Alexander Strizhakov 9855018425
changelog entry 2020-04-30 16:09:22 +03:00
Alexander Strizhakov ddb757f743
emoji api packs changes in routes with docs update 2020-04-30 16:09:18 +03:00
Alexander Strizhakov f3070ddae5
removing entry from changelog 2020-04-30 15:45:57 +03:00
Alexander Strizhakov 95759310ab
docs update 2020-04-30 15:45:56 +03:00
Alexander Strizhakov 342f55fb92
refactor emoji api with fixes 2020-04-30 15:45:52 +03:00
lain db184a8eb4 DeleteValidator: Mastodon sends unaddressed deletes. 2020-04-30 14:37:14 +02:00
Alexander Strizhakov 5839e67eb8
return data only for updated emoji 2020-04-30 15:24:02 +03:00
lain bd219ba7e8 Transmogrifier Tests: Extract deletion tests. 2020-04-30 14:14:00 +02:00
lain 42ce7c5164 ObjectValidator: Add actor fetcher. 2020-04-30 14:13:08 +02:00
lain 64bb72f98a Typo fix. 2020-04-30 13:57:47 +02:00
lain ad2182bbd2 Apply suggestion to lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex 2020-04-30 11:38:26 +00:00
lain 4c4344b7b1 Merge branch '1364-no-pushes-from-blocked-domains-users' into 'develop'
[#1364] [FIX] Disabled notifications on activities from blocked domains (unless actors are followed)

See merge request pleroma/pleroma!2367
2020-04-30 10:29:46 +00:00
Egor Kislitsyn 9c1adb35de
Merge branch 'develop' into openapi/notifications 2020-04-30 13:52:07 +04:00
Egor Kislitsyn 1898054da4
Merge branch 'develop' into openapi/reports 2020-04-30 13:51:27 +04:00
rinpatch dae9163060 Merge branch 'fix/add-exclude-replies-openapi' into 'develop'
Add exlude_replies to OpenAPI spec for account timelines

See merge request pleroma/pleroma!2443
2020-04-29 22:01:17 +00:00
rinpatch 8cf3a32463 Add exlude_replies to OpenAPI spec for account timelines 2020-04-30 00:49:59 +03:00
Mark Felder 3ead44a9aa Update AdminFE build in preparation for the 2.0.3 release 2020-04-29 15:49:48 -05:00
lain b68d56c816 Apply suggestion to lib/pleroma/web/api_spec/schemas/chat_message_response.ex 2020-04-29 19:49:13 +00:00
lain 145d35ff70 Apply suggestion to lib/pleroma/web/pleroma_api/controllers/chat_controller.ex 2020-04-29 19:49:03 +00:00
lain 589ce1e96b Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex 2020-04-29 19:47:16 +00:00
lain 89a6c34081 Apply suggestion to lib/pleroma/chat.ex 2020-04-29 18:14:34 +00:00
lain 528ea779a6 Apply suggestion to docs/API/chats.md 2020-04-29 17:56:24 +00:00
Egor Kislitsyn 39a78998d0
Change Pleroma.CaptchaTest to be a regular module instead of GenServer 2020-04-29 21:26:07 +04:00
Egor Kislitsyn 7b0c8f0fde
Add tests for account registration with captcha enabled and improve errors 2020-04-29 21:26:07 +04:00
Egor Kislitsyn 2f77842bd3
Fix account registration when captcha is enabled but not provided 2020-04-29 21:26:07 +04:00
Egor Kislitsyn 8148d76ec5
Document `captcha_answer_data` parameter 2020-04-29 21:26:07 +04:00
lain 503de4b8df ObjectValidator: Add validation for `Delete`s. 2020-04-29 19:09:51 +02:00
lain 78c864cbee LikeValidator: Use Recipients Type. 2020-04-29 19:08:36 +02:00
lain b8056e69e0 Object Validator Types: Add Recipients. 2020-04-29 19:08:08 +02:00
lain 20587aa931 Chat message creation: Check actor. 2020-04-29 14:53:53 +02:00
lain a88734a0a2 Transmogrifier: Fetch missing actors for chatmessages. 2020-04-29 14:25:33 +02:00
lain 53e3063bd0 Transmogrifier: Remove ChatMessageHandling module. 2020-04-29 13:52:23 +02:00
lain e055b8d203 Pipeline: Always run common_pipeline in a transaction for now. 2020-04-29 13:45:50 +02:00
lain 67659afe48 ChatOperation: Refactor. 2020-04-29 13:34:43 +02:00
lain 0c491b904d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-29 13:19:04 +02:00
lain 58fded9858 Merge branch 'automatic-authentication-and-instance-publicity-checks' into 'develop'
Automatic checks of authentication / authorization / instance publicity

See merge request pleroma/pleroma!2409
2020-04-29 11:09:30 +00:00
Maksim Pechnikov 7bd187bc5e added test 2020-04-29 08:13:10 +03:00
Egor Kislitsyn 5238ae3dd3
Add OpenAPI spec for NotificationController 2020-04-28 21:27:54 +04:00
Ivan Tashkinov 4c0e53367a [#2349] Post-merge fix. 2020-04-28 20:04:25 +03:00
Ivan Tashkinov 908cf22a6c Merge remote-tracking branch 'remotes/origin/develop' into automatic-authentication-and-instance-publicity-checks
# Conflicts:
#	lib/pleroma/web/mastodon_api/controllers/account_controller.ex
2020-04-28 19:56:20 +03:00
lain 30ea6bb167 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-28 17:48:05 +02:00
lain 699fc9569f Merge branch 'docs/notification_destroy_multiple' into 'develop'
Document DELETE /api/v1/notifications/destroy_multiple

Closes #1711

See merge request pleroma/pleroma!2435
2020-04-28 15:40:18 +00:00
lain dedffd100c Pipeline: Unify, refactor, DRY. 2020-04-28 17:29:54 +02:00
Mark Felder 4b3298133b Document DELETE /api/v1/notifications/destroy_multiple 2020-04-28 10:13:58 -05:00
lain abd0928229 CreateChatMessageValidator: Validate object existence 2020-04-28 16:45:28 +02:00
lain 6aa116eca7 Create activity handling: Flip it and reverse it
Both objects and create activities will now go through the common
pipeline and will be validated. Objects are now created as a side
effect of the Create activity, rolling back a transaction if it's
not possible to insert the object.
2020-04-28 16:26:19 +02:00
Egor Kislitsyn 560f2c1979
Add OpenAPI spec for ReportController 2020-04-28 16:50:37 +04:00
lain b5dc59c8fa Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-28 14:16:21 +02:00
rinpatch 12bb7fc0dc Merge branch 'openapi/account' into 'develop'
Add OpenAPI specs for AccountController

See merge request pleroma/pleroma!2374
2020-04-28 11:57:16 +00:00
lain f8e56d4271 SideEffects: Use Object.normalize to get the object. 2020-04-28 13:43:58 +02:00
lain 906cf53ab9 Recipient Type: Cast all elements as ObjectIDs. 2020-04-28 13:38:02 +02:00
Egor Kislitsyn 764b4f95a8
Merge branch 'develop' into global-status-expiration 2020-04-28 14:13:53 +04:00
lain 9994768312 Merge branch 'mongoose-secure' into 'develop'
mongoose auth endpoint worked for deactivated accounts

See merge request pleroma/pleroma!2432
2020-04-28 09:18:59 +00:00
Maksim Pechnikov ea5142b94b convert markdown content to html 2020-04-28 09:32:43 +03:00
Maksim Pechnikov 270c3fe446 fix markdown format 2020-04-28 06:45:59 +03:00
fence 5ff20793e7 formating 2020-04-28 01:29:31 +02:00
Egor Kislitsyn dda65f7799
Move single used schemas to operation schema 2020-04-27 22:55:05 +04:00
fence d607b4d840 mongooseim test: explicitly set password for the deactivated used 2020-04-27 19:32:58 +02:00
fence 935ca2c132 requested changes to mongoose test 2020-04-27 19:16:05 +02:00
fence cc1e2e8d0f requested changes to mongoose_im_controller.ex 2020-04-27 19:11:03 +02:00
Egor Kislitsyn 2efc00b3cf
Use `json_response_and_validate_schema/2` in tests to validate OpenAPI schema 2020-04-27 20:46:52 +04:00
fence 5c7cc10917 add tests for deactivated users for mongoose auth 2020-04-27 18:31:00 +02:00
fence a626cb682c secure mongoose auth endpoint 2020-04-27 17:55:33 +02:00
lain 3d040b1a87 Credo fixes. 2020-04-27 17:55:29 +02:00
lain b550ef5611 Docs: Align chat api changes with docs. 2020-04-27 17:52:16 +02:00
lain ad82a216ff Chat API: Align more to Pleroma/Mastodon API. 2020-04-27 17:48:34 +02:00
lain 49e673dfea ChatView: Add actor_account_id 2020-04-27 16:08:03 +02:00
lain 5a3a5abc0c Changelog: Add info about `/api/v1/instance` changes 2020-04-27 14:35:12 +02:00
lain 4cadaf7e96 Docs: Add `/api/v1/instance` information 2020-04-27 14:33:21 +02:00
lain 3635a9c9c2 InstanceController: Add extensions to `/api/v1/instance` 2020-04-27 14:28:08 +02:00
lain 00e956528b Credo fixes. 2020-04-27 14:02:11 +02:00
lain e62f8542a1 Docs: Add chat motivation and api description. 2020-04-27 13:48:09 +02:00
lain 15ba3700af Chat Schemas: Inline unimportant Schemas. 2020-04-27 12:45:59 +02:00
Egor Kislitsyn f1ca917bb0
Merge branch 'develop' into openapi/account 2020-04-27 14:33:00 +04:00
lain d2bbea1a80 ChatControllerTest: Use new schema testing functions. 2020-04-27 12:19:27 +02:00
lain c86143ed73 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-27 12:07:08 +02:00
Alexander Strizhakov 66acfa6882
descriptions that module names are shortened 2020-04-27 10:28:05 +03:00
rinpatch 01cc93b687 Merge branch 'img-src-blob' into 'develop'
Let blob: pass CSP

See merge request pleroma/pleroma!2427
2020-04-26 11:39:17 +00:00
Alex Gleason 1bd9749a8f
Let blob: pass CSP 2020-04-26 00:29:42 -05:00
lain dbc4791d9d Merge branch '1706-dm-timeline-failure-fix' into 'develop'
[#1706] Prevented error on unresolved activity actors for timeline actions

Closes #1706

See merge request pleroma/pleroma!2425
2020-04-25 19:24:22 +00:00
Ivan Tashkinov e16437ff19 [#1706] Formatting fix. 2020-04-25 18:42:08 +03:00
Ivan Tashkinov 0d05e1fe39 [#1706] Prevented error on unresolved activity actors for timeline actions. 2020-04-25 18:24:10 +03:00
Ivan Tashkinov b4139cc547 [#2409] Made `GET /api/v1/accounts/:id/favourites` auth-optional, adjusted tests. 2020-04-24 22:25:27 +03:00
rinpatch 8addbd948c Merge branch 'bugfix/announce-race-condition' into 'develop'
Announcements: Prevent race condition.

See merge request pleroma/pleroma!2423
2020-04-24 16:58:24 +00:00
lain c30b3b2dc5 Merge branch 'reply-filtering-refactor' into 'develop'
Reply filtering refactor

See merge request pleroma/pleroma!2424
2020-04-24 16:32:13 +00:00
lain d89cd0a197 Reply Filtering: Refactor. 2020-04-24 18:25:26 +02:00
lain d862c7156a Merge branch 'openapi-improvements' into 'develop'
Support validation for inline OpenAPI schema and automatic tests for examples

Closes #1696

See merge request pleroma/pleroma!2421
2020-04-24 16:10:43 +00:00
Egor Kislitsyn c56c0a3d23
Merge branch 'develop' into global-status-expiration 2020-04-24 18:37:58 +04:00
Ivan Tashkinov 00e62161f6 [#2409] Tested all auth setup configs in AuthTestControllerTest. Adjusted :skip_plug definitions for some endpoints. 2020-04-24 16:52:38 +03:00
lain e2f3030c86
Apply suggestion to CHANGELOG.md 2020-04-24 15:43:54 +03:00
lain 8480f84615
Update differences_in_mastoapi_responses.md 2020-04-24 15:43:54 +03:00
Alexander Strizhakov 375ab05234
bench sync 2020-04-24 15:43:54 +03:00
Alexander Strizhakov 1a75ef63b2
updating benchmarks 2020-04-24 15:43:54 +03:00
Alexander be34672d67
formatting 2020-04-24 15:43:54 +03:00
Alexander 6e625a427c
reply filtering 2020-04-24 15:43:49 +03:00
lain cb12585098 Announcements: Prevent race condition. 2020-04-24 14:37:53 +02:00
lain 2430b9bf90 Merge branch 'feature/remove-unused-like-code' into 'develop'
ActivitPub: Remove `like` function.

See merge request pleroma/pleroma!2422
2020-04-24 12:09:15 +00:00
lain 1df6af2a4c Credo fixes. 2020-04-24 13:59:48 +02:00
lain bbf8554c97 ActivitPub: Remove `like` function.
We don't need another way to build likes.
2020-04-24 13:48:13 +02:00
Egor Kislitsyn f362836742
Support validation for inline OpenAPI schema and automatic tests for examples 2020-04-24 15:16:15 +04:00
Haelwenn (lanodan) Monnier 053c461530
mix.exs: proper check on 0, remove else in git_pre_release 2020-04-24 00:45:12 +02:00
Haelwenn (lanodan) Monnier c63d6ba0b2
mix.exs: branch_name fallbacks to "" 2020-04-23 23:44:30 +02:00
Haelwenn (lanodan) Monnier b429a49504
mix.exs: Fix for MacOS 2020-04-23 23:44:03 +02:00
Ivan Tashkinov 89f38d94c7 [#2409] Fixed before-action callback results persistence. 2020-04-23 21:47:33 +03:00
lain a51cdafc01 Docs: Add documentation about chatmessages 2020-04-23 16:55:50 +02:00
lain 1e28d34592 ChatMessage: Correctly ingest emoji tags. 2020-04-23 16:19:49 +02:00
lain ec7335535d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-23 15:47:08 +02:00
rinpatch 1b5f8d19ee Merge branch 'bugfix/repeating-announce' into 'develop'
CommonAPI: Don't make repeating announces possible

See merge request pleroma/pleroma!2418
2020-04-23 12:40:38 +00:00
lain 7d38197894 CommonAPI: Don't make repeating announces possible 2020-04-23 13:33:30 +02:00
rinpatch 25eec6d72d Merge branch 'bugfix/null-scheduled-at' into 'develop'
StatusController: Ignore nil scheduled_at parameters.

Closes #1699

See merge request pleroma/pleroma!2412
2020-04-23 11:22:30 +00:00
Egor Kislitsyn 9cf4c4fa73
Remove vapidPublicKey from Nodeinfo 2020-04-23 14:12:42 +04:00
lain 850377a7b8 Merge branch 'bugfix/1629-fav-race-condition' into 'develop'
SideEffects: Run in transaction.

Closes #1629

See merge request pleroma/pleroma!2417
2020-04-22 19:26:32 +00:00
lain 1bcbdc7a9f SideEffects: Use less cryptic syntax. 2020-04-22 21:21:21 +02:00
Haelwenn af27e4dffd Merge branch 'bugfix/1670-user-count' into 'develop'
Stats: Ignore internal users for user count.

Closes #1670

See merge request pleroma/pleroma!2414
2020-04-22 17:37:09 +00:00
lain f5bda09de6 Stats: Use `invisible` property for filtering. 2020-04-22 19:02:22 +02:00
Ivan Tashkinov e7fb593d13 Merge remote-tracking branch 'remotes/origin/develop' into 1364-no-pushes-from-blocked-domains-users
# Conflicts:
#	CHANGELOG.md
2020-04-22 20:00:51 +03:00
lain e62173dfc8 SideEffects: Run in transaction.
This fixes race conditions.
2020-04-22 18:40:53 +02:00
Egor Kislitsyn 1b06a27746
Update Flake ID description 2020-04-22 20:20:19 +04:00
Egor Kislitsyn 6c26feed01
Merge branch 'develop' into openapi/account 2020-04-22 20:18:12 +04:00
Ivan Tashkinov 0062116e07 Merge remote-tracking branch 'remotes/origin/develop' into automatic-authentication-and-instance-publicity-checks
# Conflicts:
#	lib/pleroma/web/mastodon_api/controllers/account_controller.ex
2020-04-22 18:51:59 +03:00
Ivan Tashkinov 2958a7d246 Fixed OAuth restrictions for :api routes. Made auth info dropped for :api routes if OAuth check was neither performed nor explicitly skipped. 2020-04-22 18:50:25 +03:00
Haelwenn 28f8fcf8b0 Merge branch 'fix/follow-and-blocks-import' into 'develop'
Fix follower/blocks import when nicknames starts with @

Closes #1698

See merge request pleroma/pleroma!2416
2020-04-22 15:46:04 +00:00
Haelwenn 468cc977be Merge branch 'bugfix/following-fix-status-code' into 'develop'
AccountController: Use code 400 for self-follow.

Closes #1674

See merge request pleroma/pleroma!2413
2020-04-22 15:33:04 +00:00
Haelwenn 238058ecae Merge branch 'bugfix/1543-streaming-boosts' into 'develop'
Streamer: Stream boosts to the boosting user.

Closes #1543

See merge request pleroma/pleroma!2415
2020-04-22 15:31:51 +00:00
Ivan Tashkinov b03aeae8b9 Apply suggestion to lib/pleroma/notification.ex 2020-04-22 15:31:41 +00:00
Egor Kislitsyn 771c1ad735
Update CHANGELOG 2020-04-22 19:31:03 +04:00
Egor Kislitsyn 6db52c3b36 Fix Oban warning
Warning example:

     [warn] Expected Elixir.Pleroma.Workers.BackgroundWorker.perform/2 to return :ok, {:ok, value}, or {:error, reason}. Instead received:  [error: "not found @user@server.party", error: "not found "]  The job will be considered a success.
2020-04-22 19:27:28 +04:00
Egor Kislitsyn e7771424a8 Fix blocks import 2020-04-22 19:27:28 +04:00
Egor Kislitsyn 88b82e5c3e Fix follow import 2020-04-22 19:27:28 +04:00
lain 7a3a88a13e Streamer: Stream boosts to the boosting user. 2020-04-22 17:21:13 +02:00
Haelwenn 1855c597c2 Merge branch 'feature/voters-count' into 'develop'
Polls: Persist and show voters' count

Closes #1702

See merge request pleroma/pleroma!2411
2020-04-22 15:12:19 +00:00
Haelwenn 2e73c19edc Merge branch 'worker-messages' into 'develop'
Worker messages

Closes #1705

See merge request pleroma/pleroma!2410
2020-04-22 15:09:10 +00:00
lain 1cd38dfffa Merge branch 'microformats' into 'develop'
static_fe: Add microformats2 classes

See merge request pleroma/pleroma!2215
2020-04-22 14:10:55 +00:00
Karol Kosek 452072ec95
static_fe: Add microformats2 classes 2020-04-22 16:02:40 +02:00
lain 8b88e2a6e2 Stats: Ignore internal users for user count. 2020-04-22 15:31:37 +02:00
lain 5b39526198 AccountController: Use code 400 for self-follow. 2020-04-22 15:04:26 +02:00
lain 69ecc39038 Merge branch 'fix/1689-fix-migrate-to-db' into 'develop'
Fix migrate to db config

Closes #1689

See merge request pleroma/pleroma!2394
2020-04-22 12:41:31 +00:00
lain c10485db16 StatusController: Ignore nil scheduled_at parameters. 2020-04-22 14:26:19 +02:00
lain c466e739b6 Merge branch 'docs/debian-packages' into 'develop'
debian_based_*.md: Use erlang-nox metapackage

See merge request pleroma/pleroma!2268
2020-04-22 12:10:27 +00:00
lain 568f48435e Apply suggestion to docs/installation/debian_based_en.md 2020-04-22 12:10:20 +00:00
lain 5102468d0f Polls: Persist and show voters' count 2020-04-22 14:06:39 +02:00
lain 923513b641 Federator: Return proper values for jobs 2020-04-22 13:28:52 +02:00
lain f719a5b23a WebPush: Return proper values for jobs. 2020-04-22 13:28:34 +02:00
lain 1d6338f2d3 Litepub: Add ChatMessage. 2020-04-22 12:52:39 +02:00
lain 2e62a63749 ChatMessageValidator: Validation changes
Don't validate if the recipient is blocking the actor.
2020-04-22 12:48:52 +02:00
Egor Kislitsyn 11433cd38d
Add OpenAPI schema for FlakeID 2020-04-21 23:54:45 +04:00
Egor Kislitsyn f0238d010a
Improve OpenAPI schema
- Removes unneeded wrapping in examples
- Adds `:format` attributes
2020-04-21 23:30:24 +04:00
lain 6c8390fa4d ChatControllerTest: Credo fixes. 2020-04-21 18:32:30 +02:00
lain 66c2eb670b ChatController: Validate parameters. 2020-04-21 18:23:00 +02:00
lain 97ad0c4597 Chats: Add API specs. 2020-04-21 17:51:06 +02:00
Ivan Tashkinov f685cbd309 Automatic checks of authentication / instance publicity. Definition of missing OAuth scopes in AdminAPIController. Refactoring. 2020-04-21 16:29:19 +03:00
lain a185b5455f Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-21 14:24:27 +02:00
lain 3c828016d9 Merge branch 'openapi/custom-emojis' into 'develop'
Add OpenAPI spec for CustomEmojiController

See merge request pleroma/pleroma!2375
2020-04-21 10:13:50 +00:00
lain 5165287ff4 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-21 12:00:33 +02:00
Ivan Tashkinov bb5d0eafa4 Merge remote-tracking branch 'remotes/origin/develop' into 1364-no-pushes-from-blocked-domains-users
# Conflicts:
#	CHANGELOG.md
2020-04-21 08:20:50 +03:00
rinpatch e57c1b60e4 Merge branch 'accept-deletes' into 'develop'
Always accept deletions through SimplePolicy, add :reject_deletes group

See merge request pleroma/pleroma!2371
2020-04-20 18:30:01 +00:00
rinpatch 7e456ac7f6 Merge branch 'router-cleanup' into 'develop'
Cleanup and DRY the Router

See merge request pleroma/pleroma!2406
2020-04-20 18:29:03 +00:00
Egor Kislitsyn 364eecc49f
Merge branch 'develop' into global-status-expiration 2020-04-20 20:37:56 +04:00
Alex Gleason bedc558809
Merge remote-tracking branch 'upstream/develop' into accept-deletes 2020-04-20 10:15:40 -05:00
Alex Gleason b54c8813d6
Add :reject_deletes option to SimplePolicy 2020-04-20 10:11:06 -05:00
Egor Kislitsyn ed3974af24 Add OpenAPI spec for `AccountController.identity_proofs` operation 2020-04-20 18:40:02 +04:00
Egor Kislitsyn 736fead494 Merge branch 'develop' into openapi/account 2020-04-20 18:40:02 +04:00
lain 28165dad3a Merge branch 'cleanup-subscription-controller' into 'develop'
Cleanup SubscriptionController

See merge request pleroma/pleroma!2393
2020-04-20 13:01:17 +00:00
lain baeb9fb451 Merge branch 'fix-object_age_policy' into 'develop'
Fix ObjectAgePolicy

See merge request pleroma/pleroma!2404
2020-04-20 12:59:16 +00:00
Ilja 8b4de61d64 Fix ObjectAgePolicyTest
The policy didn't block old posts as it should.
* I fixed it and tested on a test server
* I added the settings to description so that this information is shown in nodeinfo
* TODO: I didn't work TTD and still need to fix the tests
2020-04-20 12:59:16 +00:00
lain 617a9f6208 Merge branch 'mrf-docs-update' into 'develop'
Expand MRF SimplePolicy docs

See merge request pleroma/pleroma!2370
2020-04-20 12:57:45 +00:00
Egor Kislitsyn 258d897579 Cleanup and DRY the Router 2020-04-20 16:39:20 +04:00
lain b5df4a98e4 ChatMessageView: Support emoji. 2020-04-20 14:38:53 +02:00
lain 7e53da250e ChatMessage: Support emoji. 2020-04-20 14:08:54 +02:00
lain b836d3d104 ChatMessageValidator: Require `published` field 2020-04-20 13:14:59 +02:00
lain 139b9d1338 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-20 12:37:17 +02:00
lain 970b74383b Credo fixes. 2020-04-20 12:29:19 +02:00
lain 5b6818b3e5 CommonAPI: Obey local limit for chat messages. 2020-04-20 12:08:47 +02:00
lain ce23673ca1 ChatMessageValidator: Don't validate messages that are too long. 2020-04-20 11:45:11 +02:00
rinpatch 918a8094fc Merge branch '1559-follow-request-notifications' into 'develop'
[#1559] Support for "follow_request" notifications

Closes #1559

See merge request pleroma/pleroma!2354
2020-04-19 21:45:20 +00:00
rinpatch 389fb36fb5 Merge branch 'bugfix/mix.exs-version-dot-git-less' into 'develop'
mix.exs: Do not bail out when .git doesn’t exists

See merge request pleroma/pleroma!2405
2020-04-19 21:44:25 +00:00
Haelwenn (lanodan) Monnier c906ffc51a
mix.exs: Do not bail out when .git doesn’t exists 2020-04-19 20:24:32 +02:00
Haelwenn 79445ae5d2 Merge branch 'bugfix/1697-user_emoji_miration' into 'develop'
migrations/20200406100225_users_add_emoji: Fix tag to Emoji filtering, electric bongaloo

Closes #1697

See merge request pleroma/pleroma!2403
2020-04-18 06:59:23 +00:00
Haelwenn d698ecef9b Apply suggestion to priv/repo/migrations/20200406100225_users_add_emoji.exs 2020-04-17 22:48:40 +00:00
Haelwenn 24f760c2f7 Apply suggestion to lib/pleroma/web/activity_pub/activity_pub.ex 2020-04-17 22:48:37 +00:00
Haelwenn (lanodan) Monnier eb61564005
migrations/20200406100225_users_add_emoji: Fix tag to Emoji filtering, electric bongaloo 2020-04-17 23:57:22 +02:00
rinpatch f1843db41d Merge branch '1682-basic-auth-permissions-fix' into 'develop'
[#1682] Fixed Basic Auth permissions issue

Closes #1682

See merge request pleroma/pleroma!2401
2020-04-17 20:47:43 +00:00
Haelwenn e303d80dcb Merge branch 'update/pleroma-fe-20200417' into 'develop'
pleroma-fe bundle: update to ac9985aedbc2ed53121eec06a95013186c4eefd4

See merge request pleroma/pleroma!2402
2020-04-17 19:21:34 +00:00
Mark Felder 24e0db6310 pleroma-fe bundle: update to ac9985aedbc2ed53121eec06a95013186c4eefd4 2020-04-17 13:22:25 -05:00
Ivan Tashkinov 66f55106bd [#1682] Fixed Basic Auth permissions issue by disabling OAuth scopes checks when password is provided. Refactored plugs skipping functionality. 2020-04-17 21:21:10 +03:00
Egor Kislitsyn 163341857a
Improve OpenAPI errors 2020-04-17 19:27:22 +04:00
lain c845820911 Notifications: Create a chat notification. 2020-04-17 16:55:01 +02:00
rinpatch e0d7847bc5 Merge branch 'sideeffects-test' into 'develop'
SideEffects: Test for notification creation.

See merge request pleroma/pleroma!2399
2020-04-17 14:03:04 +00:00
lain 8c2c325598 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-17 15:51:24 +02:00
lain 26d9c83316 SideEffects: Test for notification creation. 2020-04-17 15:50:15 +02:00
rinpatch 6936854878 Merge branch 'bugfix/1695-user_emoji_miration' into 'develop'
migrations/20200406100225_users_add_emoji: Fix tag to Emoji filtering

Closes #1695

See merge request pleroma/pleroma!2398
2020-04-17 13:40:25 +00:00
lain 372614cfd3 ChatView: Add a mastodon api representation of the recipient. 2020-04-17 15:37:54 +02:00
Ivan Tashkinov 6e6f95c6ae Merge remote-tracking branch 'remotes/origin/develop' into 1559-follow-request-notifications
# Conflicts:
#	CHANGELOG.md
2020-04-17 16:23:58 +03:00
Haelwenn (lanodan) Monnier 46f051048f
migrations/20200406100225_users_add_emoji: Fix tag to Emoji filtering 2020-04-17 14:32:15 +02:00
lain d45ae64858 ChatController: Use OAuth scopes. 2020-04-17 13:04:46 +02:00
Alexander Strizhakov 6cda360fea
don't restart postgrex 2020-04-17 12:45:13 +03:00
Haelwenn 09bd1d12c1 Merge branch 'sync-changelog' into 'develop'
Move changelog entries to unreleased section

See merge request pleroma/pleroma!2397
2020-04-17 09:39:29 +00:00
Alexander Strizhakov 4d22b100b7
move changelogs entries to unreleased section 2020-04-17 12:33:11 +03:00
Haelwenn a17bfb5fab Merge branch 'feature/1584-client-captcha-options' into 'develop'
Creating trusted app from adminFE & mix task

Closes #1584

See merge request pleroma/pleroma!2252
2020-04-17 09:19:35 +00:00
Haelwenn d8142ee6fe Merge branch 'fix/1694-transfer-task-fix' into 'develop'
Fix for logger configuration

Closes #1694

See merge request pleroma/pleroma!2396
2020-04-17 09:02:10 +00:00
Haelwenn 9c76d70a47 Merge branch 'feature/1677-need_reboot-flag-endpoint' into 'develop'
Added need_reboot endpoint to admin api

Closes #1677

See merge request pleroma/pleroma!2373
2020-04-17 08:55:46 +00:00
Alexander Strizhakov 304ea09f4c
fix for logger configuration 2020-04-17 08:42:48 +03:00
rinpatch badd888ccb Merge branch 'authenticated-api-oauth-check-enforcement' into 'develop'
Enforcement of OAuth scopes check for authenticated API endpoints

See merge request pleroma/pleroma!2349
2020-04-16 21:58:57 +00:00
rinpatch 28bcde5d98 Merge branch 'fix/1691-feed-render' into 'develop'
Fix for use of `published` field from different entities

Closes #1691

See merge request pleroma/pleroma!2395
2020-04-16 18:38:58 +00:00
rinpatch 0ddee13c83 Merge branch 'features/remove-user-source_data' into 'develop'
User: remove source_data

Closes #820

See merge request pleroma/pleroma!2339
2020-04-16 18:37:56 +00:00
rinpatch 942d7467ca Merge branch 'develop' into features/remove-user-source_data 2020-04-16 21:28:52 +03:00
lain f8c3ae7a62 ChatController: Handle pagination. 2020-04-16 18:43:31 +02:00
lain e983f70884 ChatMessagesHandling: Strip HTML of incoming messages. 2020-04-16 17:50:24 +02:00
Alexander Strizhakov 4d330d9df1
fix for use of published from different entities 2020-04-16 18:05:36 +03:00
rinpatch 252528a4b9 Merge branch 'refactor/remove-upgrade-changeset' into 'develop'
Remove User.upgrade_changeset in favor of remote_user_creation

See merge request pleroma/pleroma!2368
2020-04-16 14:59:11 +00:00
rinpatch 77ee64b993 user: remove blank? 2020-04-16 17:54:57 +03:00
lain 41fdcb7282 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-16 15:28:08 +02:00
lain ca598e9c27 AccountView: Return user ap_id. 2020-04-16 15:27:35 +02:00
lain e2ced04917 ChatMessages: Better validation. 2020-04-16 15:21:47 +02:00
Alexander Strizhakov 72ef6cc4f2
added need_reboot endpoint to admin api 2020-04-16 16:03:26 +03:00
lain 3d4eca5dd4 CommonAPI: Escape HTML for chat messages. 2020-04-16 12:56:29 +02:00
lain 2b57f73b77 Merge branch 'small-fix-rewrite_policy' into 'develop'
small fix in the rewrite_policy example

See merge request pleroma/pleroma!2391
2020-04-16 09:38:24 +00:00
Egor Kislitsyn cf4ebba774
Cleanup SubscriptionController 2020-04-15 23:14:47 +04:00
Maksim Pechnikov 4b3b1fec4e added an endpoint for getting unread notification count 2020-04-15 21:19:43 +03:00
Ivan Tashkinov bde1189c34 [#2349] Made :skip_plug/2 prevent plug from being executed even if explicitly called. Refactoring. Tests. 2020-04-15 21:19:16 +03:00
Ilja aa0a4a1e78 small fix in the rewrite_policy example 2020-04-15 19:03:27 +02:00
lain 6ace22b56a Chat: Add views, don't return them in timeline queries. 2020-04-15 18:23:16 +02:00
Ivan Tashkinov bedf92e064 Merge remote-tracking branch 'remotes/origin/develop' into authenticated-api-oauth-check-enforcement 2020-04-15 19:20:34 +03:00
Haelwenn b1c1d2e5e1 Merge branch 'fix/1659-rate-limiter' into 'develop'
remote_ip plug adds remote_ip_found flag

Closes #1659

See merge request pleroma/pleroma!2390
2020-04-15 15:26:55 +00:00
Egor Kislitsyn 65f04b7806
Fix credo warning 2020-04-15 17:16:32 +04:00
Egor Kislitsyn 16f4787bf7
Add a TODO note 2020-04-15 16:51:37 +04:00
Egor Kislitsyn 0e647ff55a
Abstract pagination params in OpenAPI spec 2020-04-15 16:45:45 +04:00
lain 44bfb491ea Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-15 14:41:43 +02:00
Alexander Strizhakov 22bde21c4f
remote_ip plug adds remote_ip_found flag 2020-04-15 15:27:34 +03:00
Egor Kislitsyn 8ed162b655 Fix formatting 2020-04-15 15:57:00 +04:00
minibikini 5a2e45a218 Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 11:29:10 +00:00
minibikini 81a4c15816 Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 10:48:52 +00:00
minibikini a45bd91d4e Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 10:48:32 +00:00
minibikini bfa26b0937 Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 10:30:19 +00:00
minibikini a794ba655f Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 10:27:01 +00:00
minibikini a7feca1604 Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 10:26:53 +00:00
minibikini d3e876aeee Apply suggestion to lib/pleroma/web/api_spec/operations/account_operation.ex 2020-04-15 10:26:44 +00:00
rinpatch ad8630b95a Merge branch 'uploads-csp-changes' into 'develop'
Uploads: Sandbox them in the CSP.

See merge request pleroma/pleroma!2389
2020-04-15 10:15:15 +00:00
lain 6bc76df287 Uploads: Sandbox them in the CSP. 2020-04-15 12:05:22 +02:00
rinpatch 96eae62995 Merge branch 'fix/openapi-form-mimetype' into 'develop'
openapi: add application/x-www-form-urlencoded to body types

Closes #1683

See merge request pleroma/pleroma!2387
2020-04-14 22:01:24 +00:00
rinpatch cc4ff19e34 openapi: add application/x-www-form-urlencoded to body types
Closes #1683
2020-04-15 00:49:21 +03:00
Ivan Tashkinov f7e623c11c [#1364] Resolved merge conflicts with `develop`. 2020-04-14 20:19:08 +03:00
Ivan Tashkinov 0cda80f266 Merge remote-tracking branch 'remotes/origin/develop' into 1364-no-pushes-from-blocked-domains-users
# Conflicts:
#	lib/pleroma/notification.ex
2020-04-14 20:10:02 +03:00
feld 6c3e09fbce Merge branch 'fix/richmedia-oban-error' into 'develop'
Attempt at fixing Oban not receiving :ok from RichMediaHelper job

Closes #1684

See merge request pleroma/pleroma!2377
2020-04-14 17:05:17 +00:00
Mark Felder 3bf78f2be7 Fix Oban not receiving :ok from RichMediaHelper job 2020-04-14 11:43:53 -05:00
lain c02e6ceea5 Merge branch 'revert-60cc7d6c' into 'develop'
Revert "Merge branch 'issue/1276' into 'develop'"

See merge request pleroma/pleroma!2384
2020-04-14 16:32:34 +00:00
lain 4576520461 Revert "Merge branch 'issue/1276' into 'develop'"
This reverts merge request !1877
2020-04-14 16:32:22 +00:00
lain 3677a1e578 Merge branch 'revert-13a7105b' into 'develop'
Revert "Merge branch 'marker-update-fix' into 'develop'"

See merge request pleroma/pleroma!2383
2020-04-14 16:31:41 +00:00
lain 7c060432fc Revert "Merge branch 'marker-update-fix' into 'develop'"
This reverts merge request !2380
2020-04-14 16:31:30 +00:00
Egor Kislitsyn 247e6fcb90
Merge branch 'develop' into openapi/account 2020-04-14 19:45:22 +04:00
feld bf3afbc1a1 Merge branch 'logger-configuration' into 'develop'
Fix for logger configuration through admin-fe

See merge request pleroma/pleroma!2365
2020-04-14 15:11:25 +00:00
lain 13a7105b21 Merge branch 'marker-update-fix' into 'develop'
Marker update migration: Don't try to update virtual field.

See merge request pleroma/pleroma!2380
2020-04-14 13:17:44 +00:00
lain 5fc6ce30ac Merge branch 'chore/spelling' into 'develop'
Fix spelling in log message

See merge request pleroma/pleroma!2378
2020-04-14 13:07:57 +00:00
lain d8b12ffd59 Marker update migration: Don't try to update virtual field. 2020-04-14 15:06:09 +02:00
lain 2eae5793cd Merge branch 'fix/issue_1679' into 'develop'
[#1679] fixed  logs

See merge request pleroma/pleroma!2379
2020-04-14 11:08:33 +00:00
Ivan Tashkinov 650853fc89 Merge remote-tracking branch 'remotes/origin/develop' into 1364-no-pushes-from-blocked-domains-users
# Conflicts:
#	lib/pleroma/notification.ex
2020-04-14 11:58:38 +03:00
Haelwenn 60cc7d6c9a Merge branch 'issue/1276' into 'develop'
[#1276] An endpoint for getting unread notification count

Closes #1276

See merge request pleroma/pleroma!1877
2020-04-14 06:38:56 +00:00
Maksim Pechnikov c4e7ed660c fix logger message 2020-04-14 08:43:47 +03:00
Mark Felder f3725b8fc4 Fix spelling 2020-04-13 17:04:43 -05:00
rinpatch e3db1c471e Merge branch 'openapi/domain-blocks' into 'develop'
Add OpenAPI spec for DomainBlockController

See merge request pleroma/pleroma!2376
2020-04-13 20:04:49 +00:00
Egor Kislitsyn 4dca712e90
Add OpenAPI spec for DomainBlockController 2020-04-13 22:44:52 +04:00
Maksim Pechnikov a16b3dbcbf Merge branch 'develop' into issue/1276 2020-04-13 21:19:27 +03:00
Egor Kislitsyn c28aaf9d82
Add OpenAPI spec for CustomEmojiController 2020-04-13 21:21:04 +04:00
Egor Kislitsyn 7e0b42d99f
Add specs for AccountController.mutes, AccountController.blocks, AccountController.mutes, AccountController.endorsements 2020-04-13 18:17:09 +04:00
Egor Kislitsyn ab185d3ea4
Add spec for AccountController.follows 2020-04-13 18:17:09 +04:00
Egor Kislitsyn 68a979b824
Add specs for AccountController.block and AccountController.unblock 2020-04-13 18:17:08 +04:00
Egor Kislitsyn e4195d4a68
Add specs for AccountController.mute and AccountController.unmute 2020-04-13 18:17:08 +04:00
Egor Kislitsyn aa958a6dda
Add spec for AccountController.unfollow 2020-04-13 18:17:08 +04:00
Egor Kislitsyn 854780c72b
Add spec for AccountController.follow 2020-04-13 18:17:08 +04:00
Egor Kislitsyn 1b680a98ae
Add spec for AccountController.lists 2020-04-13 18:17:07 +04:00
Egor Kislitsyn e105cc12b6
Add spec for AccountController.following 2020-04-13 18:17:07 +04:00
Egor Kislitsyn bd6e2b300f
Add spec for AccountController.followers 2020-04-13 18:17:07 +04:00
Egor Kislitsyn 03124c96cc
Add spec for AccountController.statuses 2020-04-13 18:17:07 +04:00
Egor Kislitsyn 278b3fa0ad
Add spec for AccountController.show 2020-04-13 18:16:07 +04:00
Egor Kislitsyn d7d6a83233
Add spec for AccountController.relationships 2020-04-13 18:16:07 +04:00
Egor Kislitsyn ab400b2ddb
Add specs for ActorType and VisibilityScope 2020-04-13 18:16:07 +04:00
Egor Kislitsyn 260cbddc94
Add spec for AccountController.update_credentials 2020-04-13 18:16:07 +04:00
Egor Kislitsyn f80116125f
Add spec for AccountController.verify_credentials 2020-04-13 17:38:59 +04:00
Egor Kislitsyn b08ded6c2f
Add spec for AccountController.create 2020-04-13 17:38:59 +04:00
rinpatch ef37774403 Merge branch 'output-of-relationships-in-statuses' into 'develop'
Ability to control the output of AccountView.pleroma.relationship in statuses / notifications

See merge request pleroma/pleroma!2342
2020-04-13 13:05:40 +00:00
Ivan Tashkinov 5c76afb06c [#2342] Removed description.exs entry for temporary configuration option. 2020-04-13 15:38:50 +03:00
Ivan Tashkinov 99b0bc1989 [#1364] Resolved merge conflicts with `develop`. Refactoring. 2020-04-13 13:24:31 +03:00
Egor Kislitsyn dc8fa04192
Merge branch 'develop' into global-status-expiration 2020-04-13 14:12:51 +04:00
Ivan Tashkinov f00ff20768 Merge remote-tracking branch 'remotes/origin/develop' into 1364-no-pushes-from-blocked-domains-users
# Conflicts:
#	lib/pleroma/following_relationship.ex
2020-04-13 09:23:50 +03:00
Ivan Tashkinov a21baf89d8 Merge remote-tracking branch 'remotes/origin/develop' into output-of-relationships-in-statuses 2020-04-13 09:16:51 +03:00
Ivan Tashkinov dc2637c188 [#2342] Removed changelog entry for temporary configuration option. 2020-04-13 09:16:35 +03:00
Alexander Strizhakov de34c4ee6b
changelog entry 2020-04-13 08:59:06 +03:00
Alexander Strizhakov a050f3e015
fix for logger configuration through admin-fe 2020-04-13 08:56:28 +03:00
Maksim Pechnikov c5c09fc61b fix mediaType of object 2020-04-13 07:02:57 +03:00
Alex Gleason 9a3c74b244
Always accept deletions through SimplePolicy 2020-04-12 20:26:35 -05:00
Alex Gleason ed894802d5
Expand MRF SimplePolicy docs 2020-04-12 18:46:47 -05:00
Ivan Tashkinov c556efb761 [#1364] Enabled notifications on followed domain-blocked users' activities. 2020-04-12 21:53:03 +03:00
rinpatch 7ee35eb9a6 Merge branch 'fix/mix-tasks-failing-otp' into 'develop'
Fix mix tasks failing on OTP releases

Closes #1678

See merge request pleroma/pleroma!2369
2020-04-12 16:00:15 +00:00
rinpatch 2ba754ffe1 Fix mix tasks failing on OTP releases
No idea why this was even added.
Closes #1678
2020-04-12 18:49:31 +03:00
rinpatch 5e365448f3 Merge branch 'following-relationships-optimizations' into 'develop'
FollowingRelationship storage & performance optimizations

See merge request pleroma/pleroma!2332
2020-04-11 19:46:04 +00:00
rinpatch c077ad0b33 Remove User.upgrade_changeset in favor of remote_user_creation
The two changesets had the same purpose, yet some changes were updated
in one, but not the other (`uri`, for example).

Also makes `Transmogrifier.upgrade_user_from_ap_id` be called from
`ActivityPub.make_user_from_ap_id` only when the user is actually
not AP enabled yet.

I did not bother rewriting tests that used `User.insert_or_update`
to use the changeset instead because they seemed to just test the implementation,
rather than behavior.
2020-04-11 22:31:46 +03:00
Ivan Tashkinov 88b16fdfb7 [#1364] Disabled notifications on activities from blocked domains. 2020-04-11 16:01:09 +03:00
rinpatch c682563b92 Merge branch 'support/update_oban' into 'develop'
[#1555] updated the Oban package

See merge request pleroma/pleroma!2346
2020-04-11 10:04:02 +00:00
Maksim Pechnikov ad92cef844 fix Oban migration 2020-04-10 21:27:50 +03:00
Maksim Pechnikov c255c2e4f5 Merge branch 'develop' into support/update_oban 2020-04-10 21:27:41 +03:00
feld aae22ab691 Merge branch 'chore/changelog-organization' into 'develop'
Add a section for changelog entries that pertain to the next patch release.

See merge request pleroma/pleroma!2366
2020-04-10 16:56:41 +00:00
Mark Felder 6ff8812ea3 Add a section for changelog entries that pertain to the next patch release.
This will make it easier to keep changelogs synced between develop and stable branches.
2020-04-10 11:37:02 -05:00
Egor Kislitsyn dd612f86ae
Merge remote-tracking branch 'origin/develop' into global-status-expiration 2020-04-10 20:00:05 +04:00
lain 64c78581fe Chat: Only create them for valid users for now. 2020-04-10 14:47:56 +02:00
Haelwenn fc4f92c5de Merge branch 'fix/support-conversations-pagination' into 'develop'
Support pagination in conversations

See merge request pleroma/pleroma!2329
2020-04-10 12:12:49 +00:00
Egor Kislitsyn 7f692343c8
Merge branch 'develop' into global-status-expiration 2020-04-10 14:20:48 +04:00
Egor Kislitsyn cf2a0574e7
Merge branch 'develop' into fix/support-conversations-pagination 2020-04-10 14:18:57 +04:00
Haelwenn ce089615e1 Merge branch 'chore/fix-changelog' into 'develop'
Chore/fix changelog

See merge request pleroma/pleroma!2364
2020-04-10 05:15:11 +00:00
Haelwenn 4d33e0bd50 Merge branch 'bugfix/apc2s_upload_activity' into 'develop'
bugfix: AP C2S activity with attachments

See merge request pleroma/pleroma!2316
2020-04-10 04:31:13 +00:00
Haelwenn (lanodan) Monnier e89078ac2a
User: remove source_data 2020-04-10 06:20:03 +02:00
Haelwenn (lanodan) Monnier 3420dec494
Remove User.fields/1 2020-04-10 06:20:02 +02:00
Haelwenn (lanodan) Monnier 9172d719cc
profile emojis in User.emoji instead of source_data 2020-04-10 06:20:02 +02:00
Haelwenn (lanodan) Monnier 62656ab259
User: Move inbox & shared_inbox to own fields 2020-04-10 06:20:02 +02:00
Haelwenn (lanodan) Monnier 369c03834c
formatter: Use user.uri instead of user.source_data.uri 2020-04-10 06:20:02 +02:00
Haelwenn (lanodan) Monnier b6bed1a284
Types.URI: New 2020-04-10 06:20:02 +02:00
Haelwenn (lanodan) Monnier 19eedb3d04
User: Move public_key from source_data to own field 2020-04-10 06:16:18 +02:00
Haelwenn (lanodan) Monnier 5628984df4
User: remove source_data use for follower_address and following_address 2020-04-10 06:16:18 +02:00
Maksim Pechnikov 648cc699e5 Merge branch 'develop' into support/update_oban 2020-04-10 07:09:28 +03:00
Haelwenn c433ed9dbb Merge branch 'fix-otp-version-file-in-docker' into 'develop'
Create OTP_VERSION file by `mix release`

See merge request pleroma/pleroma!2362
2020-04-10 03:55:54 +00:00
kPherox c2aad36aa8 Rename function 2020-04-09 23:19:41 +00:00
rinpatch 9abf13abe0 CHANGELOG.md: update 2.0.2 release date 2020-04-09 15:46:12 -05:00
rinpatch adeb82e496 CHANGELOG.md: add 2.0.2 update notes 2020-04-09 15:45:41 -05:00
rinpatch 0b8f9a66ae CHANGELOG.md: add entries for funkwhale-related changes 2020-04-09 15:45:35 -05:00
rinpatch 7306d2d069 CHANGELOG.md: Add 2.0.2 entry 2020-04-09 15:45:25 -05:00
rinpatch 2a08f44b02 CHANGELOG.md: Add upgrade notes for 2.0.1 2020-04-09 15:43:54 -05:00
rinpatch 781ac28859 changelog.md: add 2.0.1 entry 2020-04-09 15:42:01 -05:00
rinpatch fd388a0941 Merge branch 'update-changelog' into 'develop'
Update CHANGELOG

See merge request pleroma/pleroma!2363
2020-04-09 19:49:10 +00:00
Egor Kislitsyn c826d5195f
Update CHANGELOG 2020-04-09 23:36:17 +04:00
feld c23532d24b Merge branch 'notifications-dismiss-api' into 'develop'
Add `/api/v1/notifications/:id/dismiss` endpoint

Closes #1673

See merge request pleroma/pleroma!2360
2020-04-09 19:32:11 +00:00
kPherox 0e8f6d24b8
Create OTP_VERSION file by `mix release` 2020-04-10 00:22:50 +09:00
lain 2cc6841424 ChatController: Basic message posting. 2020-04-09 17:18:31 +02:00
lain e8fd0dd689 ChatController: Basic support for returning messages. 2020-04-09 16:59:49 +02:00
lain e84c0450bf Merge branch 'fix-otp-version-file-in-docker' into 'develop'
Add OTP_VERSION file to docker

Closes #1662

See merge request pleroma/pleroma!2361
2020-04-09 14:12:08 +00:00
lain 68abea313d ChatController: Add creation and return of chats. 2020-04-09 15:13:55 +02:00
Egor Kislitsyn d545b883eb
Add `/api/v1/notifications/:id/dismiss` endpoint 2020-04-09 17:08:43 +04:00
kPherox d37a102933
Fix OTP_VERSION file in docker 2020-04-09 21:16:29 +09:00
Ivan Tashkinov ac672a9d6b [#1559] Addressed code review requests. 2020-04-09 15:13:37 +03:00
lain d35e114acd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-09 13:25:27 +02:00
lain 8e637ae1a7 CommonAPI: Basic ChatMessage support. 2020-04-09 13:20:16 +02:00
lain 4b04785071 SideEffects: Extend ChatMessage test. 2020-04-09 12:46:33 +02:00
lain 2e78686686 SideEffects: Handle ChatMessage creation. 2020-04-09 12:44:20 +02:00
lain b87b798ca1 Merge branch 'fix/1658-invite-send' into 'develop'
Error improvement for email_invite endpoint

See merge request pleroma/pleroma!2344
2020-04-09 10:42:43 +00:00
Alexander Strizhakov f20a19de85
typo fix 2020-04-09 13:28:54 +03:00
Alexander Strizhakov 9795ff5b01 Apply suggestion to test/web/admin_api/admin_api_controller_test.exs 2020-04-09 10:17:50 +00:00
Alexander Strizhakov 365c34a7a9 Apply suggestion to test/web/admin_api/admin_api_controller_test.exs 2020-04-09 10:17:44 +00:00
Alexander Strizhakov 1cf0d5ab0d Apply suggestion to lib/pleroma/web/admin_api/admin_api_controller.ex 2020-04-09 10:17:36 +00:00
Alexander Strizhakov 4c60fdcbb1 Apply suggestion to lib/pleroma/web/admin_api/admin_api_controller.ex 2020-04-09 10:17:31 +00:00
Alexander Strizhakov c8bfbf511e Apply suggestion to docs/API/admin_api.md 2020-04-09 10:17:24 +00:00
lain d2e21fbc96 Merge branch 'open-api' into 'develop'
Add OpenAPI

Closes pleroma-meta#19

See merge request pleroma/pleroma!2345
2020-04-09 09:48:56 +00:00
lain 564f3f01ca Merge branch 'formatter-html-safe' into 'develop'
formatter.ex: Use Phoenix.HTML for mention/hashtag generation

See merge request pleroma/pleroma!2357
2020-04-09 09:47:07 +00:00
Haelwenn de592a6d33 Merge branch 'changelog-update' into 'develop'
No changelog entry - bug fixed only in develop

See merge request pleroma/pleroma!2359
2020-04-09 05:11:10 +00:00
Alexander Strizhakov 73134e248a
no changelog entry - bug fixed only in develop 2020-04-09 08:03:21 +03:00
Haelwenn 4cedecac45 Merge branch 'bugfix/objectid_validator' into 'develop'
ObjectValidators.Types.ObjectID: Fix when URI.parse returns %URL{host: ""}

See merge request pleroma/pleroma!2358
2020-04-09 02:43:03 +00:00
Haelwenn (lanodan) Monnier c401b00c78
ObjectValidators.Types.ObjectID: Fix when URI.parse returns %URL{host: ""} 2020-04-09 04:36:39 +02:00
rinpatch d067eaa7b3 formatter.ex: Use Phoenix.HTML for mention/hashtag generation
Unlike concatenating strings, this makes sure everything is escaped.
Tests had to be changed because Phoenix.HTML runs attributes through
Enum.sort before generation for whatever reason.
2020-04-08 22:58:31 +03:00
Ivan Tashkinov 3965772b26 [#1559] Minor change (analysis). 2020-04-08 21:33:37 +03:00
Ivan Tashkinov f35c28bf07 [#1559] Added / fixed tests for follow / follow_request notifications. 2020-04-08 21:26:22 +03:00
feld 90cbf55236 Merge branch 'gun-pool-fix' into 'develop'
Fix for gun connections pool

Closes #1669 and #1664

See merge request pleroma/pleroma!2356
2020-04-08 17:13:54 +00:00
Alexander Strizhakov 5739c498c0
fix for gun connections pool 2020-04-08 18:46:01 +03:00
lain 3775683a04 ChatMessage: Basic incoming handling. 2020-04-08 15:55:43 +02:00
Ivan Tashkinov 1a4875adfa [#1559] Support for "follow_request" notifications (configurable).
(Not currently supported by PleromaFE, thus disabled by default).
2020-04-07 21:52:32 +03:00
rinpatch dd4d10b275 Merge branch 'fix-auto-link-for-profile-fields' into 'develop'
Use Pleroma.Formatter.linkify/2 instead

See merge request pleroma/pleroma!2352
2020-04-07 11:41:10 +00:00
Maksim Pechnikov 2b7d7bbd2d Merge branch 'develop' into issue/1276 2020-04-07 14:09:43 +03:00
kPherox 06471940e0 Apply suggestion to test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs 2020-04-07 08:44:53 +00:00
lain 19335be24c Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms 2020-04-06 17:50:31 +02:00
Egor Kislitsyn 03eebabe8e
Add Pleroma.Web.ApiSpec.Helpers 2020-04-06 17:11:00 +04:00
lain 1d4ab06505 Merge branch 'featureflag/emoji_reactions' into 'develop'
Add emoji reactions to features in nodeinfo

See merge request pleroma/pleroma!2313
2020-04-06 12:51:35 +00:00
lain 96ee0aadbf Merge branch 'improving-test-coverage' into 'develop'
Tests for emoji mix task

See merge request pleroma/pleroma!2350
2020-04-06 12:49:17 +00:00
lain 349b9d86dc Merge branch 'remake-remodel-2' into 'develop'
Ingestion Pipeline Revamp

See merge request pleroma/pleroma!2315
2020-04-06 11:59:01 +00:00
lain 772bc258cd ObjectID Validator: Refactor. 2020-04-06 13:53:24 +02:00
lain e67cde0ed6 Transmogrifier: Refactoring / Renaming. 2020-04-06 13:46:34 +02:00
Alexander Strizhakov a43e055916
using another fn for file deletion 2020-04-06 14:27:20 +03:00
Alexander Strizhakov b59ac37b2c
tests for emoji mix task 2020-04-06 11:13:59 +03:00
Ivan Tashkinov fc81e5a49c Enforcement of OAuth scopes check for authenticated API endpoints, :skip_plug plug to mark a plug explicitly skipped (disabled). 2020-04-06 10:20:44 +03:00
feld 8444e7ee96 Merge branch 'fix/docs-markdown' into 'develop'
Fix formatting in documentation

See merge request pleroma/pleroma!2348
2020-04-02 19:36:55 +00:00
Egor Kislitsyn 8a0ffaa9ea
Fix formatting in documentation 2020-04-02 23:10:13 +04:00
feld 7879369e4d Merge branch '2323-accounts-relationships-hotfix' into 'develop'
[#2323] Fixed /accounts/relationships

Closes pleroma-fe#820

See merge request pleroma/pleroma!2347
2020-04-02 16:48:47 +00:00
Ivan Tashkinov 3fa51f7272 Merge remote-tracking branch 'remotes/origin/2323-accounts-relationships-hotfix' into output-of-relationships-in-statuses
# Conflicts:
#	lib/pleroma/web/mastodon_api/views/account_view.ex
#	lib/pleroma/web/mastodon_api/views/status_view.ex
2020-04-02 19:38:39 +03:00
Ivan Tashkinov aa78325117 [#2323] Fixed a typo causing /accounts/relationships to render default relationships. Improved the tests. 2020-04-02 19:23:30 +03:00
Egor Kislitsyn 0aa24a150b
Add oAuth 2020-04-02 17:33:23 +04:00
lain fd97b0e634 Chats: Basic implementation. 2020-04-02 15:19:09 +02:00
Maksim Pechnikov dbcfac11b4 Merge branch 'develop' into issue/1276 2020-04-02 14:47:17 +03:00
Maksim Pechnikov 591f7015d9 update Oban package 2020-04-02 09:34:11 +03:00
Egor Kislitsyn 23219e6fb3
Add OpenAPI 2020-04-01 23:13:08 +04:00
Alexander Strizhakov 2d64500a9d
error improvement for email_invite endpoint 2020-04-01 20:26:33 +03:00
feld fd932b14a7 Merge branch 'update/adminfe-20200331' into 'develop'
Update AdminFE build in preparation for Pleroma 2.0.2

See merge request pleroma/pleroma!2343
2020-04-01 17:12:59 +00:00
Ivan Tashkinov 98b96e45ab Merge remote-tracking branch 'remotes/origin/develop' into output-of-relationships-in-statuses
# Conflicts:
#	CHANGELOG.md
2020-04-01 20:08:14 +03:00
feld ef7d2b0f11 Merge branch 'gun' into 'develop'
Gun adapter

Closes #945

See merge request pleroma/pleroma!1861
2020-04-01 17:05:09 +00:00
Ivan Tashkinov 2f2bd7fe72 Ability to control the output of account/pleroma/relationship in statuses in order to improve the rendering performance.
See `[:extensions, output_relationships_in_statuses_by_default]` setting and `with_relationships` param.
2020-04-01 19:49:09 +03:00
lain 037b49c415 Validators: Correct ObjectID filename 2020-04-01 16:10:17 +02:00
rinpatch bfec45bf74 Merge branch 'fix/1601-add-new-meta-tag' into 'develop'
Restrict remote users from indexing

Closes #1601

See merge request pleroma/pleroma!2341
2020-04-01 12:55:52 +00:00
Alexander Strizhakov 94ddbe4098
restrict remote users from indexing 2020-04-01 09:57:12 +03:00
Haelwenn c9f51edea1 Merge branch 'ops/fix-ci' into 'develop'
Ops/fix ci

See merge request pleroma/pleroma!2340
2020-04-01 03:44:47 +00:00
jp bcaaba4660 remove testing `only:` in docker build 2020-03-31 22:16:36 -04:00
jp c2715ed772 add imagemagick and update inherited container to alpine:3.11 2020-03-31 21:31:23 -04:00
feld ec5d6eef6a Merge branch 'fix/docker-mogrify' into 'develop'
Remove problematic --cache-from argument

See merge request pleroma/pleroma!2338
2020-03-31 22:32:48 +00:00
Mark Felder d3cd3b96bf Remove problematic --cache-from argument 2020-03-31 17:28:41 -05:00
Haelwenn 7d3b25f0e1 Merge branch 'bugfix/funkwhale-channel' into 'develop'
Fix profile url for funkwhale channels, removes one source_data use

Closes #1653

See merge request pleroma/pleroma!2333
2020-03-31 22:04:02 +00:00
Haelwenn (lanodan) Monnier 185520d1b4
Provide known-good user.uri, remove User.profile_url/1 2020-03-31 23:55:29 +02:00
Haelwenn (lanodan) Monnier b30fb1f3bb
User: Fix use of source_data in profile_url/1 2020-03-31 23:54:20 +02:00
Haelwenn (lanodan) Monnier 2553400a66
Initial failing test statement against funkwhale channels 2020-03-31 23:54:20 +02:00
feld fa38089f16 Merge branch 'fix/docker-mogrify' into 'develop'
Fix/docker mogrify

Closes #1644

See merge request pleroma/pleroma!2337
2020-03-31 19:36:04 +00:00
Mark Felder f6dc33615b Add imagemagick to Docker image to fix broken mogrify plugin 2020-03-31 14:29:43 -05:00
Mark Felder 219d3aaa2d Update AdminFE build in preparation for Pleroma 2.0.2 2020-03-31 13:05:16 -05:00
kPherox 7408f003a6
Use `Pleroma.Formatter.linkify` instead of `AutoLinker.link` 2020-04-01 02:52:30 +09:00
kPherox dbf9d719f9
split test for update profile fields 2020-04-01 02:52:30 +09:00
lain c982093cc2 Transmogrifier: Fix BAD code by RINPATCH 2020-03-31 19:33:41 +02:00
lain 1b323ce1c6 Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex 2020-03-31 17:28:18 +00:00
lain ecac57732a Transmogrifier: Only add context if it really is onne. 2020-03-31 19:16:45 +02:00
lain 51fc504705 Merge branch 'remake-remodel-2' of git.pleroma.social:pleroma/pleroma into remake-remodel-2 2020-03-31 19:06:08 +02:00
lain 288f2b5a7c Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex 2020-03-31 17:00:55 +00:00
lain 0be1fa0a86 Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex 2020-03-31 17:00:48 +00:00
lain 057438a657 CommonAPI: DRY up a bit. 2020-03-31 17:56:05 +02:00
lain aebec1bac9 Validator Test: Small refactor. 2020-03-31 17:47:34 +02:00
Alexander Strizhakov 7af0959a07
updating docs 2020-03-31 18:30:19 +03:00
Alexander Strizhakov df5f89c0d6
test for default features and changelog entry 2020-03-31 18:22:25 +03:00
lain 643f15e77b Validators: ObjectID is an http uri. 2020-03-31 16:11:38 +02:00
kPherox d191b0942f
Remove no longer used function 2020-03-31 22:50:18 +09:00
lain f6835333be Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex 2020-03-31 12:55:25 +00:00
Ivan Tashkinov ea9c57b26e [#2332] Misc. improvements per code change requests. 2020-03-31 09:21:42 +03:00
Ivan Tashkinov 9c94b6a327 [#2332] Misc. fixes per code change requests. 2020-03-30 19:08:37 +03:00
lain 8bd5ad8664 Merge branch 'benchmark-improvements' into 'develop'
Benchmark improvements

See merge request pleroma/pleroma!2308
2020-03-30 14:48:00 +00:00
rinpatch dabe3aeb9e Merge branch 'removing-grouped-reports' into 'develop'
Removing grouped reports endpoint

See merge request pleroma/pleroma!2335
2020-03-30 12:38:21 +00:00
Alexander Strizhakov b607ae1a1c
removing grouped reports admin api endpoint 2020-03-30 13:51:45 +03:00
Alexander Strizhakov 1fcdcb12a7
updating gun with bug fix
https://github.com/ninenines/gun/issues/222
2020-03-30 12:47:12 +03:00
Alexander Strizhakov 2afc7a9112
changelog fix 2020-03-30 12:16:45 +03:00
Alexander Strizhakov f497cf2f7c
Merge branch 'develop' into gun 2020-03-30 12:15:23 +03:00
Alexander Strizhakov 96e2796557
use in timelines benchmark new user generator 2020-03-30 11:59:14 +03:00
Alexander Strizhakov 56503c385e
fix 2020-03-30 11:42:25 +03:00
Alexander Strizhakov 1f29ecdcd7
sync with develop 2020-03-30 11:42:25 +03:00
Alexander Strizhakov eb9744cade
activities generation tasks 2020-03-30 11:42:25 +03:00
Haelwenn e999c67cee Merge branch 'feature/funkwhale-audio' into 'develop'
Add support for funkwhale Audio activity

Closes #764 and #1624

See merge request pleroma/pleroma!2287
2020-03-29 19:18:22 +00:00
Maksim Pechnikov dfd2c74184 Merge branch 'develop' into issue/1276 2020-03-29 06:57:34 +03:00
Ivan Tashkinov be9d18461a FollowingRelationship storage & performance optimizations (state turned `ecto_enum`-driven integer, reorganized indices etc.). 2020-03-28 18:49:03 +03:00
lain 4e81b4b190 Merge branch 'relations-preloading-for-statuses-rendering' into 'develop'
Performance improvements (timeline / statuses / notifications / accounts rendering)

See merge request pleroma/pleroma!2323
2020-03-27 19:14:46 +00:00
Ivan Tashkinov dfbc05d496 Misc refactoring / tweaks (`ThreadMute.exists?/2`). 2020-03-27 08:01:03 +03:00
Ivan Tashkinov 6b793d3f83 Ensured no auxiliary computations (actors list preparation etc.) related to relationships preloading if no user is present (for statuses / accounts / relationships rendering). 2020-03-26 21:54:01 +03:00
lain 29ab1d9f8d Merge branch 'remake-remodel-2' of git.pleroma.social:pleroma/pleroma into remake-remodel-2 2020-03-26 17:24:10 +01:00
lain 69fc1dd69f Apply suggestion to lib/pleroma/web/activity_pub/pipeline.ex 2020-03-26 14:45:28 +00:00
lain 0c60c0a76a Validators: Use correct type for IDs. 2020-03-26 15:44:14 +01:00
lain 0adaab8e75 Bump copyright dates. 2020-03-26 15:37:42 +01:00
lain eaacc64839 Refactors. 2020-03-26 15:33:10 +01:00
lain ee979dd6d7 Merge branch 'remake-remodel-2' of git.pleroma.social:pleroma/pleroma into remake-remodel-2 2020-03-26 15:24:06 +01:00
lain d7aa0b645b Apply suggestion to lib/pleroma/web/activity_pub/object_validator.ex 2020-03-26 14:23:19 +00:00
lain 4cf1007a7d ActivityPub: Small refactor. 2020-03-26 15:16:54 +01:00
Egor Kislitsyn 94a6590e3c
Partially restore `/api/statusnet/config.json` 2020-03-26 17:59:45 +04:00
Egor Kislitsyn 1c3f3a12ed
Add `characterLimit` and `vapidPublicKey` to nodeinfo 2020-03-26 16:20:20 +04:00
Ivan Tashkinov 112101ca52 Merge remote-tracking branch 'remotes/origin/develop' into relations-preloading-for-statuses-rendering
# Conflicts:
#	lib/pleroma/thread_mute.ex
2020-03-26 09:43:58 +03:00
rinpatch af820f8cf1 Merge branch 'benchmark_timeline' into 'develop'
Benchmarks: Add timeline benchmark

See merge request pleroma/pleroma!2325
2020-03-25 18:06:00 +00:00
rinpatch de62e633d3 Merge branch '1364-notifications-sending-control' into 'develop'
[#1364] Ability to opt-out of notifications (in all clients)

Closes #1364

See merge request pleroma/pleroma!2301
2020-03-25 18:00:24 +00:00
Ivan Tashkinov ff1baae7e9 Merge remote-tracking branch 'remotes/origin/develop' into relations-preloading-for-statuses-rendering 2020-03-25 20:41:17 +03:00
Ivan Tashkinov 460e41585c Further preloading (more endpoints), refactoring, tests. 2020-03-25 20:33:34 +03:00
lain c8475cd5c6 Apply suggestion to benchmarks/load_testing/generator.ex 2020-03-25 15:48:15 +00:00
Haelwenn d96139f789 Merge branch 'add-test-update_credentials' into 'develop'
Add a test for accounts/update_credentials

See merge request pleroma/pleroma!2330
2020-03-25 14:57:19 +00:00
Egor Kislitsyn 9081a071ee
Add a test for accounts/update_credentials 2020-03-25 18:46:17 +04:00
Ivan Tashkinov be5e2c4dbb Applied relationships preloading to GET /api/v1/accounts/relationships. Refactoring (User.binary_id/1). 2020-03-25 17:01:45 +03:00
Ivan Tashkinov 3fa3d45dbe [#1364] Minor improvements / comments.
Further fixes of incorrect usage of "relations" as a short form of "relationships".
2020-03-25 13:05:00 +03:00
Ivan Tashkinov 012d428e1f Merge remote-tracking branch 'remotes/origin/develop' into 1364-notifications-sending-control 2020-03-25 09:05:17 +03:00
Ivan Tashkinov e743c22329 Fixed incorrect usage of "relations" as a short form of "relationships". 2020-03-25 09:04:00 +03:00
Haelwenn (lanodan) Monnier 03a18cf037
node_info_test: Bump default features list 2020-03-24 20:39:19 +01:00
Haelwenn (lanodan) Monnier 212c31c637
Merge remote-tracking branch 'pleroma/develop' into featureflag/emoji_reactions 2020-03-24 20:32:49 +01:00
Haelwenn (lanodan) Monnier 64165d1df9
node_info_test.exs: Add test on the default feature list 2020-03-24 20:21:27 +01:00
Ivan Tashkinov 8f1d622b8d Merge remote-tracking branch 'remotes/origin/develop' into relations-preloading-for-statuses-rendering 2020-03-24 22:15:37 +03:00
Ivan Tashkinov 13cbb9f6ad Implemented preloading of relationships with parent activities' actors for statuses/timeline rendering. Applied preloading for notifications rendering. Fixed announces rendering issue (preloading-related). 2020-03-24 22:14:26 +03:00
feld 8eebc75c15 Merge branch 'fix/activity-deletion' into 'develop'
Fix activity deletion

Closes #1640

See merge request pleroma/pleroma!2328
2020-03-24 19:10:32 +00:00
rinpatch f316882464 Apply suggestion to lib/pleroma/web/activity_pub/activity_pub.ex 2020-03-24 18:37:53 +00:00
lain aaf00f1ff5 Apply suggestion to lib/pleroma/web/activity_pub/pipeline.ex 2020-03-24 18:24:09 +00:00
lain 74560e888e Apply suggestion to lib/pleroma/web/activity_pub/object_validators/create_validator.ex 2020-03-24 18:20:58 +00:00
lain 1d75d0ed7a Merge branch 'admin-api-change-password' into 'develop'
Admin API: `PATCH /api/pleroma/admin/users/:nickname/update_credentials`

See merge request pleroma/pleroma!2149
2020-03-24 17:34:13 +00:00
Egor Kislitsyn 4a2538967c
Support pagination in conversations 2020-03-24 20:18:27 +04:00
Egor Kislitsyn d1a9716a98
Fix activity deletion 2020-03-24 17:38:18 +04:00
Egor Kislitsyn 3189c44a0c
Remove some TwitterAPI endpoints 2020-03-24 15:21:40 +04:00
rinpatch fbf02a3722 Merge branch 'bugfix/profile-bio-newline' into 'develop'
AccountView: fix for other forms of <br> in bio

Closes #1643

See merge request pleroma/pleroma!2322
2020-03-23 19:32:01 +00:00
lain 3bd2829e5c Benchmarks: Add timeline benchmark 2020-03-23 18:56:01 +01:00
lain eec1fcaf55 Home timeline tests: Add failing test for relationships 2020-03-23 15:58:55 +01:00
Ivan Tashkinov 86f2fbc81e Merge remote-tracking branch 'remotes/origin/develop' into relations-preloading-for-statuses-rendering 2020-03-23 14:34:58 +03:00
rinpatch d931a59072 Merge branch 'support-emoji-staticfe' into 'develop'
Add emoji support in statuses in staticfe

Closes #1453

See merge request pleroma/pleroma!2324
2020-03-23 10:43:20 +00:00
Egor Kislitsyn 5a34dca8ed
Add emoji support in statuses in staticfe 2020-03-23 14:03:31 +04:00
Ivan Tashkinov 3c78e5f327 Preloading of follow relations for timeline/statuses rendering (performance improvement). Refactoring. 2020-03-23 12:01:11 +03:00
Alexander Strizhakov a6ee6784bc
creating trusted app from adminFE & mix task 2020-03-23 10:44:47 +03:00
Ivan Tashkinov c2e415143b WIP: preloading of user relations for timeline/statuses rendering (performance improvement). 2020-03-22 21:51:44 +03:00
Haelwenn (lanodan) Monnier 15be6ba9c2
AccountView: fix for other forms of <br> in bio
Closes: https://git.pleroma.social/pleroma/pleroma/issues/1643
2020-03-22 16:41:01 +01:00
rinpatch 7dbf1ffa86 Merge branch 'fix/ecto_ssl_option' into 'develop'
Fix ssl option on Ecto config breaking release

See merge request pleroma/pleroma!2307
2020-03-22 14:32:40 +00:00
Haelwenn 4633793bc1 Merge branch 'relationship-remove-outdated-hack' into 'develop'
Mastodon API Account view: Remove an outdated hack

See merge request pleroma/pleroma!2321
2020-03-22 14:25:11 +00:00
rinpatch 981e015f1b Mastodon API Account view: Remove an outdated hack
The hack with caching the follow relationship was introduced
when we still were storing it inside the follow activity, resulting in
slow queries. Now we store follow state in `FollowRelationship` table,
so this is no longer necessary.
2020-03-22 17:10:37 +03:00
Egor Kislitsyn fc2eb1fbd6
Fix formatter warnings 2020-03-20 22:16:57 +04:00
Egor Kislitsyn 80e1571610
Merge branch 'develop' into global-status-expiration 2020-03-20 22:08:34 +04:00
Alexander Strizhakov 7f9b5284fa
updating clear_config 2020-03-20 20:58:47 +03:00
Alexander Strizhakov 9bae9b1b1b
Merge branch 'develop' into gun 2020-03-20 20:47:54 +03:00
Egor Kislitsyn cb8236cda6
Add embeddable posts 2020-03-20 21:46:26 +04:00
lain d74405fc1a Merge branch 'fix-feed-pagination' into 'develop'
Fix for feed page pagination

Closes #1605

See merge request pleroma/pleroma!2281
2020-03-20 16:57:51 +00:00
lain d23e81903d Merge branch 'clear-config-test-improvements' into 'develop'
Improved in-test config management

See merge request pleroma/pleroma!2312
2020-03-20 16:54:55 +00:00
Ivan Tashkinov 1c05f539aa Improved in-test `clear_config/n` applicability (setup / setup_all / in-test usage). 2020-03-20 18:33:00 +03:00
Ivan Tashkinov 0e27c274f4 Merge remote-tracking branch 'remotes/origin/develop' into clear-config-test-improvements
# Conflicts:
#	test/web/mastodon_api/controllers/account_controller_test.exs
2020-03-20 18:08:23 +03:00
lain 5efa5b0c4a Merge branch 'feature/1206-restrict-unauthenticated' into 'develop'
restrict_unauthenticated setting

Closes #1206

See merge request pleroma/pleroma!2318
2020-03-20 14:40:08 +00:00
lain 6c1232b486 NotificationController: Fix test. 2020-03-20 15:00:28 +01:00
lain 1aa8aa7d7f Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-2 2020-03-20 14:52:58 +01:00
Alexander Strizhakov fe15f0ba15
restrict_unauthenticated setting 2020-03-20 16:36:20 +03:00
lain d63dca8d99 Merge branch 'feature/1635-notifications-include-types' into 'develop'
include_types parameter in /api/v1/notifications

Closes #1635

See merge request pleroma/pleroma!2311
2020-03-20 13:27:29 +00:00
Alexander Strizhakov 98a60df41f
include_types parameter in /api/v1/notifications 2020-03-20 13:18:12 +03:00
Haelwenn (lanodan) Monnier a8aa917530
Merge remote-tracking branch 'pleroma/develop' into bugfix/apc2s_upload_activity 2020-03-19 19:25:50 +01:00
lain 952cb589f4 Merge branch 'fix-testing' into 'develop'
Fix CI by temporarily removing federated testing

See merge request pleroma/pleroma!2314
2020-03-19 18:10:39 +00:00
Haelwenn (lanodan) Monnier c1fd4f6653
transmogrifier.ex: rework fix_attachment for better IR 2020-03-19 19:10:03 +01:00
lain 9b9d67bbec Fix linting. 2020-03-19 18:16:12 +01:00
lain 3c2c32b460 Merge branch 'remake-remodel' into develop 2020-03-19 18:00:55 +01:00
stwf a8c6933ca0 remove federated testing 2020-03-19 12:27:09 -04:00
Mark Felder 7d275970ab Add emoji reactions to features in nodeinfo 2020-03-19 10:08:11 -05:00
Haelwenn (lanodan) Monnier f9d622d25a
WIP 2020-03-19 15:39:11 +01:00
Ivan Tashkinov ec3719f539 Improved in-test config management functions. 2020-03-18 20:30:31 +03:00
Alexander Strizhakov 51ce0813d3
Merge branch 'gun' of git.pleroma.social:alex.s/pleroma into gun 2020-03-18 14:08:40 +03:00
Alexander Strizhakov f9ecb513fa
Merge branch 'develop' into gun 2020-03-18 14:08:21 +03:00
rinpatch 69341cbcba Merge branch 'feature/1530-removing-with_move' into 'develop'
Feature/1530 removing with move

Closes #1530

See merge request pleroma/pleroma!2306
2020-03-18 10:12:50 +00:00
Haelwenn (lanodan) Monnier d3cf7e19fb
activity_pub_controller_test.exs: test posting with AP C2S uploaded media 2020-03-17 14:00:19 +01:00
Cevado 4705590f76 Fix ssl option on Ecto config breaking release
To use `:ssl` option on Ecto config it's required to include Erlang ssl
application, this prevents releases to start when `:ssl` option is set
to true.
2020-03-16 22:02:01 -03:00
Mark Felder b17d8d305f Enable Gun adapter by default
We need devs to dogfood this before we merge it into the 2.1 release
2020-03-16 15:39:34 -05:00
Ivan Tashkinov 7438833685 [#1364] Improved notification-related tests. 2020-03-16 21:58:10 +03:00
eugenijm 13cce9c0de Admin API: `PATCH /api/pleroma/admin/users/:nickname/credentials`, `GET /api/pleroma/admin/users/:nickname/credentials`. 2020-03-16 20:42:37 +03:00
Haelwenn e4380afc18 Merge branch 'docs/mrf_object_age' into 'develop'
Improve documentation of mrf_object_age

See merge request pleroma/pleroma!2305
2020-03-16 17:42:10 +00:00
eugenijm d198e7fa2a Admin API: `PATCH /api/pleroma/admin/users/:nickname/change_password` 2020-03-16 20:32:07 +03:00
Alexander Strizhakov f3791add99
removing with_move parameter 2020-03-16 20:07:45 +03:00
Mark Felder 8dd01b24d2 Improve documentation of mrf_object_age 2020-03-16 11:44:53 -05:00
Ivan Tashkinov 0e07c5ef57 Merge remote-tracking branch 'remotes/origin/develop' into 1364-notifications-sending-control 2020-03-16 17:58:42 +03:00
rinpatch b80958d4e3 Merge branch 'feat/templates' into 'develop'
gitlab: create templates for bug reports and release MRs

See merge request pleroma/pleroma!2304
2020-03-16 14:32:23 +00:00
rinpatch 7829de6da4 gitlab: create templates for bug reports and release MRs 2020-03-16 17:30:50 +03:00
Alexander Strizhakov bf474ca3c1
fix 2020-03-16 16:23:49 +03:00
Alexander Strizhakov 35471205f8
temp fix for `:gun.info` MatchError 2020-03-16 15:47:25 +03:00
Egor Kislitsyn 5ad54d1bd5
Merge remote-tracking branch 'origin/develop' into global-status-expiration 2020-03-16 16:31:15 +04:00
Alexander Strizhakov 3805e09b9c
Merge branch 'develop' into gun 2020-03-16 14:35:27 +03:00
Egor Kislitsyn 421e35b578
Merge branch 'develop' into global-status-expiration 2020-03-16 15:31:31 +04:00
rinpatch ac5c2b66b9 Merge branch 'fix-warnings-in-tests' into 'develop'
Warnings fix

See merge request pleroma/pleroma!2303
2020-03-16 11:27:10 +00:00
Alexander Strizhakov f0651730bd
Merge branch 'develop' into gun 2020-03-16 14:25:55 +03:00
Alexander Strizhakov dc2ec84c0f
warnings fix 2020-03-16 14:19:36 +03:00
rinpatch c2527b8c63 Merge branch 'removing-deprecated' into 'develop'
Removing from descriptions.exs deprecated settings

See merge request pleroma/pleroma!2302
2020-03-16 11:08:06 +00:00
Alexander Strizhakov ba90a6d3e5
removing from descriptions.exs deprecated settings 2020-03-16 14:01:35 +03:00
Alexander Strizhakov 89e4b3ebbd
fix for content-type header for tag feed 2020-03-16 12:59:18 +03:00
Alexander Strizhakov 91870c8995
adding rss for user feed 2020-03-16 12:45:31 +03:00
Alexander Strizhakov 26e2076659
fix for feed page pagination 2020-03-16 12:33:55 +03:00
rinpatch 34fd1c2c9d Merge branch 'bugfix/earmark_renderer_test' into 'develop'
test/earmark_renderer_test.exs: Rename from test/earmark_renderer_test.ex

See merge request pleroma/pleroma!2300
2020-03-15 20:04:31 +00:00
rinpatch df2608ebf8 Merge branch 'features/staticfe-sanitization' into 'develop'
static_fe: Sanitize HTML

Closes #1614

See merge request pleroma/pleroma!2299
2020-03-15 19:53:52 +00:00
Haelwenn (lanodan) Monnier 8176ca9e40 static_fe: Sanitize HTML in users 2020-03-15 20:44:04 +01:00
Haelwenn (lanodan) Monnier acb016397e mix.lock: [minor] last hash appended 2020-03-15 20:44:04 +01:00
Haelwenn (lanodan) Monnier 0ac6e29654 static_fe: Sanitize HTML in posts
Note: Seems to have different sanitization with TwitterCard generator giving
the following:

<meta content=\"“alert(&#39;xss&#39;)”\" property=\"twitter:description\">
2020-03-15 20:44:04 +01:00
lain fa4ec17c84 Merge branch '1560-non-federating-instances-routes-restrictions' into 'develop'
[#1560] Restricted AP- & OStatus-related routes for non-federating instances

Closes #1560

See merge request pleroma/pleroma!2235
2020-03-15 19:15:20 +00:00
Ivan Tashkinov 7c8003c3fc [#1364] Improved control over generation / sending of notifications. Fixed blocking / muting users notifications issue. Added tests. 2020-03-15 21:00:12 +03:00
Haelwenn d84670b9e1 Merge branch 'f' into 'develop'
rip out fetch_initial_posts

Closes #1422 and #1595

See merge request pleroma/pleroma!2297
2020-03-15 16:14:54 +00:00
Haelwenn (lanodan) Monnier dca21cd1d6 test/earmark_renderer_test.exs: Rename from test/earmark_renderer_test.ex
Wasn't in the test suite otherwise
2020-03-15 17:07:08 +01:00
Haelwenn 67a27825b1 Merge branch 'fix/rate-limiter-remoteip-behavior' into 'develop'
rate limiter: disable based on if remote ip was found, not on if the plug was enabled

Closes #1620

See merge request pleroma/pleroma!2296
2020-03-15 14:22:10 +00:00
rinpatch e87a32bcd7 rip out fetch_initial_posts
Every time someone tries to use it, it goes mad and tries to scrape the
entire fediverse for no visible reason, it's better to just remove it
than continue shipping it in it's current state.

idea acked by lain and feld on irc

Closes #1595 #1422
2020-03-15 15:59:17 +03:00
rinpatch 85ac909160 Merge branch 'bugfix/pleroma_conversation_api' into 'develop'
pleroma_api_controller.ex: Improve conversations error reporting

See merge request pleroma/pleroma!2264
2020-03-15 12:47:39 +00:00
Haelwenn (lanodan) Monnier 8f7bc07ebc pleroma_api_controller.ex: Improve conversations error reporting
Related: https://git.pleroma.social/pleroma/pleroma/issues/1594
2020-03-15 12:35:23 +01:00
Ivan Tashkinov ecb7809e92 Merge remote-tracking branch 'remotes/origin/develop' into 1560-non-federating-instances-routes-restrictions
# Conflicts:
#	lib/pleroma/plugs/static_fe_plug.ex
2020-03-14 15:37:02 +03:00
rinpatch 14ebf8f1e5 Merge branch 'update/admin-fe-20200312' into 'develop'
Update AdminFE

See merge request pleroma/pleroma!2292
2020-03-14 11:25:17 +00:00
rinpatch d88c8a9614 Merge branch 'fix/cache-control-headers' into 'develop'
Fix Cache Control headers on media

See merge request pleroma/pleroma!2295
2020-03-14 11:19:42 +00:00
rinpatch 6a28c198af uploaded media plug: do not inject compile-time params on every request 2020-03-13 22:12:33 +03:00
rinpatch 38f796a5c6 Merge branch 'feature/mastofe-admin-scope' into 'develop'
auth_controller.ex: Add admin scope to MastoFE

See merge request pleroma/pleroma!2256
2020-03-13 18:58:52 +00:00
rinpatch 4db88242e5 Merge branch 'docs/direct_conversation_id' into 'develop'
pleroma_api.md: direct_conversation_id vs. conversation_id

See merge request pleroma/pleroma!2263
2020-03-13 18:58:22 +00:00
Mark Felder 2966377cb9 Update AdminFE 2020-03-13 21:55:08 +03:00
rinpatch 994ac4357c Merge branch 'fix/hashtags-streaming' into 'develop'
Fix hashtags WebSocket streaming

Closes #1593

See merge request pleroma/pleroma!2294
2020-03-13 18:50:17 +00:00
rinpatch 658f30c0b3 Merge branch 'static-accept-missing' into 'develop'
Fix static FE plug to handle missing Accept header.

See merge request pleroma/pleroma!2260
2020-03-13 18:46:54 +00:00
rinpatch fc4496d4fa rate limiter: disable based on if remote ip was found, not on if the plug was enabled
The current rate limiter disable logic won't trigger when the remote ip
is not forwarded, only when the remoteip plug is not enabled, which is
not the case on most instances since it's enabled by default. This
changes the behavior to warn and disable  when the remote ip was not forwarded,
even if the RemoteIP plug is enabled.

Also closes #1620
2020-03-13 21:41:17 +03:00
rinpatch 3e0f05f08e Merge branch 'bugfix/br-vs-newline' into 'develop'
Formatting: Do not use \n and prefer <br> instead

Closes #1374 and #1375

See merge request pleroma/pleroma!2204
2020-03-13 18:22:55 +00:00
Mark Felder c6eb1c1b92 Merge branch 'develop' into fix/cache-control-headers 2020-03-13 12:54:06 -05:00
Mark Felder 7321429a2e Lint 2020-03-13 12:42:06 -05:00
Mark Felder 3b1b183b42 Synchronize cache-control header for local media with the mediaproxy 2020-03-13 12:27:50 -05:00
Mark Felder db36b48180 Remove test verifying we preserve cache-control headers; we don't 2020-03-13 12:23:14 -05:00
Mark Felder 470090471d Fix test to use new cache-control settings 2020-03-13 12:20:33 -05:00
Mark Felder 413177c8f0 Set correct Cache-Control header for local media 2020-03-13 12:02:58 -05:00
Mark Felder c62195127d Update comment to reflect what the code is actually doing 2020-03-13 11:46:40 -05:00
Mark Felder e04e16bbc0 Do not strip Cache-Control headers from media. Trust the Pleroma backend. 2020-03-13 11:31:55 -05:00
Mark Felder ad31d0726a Do not trust remote Cache-Control headers for mediaproxy 2020-03-13 11:30:27 -05:00
rinpatch 096c5c52e0 Merge branch 'revert/cache-control' into 'develop'
Revert "Set better Cache-Control header for static content"

Closes #1613

See merge request pleroma/pleroma!2290
2020-03-13 16:25:10 +00:00
Egor Kislitsyn fffc382f13
Fix hashtags WebSocket streaming 2020-03-13 19:30:42 +04:00
Haelwenn (lanodan) Monnier d1379c4de8
Formatting: Do not use \n and prefer <br> instead
It moves bbcode to bbcode_pleroma as the former is owned by kaniini
and transfering ownership wasn't done in a timely manner.

Closes: https://git.pleroma.social/pleroma/pleroma/issues/1374
Closes: https://git.pleroma.social/pleroma/pleroma/issues/1375
2020-03-13 16:07:17 +01:00
Alexander Strizhakov 98ed0d1c4b
more clean up 2020-03-13 09:37:57 +03:00
feld 802b991814 Merge branch 'exclude-posts-visible-to-admin' into 'develop'
Exclude private and direct statuses visible to the admin when using godmode

Closes #1599

See merge request pleroma/pleroma!2272
2020-03-12 20:29:51 +00:00
Alexander Strizhakov 39ed608b13
Merge branch 'develop' into gun 2020-03-12 18:31:10 +03:00
Alexander Strizhakov 1306b92997
clean up 2020-03-12 18:29:07 +03:00
Egor Kislitsyn d1c7f8e576
Merge remote-tracking branch 'origin/develop' into global-status-expiration 2020-03-12 16:02:24 +04:00
Ivan Tashkinov bd40880fa0 Merge remote-tracking branch 'remotes/origin/develop' into 1560-non-federating-instances-routes-restrictions
# Conflicts:
#	test/web/activity_pub/activity_pub_controller_test.exs
2020-03-12 12:07:07 +03:00
rinpatch 00d1752031 Merge branch 'docs/new_user' into 'develop'
CLI_tasks/user.md: Fix `pleroma.user new` documentation

Closes #1621

See merge request pleroma/pleroma!2286
2020-03-11 20:26:50 +00:00
feld 2019f3b3ff Merge branch 'fix/signup-without-email' into 'develop'
Allow account registration without an email

See merge request pleroma/pleroma!2246
2020-03-11 16:53:05 +00:00
rinpatch 7cdabdc0df Merge branch 'fix/1610-release-compilation-config-fix' into 'develop'
Merging default release config on app start

Closes #1610

See merge request pleroma/pleroma!2288
2020-03-11 15:16:18 +00:00
feld f92c447bbc Merge branch 'relay-list-change' into 'develop'
Relay list shows hosts without accepted follow

See merge request pleroma/pleroma!2240
2020-03-11 15:10:09 +00:00
rinpatch c3b9fbd3a7 Revert "Set better Cache-Control header for static content"
On furher investigation it seems like all that did was cause unintuitive
behavior. The emoji request flood that was the reason for introducing it
isn't really that big of a deal either, since Plug.Static only needs to
read file modification time and size to determine the ETag.

Closes #1613
2020-03-11 17:58:25 +03:00
Alexander Strizhakov fce090c1de
using Pleroma.Config instead of ets 2020-03-11 17:22:50 +03:00
Alexander Strizhakov 193d67cde5
compile fix 2020-03-11 16:43:58 +03:00
Alexander Strizhakov 282a93554f
merging release default config on app start 2020-03-11 16:25:53 +03:00
Haelwenn (lanodan) Monnier 863ec33ba2
Add support for funkwhale Audio activity
reel2bits fixture not included as it lacks the Actor fixture for it.

Closes: https://git.pleroma.social/pleroma/pleroma/issues/1624
Closes: https://git.pleroma.social/pleroma/pleroma/issues/764
2020-03-11 13:46:42 +01:00
Ivan Tashkinov 5b696a8ac1 [#1560] Enforced authentication for non-federating instances in StaticFEController. 2020-03-11 14:05:56 +03:00
rinpatch 9dbf493b65 Merge branch 'docs/debian-install' into 'develop'
installation/otp_en.md: Fix pleroma.nginx target [deb]

See merge request pleroma/pleroma!2280
2020-03-11 10:39:06 +00:00
Haelwenn (lanodan) Monnier 6316726a5f
CLI_tasks: Use manpage formatting conventions
- [] for options
- <> for mandatory arguments
- foo ... when foo can be repeated

[ci skip]
2020-03-11 08:48:50 +01:00
Haelwenn (lanodan) Monnier a06104b9d5
CLI_tasks/user.md: Fix `pleroma.user new` documentation
Closes: https://git.pleroma.social/pleroma/pleroma/issues/1621

[ci skip]
2020-03-11 08:36:25 +01:00
Haelwenn 8ad73445cd Merge branch 'bugfix/bad-pleromafe-bundle' into 'develop'
static-fe.css: Restore from before a65ee8ea

See merge request pleroma/pleroma!2284
2020-03-11 07:25:35 +00:00
Ivan Tashkinov 972889550d Merge remote-tracking branch 'remotes/origin/develop' into 1560-non-federating-instances-routes-restrictions 2020-03-11 09:15:55 +03:00
Haelwenn (lanodan) Monnier a747eb6df9
static-fe.css: Restore from before a65ee8ea
Related: https://git.pleroma.social/pleroma/pleroma/issues/1616
2020-03-11 06:35:26 +01:00
lain 953aece848 Merge branch 'fix/post-length-validation' into 'develop'
Fix enforcement of character limits

Closes #1618

See merge request pleroma/pleroma!2283
2020-03-10 18:16:10 +00:00
Mark Felder 5af798f246 Fix enforcement of character limits 2020-03-10 13:08:00 -05:00
Alexander Strizhakov f39e1b9eff
add verify tls_opts only when we open connection
for other requests tesla will add tls_opts
2020-03-10 15:54:11 +03:00
Alexander Strizhakov 426f5ee48a
tesla adapter can't be changed in adminFE 2020-03-10 15:31:44 +03:00
Haelwenn (lanodan) Monnier d9134d4430
installation/otp_en.md: Fix pleroma.nginx target [deb]
Needs to be backported to stable.

Related: https://git.pleroma.social/pleroma/pleroma-support/issues/29
2020-03-10 11:49:23 +01:00
Ivan Tashkinov 5fc92deef3 [#1560] Ensured authentication or enabled federation for federation-related routes. New tests + tests refactoring. 2020-03-09 20:51:44 +03:00
lain 841e4e4d83 Merge branch 'patch-1' into 'develop'
Better advice for vacuuming after restoring.

See merge request pleroma/pleroma!2233
2020-03-09 13:36:21 +00:00
Alexander Strizhakov d9f8941dac
Merge branch 'develop' into gun 2020-03-09 10:56:33 +03:00
rinpatch 5b74976c8d Merge branch 'chore/mix-version-bump' into 'develop'
mix.exs: bump version to development one

See merge request pleroma/pleroma!2279
2020-03-08 20:31:54 +00:00
rinpatch 86e7709a4d mix.exs: bump version to development one 2020-03-08 23:24:30 +03:00
rinpatch 663e466067 Merge branch 'stable' into 'develop'
Sync develop with stable

Closes #1262, #1267, #1293, #1303, #1287, #1291, #1382, #1438, #1129, #1109, and #1606

See merge request pleroma/pleroma!2278
2020-03-08 13:42:15 +00:00
Maksim Pechnikov edb659dc57 Merge branch 'develop' into issue/1276 2020-03-08 14:10:59 +03:00
Alexander Strizhakov b2eb1124d1
Merge branch 'develop' into gun 2020-03-07 12:41:37 +03:00
Alexander Strizhakov 5f42ecc4c7
start gun upload pool, if proxy_remote is enabled 2020-03-07 12:24:39 +03:00
Alexander Strizhakov 9f884a2639
tests changes 2020-03-07 11:01:37 +03:00
Alexander Strizhakov 14678a7708
using `stub` instead `expect` 2020-03-07 10:12:34 +03:00
Alexander Strizhakov 78282dc983
little polishing 2020-03-06 21:24:19 +03:00
Alexander Strizhakov c93c3096d5
little refactor 2020-03-06 21:04:18 +03:00
Alexander Strizhakov 56ff02f2ef
removing GunMock to use Mox 2020-03-06 20:23:58 +03:00
Ivan Tashkinov 027714b519 Merge remote-tracking branch 'remotes/origin/develop' into 1560-non-federating-instances-routes-restrictions 2020-03-06 11:48:30 +03:00
Ivan Tashkinov 40765875d4 [#1560] Misc. improvements in ActivityPubController federation state restrictions. 2020-03-05 21:19:21 +03:00
Alexander Strizhakov 931111fd55
removing integration tests 2020-03-05 18:57:45 +03:00
Alexander Strizhakov 058c9b01ac
returning, not needed 2020-03-05 18:28:04 +03:00
Alexander Strizhakov f0753eed0f
removing try block in tesla request
added mocks for tests which fail with Tesla.Mock.Error
2020-03-05 17:31:06 +03:00
eugenijm ad22e94f33 Exclude private and direct statuses visible to the admin when using godmode 2020-03-05 15:15:27 +03:00
Alexander Strizhakov eb324467d9
removing try block in getting gun info 2020-03-05 09:51:52 +03:00
Alexander Strizhakov b34bc669b9
adding descriptions 2020-03-04 20:09:18 +03:00
Alexander Strizhakov fe47bcde8c
updating tesla ref 2020-03-04 19:44:03 +03:00
Alexander Strizhakov d6bebd4f9c
moving some logic to tesla adapter
- checking original inside gun adapter
- flushing streams on max_body error
2020-03-04 18:13:24 +03:00
Alexander Strizhakov 22d52f5691
same copyright date format 2020-03-04 09:41:23 +03:00
Alexander Strizhakov 6b2fb9160c
otp version 2020-03-04 09:23:42 +03:00
Alexander Strizhakov 8d9dee1ba9
retry_timeout description change 2020-03-04 08:56:36 +03:00
Mark Felder d9c5ae7c09 Update Copyrights for gun related files 2020-03-03 17:16:24 -06:00
Mark Felder 4427161ca3 Merge branch 'develop' into gun 2020-03-03 17:15:49 -06:00
Ivan Tashkinov b6fc98d9cd [#1560] ActivityPubController federation state restrictions adjustments. Adjusted tests. 2020-03-03 22:22:02 +03:00
Alexander Strizhakov 884d9710b2
refactoring for gun api modules 2020-03-03 19:24:14 +03:00
Alexander Strizhakov 23f407bf09
don't test gun itself 2020-03-03 18:57:16 +03:00
Alexander Strizhakov f98ee730f0
adapter renaming to adapter_helper 2020-03-03 18:53:44 +03:00
Alexander Strizhakov 8854770fc4
retry and retry_timeout settings default change 2020-03-03 18:01:35 +03:00
Alexander Strizhakov 1ad34bfdba
no try block in checkout connection 2020-03-03 17:44:04 +03:00
Alexander Strizhakov 3723d72365
proxy parse tests fix 2020-03-03 17:32:59 +03:00
Alexander Strizhakov 24bf5c4e89
remove try block from pool request 2020-03-03 17:27:56 +03:00
Alexander Strizhakov aaa879ce75
proxy parsing errors 2020-03-03 17:27:22 +03:00
Alexander Strizhakov 6ebf389d6e
poolboy timeout fix 2020-03-03 16:51:49 +03:00
Alexander Strizhakov 7c0ed9302c
unnecessary mock 2020-03-03 16:46:20 +03:00
Alexander Strizhakov 8fc00b7cbf
return error if connection failed to open 2020-03-03 16:42:24 +03:00
Alexander Strizhakov 7d68924e4f
naming 2020-03-03 16:42:24 +03:00
Alexander Strizhakov e605e79df9
simplification of formatting host method
case for format_proxy method
2020-03-03 16:42:03 +03:00
Alexander Strizhakov ee8071f0d5
removing unused method 2020-03-03 15:12:09 +03:00
Alexander Strizhakov 05429730e4
unnecessary with 2020-03-03 15:11:48 +03:00
Alexander Strizhakov d0e4d3ca3b
removing unnecessary with
comment in tesla client impovement
2020-03-03 14:56:49 +03:00
Alexander Strizhakov 24d1ac125c
hiding raise error logic to otp_version module 2020-03-03 13:24:19 +03:00
Alexander Strizhakov 28ed4b41d0
naming for checkin from pool timeout 2020-03-03 13:05:28 +03:00
Alexander Strizhakov 151dc4e387 Apply suggestion to lib/pleroma/reverse_proxy/client/tesla.ex 2020-03-03 09:53:37 +00:00
Alexander Strizhakov 7eb6592992 Apply suggestion to lib/pleroma/pool/connections.ex 2020-03-03 09:53:31 +00:00
Alexander Strizhakov a21a66972f Apply suggestion to lib/pleroma/http/http.ex 2020-03-03 09:52:01 +00:00
Alexander Strizhakov 614e3934f9 Apply suggestion to lib/pleroma/http/http.ex 2020-03-03 09:50:42 +00:00
Alexander Strizhakov d30ff35d94 Apply suggestion to lib/pleroma/http/request_builder.ex 2020-03-03 09:46:53 +00:00
Alexander Strizhakov df3c59d928 Apply suggestion to docs/configuration/cheatsheet.md 2020-03-03 09:45:18 +00:00
Alexander Strizhakov a3ad028973 Apply suggestion to lib/pleroma/http/adapter.ex 2020-03-03 09:34:36 +00:00
Alexander Strizhakov 2c8d80dc0a Apply suggestion to lib/pleroma/pool/connections.ex 2020-03-03 09:29:57 +00:00
Alexander Strizhakov 097ad10d02 Apply suggestion to lib/pleroma/pool/connections.ex 2020-03-03 09:29:51 +00:00
Alexander Strizhakov 4c8569d403
otp_version refactor 2020-03-03 12:21:10 +03:00
Alexander Strizhakov 3ecdead31a
debug logs on pleroma restart 2020-03-03 10:33:40 +03:00
Alexander Strizhakov 509c81e4b1
Merge branch 'develop' into gun 2020-03-03 10:08:07 +03:00
Haelwenn (lanodan) Monnier 9b6c7843d6
debian_based_*.md: Use erlang-nox metapackage 2020-03-03 05:00:25 +01:00
Egor Kislitsyn 0f386110c6
Merge remote-tracking branch 'origin/develop' into global-status-expiration 2020-03-03 00:32:34 +04:00
Egor Kislitsyn 4f3313bf80
Merge remote-tracking branch 'origin/develop' into fix/signup-without-email 2020-03-03 00:29:51 +04:00
Ivan Tashkinov bd8624d649 [#1560] Added tests for non-federating instance bahaviour to OStatusControllerTest. 2020-03-02 22:02:21 +03:00
Mark Felder f987d83885 Clarify in docs how to control connections_pool for Gun.
It could easily be confused with the Hackney settings.
2020-03-02 13:00:05 -06:00
Mark Felder 85d571fc23 Move Tesla repo to our GitLab 2020-03-02 12:52:41 -06:00
Ivan Tashkinov b4367125e9 [#1560] Added tests for non-federating instance bahaviour to ActivityPubControllerTest. 2020-03-02 21:43:18 +03:00
Ivan Tashkinov 99a6c660a9 Merge remote-tracking branch 'remotes/origin/develop' into 1560-non-federating-instances-routes-restrictions 2020-03-02 18:41:12 +03:00
Egor Kislitsyn 4a45b96a91
Merge branch 'develop' into fix/signup-without-email 2020-03-02 15:35:49 +04:00
Alexander Strizhakov 137c600cae
stop connections manually 2020-03-02 10:01:07 +03:00
Alexander Strizhakov cc98d010ed
relay list shows hosts without accepted follow 2020-03-02 09:27:20 +03:00
Alexander Strizhakov 2622cf1190
returning repo parameters 2020-03-02 09:22:34 +03:00
Haelwenn (lanodan) Monnier deb5f5c40e
pleroma_api.md: direct_conversation_id vs. conversation_id
Related: https://git.pleroma.social/pleroma/pleroma/issues/1594
2020-03-02 04:01:37 +01:00
Alexander Strizhakov d9e4b77f8b
Merge branch 'develop' into gun 2020-03-01 12:48:49 +03:00
Phil Hagelberg 523f73dccd Fix static FE plug to handle missing Accept header. 2020-02-29 18:53:49 -08:00
Alexander Strizhakov 814b275af7
Merge branch 'develop' into gun 2020-02-29 11:34:50 +03:00
Haelwenn (lanodan) Monnier 3ef2ff3e47
auth_controller.ex: Add admin scope to MastoFE
Related: https://git.pleroma.social/pleroma/pleroma/issues/1265
2020-02-29 01:25:14 +01:00
Egor Kislitsyn f446744a6a
Allow account registration without an email 2020-02-26 20:13:53 +04:00
Alexander Strizhakov 6b012ddd69
some docs 2020-02-25 19:01:29 +03:00
Maksim Pechnikov 10f452ad1f Merge branch 'develop' into issue/1276 2020-02-25 07:22:56 +03:00
Alexander Strizhakov 8efae966b1
open conn in separate task 2020-02-24 19:56:27 +03:00
Ivan Tashkinov 0cf1d4fcd0 [#1560] Restricted AP- & OStatus-related routes for non-federating instances. 2020-02-22 19:48:41 +03:00
lain c05cbc47f9 Better advice for vacuuming after restoring. 2020-02-22 13:14:30 +00:00
Alexander Strizhakov d44f9e3b6c
fix for timeout clause 2020-02-21 16:56:55 +03:00
Alexander Strizhakov f604f9e470
hackney pool timeout 2020-02-21 14:33:55 +03:00
Alexander Strizhakov 6806df80dd
don't log info ssl messages 2020-02-21 14:28:16 +03:00
Egor Kislitsyn 011ede4536
Update documentation 2020-02-21 14:42:43 +04:00
Alexander Strizhakov ad8f26c0a4
more info in Connections.checkin timout errors 2020-02-21 12:53:40 +03:00
Alexander Strizhakov a03c420b84
by default don't use gun retries
remove conn depends on retry setting from config
2020-02-21 12:32:42 +03:00
Alexander Strizhakov 3849bbb60d
temp using tesla from fork 2020-02-21 12:30:37 +03:00
Alexander Strizhakov 13918cb545
Merge branch 'develop' into gun 2020-02-21 10:02:37 +03:00
Haelwenn (lanodan) Monnier effb4a3d48
init.d/pleroma: Add option to attach an elixir console 2020-02-20 21:24:24 +01:00
Egor Kislitsyn 819cd46717
Auto-expire Create activities only 2020-02-20 22:04:02 +04:00
Alexander Strizhakov c9db0507f8
removing retry option and changing some logger messages levels 2020-02-19 12:26:57 +03:00
Mark Felder 138a3c1fe4 Spelling was wrong in test as well 2020-02-18 09:30:18 -06:00
Mark Felder 7d73e7a09a Spelling 2020-02-18 09:18:09 -06:00
Mark Felder 2a219f5e86 Improve changelog message 2020-02-18 09:12:46 -06:00
Mark Felder cf94349287 Merge branch 'develop' into gun 2020-02-18 09:06:27 -06:00
Alexander Strizhakov 514c899275
adding gun adapter 2020-02-18 08:19:01 +03:00
Maksim Pechnikov 28701c08ad Merge branch 'develop' into issue/1276 2020-02-17 08:56:03 +03:00
Egor Kislitsyn 0ddcd67d32
Update `cheatsheet.md` and `config/description.exs` 2020-02-14 16:53:53 +04:00
Egor Kislitsyn 3732b0ba72
Update CHANGELOG 2020-02-14 16:39:02 +04:00
Egor Kislitsyn 57878f8708
Improve readability 2020-02-14 15:50:31 +04:00
Egor Kislitsyn e2d358f1fb
Fix typo 2020-02-14 15:19:23 +04:00
Egor Kislitsyn 4d459b0e99
Move ActivityExpiration creation from CommonApi.post/2 to ActivityPub.insert/4 2020-02-13 22:27:10 +04:00
Egor Kislitsyn 241a3d744a
Add ActivityExpirationPolicy 2020-02-13 22:27:10 +04:00
Maksim Pechnikov 6f9839c73c Merge branch 'develop' into issue/1276 2020-02-13 20:43:34 +03:00
Maksim Pechnikov da44ee5b0f Merge branch 'develop' into issue/1276 2020-02-13 09:20:34 +03:00
Maksim Pechnikov 58574ef156 Merge branch 'develop' into issue/1276 2020-02-11 08:35:26 +03:00
Maksim Pechnikov 3830cb538b removed a comments 2020-02-10 09:14:15 +03:00
Maksim Pechnikov cd040691bd maked `unread_count` as virtual field 2020-02-10 09:01:45 +03:00
Maksim Pechnikov b87533760b Merge branch 'develop' into issue/1276 2020-02-10 07:59:52 +03:00
Maksim Pechnikov ba5e8a6444 Merge branch 'develop' into issue/1276 2020-01-28 21:11:13 +03:00
Maksim Pechnikov e442ea5722 Merge branch 'develop' into issue/1276 2020-01-27 15:20:47 +03:00
lain d4bafabfd1 Beginnings of the create validator 2019-12-09 10:39:14 +01:00
Maksim Pechnikov 6fbafb1cdc Merge branch 'develop' into issue/1276 2019-12-08 20:14:28 +03:00
lain 1993d7096d Validators: Add a type for the datetime used in AP. 2019-12-05 12:33:06 +01:00
Maksim Pechnikov 49bb0a130f Merge branch 'develop' into issue/1276 2019-12-05 12:22:19 +03:00
lain e9993acdbb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel 2019-12-04 16:35:59 +01:00
Maksim Pechnikov b9041c2097 added recount unread notifications to markers 2019-11-15 22:46:58 +03:00
Maksim Pechnikov b5b62f42b2 update Marker.multi_set_unread_count 2019-11-12 15:59:34 +03:00
Maksim Pechnikov ddbfc995ac clean sql query 2019-11-11 17:06:41 +03:00
lain 1bd1f62af5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel 2019-11-05 15:21:00 +01:00
lain faced6236b NoteValidator: Add very basic validator for Note objects. 2019-11-05 15:02:31 +01:00
lain 3d1b445cbf Object Validators: Extract common validations. 2019-11-05 15:02:09 +01:00
Maksim Pechnikov ff6c727739 Merge branch 'develop' into issue/1276 2019-11-04 20:24:53 +03:00
Maksim Pechnikov 57995fa8cf fix migrate
update migrate
2019-11-03 20:44:59 +03:00
Maksim Pechnikov fd8099fb68 Merge branch 'develop' into issue/1276 2019-10-31 21:09:46 +03:00
Maksim Pechnikov 1b3a942a84 fix format 2019-10-31 17:38:12 +03:00
Maksim Pechnikov 58da7f6620 updated docs\changelog 2019-10-31 17:34:17 +03:00
Maksim Pechnikov 209319c8d2 update marker api 2019-10-30 23:49:05 +03:00
Maksim Pechnikov 1b82eb6d41 move sql (update_markers) from migrate to mix task 2019-10-30 23:22:38 +03:00
Maksim Pechnikov d719078699 Merge branch 'develop' into issue/1276 2019-10-30 23:07:18 +03:00
Maksim Pechnikov b27a92e8fa Merge branch 'develop' into issue/1276 2019-10-29 22:23:19 +03:00
Maksim Pechnikov 922e3d082c add test 2019-10-24 12:17:50 +03:00
Maksim Pechnikov 99cf1ef9be Merge branch 'develop' into issue/1276 2019-10-24 09:23:59 +03:00
Maksim Pechnikov d3fb9e02cc add tests 2019-10-23 22:48:04 +03:00
Maksim Pechnikov aa64b3108b fix migrate 2019-10-23 22:02:59 +03:00
lain 25077812bf SideEffectsTest: Fix test. 2019-10-23 12:25:20 +02:00
lain 1adafa0966 Credo fixes. 2019-10-23 12:18:05 +02:00
lain 97d5c79aa0 Add Pipeline module, test for federation. 2019-10-23 11:52:27 +02:00
Maksim Pechnikov 9a4afbd2a0 added update unread_count for notifications 2019-10-23 11:22:48 +03:00
Mark Felder 752d0c6833 Relocate to configuration subdir 2019-10-22 15:14:04 -05:00
Mark Felder 47a551837a Remove proxy_cache_lock suggestion 2019-10-22 15:13:42 -05:00
Mark Felder b9d164fb89 Formatting 2019-10-22 14:12:01 -05:00
Mark Felder a1ad8dc349 Leverage nginx proxy cache to store items with a 1 year TTL with no size limit.
It does not purge items when they expire, but will only update them if the origin's
copy has changed for some reason. If origin is offline/unavailable or gone forever
it will still serve the cached copies.
2019-10-22 14:07:59 -05:00
Mark Felder c077dc7af5 Initial doc about storing remote media 2019-10-22 11:52:21 -05:00
Maksim Pechnikov d4270397dc Marker: added unread_count field 2019-10-22 14:51:46 +03:00
lain f1381d68e7 StatusControllerTest: Capture log. 2019-10-19 14:46:14 +02:00
lain 15bbc34c07 Tests: Capture log. 2019-10-18 12:44:53 +02:00
lain 4ec299ea9c CommonAPI tests: Capture logs. 2019-10-18 12:11:25 +02:00
lain 203d61b950 Transmogrifier: Make proper use of the LikeValidator. 2019-10-17 19:35:31 +02:00
lain 66452f518f ObjectValidator: Rewrite LikeValidator with Ecto. 2019-10-17 18:36:52 +02:00
lain 081e8206ab Transmogrifier: Use new ingestion pipeline for Likes. 2019-10-16 17:03:21 +02:00
lain 6e4f52f8a2 Introduce new ingestion pipeline structure, implement internal Likes with it. 2019-10-16 16:16:39 +02:00
5844 changed files with 171605 additions and 81477 deletions

View File

@ -25,7 +25,7 @@
#
# If you create your own checks, you must specify the source files for
# them here, so they can be loaded by Credo before running the analysis.
requires: [],
requires: ["./test/credo/check/consistency/file_location.ex"],
#
# Credo automatically checks for updates, like e.g. Hex does.
# You can disable this behaviour below:
@ -71,7 +71,6 @@
# set this value to 0 (zero).
{Credo.Check.Design.TagTODO, exit_status: 0},
{Credo.Check.Design.TagFIXME, exit_status: 0},
{Credo.Check.Readability.FunctionNames},
{Credo.Check.Readability.LargeNumbers},
{Credo.Check.Readability.MaxLineLength, priority: :low, max_length: 100},
@ -91,7 +90,6 @@
{Credo.Check.Readability.VariableNames},
{Credo.Check.Readability.Semicolons},
{Credo.Check.Readability.SpaceAfterCommas},
{Credo.Check.Refactor.DoubleBooleanNegation},
{Credo.Check.Refactor.CondStatements},
{Credo.Check.Refactor.CyclomaticComplexity},
@ -102,7 +100,6 @@
{Credo.Check.Refactor.Nesting},
{Credo.Check.Refactor.PipeChainStart},
{Credo.Check.Refactor.UnlessWithElse},
{Credo.Check.Warning.BoolOperationOnSameValues},
{Credo.Check.Warning.IExPry},
{Credo.Check.Warning.IoInspect},
@ -131,6 +128,7 @@
# Custom checks can be created using `mix credo.gen.check`.
#
{Credo.Check.Consistency.FileLocation}
]
}
]

View File

@ -1,3 +1,3 @@
[
inputs: ["mix.exs", "{config,lib,test}/**/*.{ex,exs}", "priv/repo/migrations/*.exs", "priv/scrubbers/*.ex"]
inputs: ["mix.exs", "{config,lib,test}/**/*.{ex,exs}", "priv/repo/migrations/*.exs", "priv/repo/optional_migrations/**/*.exs", "priv/scrubbers/*.ex"]
]

8
.gitattributes vendored
View File

@ -1,2 +1,10 @@
*.ex diff=elixir
*.exs diff=elixir
priv/static/instance/static.css diff=css
# Most of js/css files included in the repo are minified bundles,
# and we don't want to search/diff those as text files.
*.js binary
*.js.map binary
*.css binary

11
.gitignore vendored
View File

@ -3,8 +3,10 @@
/db
/deps
/*.ez
/test/instance
/test/uploads
/.elixir_ls
/test/fixtures/DSCN0010_tmp.jpg
/test/fixtures/test_tmp.txt
/test/fixtures/image_tmp.jpg
/test/tmp/
@ -26,9 +28,12 @@ erl_crash.dump
# variables.
/config/*.secret.exs
/config/generated_config.exs
/config/runtime.exs
/config/*.env
# Database setup file, some may forget to delete it
/config/setup_db.psql
/config/setup_db*.psql
.DS_Store
.env
@ -49,3 +54,7 @@ pleroma.iml
# asdf
.tool-versions
# Editor temp files
/*~
/*#

View File

@ -1,4 +1,4 @@
image: elixir:1.8.1
image: git.pleroma.social:5050/pleroma/pleroma/ci-base
variables: &global_variables
POSTGRES_DB: pleroma_test
@ -8,7 +8,9 @@ variables: &global_variables
MIX_ENV: test
cache: &global_cache_policy
key: ${CI_COMMIT_REF_SLUG}
key:
files:
- mix.lock
paths:
- deps
- _build
@ -22,46 +24,87 @@ stages:
- docker
before_script:
- mix local.hex --force
- mix local.rebar --force
- echo $MIX_ENV
- rm -rf _build/*/lib/pleroma
- mix deps.get
after_script:
- rm -rf _build/*/lib/pleroma
build:
stage: build
only:
changes: &build_changes_policy
- ".gitlab-ci.yml"
- "**/*.ex"
- "**/*.exs"
- "mix.lock"
script:
- mix deps.get
- mix compile --force
spec-build:
stage: test
only:
changes:
- ".gitlab-ci.yml"
- "lib/pleroma/web/api_spec/**/*.ex"
- "lib/pleroma/web/api_spec.ex"
artifacts:
paths:
- spec.json
script:
- mix pleroma.openapi_spec spec.json
benchmark:
stage: benchmark
when: manual
variables:
MIX_ENV: benchmark
services:
- name: postgres:9.6
- name: postgres:9.6-alpine
alias: postgres
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
script:
- mix deps.get
- mix ecto.create
- mix ecto.migrate
- mix pleroma.load_testing
unit-testing:
stage: test
only:
changes: *build_changes_policy
cache: &testing_cache_policy
<<: *global_cache_policy
policy: pull
services:
- name: postgres:9.6
- name: postgres:13-alpine
alias: postgres
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
script:
- mix deps.get
- mix ecto.create
- mix ecto.migrate
- mix coveralls --preload-modules
unit-testing-erratic:
stage: test
retry: 2
allow_failure: true
only:
changes: *build_changes_policy
cache: &testing_cache_policy
<<: *global_cache_policy
policy: pull
services:
- name: postgres:13-alpine
alias: postgres
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
script:
- mix ecto.create
- mix ecto.migrate
- mix test --only=erratic
# Removed to fix CI issue. In this early state it wasn't adding much value anyway.
# TODO Fix and reinstate federated testing
# federated-testing:
@ -80,6 +123,8 @@ unit-testing:
unit-testing-rum:
stage: test
only:
changes: *build_changes_policy
cache: *testing_cache_policy
services:
- name: minibikini/postgres-with-rum:12
@ -89,25 +134,45 @@ unit-testing-rum:
<<: *global_variables
RUM_ENABLED: "true"
script:
- mix deps.get
- mix ecto.create
- mix ecto.migrate
- "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
- mix test --preload-modules
lint:
image: &current_elixir elixir:1.12-alpine
stage: test
only:
changes: *build_changes_policy
cache: *testing_cache_policy
before_script: &current_bfr_script
- apk update
- apk add build-base cmake file-dev git openssl
- mix local.hex --force
- mix local.rebar --force
- mix deps.get
script:
- mix format --check-formatted
analysis:
stage: test
only:
changes: *build_changes_policy
cache: *testing_cache_policy
script:
- mix deps.get
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
cycles:
image: *current_elixir
stage: test
only:
changes: *build_changes_policy
cache: {}
before_script: *current_bfr_script
script:
- mix compile
- mix xref graph --format cycles --label compile | awk '{print $0} END{exit ($0 != "No cycles found")}'
docs-deploy:
stage: deploy
cache: *testing_cache_policy
@ -148,6 +213,20 @@ review_app:
- (ssh -t dokku@pleroma.online -- certs:add "$CI_ENVIRONMENT_SLUG" /home/dokku/server.crt /home/dokku/server.key) || true
- git push -f dokku@pleroma.online:$CI_ENVIRONMENT_SLUG $CI_COMMIT_SHA:refs/heads/master
spec-deploy:
stage: deploy
artifacts:
paths:
- spec.json
only:
- develop@pleroma/pleroma
image: alpine:latest
before_script:
- apk add curl
script:
- curl -X POST -F"token=$API_DOCS_PIPELINE_TRIGGER" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" -F"variables[JOB_REF]=$CI_JOB_ID" https://git.pleroma.social/api/v4/projects/1130/trigger/pipeline
stop_review_app:
image: alpine:3.9
stage: deploy
@ -168,8 +247,7 @@ stop_review_app:
amd64:
stage: release
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0
image: elixir:1.10.4
only: &release-only
- stable@pleroma/pleroma
- develop@pleroma/pleroma
@ -192,7 +270,8 @@ amd64:
variables: &release-variables
MIX_ENV: prod
before_script: &before-release
- echo "import Mix.Config" > config/prod.secret.exs
- apt-get update && apt-get install -y cmake libmagic-dev
- echo "import Config" > config/prod.secret.exs
- mix local.hex --force
- mix local.rebar --force
script: &release
@ -206,13 +285,12 @@ amd64-musl:
stage: release
artifacts: *release-artifacts
only: *release-only
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0-alpine
image: elixir:1.10.4-alpine
cache: *release-cache
variables: *release-variables
before_script: &before-release-musl
- apk add git gcc g++ musl-dev make
- echo "import Mix.Config" > config/prod.secret.exs
- apk add git build-base cmake file-dev openssl
- echo "import Config" > config/prod.secret.exs
- mix local.hex --force
- mix local.rebar --force
script: *release
@ -222,9 +300,8 @@ arm:
artifacts: *release-artifacts
only: *release-only
tags:
- arm32
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0-arm
- arm32-specified
image: arm32v7/elixir:1.10.4
cache: *release-cache
variables: *release-variables
before_script: *before-release
@ -235,9 +312,8 @@ arm-musl:
artifacts: *release-artifacts
only: *release-only
tags:
- arm32
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0-arm-alpine
- arm32-specified
image: arm32v7/elixir:1.10.4-alpine
cache: *release-cache
variables: *release-variables
before_script: *before-release-musl
@ -249,8 +325,7 @@ arm64:
only: *release-only
tags:
- arm
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0-arm64
image: arm64v8/elixir:1.10.4
cache: *release-cache
variables: *release-variables
before_script: *before-release
@ -262,8 +337,7 @@ arm64-musl:
only: *release-only
tags:
- arm
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0-arm64-alpine
image: arm64v8/elixir:1.10.4-alpine
cache: *release-cache
variables: *release-variables
before_script: *before-release-musl
@ -281,6 +355,8 @@ docker:
IMAGE_TAG_SLUG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest
IMAGE_TAG_LATEST_STABLE: $CI_REGISTRY_IMAGE:latest-stable
DOCKER_BUILDX_URL: https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
DOCKER_BUILDX_HASH: 980e6b9655f971991fbbb5fd6cd19f1672386195
before_script: &before-docker
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $IMAGE_TAG_SLUG || true
@ -288,10 +364,14 @@ docker:
- export CI_VCS_REF=$CI_COMMIT_SHORT_SHA
allow_failure: true
script:
- docker build --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST .
- docker push $IMAGE_TAG
- docker push $IMAGE_TAG_SLUG
- docker push $IMAGE_TAG_LATEST
- mkdir -p /root/.docker/cli-plugins
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
- chmod +x ~/.docker/cli-plugins/docker-buildx
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx create --name mbuilder --driver docker-container --use
- docker buildx inspect --bootstrap
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST .
tags:
- dind
only:
@ -306,10 +386,14 @@ docker-stable:
before_script: *before-docker
allow_failure: true
script:
- docker build --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST_STABLE .
- docker push $IMAGE_TAG
- docker push $IMAGE_TAG_SLUG
- docker push $IMAGE_TAG_LATEST_STABLE
- mkdir -p /root/.docker/cli-plugins
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
- chmod +x ~/.docker/cli-plugins/docker-buildx
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx create --name mbuilder --driver docker-container --use
- docker buildx inspect --bootstrap
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST_STABLE .
tags:
- dind
only:
@ -324,10 +408,39 @@ docker-release:
before_script: *before-docker
allow_failure: true
script:
- docker build --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG .
- docker push $IMAGE_TAG
- docker push $IMAGE_TAG_SLUG
script:
- mkdir -p /root/.docker/cli-plugins
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
- chmod +x ~/.docker/cli-plugins/docker-buildx
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx create --name mbuilder --driver docker-container --use
- docker buildx inspect --bootstrap
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG .
tags:
- dind
only:
- /^release/.*$/@pleroma/pleroma
docker-adhoc:
stage: docker
image: docker:latest
cache: {}
dependencies: []
variables: *docker-variables
before_script: *before-docker
allow_failure: true
script:
script:
- mkdir -p /root/.docker/cli-plugins
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
- chmod +x ~/.docker/cli-plugins/docker-buildx
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker buildx create --name mbuilder --driver docker-container --use
- docker buildx inspect --bootstrap
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG .
tags:
- dind
only:
- /^build-docker/.*$/@pleroma/pleroma

View File

@ -0,0 +1,18 @@
<!--
### 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):
* Elixir version (`elixir -v` for from source installations, N/A for OTP):
* Operating system:
* PostgreSQL version (`psql -V`):
### Bug description

View File

@ -0,0 +1,6 @@
### Release checklist
* [ ] Bump version in `mix.exs`
* [ ] Compile a changelog
* [ ] Create an MR with an announcement to pleroma.social
* [ ] Tag the release
* [ ] Merge `stable` into `develop` (in case the fixes are already in develop, use `git merge -s ours --no-commit` and manually merge the changelogs)

View File

@ -1,2 +1,3 @@
Ariadne Conill <ariadne@dereferenced.org> <nenolod@dereferenced.org>
Ariadne Conill <ariadne@dereferenced.org> <nenolod@gmail.com>
rinpatch <rin@patch.cx> <rinpatch@sdf.org>

395
CC-BY-4.0 Normal file
View File

@ -0,0 +1,395 @@
Attribution 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of
these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.

View File

@ -1,8 +1,545 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## Unreleased
### Removed
- MastoFE
### Changed
- **Breaking:** Elixir >=1.10 is now required (was >= 1.9)
- Allow users to remove their emails if instance does not need email to register
- Uploadfilter `Pleroma.Upload.Filter.Exiftool` has been renamed to `Pleroma.Upload.Filter.Exiftool.StripLocation`
- **Breaking**: `/api/v1/pleroma/backups` endpoints now requires `read:backups` scope instead of `read:accounts`
- Updated the recommended pleroma.vcl configuration for Varnish to target Varnish 7.0+
### Added
- `activeMonth` and `activeHalfyear` fields in NodeInfo usage.users object
- Experimental support for Finch. Put `config :tesla, :adapter, {Tesla.Adapter.Finch, name: MyFinch}` in your secrets file to use it. Reverse Proxy will still use Hackney.
- `ForceMentionsInPostContent` MRF policy
- AdminAPI: allow moderators to manage reports, users, invites, and custom emojis
- AdminAPI: restrict moderators to access sensitive data: change user credentials, get password reset token, read private statuses and chats, etc
- PleromaAPI: Add remote follow API endpoint at `POST /api/v1/pleroma/remote_interaction`
- MastoAPI: Add `GET /api/v1/accounts/lookup`
- MastoAPI: Profile Directory support
- MastoAPI: Support v2 Suggestions (handpicked accounts only)
- Ability to log slow Ecto queries by configuring `:pleroma, :telemetry, :slow_queries_logging`
- Added Phoenix LiveDashboard at `/phoenix/live_dashboard`
- Added `/manifest.json` for progressive web apps.
- MastoAPI: Support for `birthday` and `show_birthday` field in `/api/v1/accounts/update_credentials`.
- Configuration: Add `birthday_required` and `birthday_min_age` settings to provide a way to require users to enter their birth date.
- PleromaAPI: Add `GET /api/v1/pleroma/birthdays` API endpoint
- Make backend-rendered pages translatable. This includes emails. Pages returned as a HTTP response are translated using the language specified in the `userLanguage` cookie, or the `Accept-Language` header. Emails are translated using the `language` field when registering. This language can be changed by `PATCH /api/v1/accounts/update_credentials` with the `language` field.
- Uploadfilter `Pleroma.Upload.Filter.Exiftool.ReadDescription` returns description values to the FE so they can pre fill the image description field
- Added move account API
- Enable remote users to interact with posts
### Fixed
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
- Handle Reject for already-accepted Follows properly
- Display OpenGraph data on alternative notice routes.
- Fix replies count for remote replies
- Fixed hashtags disappearing from the end of lines when Markdown is enabled
- ChatAPI: Add link headers
- Limited number of search results to 40 to prevent DoS attacks
- ActivityPub: fixed federation of attachment dimensions
- Fixed benchmarks
- Elixir 1.13 support
- Fixed crash when pinned_objects is nil
- Fixed slow timelines when there are a lot of deactivated users
- Fixed account deletion API
- Fixed lowercase HTTP HEAD method in the Media Proxy Preview code
### Removed
## 2.4.3 - 2022-05-06
### Security
- Private `/objects/` and `/activities/` leaking if cached by authenticated user
- SweetXML library DTD bomb
## 2.4.2 - 2022-01-10
### Fixed
- Federation issues caused by HTTP pool checkout timeouts
- Compatibility with Elixir 1.13
### Upgrade notes
1. Restart Pleroma
## 2.4.1 - 2021-08-29
### Changed
- Make `mix pleroma.database set_text_search_config` run concurrently and indefinitely
### Added
- AdminAPI: Missing configuration description for StealEmojiPolicy
### Fixed
- MastodonAPI: Stream out Create activities
- MRF ObjectAgePolicy: Fix pattern matching on "published"
- TwitterAPI: Make `change_password` and `change_email` require params on body instead of query
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
- AdminAPI: Fix rendering reports containing a `nil` object
- Mastodon API: Activity Search fallbacks on status fetching after a DB Timeout/Error
- Mastodon API: Fix crash in Streamer related to reblogging
- AdminAPI: List available frontends when `static/frontends` folder is missing
- Make activity search properly use language-aware GIN indexes
- AdminAPI: Fix suggestions for MRF Policies
## 2.4.0 - 2021-08-08
### Changed
- **Breaking:** Configuration: `:chat, enabled` moved to `:shout, enabled` and `:instance, chat_limit` moved to `:shout, limit`
- **Breaking** Entries for simple_policy, transparency_exclusions and quarantined_instances now list both the instance and a reason.
- Support for Erlang/OTP 24
- The `application` metadata returned with statuses is no longer hardcoded. Apps that want to display these details will now have valid data for new posts after this change.
- HTTPSecurityPlug now sends a response header to opt out of Google's FLoC (Federated Learning of Cohorts) targeted advertising.
- Email address is now returned if requesting user is the owner of the user account so it can be exposed in client and FE user settings UIs.
- Improved Twittercard and OpenGraph meta tag generation including thumbnails and image dimension metadata when available.
- AdminAPI: sort users so the newest are at the top.
- ActivityPub Client-to-Server(C2S): Limitation on the type of Activity/Object are lifted as they are now passed through ObjectValidators
- MRF (`AntiFollowbotPolicy`): Bot accounts are now also considered followbots. Users can still allow bots to follow them by first following the bot.
### Added
- MRF (`FollowBotPolicy`): New MRF Policy which makes a designated local Bot account attempt to follow all users in public Notes received by your instance. Users who require approving follower requests or have #nobot in their profile are excluded.
- Return OAuth token `id` (primary key) in POST `/oauth/token`.
- AdminAPI: return `created_at` date with users.
- AdminAPI: add DELETE `/api/v1/pleroma/admin/instances/:instance` to delete all content from a remote instance.
- `AnalyzeMetadata` upload filter for extracting image/video attachment dimensions and generating blurhashes for images. Blurhashes for videos are not generated at this time.
- Attachment dimensions and blurhashes are federated when available.
- Mastodon API: support `poll` notification.
- Pinned posts federation
### Fixed
- Don't crash so hard when email settings are invalid.
- Checking activated Upload Filters for required commands.
- Remote users can no longer reappear after being deleted.
- Deactivated users may now be deleted.
- Deleting an activity with a lot of likes/boosts no longer causes a database timeout.
- Mix task `pleroma.database prune_objects`
- Fixed rendering of JSON errors on ActivityPub endpoints.
- Linkify: Parsing crash with URLs ending in unbalanced closed paren, no path separator, and no query parameters
- Try to save exported ConfigDB settings (migrate_from_db) in the system temp directory if default location is not writable.
- Uploading custom instance thumbnail via AdminAPI/AdminFE generated invalid URL to the image
- Applying ConcurrentLimiter settings via AdminAPI
- User login failures if their `notification_settings` were in a NULL state.
- Mix task `pleroma.user delete_activities` query transaction timeout is now :infinity
- MRF (`SimplePolicy`): Embedded objects are now checked. If any embedded object would be rejected, its parent is rejected. This fixes Announces leaking posts from blocked domains.
- Fixed some Markdown issues, including trailing slash in links.
### Removed
- **Breaking**: Remove deprecated `/api/qvitter/statuses/notifications/read` (replaced by `/api/v1/pleroma/notifications/read`)
## [2.3.0] - 2021-03-01
### Security
- Fixed client user agent leaking through MediaProxy
### Removed
- `:auth, :enforce_oauth_admin_scope_usage` configuration option.
### Changed
- **Breaking**: Changed `mix pleroma.user toggle_confirmed` to `mix pleroma.user confirm`
- **Breaking**: Changed `mix pleroma.user toggle_activated` to `mix pleroma.user activate/deactivate`
- **Breaking:** NSFW hashtag is no longer added on sensitive posts
- Polls now always return a `voters_count`, even if they are single-choice.
- Admin Emails: The ap id is used as the user link in emails now.
- Improved registration workflow for email confirmation and account approval modes.
- Search: When using Postgres 11+, Pleroma will use the `websearch_to_tsvector` function to parse search queries.
- Emoji: Support the full Unicode 13.1 set of Emoji for reactions, plus regional indicators.
- Deprecated `Pleroma.Uploaders.S3, :public_endpoint`. Now `Pleroma.Upload, :base_url` is the standard configuration key for all uploaders.
- Improved Apache webserver support: updated sample configuration, MediaProxy cache invalidation verified with the included sample script
- Improve OAuth 2.0 provider support. A missing `fqn` field was added to the response, but does not expose the user's email address.
- Provide redirect of external posts from `/notice/:id` to their original URL
- Admins no longer receive notifications for reports if they are the actor making the report.
- Improved Mailer configuration setting descriptions for AdminFE.
- Updated default avatar to look nicer.
<details>
<summary>API Changes</summary>
- **Breaking:** AdminAPI changed User field `confirmation_pending` to `is_confirmed`
- **Breaking:** AdminAPI changed User field `approval_pending` to `is_approved`
- **Breaking**: AdminAPI changed User field `deactivated` to `is_active`
- **Breaking:** AdminAPI `GET /api/pleroma/admin/users/:nickname_or_id/statuses` changed response format and added the number of total users posts.
- **Breaking:** AdminAPI `GET /api/pleroma/admin/instances/:instance/statuses` changed response format and added the number of total users posts.
- Admin API: Reports now ordered by newest
- Pleroma API: `GET /api/v1/pleroma/chats` is deprecated in favor of `GET /api/v2/pleroma/chats`.
- Pleroma API: Reroute `/api/pleroma/*` to `/api/v1/pleroma/*`
</details>
- Improved hashtag timeline performance (requires a background migration).
### Added
- Reports now generate notifications for admins and mods.
- Support for local-only statuses.
- Support pagination of blocks and mutes.
- Account backup.
- Configuration: Add `:instance, autofollowing_nicknames` setting to provide a way to make accounts automatically follow new users that register on the local Pleroma instance.
- `[:activitypub, :blockers_visible]` config to control visibility of blockers.
- Ability to view remote timelines, with ex. `/api/v1/timelines/public?instance=lain.com` and streams `public:remote` and `public:remote:media`.
- The site title is now injected as a `title` tag like preloads or metadata.
- Password reset tokens now are not accepted after a certain age.
- Mix tasks to help with displaying and removing ConfigDB entries. See `mix pleroma.config`.
- OAuth form improvements: users are remembered by their cookie, the CSS is overridable by the admin, and the style has been improved.
- OAuth improvements and fixes: more secure session-based authentication (by token that could be revoked anytime), ability to revoke belonging OAuth token from any client etc.
- Ability to set ActivityPub aliases for follower migration.
- Configurable background job limits for RichMedia (link previews) and MediaProxyWarmingPolicy
- Ability to define custom HTTP headers per each frontend
- MRF (`NoEmptyPolicy`): New MRF Policy which will deny empty statuses or statuses of only mentions from being created by local users
- New users will receive a simple email confirming their registration if no other emails will be dispatched. (e.g., Welcome, Confirmation, or Approval Required)
<details>
<summary>API Changes</summary>
- Admin API: (`GET /api/pleroma/admin/users`) filter users by `unconfirmed` status and `actor_type`.
- Admin API: OpenAPI spec for the user-related operations
- Pleroma API: `GET /api/v2/pleroma/chats` added. It is exactly like `GET /api/v1/pleroma/chats` except supports pagination.
- Pleroma API: Add `idempotency_key` to the chat message entity that can be used for optimistic message sending.
- Pleroma API: (`GET /api/v1/pleroma/federation_status`) Add a way to get a list of unreachable instances.
- Mastodon API: User and conversation mutes can now auto-expire if `expires_in` parameter was given while adding the mute.
- Admin API: An endpoint to manage frontends.
- Streaming API: Add follow relationships updates.
- WebPush: Introduce `pleroma:chat_mention` and `pleroma:emoji_reaction` notification types.
- Mastodon API: Add monthly active users to `/api/v1/instance` (`pleroma.stats.mau`).
- Mastodon API: Home, public, hashtag & list timelines accept `only_media`, `remote` & `local` parameters for filtration.
- Mastodon API: `/api/v1/accounts/:id` & `/api/v1/mutes` endpoints accept `with_relationships` parameter and return filled `pleroma.relationship` field.
- Mastodon API: Endpoint to remove a conversation (`DELETE /api/v1/conversations/:id`).
- Mastodon API: `expires_in` in the scheduled post `params` field on `/api/v1/statuses` and `/api/v1/scheduled_statuses/:id` endpoints.
</details>
### Fixed
- Users with `is_discoverable` field set to false (default value) will appear in in-service search results but be hidden from external services (search bots etc.).
- Streaming API: Posts and notifications are not dropped, when CLI task is executing.
- Creating incorrect IPv4 address-style HTTP links when encountering certain numbers.
- Reblog API Endpoint: Do not set visibility parameter to public by default and let CommonAPI to infer it from status, so a user can reblog their private status without explicitly setting reblog visibility to private.
- Tag URLs in statuses are now absolute
- Removed duplicate jobs to purge expired activities
- File extensions of some attachments were incorrectly changed. This feature has been disabled for now.
- Mix task pleroma.instance creates missing parent directories if the configuration or SQL output paths are changed.
<details>
<summary>API Changes</summary>
- Mastodon API: Current user is now included in conversation if it's the only participant.
- Mastodon API: Fixed last_status.account being not filled with account data.
- Mastodon API: Fix not being able to add or remove multiple users at once in lists.
- Mastodon API: Fixed own_votes being not returned with poll data.
- Mastodon API: Fixed creation of scheduled posts with polls.
- Mastodon API: Support for expires_in/expires_at in the Filters.
</details>
## [2.2.2] - 2021-01-18
### Fixed
- StealEmojiPolicy creates dir for emojis, if it doesn't exist.
- Updated `elixir_make` to a non-retired version
### Upgrade notes
1. Restart Pleroma
## [2.2.1] - 2020-12-22
### Changed
- Updated Pleroma FE
### Fixed
- Config generation: rename `Pleroma.Upload.Filter.ExifTool` to `Pleroma.Upload.Filter.Exiftool`.
- S3 Uploads with Elixir 1.11.
- Mix task pleroma.user delete_activities for source installations.
- Search: RUM index search speed has been fixed.
- Rich Media Previews sometimes showed the wrong preview due to a bug following redirects.
- Fixes for the autolinker.
- Forwarded reports duplication from Pleroma instances.
- Emoji Reaction activity filtering from blocked and muted accounts.
- <details>
<summary>API</summary>
- Statuses were not displayed for Mastodon forwarded reports.
</details>
### Upgrade notes
1. Restart Pleroma
## [2.2.0] - 2020-11-12
### Security
- Fixed the possibility of using file uploads to spoof posts.
### Changed
- **Breaking** Requires `libmagic` (or `file`) to guess file types.
- **Breaking:** App metrics endpoint (`/api/pleroma/app_metrics`) is disabled by default, check `docs/API/prometheus.md` on enabling and configuring.
- **Breaking:** Pleroma Admin API: emoji packs and files routes changed.
- **Breaking:** Sensitive/NSFW statuses no longer disable link previews.
- Search: Users are now findable by their urls.
- Renamed `:await_up_timeout` in `:connections_pool` namespace to `:connect_timeout`, old name is deprecated.
- Renamed `:timeout` in `pools` namespace to `:recv_timeout`, old name is deprecated.
- The `discoverable` field in the `User` struct will now add a NOINDEX metatag to profile pages when false.
- Users with the `is_discoverable` field set to false will not show up in searches ([bug](https://git.pleroma.social/pleroma/pleroma/-/issues/2301)).
- Minimum lifetime for ephmeral activities changed to 10 minutes and made configurable (`:min_lifetime` option).
- Introduced optional dependencies on `ffmpeg`, `ImageMagick`, `exiftool` software packages. Please refer to `docs/installation/optional/media_graphics_packages.md`.
- <details>
<summary>API Changes</summary>
- API: Empty parameter values for integer parameters are now ignored in non-strict validaton mode.
</details>
### Removed
- **Breaking:** `Pleroma.Workers.Cron.StatsWorker` setting from Oban `:crontab` (moved to a simpler implementation).
- **Breaking:** `Pleroma.Workers.Cron.ClearOauthTokenWorker` setting from Oban `:crontab` (moved to scheduled jobs).
- **Breaking:** `Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker` setting from Oban `:crontab` (moved to scheduled jobs).
- Removed `:managed_config` option. In practice, it was accidentally removed with 2.0.0 release when frontends were
switched to a new configuration mechanism, however it was not officially removed until now.
### Added
- Media preview proxy (requires `ffmpeg` and `ImageMagick` to be installed and media proxy to be enabled; see `:media_preview_proxy` config for more details).
- Mix tasks for controlling user account confirmation status in bulk (`mix pleroma.user confirm_all` and `mix pleroma.user unconfirm_all`)
- Mix task for sending confirmation emails to all unconfirmed users (`mix pleroma.email resend_confirmation_emails`)
- Mix task option for force-unfollowing relays
- App metrics: ability to restrict access to specified IP whitelist.
<details>
<summary>API Changes</summary>
- Admin API: Importing emoji from a zip file
- Pleroma API: Importing the mutes users from CSV files.
- Pleroma API: Pagination for remote/local packs and emoji.
</details>
### Fixed
- Add documented-but-missing chat pagination.
- Allow sending out emails again.
- Allow sending chat messages to yourself
- OStatus / static FE endpoints: fixed inaccessibility for anonymous users on non-federating instances, switched to handling per `:restrict_unauthenticated` setting.
- Fix remote users with a whitespace name.
### Upgrade notes
1. Install libmagic and development headers (`libmagic-dev` on Ubuntu/Debian, `file-dev` on Alpine Linux)
2. Run database migrations (inside Pleroma directory):
- OTP: `./bin/pleroma_ctl migrate`
- From Source: `mix ecto.migrate`
3. Restart Pleroma
## [2.1.2] - 2020-09-17
### Security
- Fix most MRF rules either crashing or not being applied to objects passed into the Common Pipeline (ChatMessage, Question, Answer, Audio, Event).
### Fixed
- Welcome Chat messages preventing user registration with MRF Simple Policy applied to the local instance.
- Mastodon API: the public timeline returning an error when the `reply_visibility` parameter is set to `self` for an unauthenticated user.
- Mastodon Streaming API: Handler crashes on authentication failures, resulting in error logs.
- Mastodon Streaming API: Error logs on client pings.
- Rich media: Log spam on failures. Now the error is only logged once per attempt.
### Changed
- Rich Media: A HEAD request is now done to the url, to ensure it has the appropriate content type and size before proceeding with a GET.
### Upgrade notes
1. Restart Pleroma
## [2.1.1] - 2020-09-08
### Security
- Fix possible DoS in Mastodon API user search due to an error in match clauses, leading to an infinite recursion and subsequent OOM with certain inputs.
- Fix metadata leak for accounts and statuses on private instances.
- Fix possible DoS in Admin API search using an atom leak vulnerability. Authentication with admin rights was required to exploit.
### Changed
- **Breaking:** The metadata providers RelMe and Feed are no longer configurable. RelMe should always be activated and Feed only provides a <link> header tag for the actual RSS/Atom feed when the instance is public.
- Improved error message when cmake is not available at build stage.
### Added
- Rich media failure tracking (along with `:failure_backoff` option).
<details>
<summary>Admin API Changes</summary>
- Add `PATCH /api/pleroma/admin/instance_document/:document_name` to modify the Terms of Service and Instance Panel HTML pages via Admin API
</details>
### Fixed
- Default HTTP adapter not respecting pool setting, leading to possible OOM.
- Fixed uploading webp images when the Exiftool Upload Filter is enabled by skipping them
- Mastodon API: Search parameter `following` now correctly returns the followings rather than the followers
- Mastodon API: Timelines hanging for (`number of posts with links * rich media timeout`) in the worst case.
Reduced to just rich media timeout.
- Mastodon API: Cards being wrong for preview statuses due to cache key collision.
- Password resets no longer processed for deactivated accounts.
- Favicon scraper raising exceptions on URLs longer than 255 characters.
## [2.1.0] - 2020-08-28
### Changed
- **Breaking:** The default descriptions on uploads are now empty. The old behavior (filename as default) can be configured, see the cheat sheet.
- **Breaking:** Added the ObjectAgePolicy to the default set of MRFs. This will delist and strip the follower collection of any message received that is older than 7 days. This will stop users from seeing very old messages in the timelines. The messages can still be viewed on the user's page and in conversations. They also still trigger notifications.
- **Breaking:** Elixir >=1.9 is now required (was >= 1.8)
- **Breaking:** Configuration: `:auto_linker, :opts` moved to `:pleroma, Pleroma.Formatter`. Old config namespace is deprecated.
- **Breaking:** Configuration: `:instance, welcome_user_nickname` moved to `:welcome, :direct_message, :sender_nickname`, `:instance, :welcome_message` moved to `:welcome, :direct_message, :message`. Old config namespace is deprecated.
- **Breaking:** LDAP: Fallback to local database authentication has been removed for security reasons and lack of a mechanism to ensure the passwords are synchronized when LDAP passwords are updated.
- **Breaking** Changed defaults for `:restrict_unauthenticated` so that when `:instance, :public` is set to `false` then all `:restrict_unauthenticated` items be effectively set to `true`. If you'd like to allow unauthenticated access to specific API endpoints on a private instance, please explicitly set `:restrict_unauthenticated` to non-default value in `config/prod.secret.exs`.
- In Conversations, return only direct messages as `last_status`
- Using the `only_media` filter on timelines will now exclude reblog media
- MFR policy to set global expiration for all local Create activities
- OGP rich media parser merged with TwitterCard
- Configuration: `:instance, rewrite_policy` moved to `:mrf, policies`, `:instance, :mrf_transparency` moved to `:mrf, :transparency`, `:instance, :mrf_transparency_exclusions` moved to `:mrf, :transparency_exclusions`. Old config namespace is deprecated.
- Configuration: `:media_proxy, whitelist` format changed to host with scheme (e.g. `http://example.com` instead of `example.com`). Domain format is deprecated.
<details>
<summary>API Changes</summary>
- **Breaking:** Pleroma API: The routes to update avatar, banner and background have been removed.
- **Breaking:** Image description length is limited now.
- **Breaking:** Emoji API: changed methods and renamed routes.
- **Breaking:** Notification Settings API for suppressing notifications has been simplified down to `block_from_strangers`.
- **Breaking:** Notification Settings API option for hiding push notification contents has been renamed to `hide_notification_contents`.
- MastodonAPI: Allow removal of avatar, banner and background.
- Streaming: Repeats of a user's posts will no longer be pushed to the user's stream.
- Mastodon API: Added `pleroma.metadata.fields_limits` to /api/v1/instance
- Mastodon API: On deletion, returns the original post text.
- Mastodon API: Add `pleroma.unread_count` to the Marker entity.
- Mastodon API: Added `pleroma.metadata.post_formats` to /api/v1/instance
- Mastodon API (legacy): Allow query parameters for `/api/v1/domain_blocks`, e.g. `/api/v1/domain_blocks?domain=badposters.zone`
- Mastodon API: Make notifications about statuses from muted users and threads read automatically
- Pleroma API: `/api/pleroma/captcha` responses now include `seconds_valid` with an integer value.
</details>
<details>
<summary>Admin API Changes</summary>
- **Breaking** Changed relay `/api/pleroma/admin/relay` endpoints response format.
- Status visibility stats: now can return stats per instance.
- Mix task to refresh counter cache (`mix pleroma.refresh_counter_cache`)
</details>
### Removed
- **Breaking:** removed `with_move` parameter from notifications timeline.
### Added
- Frontends: Add mix task to install frontends.
- Frontends: Add configurable frontends for primary and admin fe.
- Configuration: Added a blacklist for email servers.
- Chats: Added `accepts_chat_messages` field to user, exposed in APIs and federation.
- Chats: Added support for federated chats. For details, see the docs.
- ActivityPub: Added support for existing AP ids for instances migrated from Mastodon.
- Instance: Add `background_image` to configuration and `/api/v1/instance`
- Instance: Extend `/api/v1/instance` with Pleroma-specific information.
- NodeInfo: `pleroma:api/v1/notifications:include_types_filter` to the `features` list.
- NodeInfo: `pleroma_emoji_reactions` to the `features` list.
- Configuration: `:restrict_unauthenticated` setting, restrict access for unauthenticated users to timelines (public and federate), user profiles and statuses.
- Configuration: Add `:database_config_whitelist` setting to whitelist settings which can be configured from AdminFE.
- Configuration: `filename_display_max_length` option to set filename truncate limit, if filename display enabled (0 = no limit).
- New HTTP adapter [gun](https://github.com/ninenines/gun). Gun adapter requires minimum OTP version of 22.2 otherwise Pleroma wont start. For hackney OTP update is not required.
- Mix task to create trusted OAuth App.
- Mix task to reset MFA for user accounts
- Notifications: Added `follow_request` notification type.
- Added `:reject_deletes` group to SimplePolicy
- MRF (`EmojiStealPolicy`): New MRF Policy which allows to automatically download emojis from remote instances
- Support pagination in emoji packs API (for packs and for files in pack)
- Support for viewing instances favicons next to posts and accounts
- Added Pleroma.Upload.Filter.Exiftool as an alternate EXIF stripping mechanism targeting GPS/location metadata.
- "By approval" registrations mode.
- Configuration: Added `:welcome` settings for the welcome message to newly registered users. You can send a welcome message as a direct message, chat or email.
- Ability to hide favourites and emoji reactions in the API with `[:instance, :show_reactions]` config.
<details>
<summary>API Changes</summary>
- Mastodon API: Add pleroma.parent_visible field to statuses.
- Mastodon API: Extended `/api/v1/instance`.
- Mastodon API: Support for `include_types` in `/api/v1/notifications`.
- Mastodon API: Added `/api/v1/notifications/:id/dismiss` endpoint.
- Mastodon API: Add support for filtering replies in public and home timelines.
- Mastodon API: Support for `bot` field in `/api/v1/accounts/update_credentials`.
- Mastodon API: Support irreversible property for filters.
- Mastodon API: Add pleroma.favicon field to accounts.
- Admin API: endpoints for create/update/delete OAuth Apps.
- Admin API: endpoint for status view.
- OTP: Add command to reload emoji packs
</details>
### Fixed
- Fix list pagination and other list issues.
- Support pagination in conversations API
- **Breaking**: SimplePolicy `:reject` and `:accept` allow deletions again
- Fix follower/blocks import when nicknames starts with @
- Filtering of push notifications on activities from blocked domains
- Resolving Peertube accounts with Webfinger
- `blob:` urls not being allowed by connect-src CSP
- Mastodon API: fix `GET /api/v1/notifications` not returning the full result set
- Rich Media Previews for Twitter links
- Admin API: fix `GET /api/pleroma/admin/users/:nickname/credentials` returning 404 when getting the credentials of a remote user while `:instance, :limit_to_local_content` is set to `:unauthenticated`
- Fix CSP policy generation to include remote Captcha services
- Fix edge case where MediaProxy truncates media, usually caused when Caddy is serving content for the other Federated instance.
- Emoji Packs could not be listed when instance was set to `public: false`
- Fix whole_word always returning false on filter get requests
- Migrations not working on OTP releases if the database was connected over ssl
- Fix relay following
## [2.0.7] - 2020-06-13
### Security
- Fix potential DoSes exploiting atom leaks in rich media parser and the `UserAllowListPolicy` MRF policy
### Fixed
- CSP: not allowing images/media from every host when mediaproxy is disabled
- CSP: not adding mediaproxy base url to image/media hosts
- StaticFE missing the CSS file
### Upgrade notes
1. Restart Pleroma
## [2.0.6] - 2020-06-09
### Security
- CSP: harden `image-src` and `media-src` when MediaProxy is used
### Fixed
- AP C2S: Fix pagination in inbox/outbox
- Various compilation errors on OTP 23
- Mastodon API streaming: Repeats from muted threads not being filtered
### Changed
- Various database performance improvements
### Upgrade notes
1. Run database migrations (inside Pleroma directory):
- OTP: `./bin/pleroma_ctl migrate`
- From Source: `mix ecto.migrate`
2. Restart Pleroma
## [2.0.5] - 2020-05-13
### Security
@ -74,6 +611,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
2. Run database migrations (inside Pleroma directory):
- OTP: `./bin/pleroma_ctl migrate`
- From Source: `mix ecto.migrate`
3. Reset status visibility counters (inside Pleroma directory):
- OTP: `./bin/pleroma_ctl refresh_counter_cache`
- From Source: `mix pleroma.refresh_counter_cache`
## [2.0.2] - 2020-04-08
### Added
@ -120,7 +661,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [2.0.0] - 2019-03-08
### Security
- Mastodon API: Fix being able to request enourmous amount of statuses in timelines leading to DoS. Now limited to 40 per request.
- Mastodon API: Fix being able to request enormous amount of statuses in timelines leading to DoS. Now limited to 40 per request.
### Removed
- **Breaking**: Removed 1.0+ deprecated configurations `Pleroma.Upload, :strip_exif` and `:instance, :dedupe_media`
@ -129,6 +670,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **Breaking**: Using third party engines for user recommendation
<details>
<summary>API Changes</summary>
- **Breaking**: AdminAPI: migrate_from_db endpoint
</details>
@ -164,7 +706,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **Breaking:** Admin API: Return link alongside with token on password reset
- **Breaking:** Admin API: `PUT /api/pleroma/admin/reports/:id` is now `PATCH /api/pleroma/admin/reports`, see admin_api.md for details
- **Breaking:** `/api/pleroma/admin/users/invite_token` now uses `POST`, changed accepted params and returns full invite in json instead of only token string.
- **Breaking** replying to reports is now "report notes", enpoint changed from `POST /api/pleroma/admin/reports/:id/respond` to `POST /api/pleroma/admin/reports/:id/notes`
- **Breaking** replying to reports is now "report notes", endpoint changed from `POST /api/pleroma/admin/reports/:id/respond` to `POST /api/pleroma/admin/reports/:id/notes`
- Mastodon API: stopped sanitizing display names, field names and subject fields since they are supposed to be treated as plaintext
- Admin API: Return `total` when querying for reports
- Mastodon API: Return `pleroma.direct_conversation_id` when creating a direct message (`POST /api/v1/statuses`)

11
COPYING
View File

@ -1,10 +1,17 @@
Unless otherwise stated this repository is copyright © 2017-2019
Unless otherwise stated this repository is copyright © 2017-2022
Pleroma Authors <https://pleroma.social/>, and is distributed under
The GNU Affero General Public License Version 3, you should have received a
copy of the license file as AGPL-3.
---
Files inside docs directory are copyright © 2022 Pleroma Authors
<https://pleroma.social/>, and are distributed under the Creative Commons
Attribution 4.0 International license, you should have received
a copy of the license file as CC-BY-4.0.
---
The following files are copyright © 2019 shitposter.club, and are distributed
under the Creative Commons Attribution-ShareAlike 4.0 International license,
you should have received a copy of the license file as CC-BY-SA-4.0.
@ -23,7 +30,7 @@ priv/static/images/pleroma-fox-tan-shy.png
---
The following files are copyright © 2017-2019 Pleroma Authors
The following files are copyright © 2017-2022 Pleroma Authors
<https://pleroma.social/>, and are distributed under the Creative Commons
Attribution-ShareAlike 4.0 International license, you should have received
a copy of the license file as CC-BY-SA-4.0.

View File

@ -1,18 +1,18 @@
FROM elixir:1.9-alpine as build
FROM elixir:1.10-alpine as build
COPY . .
ENV MIX_ENV=prod
RUN apk add git gcc g++ musl-dev make &&\
echo "import Mix.Config" > config/prod.secret.exs &&\
RUN apk add git gcc g++ musl-dev make cmake file-dev &&\
echo "import Config" > config/prod.secret.exs &&\
mix local.hex --force &&\
mix local.rebar --force &&\
mix deps.get --only prod &&\
mkdir release &&\
mix release --path release
FROM alpine:3.9
FROM alpine
ARG BUILD_DATE
ARG VCS_REF
@ -31,9 +31,8 @@ LABEL maintainer="ops@pleroma.social" \
ARG HOME=/opt/pleroma
ARG DATA=/var/lib/pleroma
RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories &&\
apk update &&\
apk add ncurses postgresql-client &&\
RUN apk update &&\
apk add exiftool ffmpeg imagemagick libmagic ncurses postgresql-client &&\
adduser --system --shell /bin/false --home ${HOME} pleroma &&\
mkdir -p ${DATA}/uploads &&\
mkdir -p ${DATA}/static &&\

View File

@ -18,26 +18,40 @@ If you are running Linux (glibc or musl) on x86/arm, the recommended way to inst
### From Source
If your platform is not supported, or you just want to be able to edit the source code easily, you may install Pleroma from source.
- [Debian-based](https://docs-develop.pleroma.social/backend/installation/debian_based_en/)
- [Debian-based (jp)](https://docs-develop.pleroma.social/backend/installation/debian_based_jp/)
- [Alpine Linux](https://docs-develop.pleroma.social/backend/installation/alpine_linux_en/)
- [Arch Linux](https://docs-develop.pleroma.social/backend/installation/arch_linux_en/)
- [CentOS 7](https://docs-develop.pleroma.social/backend/installation/centos7_en/)
- [Debian-based](https://docs-develop.pleroma.social/backend/installation/debian_based_en/)
- [Debian-based (jp)](https://docs-develop.pleroma.social/backend/installation/debian_based_jp/)
- [FreeBSD](https://docs-develop.pleroma.social/backend/installation/freebsd_en/)
- [Gentoo Linux](https://docs-develop.pleroma.social/backend/installation/gentoo_en/)
- [NetBSD](https://docs-develop.pleroma.social/backend/installation/netbsd_en/)
- [OpenBSD](https://docs-develop.pleroma.social/backend/installation/openbsd_en/)
- [OpenBSD (fi)](https://docs-develop.pleroma.social/backend/installation/openbsd_fi/)
- [CentOS 7](https://docs-develop.pleroma.social/backend/installation/centos7_en/)
### OS/Distro packages
Currently Pleroma is not packaged by any OS/Distros, but if you want to package it for one, we can guide you through the process on our [community channels](#community-channels). If you want to change default options in your Pleroma package, please **discuss it with us first**.
Currently Pleroma is packaged for [YunoHost](https://yunohost.org). If you want to package Pleroma for any OS/Distros, we can guide you through the process on our [community channels](#community-channels). If you want to change default options in your Pleroma package, please **discuss it with us first**.
### Docker
While we dont provide docker files, other people have written very good ones. Take a look at <https://github.com/angristan/docker-pleroma> or <https://glitch.sh/sn0w/pleroma-docker>.
### Raspberry Pi
Community maintained Raspberry Pi image that you can flash and run Pleroma on your Raspberry Pi. Available here <https://github.com/guysoft/PleromaPi>.
### Compilation Troubleshooting
If you ever encounter compilation issues during the updating of Pleroma, you can try these commands and see if they fix things:
- `mix deps.clean --all`
- `mix local.rebar`
- `mix local.hex`
- `rm -r _build`
If you are not developing Pleroma, it is better to use the OTP release, which comes with everything precompiled.
## Documentation
- Latest Released revision: <https://docs.pleroma.social>
- Latest Git revision: <https://docs-develop.pleroma.social>
## Community Channels
* IRC: **#pleroma** and **#pleroma-dev** on freenode, webchat is available at <https://irc.pleroma.social>
* Matrix: <https://matrix.to/#/#freenode_#pleroma:matrix.org> and <https://matrix.to/#/#freenode_#pleroma-dev:matrix.org>
* IRC: **#pleroma** and **#pleroma-dev** on libera.chat, webchat is available at <https://irc.pleroma.social>
* Matrix: [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) and [#pleroma-dev:libera.chat](https://matrix.to/#/#pleroma-dev:libera.chat)

16
SECURITY.md Normal file
View File

@ -0,0 +1,16 @@
# Pleroma backend security policy
## Supported versions
Currently, Pleroma offers bugfixes and security patches only for the latest minor release.
| Version | Support
|---------| --------
| 2.2 | Bugfixes and security patches
## Reporting a vulnerability
Please use confidential issues (tick the "This issue is confidential and should only be visible to team members with at least Reporter access." box when submitting) at our [bugtracker](https://git.pleroma.social/pleroma/pleroma/-/issues/new) for reporting vulnerabilities.
## Announcements
New releases are announced at [pleroma.social](https://pleroma.social/announcements/). All security releases are tagged with ["Security"](https://pleroma.social/announcements/tags/security/). You can be notified of them by subscribing to an Atom feed at <https://pleroma.social/announcements/tags/security/feed.xml>.

View File

@ -0,0 +1,595 @@
defmodule Pleroma.LoadTesting.Activities do
@moduledoc """
Module for generating different activities.
"""
import Ecto.Query
import Pleroma.LoadTesting.Helper, only: [to_sec: 1]
alias Ecto.UUID
alias Pleroma.Constants
alias Pleroma.LoadTesting.Users
alias Pleroma.Repo
alias Pleroma.Web.CommonAPI
require Constants
@defaults [
iterations: 170,
friends_used: 20,
non_friends_used: 20
]
@max_concurrency 10
@visibility ~w(public private direct unlisted)
@types [
:simple,
:simple_filtered,
:emoji,
:mentions,
:hell_thread,
:attachment,
:tag,
:like,
:reblog,
:simple_thread
]
@groups [:friends_local, :friends_remote, :non_friends_local, :non_friends_local]
@remote_groups [:friends_remote, :non_friends_remote]
@friends_groups [:friends_local, :friends_remote]
@non_friends_groups [:non_friends_local, :non_friends_remote]
@spec generate(User.t(), keyword()) :: :ok
def generate(user, opts \\ []) do
{:ok, _} =
Agent.start_link(fn -> %{} end,
name: :benchmark_state
)
opts = Keyword.merge(@defaults, opts)
users = Users.prepare_users(user, opts)
{:ok, _} = Agent.start_link(fn -> users[:non_friends_remote] end, name: :non_friends_remote)
task_data =
for visibility <- @visibility,
type <- @types,
group <- [:user | @groups],
do: {visibility, type, group}
IO.puts("Starting generating #{opts[:iterations]} iterations of activities...")
public_long_thread = fn ->
generate_long_thread("public", users, opts)
end
private_long_thread = fn ->
generate_long_thread("private", users, opts)
end
iterations = opts[:iterations]
{time, _} =
:timer.tc(fn ->
Enum.each(
1..iterations,
fn
i when i == iterations - 2 ->
spawn(public_long_thread)
spawn(private_long_thread)
generate_activities(users, Enum.shuffle(task_data), opts)
_ ->
generate_activities(users, Enum.shuffle(task_data), opts)
end
)
end)
IO.puts("Generating iterations of activities took #{to_sec(time)} sec.\n")
:ok
end
def generate_power_intervals(opts \\ []) do
count = Keyword.get(opts, :count, 20)
power = Keyword.get(opts, :power, 2)
IO.puts("Generating #{count} intervals for a power #{power} series...")
counts = Enum.map(1..count, fn n -> :math.pow(n, power) end)
sum = Enum.sum(counts)
densities =
Enum.map(counts, fn c ->
c / sum
end)
densities
|> Enum.reduce(0, fn density, acc ->
if acc == 0 do
[{0, density}]
else
[{_, lower} | _] = acc
[{lower, lower + density} | acc]
end
end)
|> Enum.reverse()
end
def generate_tagged_activities(opts \\ []) do
tag_count = Keyword.get(opts, :tag_count, 20)
users = Keyword.get(opts, :users, Repo.all(Pleroma.User))
activity_count = Keyword.get(opts, :count, 200_000)
intervals = generate_power_intervals(count: tag_count)
IO.puts(
"Generating #{activity_count} activities using #{tag_count} different tags of format `tag_n`, starting at tag_0"
)
Enum.each(1..activity_count, fn _ ->
random = :rand.uniform()
i = Enum.find_index(intervals, fn {lower, upper} -> lower <= random && upper > random end)
CommonAPI.post(Enum.random(users), %{status: "a post with the tag #tag_#{i}"})
end)
end
defp generate_long_thread(visibility, users, _opts) do
group =
if visibility == "public",
do: :friends_local,
else: :user
tasks = get_reply_tasks(visibility, group) |> Stream.cycle() |> Enum.take(50)
{:ok, activity} =
CommonAPI.post(users[:user], %{
status: "Start of #{visibility} long thread",
visibility: visibility
})
Agent.update(:benchmark_state, fn state ->
key =
if visibility == "public",
do: :public_thread,
else: :private_thread
Map.put(state, key, activity)
end)
acc = {activity.id, ["@" <> users[:user].nickname, "reply to long thread"]}
insert_replies_for_long_thread(tasks, visibility, users, acc)
IO.puts("Generating #{visibility} long thread ended\n")
end
defp insert_replies_for_long_thread(tasks, visibility, users, acc) do
Enum.reduce(tasks, acc, fn
:user, {id, data} ->
user = users[:user]
insert_reply(user, List.delete(data, "@" <> user.nickname), id, visibility)
group, {id, data} ->
replier = Enum.random(users[group])
insert_reply(replier, List.delete(data, "@" <> replier.nickname), id, visibility)
end)
end
defp generate_activities(users, task_data, opts) do
Task.async_stream(
task_data,
fn {visibility, type, group} ->
insert_activity(type, visibility, group, users, opts)
end,
max_concurrency: @max_concurrency,
timeout: 30_000
)
|> Stream.run()
end
defp insert_local_activity(visibility, group, users, status) do
{:ok, _} =
group
|> get_actor(users)
|> CommonAPI.post(%{status: status, visibility: visibility})
end
defp insert_remote_activity(visibility, group, users, status) do
actor = get_actor(group, users)
{act_data, obj_data} = prepare_activity_data(actor, visibility, users[:user])
{activity_data, object_data} = other_data(actor, status)
activity_data
|> Map.merge(act_data)
|> Map.put("object", Map.merge(object_data, obj_data))
|> Pleroma.Web.ActivityPub.ActivityPub.insert(false)
end
defp user_mentions(users) do
user_mentions =
Enum.reduce(
@groups,
[],
fn group, acc ->
acc ++ get_random_mentions(users[group], Enum.random(0..2))
end
)
if Enum.random([true, false]),
do: ["@" <> users[:user].nickname | user_mentions],
else: user_mentions
end
defp hell_thread_mentions(users) do
with {:ok, nil} <- Cachex.get(:user_cache, "hell_thread_mentions") do
cached =
@groups
|> Enum.reduce([users[:user]], fn group, acc ->
acc ++ Enum.take(users[group], 5)
end)
|> Enum.map(&"@#{&1.nickname}")
|> Enum.join(", ")
Cachex.put(:user_cache, "hell_thread_mentions", cached)
cached
else
{:ok, cached} -> cached
end
end
defp insert_activity(:simple, visibility, group, users, _opts)
when group in @remote_groups do
insert_remote_activity(visibility, group, users, "Remote status")
end
defp insert_activity(:simple, visibility, group, users, _opts) do
insert_local_activity(visibility, group, users, "Simple status")
end
defp insert_activity(:simple_filtered, visibility, group, users, _opts)
when group in @remote_groups do
insert_remote_activity(visibility, group, users, "Remote status which must be filtered")
end
defp insert_activity(:simple_filtered, visibility, group, users, _opts) do
insert_local_activity(visibility, group, users, "Simple status which must be filtered")
end
defp insert_activity(:emoji, visibility, group, users, _opts)
when group in @remote_groups do
insert_remote_activity(visibility, group, users, "Remote status with emoji :firefox:")
end
defp insert_activity(:emoji, visibility, group, users, _opts) do
insert_local_activity(visibility, group, users, "Simple status with emoji :firefox:")
end
defp insert_activity(:mentions, visibility, group, users, _opts)
when group in @remote_groups do
mentions = user_mentions(users)
status = Enum.join(mentions, ", ") <> " remote status with mentions"
insert_remote_activity(visibility, group, users, status)
end
defp insert_activity(:mentions, visibility, group, users, _opts) do
mentions = user_mentions(users)
status = Enum.join(mentions, ", ") <> " simple status with mentions"
insert_remote_activity(visibility, group, users, status)
end
defp insert_activity(:hell_thread, visibility, group, users, _)
when group in @remote_groups do
mentions = hell_thread_mentions(users)
insert_remote_activity(visibility, group, users, mentions <> " remote hell thread status")
end
defp insert_activity(:hell_thread, visibility, group, users, _opts) do
mentions = hell_thread_mentions(users)
insert_local_activity(visibility, group, users, mentions <> " hell thread status")
end
defp insert_activity(:attachment, visibility, group, users, _opts) do
actor = get_actor(group, users)
obj_data = %{
"actor" => actor.ap_id,
"name" => "4467-11.jpg",
"type" => "Document",
"url" => [
%{
"href" =>
"#{Pleroma.Web.Endpoint.url()}/media/b1b873552422a07bf53af01f3c231c841db4dfc42c35efde681abaf0f2a4eab7.jpg",
"mediaType" => "image/jpeg",
"type" => "Link"
}
]
}
object = Repo.insert!(%Pleroma.Object{data: obj_data})
{:ok, _activity} =
CommonAPI.post(actor, %{
status: "Post with attachment",
visibility: visibility,
media_ids: [object.id]
})
end
defp insert_activity(:tag, visibility, group, users, _opts) do
insert_local_activity(visibility, group, users, "Status with #tag")
end
defp insert_activity(:like, visibility, group, users, opts) do
actor = get_actor(group, users)
with activity_id when not is_nil(activity_id) <- get_random_create_activity_id(),
{:ok, _activity} <- CommonAPI.favorite(actor, activity_id) do
:ok
else
{:error, _} ->
insert_activity(:like, visibility, group, users, opts)
nil ->
Process.sleep(15)
insert_activity(:like, visibility, group, users, opts)
end
end
defp insert_activity(:reblog, visibility, group, users, opts) do
actor = get_actor(group, users)
with activity_id when not is_nil(activity_id) <- get_random_create_activity_id(),
{:ok, _activity} <- CommonAPI.repeat(activity_id, actor) do
:ok
else
{:error, _} ->
insert_activity(:reblog, visibility, group, users, opts)
nil ->
Process.sleep(15)
insert_activity(:reblog, visibility, group, users, opts)
end
end
defp insert_activity(:simple_thread, "direct", group, users, _opts) do
actor = get_actor(group, users)
tasks = get_reply_tasks("direct", group)
list =
case group do
:user ->
group = Enum.random(@friends_groups)
Enum.take(users[group], 3)
_ ->
Enum.take(users[group], 3)
end
data = Enum.map(list, &("@" <> &1.nickname))
{:ok, activity} =
CommonAPI.post(actor, %{
status: Enum.join(data, ", ") <> "simple status",
visibility: "direct"
})
acc = {activity.id, ["@" <> users[:user].nickname | data] ++ ["reply to status"]}
insert_direct_replies(tasks, users[:user], list, acc)
end
defp insert_activity(:simple_thread, visibility, group, users, _opts) do
actor = get_actor(group, users)
tasks = get_reply_tasks(visibility, group)
{:ok, activity} =
CommonAPI.post(users[:user], %{status: "Simple status", visibility: visibility})
acc = {activity.id, ["@" <> actor.nickname, "reply to status"]}
insert_replies(tasks, visibility, users, acc)
end
defp get_actor(:user, %{user: user}), do: user
defp get_actor(group, users), do: Enum.random(users[group])
defp other_data(actor, content) do
%{host: host} = URI.parse(actor.ap_id)
datetime = DateTime.utc_now() |> to_string()
context_id = "https://#{host}/contexts/#{UUID.generate()}"
activity_id = "https://#{host}/activities/#{UUID.generate()}"
object_id = "https://#{host}/objects/#{UUID.generate()}"
activity_data = %{
"actor" => actor.ap_id,
"context" => context_id,
"id" => activity_id,
"published" => datetime,
"type" => "Create",
"directMessage" => false
}
object_data = %{
"actor" => actor.ap_id,
"attachment" => [],
"attributedTo" => actor.ap_id,
"bcc" => [],
"bto" => [],
"content" => content,
"context" => context_id,
"conversation" => context_id,
"emoji" => %{},
"id" => object_id,
"published" => datetime,
"sensitive" => false,
"summary" => "",
"tag" => [],
"to" => ["https://www.w3.org/ns/activitystreams#Public"],
"type" => "Note"
}
{activity_data, object_data}
end
defp prepare_activity_data(actor, "public", _mention) do
obj_data = %{
"cc" => [actor.follower_address],
"to" => [Constants.as_public()]
}
act_data = %{
"cc" => [actor.follower_address],
"to" => [Constants.as_public()]
}
{act_data, obj_data}
end
defp prepare_activity_data(actor, "private", _mention) do
obj_data = %{
"cc" => [],
"to" => [actor.follower_address]
}
act_data = %{
"cc" => [],
"to" => [actor.follower_address]
}
{act_data, obj_data}
end
defp prepare_activity_data(actor, "unlisted", _mention) do
obj_data = %{
"cc" => [Constants.as_public()],
"to" => [actor.follower_address]
}
act_data = %{
"cc" => [Constants.as_public()],
"to" => [actor.follower_address]
}
{act_data, obj_data}
end
defp prepare_activity_data(_actor, "direct", mention) do
%{host: mentioned_host} = URI.parse(mention.ap_id)
obj_data = %{
"cc" => [],
"content" =>
"<span class=\"h-card\"><a class=\"u-url mention\" href=\"#{mention.ap_id}\" rel=\"ugc\">@<span>#{
mention.nickname
}</span></a></span> direct message",
"tag" => [
%{
"href" => mention.ap_id,
"name" => "@#{mention.nickname}@#{mentioned_host}",
"type" => "Mention"
}
],
"to" => [mention.ap_id]
}
act_data = %{
"cc" => [],
"directMessage" => true,
"to" => [mention.ap_id]
}
{act_data, obj_data}
end
defp get_reply_tasks("public", :user) do
[:friends_local, :friends_remote, :non_friends_local, :non_friends_remote, :user]
end
defp get_reply_tasks("public", group) when group in @friends_groups do
[:non_friends_local, :non_friends_remote, :user, :friends_local, :friends_remote]
end
defp get_reply_tasks("public", group) when group in @non_friends_groups do
[:user, :friends_local, :friends_remote, :non_friends_local, :non_friends_remote]
end
defp get_reply_tasks(visibility, :user) when visibility in ["unlisted", "private"] do
[:friends_local, :friends_remote, :user, :friends_local, :friends_remote]
end
defp get_reply_tasks(visibility, group)
when visibility in ["unlisted", "private"] and group in @friends_groups do
[:user, :friends_remote, :friends_local, :user]
end
defp get_reply_tasks(visibility, group)
when visibility in ["unlisted", "private"] and
group in @non_friends_groups,
do: []
defp get_reply_tasks("direct", :user), do: [:friends_local, :user, :friends_remote]
defp get_reply_tasks("direct", group) when group in @friends_groups,
do: [:user, group, :user]
defp get_reply_tasks("direct", group) when group in @non_friends_groups do
[:user, :non_friends_remote, :user, :non_friends_local]
end
defp insert_replies(tasks, visibility, users, acc) do
Enum.reduce(tasks, acc, fn
:user, {id, data} ->
insert_reply(users[:user], data, id, visibility)
group, {id, data} ->
replier = Enum.random(users[group])
insert_reply(replier, data, id, visibility)
end)
end
defp insert_direct_replies(tasks, user, list, acc) do
Enum.reduce(tasks, acc, fn
:user, {id, data} ->
{reply_id, _} = insert_reply(user, List.delete(data, "@" <> user.nickname), id, "direct")
{reply_id, data}
_, {id, data} ->
actor = Enum.random(list)
{reply_id, _} =
insert_reply(actor, List.delete(data, "@" <> actor.nickname), id, "direct")
{reply_id, data}
end)
end
defp insert_reply(actor, data, activity_id, visibility) do
{:ok, reply} =
CommonAPI.post(actor, %{
status: Enum.join(data, ", "),
visibility: visibility,
in_reply_to_status_id: activity_id
})
{reply.id, ["@" <> actor.nickname | data]}
end
defp get_random_mentions(_users, count) when count == 0, do: []
defp get_random_mentions(users, count) do
users
|> Enum.shuffle()
|> Enum.take(count)
|> Enum.map(&"@#{&1.nickname}")
end
defp get_random_create_activity_id do
Repo.one(
from(a in Pleroma.Activity,
where: fragment("(?)->>'type' = ?", a.data, ^"Create"),
order_by: fragment("RANDOM()"),
limit: 1,
select: a.id
)
)
end
end

View File

@ -1,260 +1,624 @@
defmodule Pleroma.LoadTesting.Fetcher do
use Pleroma.LoadTesting.Helper
alias Pleroma.Activity
alias Pleroma.Pagination
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.MastodonAPI.MastodonAPI
alias Pleroma.Web.MastodonAPI.StatusView
def fetch_user(user) do
Benchee.run(%{
"By id" => fn -> Repo.get_by(User, id: user.id) end,
"By ap_id" => fn -> Repo.get_by(User, ap_id: user.ap_id) end,
"By email" => fn -> Repo.get_by(User, email: user.email) end,
"By nickname" => fn -> Repo.get_by(User, nickname: user.nickname) end
@spec run_benchmarks(User.t()) :: any()
def run_benchmarks(user) do
fetch_user(user)
fetch_timelines(user)
render_views(user)
end
defp formatters do
[
Benchee.Formatters.Console
]
end
defp fetch_user(user) do
Benchee.run(
%{
"By id" => fn -> Repo.get_by(User, id: user.id) end,
"By ap_id" => fn -> Repo.get_by(User, ap_id: user.ap_id) end,
"By email" => fn -> Repo.get_by(User, email: user.email) end,
"By nickname" => fn -> Repo.get_by(User, nickname: user.nickname) end
},
formatters: formatters()
)
end
defp create_filter(user) do
Pleroma.Filter.create(%{
user_id: user.id,
phrase: "must be filtered",
hide: true,
context: ["home"]
})
end
def query_timelines(user) do
home_timeline_params = %{
"count" => 20,
"with_muted" => true,
"type" => ["Create", "Announce"],
"blocking_user" => user,
"muting_user" => user,
"user" => user
}
defp delete_filter(filter), do: Repo.delete(filter)
mastodon_public_timeline_params = %{
"count" => 20,
"local_only" => true,
"only_media" => "false",
"type" => ["Create", "Announce"],
"with_muted" => "true",
"blocking_user" => user,
"muting_user" => user
}
defp fetch_timelines(user) do
fetch_home_timeline(user)
fetch_home_timeline_with_filter(user)
fetch_direct_timeline(user)
fetch_public_timeline(user)
fetch_public_timeline_with_filter(user)
fetch_public_timeline(user, :with_blocks)
fetch_public_timeline(user, :local)
fetch_public_timeline(user, :tag)
fetch_notifications(user)
fetch_favourites(user)
fetch_long_thread(user)
fetch_timelines_with_reply_filtering(user)
end
mastodon_federated_timeline_params = %{
"count" => 20,
"only_media" => "false",
"type" => ["Create", "Announce"],
"with_muted" => "true",
"blocking_user" => user,
"muting_user" => user
}
defp render_views(user) do
render_timelines(user)
render_long_thread(user)
end
following = User.following(user)
defp opts_for_home_timeline(user) do
%{
blocking_user: user,
count: "20",
muting_user: user,
type: ["Create", "Announce"],
user: user,
with_muted: true
}
end
defp fetch_home_timeline(user, title_end \\ "") do
opts = opts_for_home_timeline(user)
recipients = [user.ap_id | User.following(user)]
first_page_last =
ActivityPub.fetch_activities(recipients, opts) |> Enum.reverse() |> List.last()
second_page_last =
ActivityPub.fetch_activities(recipients, Map.put(opts, :max_id, first_page_last.id))
|> Enum.reverse()
|> List.last()
third_page_last =
ActivityPub.fetch_activities(recipients, Map.put(opts, :max_id, second_page_last.id))
|> Enum.reverse()
|> List.last()
forth_page_last =
ActivityPub.fetch_activities(recipients, Map.put(opts, :max_id, third_page_last.id))
|> Enum.reverse()
|> List.last()
title = "home timeline " <> title_end
Benchee.run(
%{
title => fn opts -> ActivityPub.fetch_activities(recipients, opts) end
},
inputs: %{
"1 page" => opts,
"2 page" => Map.put(opts, :max_id, first_page_last.id),
"3 page" => Map.put(opts, :max_id, second_page_last.id),
"4 page" => Map.put(opts, :max_id, third_page_last.id),
"5 page" => Map.put(opts, :max_id, forth_page_last.id),
"1 page only media" => Map.put(opts, :only_media, true),
"2 page only media" =>
Map.put(opts, :max_id, first_page_last.id) |> Map.put(:only_media, true),
"3 page only media" =>
Map.put(opts, :max_id, second_page_last.id) |> Map.put(:only_media, true),
"4 page only media" =>
Map.put(opts, :max_id, third_page_last.id) |> Map.put(:only_media, true),
"5 page only media" =>
Map.put(opts, :max_id, forth_page_last.id) |> Map.put(:only_media, true)
},
formatters: formatters()
)
end
defp fetch_home_timeline_with_filter(user) do
{:ok, filter} = create_filter(user)
fetch_home_timeline(user, "with filters")
delete_filter(filter)
end
defp opts_for_direct_timeline(user) do
%{
visibility: "direct",
blocking_user: user,
count: "20",
type: "Create",
user: user,
with_muted: true
}
end
defp fetch_direct_timeline(user) do
recipients = [user.ap_id]
opts = opts_for_direct_timeline(user)
first_page_last =
recipients
|> ActivityPub.fetch_activities_query(opts)
|> Pagination.fetch_paginated(opts)
|> List.last()
opts2 = Map.put(opts, :max_id, first_page_last.id)
second_page_last =
recipients
|> ActivityPub.fetch_activities_query(opts2)
|> Pagination.fetch_paginated(opts2)
|> List.last()
opts3 = Map.put(opts, :max_id, second_page_last.id)
third_page_last =
recipients
|> ActivityPub.fetch_activities_query(opts3)
|> Pagination.fetch_paginated(opts3)
|> List.last()
opts4 = Map.put(opts, :max_id, third_page_last.id)
forth_page_last =
recipients
|> ActivityPub.fetch_activities_query(opts4)
|> Pagination.fetch_paginated(opts4)
|> List.last()
Benchee.run(
%{
"direct timeline" => fn opts ->
ActivityPub.fetch_activities_query(recipients, opts) |> Pagination.fetch_paginated(opts)
end
},
inputs: %{
"1 page" => opts,
"2 page" => opts2,
"3 page" => opts3,
"4 page" => opts4,
"5 page" => Map.put(opts4, :max_id, forth_page_last.id)
},
formatters: formatters()
)
end
defp opts_for_public_timeline(user) do
%{
type: ["Create", "Announce"],
local_only: false,
blocking_user: user,
muting_user: user
}
end
defp opts_for_public_timeline(user, :local) do
%{
type: ["Create", "Announce"],
local_only: true,
blocking_user: user,
muting_user: user
}
end
defp opts_for_public_timeline(user, :tag) do
%{
blocking_user: user,
count: "20",
local_only: nil,
muting_user: user,
tag: ["tag"],
tag_all: [],
tag_reject: [],
type: "Create",
user: user,
with_muted: true
}
end
defp fetch_public_timeline(user) do
opts = opts_for_public_timeline(user)
fetch_public_timeline(opts, "public timeline")
end
defp fetch_public_timeline_with_filter(user) do
{:ok, filter} = create_filter(user)
opts = opts_for_public_timeline(user)
fetch_public_timeline(opts, "public timeline with filters")
delete_filter(filter)
end
defp fetch_public_timeline(user, :local) do
opts = opts_for_public_timeline(user, :local)
fetch_public_timeline(opts, "public timeline only local")
end
defp fetch_public_timeline(user, :tag) do
opts = opts_for_public_timeline(user, :tag)
fetch_public_timeline(opts, "hashtag timeline")
end
defp fetch_public_timeline(user, :only_media) do
opts = opts_for_public_timeline(user) |> Map.put(:only_media, true)
fetch_public_timeline(opts, "public timeline only media")
end
defp fetch_public_timeline(user, :with_blocks) do
opts = opts_for_public_timeline(user)
remote_non_friends = Agent.get(:non_friends_remote, & &1)
Benchee.run(%{
"User home timeline" => fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities(
following,
home_timeline_params
)
end,
"User mastodon public timeline" => fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities(
mastodon_public_timeline_params
)
end,
"User mastodon federated public timeline" => fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities(
mastodon_federated_timeline_params
)
"public timeline without blocks" => fn ->
ActivityPub.fetch_public_activities(opts)
end
})
home_activities =
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities(
following,
home_timeline_params
Enum.each(remote_non_friends, fn non_friend ->
{:ok, _} = User.block(user, non_friend)
end)
user = User.get_by_id(user.id)
opts = Map.put(opts, :blocking_user, user)
Benchee.run(%{
"public timeline with user block" => fn ->
ActivityPub.fetch_public_activities(opts)
end
})
domains =
Enum.reduce(remote_non_friends, [], fn non_friend, domains ->
{:ok, _user} = User.unblock(user, non_friend)
%{host: host} = URI.parse(non_friend.ap_id)
[host | domains]
end)
domains = Enum.uniq(domains)
Enum.each(domains, fn domain ->
{:ok, _} = User.block_domain(user, domain)
end)
user = User.get_by_id(user.id)
opts = Map.put(opts, :blocking_user, user)
Benchee.run(%{
"public timeline with domain block" => fn ->
ActivityPub.fetch_public_activities(opts)
end
})
end
defp fetch_public_timeline(opts, title) when is_binary(title) do
first_page_last = ActivityPub.fetch_public_activities(opts) |> List.last()
second_page_last =
ActivityPub.fetch_public_activities(Map.put(opts, :max_id, first_page_last.id))
|> List.last()
third_page_last =
ActivityPub.fetch_public_activities(Map.put(opts, :max_id, second_page_last.id))
|> List.last()
forth_page_last =
ActivityPub.fetch_public_activities(Map.put(opts, :max_id, third_page_last.id))
|> List.last()
Benchee.run(
%{
title => fn opts ->
ActivityPub.fetch_public_activities(opts)
end
},
inputs: %{
"1 page" => opts,
"2 page" => Map.put(opts, :max_id, first_page_last.id),
"3 page" => Map.put(opts, :max_id, second_page_last.id),
"4 page" => Map.put(opts, :max_id, third_page_last.id),
"5 page" => Map.put(opts, :max_id, forth_page_last.id)
},
formatters: formatters()
)
end
defp opts_for_notifications do
%{count: "20", with_muted: true}
end
defp fetch_notifications(user) do
opts = opts_for_notifications()
first_page_last = MastodonAPI.get_notifications(user, opts) |> List.last()
second_page_last =
MastodonAPI.get_notifications(user, Map.put(opts, :max_id, first_page_last.id))
|> List.last()
third_page_last =
MastodonAPI.get_notifications(user, Map.put(opts, :max_id, second_page_last.id))
|> List.last()
forth_page_last =
MastodonAPI.get_notifications(user, Map.put(opts, :max_id, third_page_last.id))
|> List.last()
Benchee.run(
%{
"Notifications" => fn opts ->
MastodonAPI.get_notifications(user, opts)
end
},
inputs: %{
"1 page" => opts,
"2 page" => Map.put(opts, :max_id, first_page_last.id),
"3 page" => Map.put(opts, :max_id, second_page_last.id),
"4 page" => Map.put(opts, :max_id, third_page_last.id),
"5 page" => Map.put(opts, :max_id, forth_page_last.id)
},
formatters: formatters()
)
end
defp fetch_favourites(user) do
first_page_last = ActivityPub.fetch_favourites(user) |> List.last()
second_page_last =
ActivityPub.fetch_favourites(user, %{:max_id => first_page_last.id}) |> List.last()
third_page_last =
ActivityPub.fetch_favourites(user, %{:max_id => second_page_last.id}) |> List.last()
forth_page_last =
ActivityPub.fetch_favourites(user, %{:max_id => third_page_last.id}) |> List.last()
Benchee.run(
%{
"Favourites" => fn opts ->
ActivityPub.fetch_favourites(user, opts)
end
},
inputs: %{
"1 page" => %{},
"2 page" => %{:max_id => first_page_last.id},
"3 page" => %{:max_id => second_page_last.id},
"4 page" => %{:max_id => third_page_last.id},
"5 page" => %{:max_id => forth_page_last.id}
},
formatters: formatters()
)
end
defp opts_for_long_thread(user) do
%{
blocking_user: user,
user: user
}
end
defp fetch_long_thread(user) do
%{public_thread: public, private_thread: private} =
Agent.get(:benchmark_state, fn state -> state end)
opts = opts_for_long_thread(user)
private_input = {private.data["context"], Map.put(opts, :exclude_id, private.id)}
public_input = {public.data["context"], Map.put(opts, :exclude_id, public.id)}
Benchee.run(
%{
"fetch context" => fn {context, opts} ->
ActivityPub.fetch_activities_for_context(context, opts)
end
},
inputs: %{
"Private long thread" => private_input,
"Public long thread" => public_input
},
formatters: formatters()
)
end
defp render_timelines(user) do
opts = opts_for_home_timeline(user)
recipients = [user.ap_id | User.following(user)]
home_activities = ActivityPub.fetch_activities(recipients, opts) |> Enum.reverse()
recipients = [user.ap_id]
opts = opts_for_direct_timeline(user)
direct_activities =
recipients
|> ActivityPub.fetch_activities_query(opts)
|> Pagination.fetch_paginated(opts)
opts = opts_for_public_timeline(user)
public_activities = ActivityPub.fetch_public_activities(opts)
opts = opts_for_public_timeline(user, :tag)
tag_activities = ActivityPub.fetch_public_activities(opts)
opts = opts_for_notifications()
notifications = MastodonAPI.get_notifications(user, opts)
favourites = ActivityPub.fetch_favourites(user)
Benchee.run(
%{
"Rendering home timeline" => fn ->
StatusView.render("index.json", %{
activities: home_activities,
for: user,
as: :activity
})
end,
"Rendering direct timeline" => fn ->
StatusView.render("index.json", %{
activities: direct_activities,
for: user,
as: :activity
})
end,
"Rendering public timeline" => fn ->
StatusView.render("index.json", %{
activities: public_activities,
for: user,
as: :activity
})
end,
"Rendering tag timeline" => fn ->
StatusView.render("index.json", %{
activities: tag_activities,
for: user,
as: :activity
})
end,
"Rendering notifications" => fn ->
Pleroma.Web.MastodonAPI.NotificationView.render("index.json", %{
notifications: notifications,
for: user
})
end,
"Rendering favourites timeline" => fn ->
StatusView.render("index.json", %{
activities: favourites,
for: user,
as: :activity
})
end
},
formatters: formatters()
)
end
defp render_long_thread(user) do
%{public_thread: public, private_thread: private} =
Agent.get(:benchmark_state, fn state -> state end)
opts = %{for: user}
public_activity = Activity.get_by_id_with_object(public.id)
private_activity = Activity.get_by_id_with_object(private.id)
Benchee.run(
%{
"render" => fn opts ->
StatusView.render("show.json", opts)
end
},
inputs: %{
"Public root" => Map.put(opts, :activity, public_activity),
"Private root" => Map.put(opts, :activity, private_activity)
},
formatters: formatters()
)
fetch_opts = opts_for_long_thread(user)
public_context =
ActivityPub.fetch_activities_for_context(
public.data["context"],
Map.put(fetch_opts, :exclude_id, public.id)
)
public_activities =
Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities(mastodon_public_timeline_params)
public_federated_activities =
Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities(
mastodon_federated_timeline_params
private_context =
ActivityPub.fetch_activities_for_context(
private.data["context"],
Map.put(fetch_opts, :exclude_id, private.id)
)
Benchee.run(%{
"Rendering home timeline" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: home_activities,
for: user,
as: :activity
})
end,
"Rendering public timeline" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: public_activities,
for: user,
as: :activity
})
end,
"Rendering public federated timeline" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: public_federated_activities,
for: user,
as: :activity
})
end,
"Rendering favorites timeline" => fn ->
conn = Phoenix.ConnTest.build_conn(:get, "http://localhost:4001/api/v1/favourites", nil)
Pleroma.Web.MastodonAPI.StatusController.favourites(
%Plug.Conn{conn |
assigns: %{user: user},
query_params: %{"limit" => "0"},
body_params: %{},
cookies: %{},
params: %{},
path_params: %{},
private: %{
Pleroma.Web.Router => {[], %{}},
phoenix_router: Pleroma.Web.Router,
phoenix_action: :favourites,
phoenix_controller: Pleroma.Web.MastodonAPI.StatusController,
phoenix_endpoint: Pleroma.Web.Endpoint,
phoenix_format: "json",
phoenix_layout: {Pleroma.Web.LayoutView, "app.html"},
phoenix_recycled: true,
phoenix_view: Pleroma.Web.MastodonAPI.StatusView,
plug_session: %{"user_id" => user.id},
plug_session_fetch: :done,
plug_session_info: :write,
plug_skip_csrf_protection: true
}
},
%{})
end,
})
end
def query_notifications(user) do
without_muted_params = %{"count" => "20", "with_muted" => "false"}
with_muted_params = %{"count" => "20", "with_muted" => "true"}
Benchee.run(%{
"Notifications without muted" => fn ->
Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, without_muted_params)
end,
"Notifications with muted" => fn ->
Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, with_muted_params)
end
})
without_muted_notifications =
Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, without_muted_params)
with_muted_notifications =
Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, with_muted_params)
Benchee.run(%{
"Render notifications without muted" => fn ->
Pleroma.Web.MastodonAPI.NotificationView.render("index.json", %{
notifications: without_muted_notifications,
for: user
})
end,
"Render notifications with muted" => fn ->
Pleroma.Web.MastodonAPI.NotificationView.render("index.json", %{
notifications: with_muted_notifications,
for: user
})
end
})
end
def query_dms(user) do
params = %{
"count" => "20",
"with_muted" => "true",
"type" => "Create",
"blocking_user" => user,
"user" => user,
visibility: "direct"
}
Benchee.run(%{
"Direct messages with muted" => fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_query([user.ap_id], params)
|> Pleroma.Pagination.fetch_paginated(params)
end,
"Direct messages without muted" => fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_query([user.ap_id], params)
|> Pleroma.Pagination.fetch_paginated(Map.put(params, "with_muted", false))
end
})
dms_with_muted =
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_query([user.ap_id], params)
|> Pleroma.Pagination.fetch_paginated(params)
dms_without_muted =
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_query([user.ap_id], params)
|> Pleroma.Pagination.fetch_paginated(Map.put(params, "with_muted", false))
Benchee.run(%{
"Rendering dms with muted" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: dms_with_muted,
for: user,
as: :activity
})
end,
"Rendering dms without muted" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: dms_without_muted,
for: user,
as: :activity
})
end
})
end
def query_long_thread(user, activity) do
Benchee.run(%{
"Fetch main post" => fn ->
Pleroma.Activity.get_by_id_with_object(activity.id)
end,
"Fetch context of main post" => fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_for_context(
activity.data["context"],
%{
"blocking_user" => user,
"user" => user,
"exclude_id" => activity.id
}
)
end
})
activity = Pleroma.Activity.get_by_id_with_object(activity.id)
context =
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_for_context(
activity.data["context"],
%{
"blocking_user" => user,
"user" => user,
"exclude_id" => activity.id
Benchee.run(
%{
"render" => fn opts ->
StatusView.render("context.json", opts)
end
},
inputs: %{
"Public context" => %{user: user, activity: public_activity, activities: public_context},
"Private context" => %{
user: user,
activity: private_activity,
activities: private_context
}
)
},
formatters: formatters()
)
end
Benchee.run(%{
"Render status" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render("show.json", %{
activity: activity,
for: user
})
end,
"Render context" => fn ->
Pleroma.Web.MastodonAPI.StatusView.render(
"index.json",
for: user,
activities: context,
as: :activity
)
|> Enum.reverse()
end
})
defp fetch_timelines_with_reply_filtering(user) do
public_params = opts_for_public_timeline(user)
Benchee.run(
%{
"Public timeline without reply filtering" => fn ->
ActivityPub.fetch_public_activities(public_params)
end,
"Public timeline with reply filtering - following" => fn ->
public_params
|> Map.put(:reply_visibility, "following")
|> Map.put(:reply_filtering_user, user)
|> ActivityPub.fetch_public_activities()
end,
"Public timeline with reply filtering - self" => fn ->
public_params
|> Map.put(:reply_visibility, "self")
|> Map.put(:reply_filtering_user, user)
|> ActivityPub.fetch_public_activities()
end
},
formatters: formatters()
)
private_params = opts_for_home_timeline(user)
recipients = [user.ap_id | User.following(user)]
Benchee.run(
%{
"Home timeline without reply filtering" => fn ->
ActivityPub.fetch_activities(recipients, private_params)
end,
"Home timeline with reply filtering - following" => fn ->
private_params =
private_params
|> Map.put(:reply_filtering_user, user)
|> Map.put(:reply_visibility, "following")
ActivityPub.fetch_activities(recipients, private_params)
end,
"Home timeline with reply filtering - self" => fn ->
private_params =
private_params
|> Map.put(:reply_filtering_user, user)
|> Map.put(:reply_visibility, "self")
ActivityPub.fetch_activities(recipients, private_params)
end
},
formatters: formatters()
)
end
end

View File

@ -1,409 +0,0 @@
defmodule Pleroma.LoadTesting.Generator do
use Pleroma.LoadTesting.Helper
alias Pleroma.Web.CommonAPI
def generate_like_activities(user, posts) do
count_likes = Kernel.trunc(length(posts) / 4)
IO.puts("Starting generating #{count_likes} like activities...")
{time, _} =
:timer.tc(fn ->
Task.async_stream(
Enum.take_random(posts, count_likes),
fn post -> {:ok, _, _} = CommonAPI.favorite(post.id, user) end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end)
IO.puts("Inserting like activities take #{to_sec(time)} sec.\n")
end
def generate_users(opts) do
IO.puts("Starting generating #{opts[:users_max]} users...")
{time, _} = :timer.tc(fn -> do_generate_users(opts) end)
IO.puts("Inserting users take #{to_sec(time)} sec.\n")
end
defp do_generate_users(opts) do
max = Keyword.get(opts, :users_max)
Task.async_stream(
1..max,
&generate_user_data(&1),
max_concurrency: 10,
timeout: 30_000
)
|> Enum.to_list()
end
defp generate_user_data(i) do
remote = Enum.random([true, false])
user = %User{
name: "Test テスト User #{i}",
email: "user#{i}@example.com",
nickname: "nick#{i}",
password_hash:
"$pbkdf2-sha512$160000$bU.OSFI7H/yqWb5DPEqyjw$uKp/2rmXw12QqnRRTqTtuk2DTwZfF8VR4MYW2xMeIlqPR/UX1nT1CEKVUx2CowFMZ5JON8aDvURrZpJjSgqXrg",
bio: "Tester Number #{i}",
local: remote
}
user_urls =
if remote do
base_url =
Enum.random(["https://domain1.com", "https://domain2.com", "https://domain3.com"])
ap_id = "#{base_url}/users/#{user.nickname}"
%{
ap_id: ap_id,
follower_address: ap_id <> "/followers",
following_address: ap_id <> "/following"
}
else
%{
ap_id: User.ap_id(user),
follower_address: User.ap_followers(user),
following_address: User.ap_following(user)
}
end
user = Map.merge(user, user_urls)
Repo.insert!(user)
end
def generate_activities(user, users) do
do_generate_activities(user, users)
end
defp do_generate_activities(user, users) do
IO.puts("Starting generating 20000 common activities...")
{time, _} =
:timer.tc(fn ->
Task.async_stream(
1..20_000,
fn _ ->
do_generate_activity([user | users])
end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end)
IO.puts("Inserting common activities take #{to_sec(time)} sec.\n")
IO.puts("Starting generating 20000 activities with mentions...")
{time, _} =
:timer.tc(fn ->
Task.async_stream(
1..20_000,
fn _ ->
do_generate_activity_with_mention(user, users)
end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end)
IO.puts("Inserting activities with menthions take #{to_sec(time)} sec.\n")
IO.puts("Starting generating 10000 activities with threads...")
{time, _} =
:timer.tc(fn ->
Task.async_stream(
1..10_000,
fn _ ->
do_generate_threads([user | users])
end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end)
IO.puts("Inserting activities with threads take #{to_sec(time)} sec.\n")
end
defp do_generate_activity(users) do
post = %{
"status" => "Some status without mention with random user"
}
CommonAPI.post(Enum.random(users), post)
end
def generate_power_intervals(opts \\ []) do
count = Keyword.get(opts, :count, 20)
power = Keyword.get(opts, :power, 2)
IO.puts("Generating #{count} intervals for a power #{power} series...")
counts = Enum.map(1..count, fn n -> :math.pow(n, power) end)
sum = Enum.sum(counts)
densities =
Enum.map(counts, fn c ->
c / sum
end)
densities
|> Enum.reduce(0, fn density, acc ->
if acc == 0 do
[{0, density}]
else
[{_, lower} | _] = acc
[{lower, lower + density} | acc]
end
end)
|> Enum.reverse()
end
def generate_tagged_activities(opts \\ []) do
tag_count = Keyword.get(opts, :tag_count, 20)
users = Keyword.get(opts, :users, Repo.all(User))
activity_count = Keyword.get(opts, :count, 200_000)
intervals = generate_power_intervals(count: tag_count)
IO.puts(
"Generating #{activity_count} activities using #{tag_count} different tags of format `tag_n`, starting at tag_0"
)
Enum.each(1..activity_count, fn _ ->
random = :rand.uniform()
i = Enum.find_index(intervals, fn {lower, upper} -> lower <= random && upper > random end)
CommonAPI.post(Enum.random(users), %{"status" => "a post with the tag #tag_#{i}"})
end)
end
defp do_generate_activity_with_mention(user, users) do
mentions_cnt = Enum.random([2, 3, 4, 5])
with_user = Enum.random([true, false])
users = Enum.shuffle(users)
mentions_users = Enum.take(users, mentions_cnt)
mentions_users = if with_user, do: [user | mentions_users], else: mentions_users
mentions_str =
Enum.map(mentions_users, fn user -> "@" <> user.nickname end) |> Enum.join(", ")
post = %{
"status" => mentions_str <> "some status with mentions random users"
}
CommonAPI.post(Enum.random(users), post)
end
defp do_generate_threads(users) do
thread_length = Enum.random([2, 3, 4, 5])
actor = Enum.random(users)
post = %{
"status" => "Start of the thread"
}
{:ok, activity} = CommonAPI.post(actor, post)
Enum.each(1..thread_length, fn _ ->
user = Enum.random(users)
post = %{
"status" => "@#{actor.nickname} reply to thread",
"in_reply_to_status_id" => activity.id
}
CommonAPI.post(user, post)
end)
end
def generate_remote_activities(user, users) do
do_generate_remote_activities(user, users)
end
defp do_generate_remote_activities(user, users) do
IO.puts("Starting generating 10000 remote activities...")
{time, _} =
:timer.tc(fn ->
Task.async_stream(
1..10_000,
fn i ->
do_generate_remote_activity(i, user, users)
end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end)
IO.puts("Inserting remote activities take #{to_sec(time)} sec.\n")
end
defp do_generate_remote_activity(i, user, users) do
actor = Enum.random(users)
%{host: host} = URI.parse(actor.ap_id)
date = Date.utc_today()
datetime = DateTime.utc_now()
map = %{
"actor" => actor.ap_id,
"cc" => [actor.follower_address, user.ap_id],
"context" => "tag:mastodon.example.org,#{date}:objectId=#{i}:objectType=Conversation",
"id" => actor.ap_id <> "/statuses/#{i}/activity",
"object" => %{
"actor" => actor.ap_id,
"atomUri" => actor.ap_id <> "/statuses/#{i}",
"attachment" => [],
"attributedTo" => actor.ap_id,
"bcc" => [],
"bto" => [],
"cc" => [actor.follower_address, user.ap_id],
"content" =>
"<p><span class=\"h-card\"><a href=\"" <>
user.ap_id <>
"\" class=\"u-url mention\">@<span>" <> user.nickname <> "</span></a></span></p>",
"context" => "tag:mastodon.example.org,#{date}:objectId=#{i}:objectType=Conversation",
"conversation" =>
"tag:mastodon.example.org,#{date}:objectId=#{i}:objectType=Conversation",
"emoji" => %{},
"id" => actor.ap_id <> "/statuses/#{i}",
"inReplyTo" => nil,
"inReplyToAtomUri" => nil,
"published" => datetime,
"sensitive" => true,
"summary" => "cw",
"tag" => [
%{
"href" => user.ap_id,
"name" => "@#{user.nickname}@#{host}",
"type" => "Mention"
}
],
"to" => ["https://www.w3.org/ns/activitystreams#Public"],
"type" => "Note",
"url" => "http://#{host}/@#{actor.nickname}/#{i}"
},
"published" => datetime,
"to" => ["https://www.w3.org/ns/activitystreams#Public"],
"type" => "Create"
}
Pleroma.Web.ActivityPub.ActivityPub.insert(map, false)
end
def generate_dms(user, users, opts) do
IO.puts("Starting generating #{opts[:dms_max]} DMs")
{time, _} = :timer.tc(fn -> do_generate_dms(user, users, opts) end)
IO.puts("Inserting dms take #{to_sec(time)} sec.\n")
end
defp do_generate_dms(user, users, opts) do
Task.async_stream(
1..opts[:dms_max],
fn _ ->
do_generate_dm(user, users)
end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end
defp do_generate_dm(user, users) do
post = %{
"status" => "@#{user.nickname} some direct message",
"visibility" => "direct"
}
CommonAPI.post(Enum.random(users), post)
end
def generate_long_thread(user, users, opts) do
IO.puts("Starting generating long thread with #{opts[:thread_length]} replies")
{time, activity} = :timer.tc(fn -> do_generate_long_thread(user, users, opts) end)
IO.puts("Inserting long thread replies take #{to_sec(time)} sec.\n")
{:ok, activity}
end
defp do_generate_long_thread(user, users, opts) do
{:ok, %{id: id} = activity} = CommonAPI.post(user, %{"status" => "Start of long thread"})
Task.async_stream(
1..opts[:thread_length],
fn _ -> do_generate_thread(users, id) end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
activity
end
defp do_generate_thread(users, activity_id) do
CommonAPI.post(Enum.random(users), %{
"status" => "reply to main post",
"in_reply_to_status_id" => activity_id
})
end
def generate_non_visible_message(user, users) do
IO.puts("Starting generating 1000 non visible posts")
{time, _} =
:timer.tc(fn ->
do_generate_non_visible_posts(user, users)
end)
IO.puts("Inserting non visible posts take #{to_sec(time)} sec.\n")
end
defp do_generate_non_visible_posts(user, users) do
[not_friend | users] = users
make_friends(user, users)
Task.async_stream(1..1000, fn _ -> do_generate_non_visible_post(not_friend, users) end,
max_concurrency: 10,
timeout: 30_000
)
|> Stream.run()
end
defp make_friends(_user, []), do: nil
defp make_friends(user, [friend | users]) do
{:ok, _} = User.follow(user, friend)
{:ok, _} = User.follow(friend, user)
make_friends(user, users)
end
defp do_generate_non_visible_post(not_friend, users) do
post = %{
"status" => "some non visible post",
"visibility" => "private"
}
{:ok, activity} = CommonAPI.post(not_friend, post)
thread_length = Enum.random([2, 3, 4, 5])
Enum.each(1..thread_length, fn _ ->
user = Enum.random(users)
post = %{
"status" => "@#{not_friend.nickname} reply to non visible post",
"in_reply_to_status_id" => activity.id,
"visibility" => "private"
}
CommonAPI.post(user, post)
end)
end
end

View File

@ -1,11 +1,14 @@
defmodule Pleroma.LoadTesting.Helper do
defmacro __using__(_) do
quote do
import Ecto.Query
alias Pleroma.Repo
alias Pleroma.User
alias Ecto.Adapters.SQL
alias Pleroma.Repo
defp to_sec(microseconds), do: microseconds / 1_000_000
end
def to_sec(microseconds), do: microseconds / 1_000_000
def clean_tables do
IO.puts("Deleting old data...\n")
SQL.query!(Repo, "TRUNCATE users CASCADE;")
SQL.query!(Repo, "TRUNCATE activities CASCADE;")
SQL.query!(Repo, "TRUNCATE objects CASCADE;")
SQL.query!(Repo, "TRUNCATE oban_jobs CASCADE;")
end
end

View File

@ -0,0 +1,189 @@
defmodule Pleroma.LoadTesting.Users do
@moduledoc """
Module for generating users with friends.
"""
import Ecto.Query
import Pleroma.LoadTesting.Helper, only: [to_sec: 1]
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.User.Query
@defaults [
users: 20_000,
friends: 100
]
@max_concurrency 10
@spec generate(keyword()) :: User.t()
def generate(opts \\ []) do
opts = Keyword.merge(@defaults, opts)
generate_users(opts[:users])
main_user =
Repo.one(from(u in User, where: u.local == true, order_by: fragment("RANDOM()"), limit: 1))
make_friends(main_user, opts[:friends])
User.get_by_id(main_user.id)
end
def generate_users(max) do
IO.puts("Starting generating #{max} users...")
{time, users} =
:timer.tc(fn ->
Task.async_stream(
1..max,
&generate_user(&1),
max_concurrency: @max_concurrency,
timeout: 30_000
)
|> Enum.to_list()
end)
IO.puts("Generating users took #{to_sec(time)} sec.\n")
users
end
defp generate_user(i) do
remote = Enum.random([true, false])
%User{
name: "Test テスト User #{i}",
email: "user#{i}@example.com",
nickname: "nick#{i}",
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt("test"),
bio: "Tester Number #{i}",
local: !remote
}
|> user_urls()
|> Repo.insert!()
end
defp user_urls(%{local: true} = user) do
urls = %{
ap_id: User.ap_id(user),
follower_address: User.ap_followers(user),
following_address: User.ap_following(user)
}
Map.merge(user, urls)
end
defp user_urls(%{local: false} = user) do
base_domain = Enum.random(["domain1.com", "domain2.com", "domain3.com"])
ap_id = "https://#{base_domain}/users/#{user.nickname}"
urls = %{
ap_id: ap_id,
follower_address: ap_id <> "/followers",
following_address: ap_id <> "/following"
}
Map.merge(user, urls)
end
def make_friends(main_user, max) when is_integer(max) do
IO.puts("Starting making friends for #{max} users...")
{time, _} =
:timer.tc(fn ->
number_of_users =
(max / 2)
|> Kernel.trunc()
main_user
|> get_users(%{limit: number_of_users, local: :local})
|> run_stream(main_user)
main_user
|> get_users(%{limit: number_of_users, local: :external})
|> run_stream(main_user)
end)
IO.puts("Making friends took #{to_sec(time)} sec.\n")
end
def make_friends(%User{} = main_user, %User{} = user) do
{:ok, _, _} = User.follow(main_user, user)
{:ok, _, _} = User.follow(user, main_user)
end
@spec get_users(User.t(), keyword()) :: [User.t()]
def get_users(user, opts) do
criteria = %{limit: opts[:limit]}
criteria =
if opts[:local] do
Map.put(criteria, opts[:local], true)
else
criteria
end
criteria =
if opts[:friends?] do
Map.put(criteria, :friends, user)
else
criteria
end
query =
criteria
|> Query.build()
|> random_without_user(user)
query =
if opts[:friends?] == false do
friends_ids =
%{friends: user}
|> Query.build()
|> Repo.all()
|> Enum.map(& &1.id)
from(u in query, where: u.id not in ^friends_ids)
else
query
end
Repo.all(query)
end
defp random_without_user(query, user) do
from(u in query,
where: u.id != ^user.id,
order_by: fragment("RANDOM()")
)
end
defp run_stream(users, main_user) do
Task.async_stream(users, &make_friends(main_user, &1),
max_concurrency: @max_concurrency,
timeout: 30_000
)
|> Stream.run()
end
@spec prepare_users(User.t(), keyword()) :: map()
def prepare_users(user, opts) do
friends_limit = opts[:friends_used]
non_friends_limit = opts[:non_friends_used]
%{
user: user,
friends_local: fetch_users(user, friends_limit, :local, true),
friends_remote: fetch_users(user, friends_limit, :external, true),
non_friends_local: fetch_users(user, non_friends_limit, :local, false),
non_friends_remote: fetch_users(user, non_friends_limit, :external, false)
}
end
defp fetch_users(user, limit, local, friends?) do
user
|> get_users(limit: limit, local: local, friends?: friends?)
|> Enum.shuffle()
end
end

View File

@ -1,9 +1,11 @@
defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
use Mix.Task
alias Pleroma.Repo
alias Pleroma.LoadTesting.Generator
import Pleroma.LoadTesting.Helper, only: [clean_tables: 0]
import Ecto.Query
alias Pleroma.Repo
def run(_args) do
Mix.Pleroma.start_pleroma()
activities_count = Repo.aggregate(from(a in Pleroma.Activity), :count, :id)
@ -11,8 +13,8 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
if activities_count == 0 do
IO.puts("Did not find any activities, cleaning and generating")
clean_tables()
Generator.generate_users(users_max: 10)
Generator.generate_tagged_activities()
Pleroma.LoadTesting.Users.generate_users(10)
Pleroma.LoadTesting.Activities.generate_tagged_activities()
else
IO.puts("Found #{activities_count} activities, won't generate new ones")
end
@ -34,7 +36,7 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
Benchee.run(
%{
"Hashtag fetching, any" => fn tags ->
Pleroma.Web.MastodonAPI.TimelineController.hashtag_fetching(
hashtag_fetching(
%{
"any" => tags
},
@ -44,7 +46,7 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
end,
# Will always return zero results because no overlapping hashtags are generated.
"Hashtag fetching, all" => fn tags ->
Pleroma.Web.MastodonAPI.TimelineController.hashtag_fetching(
hashtag_fetching(
%{
"all" => tags
},
@ -64,7 +66,7 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
Benchee.run(
%{
"Hashtag fetching" => fn tag ->
Pleroma.Web.MastodonAPI.TimelineController.hashtag_fetching(
hashtag_fetching(
%{
"tag" => tag
},
@ -78,10 +80,35 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
)
end
defp clean_tables do
IO.puts("Deleting old data...\n")
Ecto.Adapters.SQL.query!(Repo, "TRUNCATE users CASCADE;")
Ecto.Adapters.SQL.query!(Repo, "TRUNCATE activities CASCADE;")
Ecto.Adapters.SQL.query!(Repo, "TRUNCATE objects CASCADE;")
defp hashtag_fetching(params, user, local_only) do
tags =
[params["tag"], params["any"]]
|> List.flatten()
|> Enum.uniq()
|> Enum.filter(& &1)
|> Enum.map(&String.downcase(&1))
tag_all =
params
|> Map.get("all", [])
|> Enum.map(&String.downcase(&1))
tag_reject =
params
|> Map.get("none", [])
|> Enum.map(&String.downcase(&1))
_activities =
%{
type: "Create",
local_only: local_only,
blocking_user: user,
muting_user: user,
user: user,
tag: tags,
tag_all: tag_all,
tag_reject: tag_reject,
}
|> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities()
end
end

View File

@ -0,0 +1,70 @@
defmodule Mix.Tasks.Pleroma.Benchmarks.Timelines do
use Mix.Task
import Pleroma.LoadTesting.Helper, only: [clean_tables: 0]
alias Pleroma.Web.CommonAPI
alias Plug.Conn
def run(_args) do
Mix.Pleroma.start_pleroma()
# Cleaning tables
clean_tables()
[{:ok, user} | users] = Pleroma.LoadTesting.Users.generate_users(1000)
# Let the user make 100 posts
1..100
|> Enum.each(fn i -> CommonAPI.post(user, %{status: to_string(i)}) end)
# Let 10 random users post
posts =
users
|> Enum.take_random(10)
|> Enum.map(fn {:ok, random_user} ->
{:ok, activity} = CommonAPI.post(random_user, %{status: "."})
activity
end)
# let our user repeat them
posts
|> Enum.each(fn activity ->
CommonAPI.repeat(activity.id, user)
end)
Benchee.run(
%{
"user timeline, no followers" => fn reading_user ->
conn =
Phoenix.ConnTest.build_conn()
|> Conn.assign(:user, reading_user)
|> Conn.assign(:skip_link_headers, true)
Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{id: user.id})
end
},
inputs: %{"user" => user, "no user" => nil},
time: 60
)
users
|> Enum.each(fn {:ok, follower} -> Pleroma.User.follow(follower, user) end)
Benchee.run(
%{
"user timeline, all following" => fn reading_user ->
conn =
Phoenix.ConnTest.build_conn()
|> Conn.assign(:user, reading_user)
|> Conn.assign(:skip_link_headers, true)
Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{id: user.id})
end
},
inputs: %{"user" => user, "no user" => nil},
time: 60
)
end
end

View File

@ -1,114 +1,56 @@
defmodule Mix.Tasks.Pleroma.LoadTesting do
use Mix.Task
use Pleroma.LoadTesting.Helper
import Mix.Pleroma
import Pleroma.LoadTesting.Generator
import Pleroma.LoadTesting.Fetcher
import Ecto.Query
import Pleroma.LoadTesting.Helper, only: [clean_tables: 0]
alias Pleroma.Repo
alias Pleroma.User
@shortdoc "Factory for generation data"
@moduledoc """
Generates data like:
- local/remote users
- local/remote activities with notifications
- direct messages
- long thread
- non visible posts
- local/remote activities with differrent visibility:
- simple activiities
- with emoji
- with mentions
- hellthreads
- with attachments
- with tags
- likes
- reblogs
- simple threads
- long threads
## Generate data
MIX_ENV=benchmark mix pleroma.load_testing --users 20000 --dms 20000 --thread_length 2000
MIX_ENV=benchmark mix pleroma.load_testing -u 20000 -d 20000 -t 2000
MIX_ENV=benchmark mix pleroma.load_testing --users 20000 --friends 1000 --iterations 170 --friends_used 20 --non_friends_used 20
MIX_ENV=benchmark mix pleroma.load_testing -u 20000 -f 1000 -i 170 -fu 20 -nfu 20
Options:
- `--users NUMBER` - number of users to generate. Defaults to: 20000. Alias: `-u`
- `--dms NUMBER` - number of direct messages to generate. Defaults to: 20000. Alias `-d`
- `--thread_length` - number of messages in thread. Defaults to: 2000. ALias `-t`
- `--friends NUMBER` - number of friends for main user. Defaults to: 1000. Alias: `-f`
- `--iterations NUMBER` - number of iterations to generate activities. For each iteration in database is inserted about 120+ activities with different visibility, actors and types.Defaults to: 170. Alias: `-i`
- `--friends_used NUMBER` - number of main user friends used in activity generation. Defaults to: 20. Alias: `-fu`
- `--non_friends_used NUMBER` - number of non friends used in activity generation. Defaults to: 20. Alias: `-nfu`
"""
@aliases [u: :users, d: :dms, t: :thread_length]
@aliases [u: :users, f: :friends, i: :iterations, fu: :friends_used, nfu: :non_friends_used]
@switches [
users: :integer,
dms: :integer,
thread_length: :integer
friends: :integer,
iterations: :integer,
friends_used: :integer,
non_friends_used: :integer
]
@users_default 20_000
@dms_default 1_000
@thread_length_default 2_000
def run(args) do
start_pleroma()
Pleroma.Config.put([:instance, :skip_thread_containment], true)
Logger.configure(level: :error)
Mix.Pleroma.start_pleroma()
clean_tables()
{opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases)
users_max = Keyword.get(opts, :users, @users_default)
dms_max = Keyword.get(opts, :dms, @dms_default)
thread_length = Keyword.get(opts, :thread_length, @thread_length_default)
clean_tables()
opts =
Keyword.put(opts, :users_max, users_max)
|> Keyword.put(:dms_max, dms_max)
|> Keyword.put(:thread_length, thread_length)
generate_users(opts)
# main user for queries
IO.puts("Fetching local main user...")
{time, user} =
:timer.tc(fn ->
Repo.one(
from(u in User, where: u.local == true, order_by: fragment("RANDOM()"), limit: 1)
)
end)
IO.puts("Fetching main user take #{to_sec(time)} sec.\n")
IO.puts("Fetching local users...")
{time, users} =
:timer.tc(fn ->
Repo.all(
from(u in User,
where: u.id != ^user.id,
where: u.local == true,
order_by: fragment("RANDOM()"),
limit: 10
)
)
end)
IO.puts("Fetching local users take #{to_sec(time)} sec.\n")
IO.puts("Fetching remote users...")
{time, remote_users} =
:timer.tc(fn ->
Repo.all(
from(u in User,
where: u.id != ^user.id,
where: u.local == false,
order_by: fragment("RANDOM()"),
limit: 10
)
)
end)
IO.puts("Fetching remote users take #{to_sec(time)} sec.\n")
generate_activities(user, users)
generate_remote_activities(user, remote_users)
generate_like_activities(
user, Pleroma.Repo.all(Pleroma.Activity.Queries.by_type("Create"))
)
generate_dms(user, users, opts)
{:ok, activity} = generate_long_thread(user, users, opts)
generate_non_visible_message(user, users)
user = Pleroma.LoadTesting.Users.generate(opts)
Pleroma.LoadTesting.Activities.generate(user, opts)
IO.puts("Users in DB: #{Repo.aggregate(from(u in User), :count, :id)}")
@ -120,19 +62,6 @@ defmodule Mix.Tasks.Pleroma.LoadTesting do
"Notifications in DB: #{Repo.aggregate(from(n in Pleroma.Notification), :count, :id)}"
)
fetch_user(user)
query_timelines(user)
query_notifications(user)
query_dms(user)
query_long_thread(user, activity)
Pleroma.Config.put([:instance, :skip_thread_containment], false)
query_timelines(user)
end
defp clean_tables do
IO.puts("Deleting old data...\n")
Ecto.Adapters.SQL.query!(Repo, "TRUNCATE users CASCADE;")
Ecto.Adapters.SQL.query!(Repo, "TRUNCATE activities CASCADE;")
Ecto.Adapters.SQL.query!(Repo, "TRUNCATE objects CASCADE;")
Pleroma.LoadTesting.Fetcher.run_benchmarks(user)
end
end

8
ci/Dockerfile Normal file
View File

@ -0,0 +1,8 @@
FROM elixir:1.10.4
# Single RUN statement, otherwise intermediate images are created
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
RUN apt-get update &&\
apt-get install -y libmagic-dev cmake libimage-exiftool-perl ffmpeg &&\
mix local.hex --force &&\
mix local.rebar --force

12
ci/README Normal file
View File

@ -0,0 +1,12 @@
## Dependencies
Assuming an AMD64 Alpine system, you're going to need the following packages
- `qemu qemu-openrc qemu-arm qemu-aarch64` for binfmt
- `docker-cli-buildx` for building the images
## Setting up
```
docker login git.pleroma.social:5050
doas rc-service qemu-binfmt start
```

1
ci/build_and_push.sh Executable file
View File

@ -0,0 +1 @@
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:latest --push .

View File

@ -1,11 +1,10 @@
use Mix.Config
import Config
# We don't run a server during test. If one is required,
# you can enable the server option below.
config :pleroma, Pleroma.Web.Endpoint,
http: [port: 4001],
url: [port: 4001],
server: true
url: [port: 4001]
# Disable captha for tests
config :pleroma, Pleroma.Captcha,
@ -39,12 +38,12 @@ config :pleroma, Pleroma.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "pleroma_test",
database: "pleroma_benchmark",
hostname: System.get_env("DB_HOST") || "localhost",
pool_size: 10
# Reduce hash rounds for testing
config :pbkdf2_elixir, rounds: 1
config :pleroma, :password, iterations: 1
config :tesla, adapter: Tesla.Mock
@ -59,10 +58,6 @@ config :web_push_encryption, :vapid_details,
"BLH1qVhJItRGCfxgTtONfsOKDc9VRAraXw-3NsmjMngWSh7NxOizN6bkuRA7iLTMPS82PjwJAr3UoK9EC1IFrz4",
private_key: "_-XZ0iebPrRfZ_o0-IatTdszYa8VCH1yLN-JauK7HHA"
config :web_push_encryption, :http_client, Pleroma.Web.WebPushHttpClientMock
config :pleroma_job_queue, disabled: true
config :pleroma, Pleroma.ScheduledActivity,
daily_user_limit: 2,
total_user_limit: 3,

View File

@ -37,17 +37,16 @@
# FIGURATION! EDIT YOUR SECRET FILE (either prod.secret.exs, dev.secret.exs).
#
# This file is responsible for configuring your application
# and its dependencies with the aid of the Mix.Config module.
# and its dependencies with the aid of the Config module.
#
# This configuration file is loaded before any dependency and
# is restricted to this project.
use Mix.Config
import Config
# General application configuration
config :pleroma, ecto_repos: [Pleroma.Repo]
config :pleroma, Pleroma.Repo,
types: Pleroma.PostgresTypes,
telemetry_event: [Pleroma.Repo.Instrumenter],
migration_lock: nil
@ -58,41 +57,30 @@ config :pleroma, Pleroma.Captcha,
config :pleroma, Pleroma.Captcha.Kocaptcha, endpoint: "https://captcha.kotobank.ch"
config :pleroma, :hackney_pools,
federation: [
max_connections: 50,
timeout: 150_000
],
media: [
max_connections: 50,
timeout: 150_000
],
upload: [
max_connections: 25,
timeout: 300_000
]
# Upload configuration
config :pleroma, Pleroma.Upload,
uploader: Pleroma.Uploaders.Local,
filters: [Pleroma.Upload.Filter.Dedupe],
link_name: false,
proxy_remote: false,
proxy_opts: [
redirect_on_failure: false,
max_body_length: 25 * 1_048_576,
http: [
follow_redirect: true,
pool: :upload
]
]
filename_display_max_length: 30,
default_description: nil,
base_url: nil
config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads"
config :pleroma, Pleroma.Uploaders.S3,
bucket: nil,
streaming_enabled: true,
public_endpoint: "https://s3.amazonaws.com"
bucket_namespace: nil,
truncated_namespace: nil,
streaming_enabled: true
config :ex_aws, :s3,
# host: "s3.wasabisys.com", # required if not Amazon AWS
access_key_id: nil,
secret_access_key: nil,
# region: "us-east-1", # may be required for Amazon AWS
scheme: "https://"
config :pleroma, :emoji,
shortcode_globs: ["/emoji/custom/**/*.png"],
@ -110,6 +98,7 @@ config :pleroma, :uri_schemes,
"dat",
"dweb",
"gopher",
"hyper",
"ipfs",
"ipns",
"irc",
@ -134,7 +123,6 @@ websocket_config = [
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
instrumenters: [Pleroma.Web.Endpoint.Instrumenter],
url: [host: "localhost"],
http: [
ip: {127, 0, 0, 1},
@ -151,9 +139,10 @@ config :pleroma, Pleroma.Web.Endpoint,
],
protocol: "https",
secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
live_view: [signing_salt: "U5ELgdEwTD3n1+D5s0rY0AMg8/y1STxZ3Zvsl3bWh+oBcGrYdil0rXqPMRd3Glcq"],
signing_salt: "CqaoopA2",
render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)],
pubsub: [name: Pleroma.PubSub, adapter: Phoenix.PubSub.PG2],
pubsub_server: Pleroma.PubSub,
secure_cookie_flag: true,
extra_cookie_attrs: [
"SameSite=Lax"
@ -191,22 +180,18 @@ config :pleroma, :http,
proxy_url: nil,
send_user_agent: true,
user_agent: :default,
adapter: [
ssl_options: [
# Workaround for remote server certificate chain issues
partial_chain: &:hackney_connect.partial_chain/1,
# We don't support TLS v1.3 yet
versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
]
]
adapter: []
config :pleroma, :instance,
name: "Pleroma",
email: "example@example.com",
notify_email: "noreply@example.com",
description: "A Pleroma instance, an alternative fediverse server",
description: "Pleroma: An efficient and flexible fediverse server",
short_description: "",
background_image: "/images/city.jpg",
instance_thumbnail: "/instance/thumbnail.jpeg",
limit: 5_000,
chat_limit: 5_000,
description_limit: 5_000,
remote_limit: 100_000,
upload_limit: 16_000_000,
avatar_upload_limit: 2_000_000,
@ -221,6 +206,7 @@ config :pleroma, :instance,
registrations_open: true,
invites_enabled: false,
account_activation_required: false,
account_approval_required: false,
federating: true,
federation_incoming_replies_max_depth: 100,
federation_reachability_timeout_days: 7,
@ -228,10 +214,8 @@ config :pleroma, :instance,
Pleroma.Web.ActivityPub.Publisher
],
allow_relay: true,
rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,
public: true,
quarantined_instances: [],
managed_config: true,
static_dir: "instance/static/",
allowed_post_formats: [
"text/plain",
@ -239,13 +223,10 @@ config :pleroma, :instance,
"text/markdown",
"text/bbcode"
],
mrf_transparency: true,
mrf_transparency_exclusions: [],
autofollowed_nicknames: [],
autofollowing_nicknames: [],
max_pinned_statuses: 1,
attachment_links: false,
welcome_user_nickname: nil,
welcome_message: nil,
max_report_comment_size: 1000,
safe_dm_mentions: false,
healthcheck: false,
@ -258,9 +239,48 @@ config :pleroma, :instance,
max_remote_account_fields: 20,
account_field_name_length: 512,
account_field_value_length: 2048,
registration_reason_length: 500,
external_user_synchronization: true,
extended_nickname_format: true,
cleanup_attachments: false
cleanup_attachments: false,
multi_factor_authentication: [
totp: [
# digits 6 or 8
digits: 6,
period: 30
],
backup_codes: [
number: 5,
length: 16
]
],
show_reactions: true,
password_reset_token_validity: 60 * 60 * 24,
profile_directory: true,
privileged_staff: false,
max_endorsed_users: 20,
birthday_required: false,
birthday_min_age: 0,
max_media_attachments: 1_000
config :pleroma, :welcome,
direct_message: [
enabled: false,
sender_nickname: nil,
message: nil
],
chat_message: [
enabled: false,
sender_nickname: nil,
message: nil
],
email: [
enabled: false,
sender: nil,
subject: "Welcome to <%= instance_name %>",
html: "Welcome to <%= instance_name %>",
text: "Welcome to <%= instance_name %>"
]
config :pleroma, :feed,
post_title: %{
@ -282,23 +302,33 @@ config :pleroma, :markup,
config :pleroma, :frontend_configurations,
pleroma_fe: %{
theme: "pleroma-dark",
logo: "/static/logo.png",
alwaysShowSubjectInput: true,
background: "/images/city.jpg",
redirectRootNoLogin: "/main/all",
redirectRootLogin: "/main/friends",
showInstanceSpecificPanel: true,
scopeOptionsEnabled: false,
formattingOptionsEnabled: false,
collapseMessageWithSubject: false,
disableChat: false,
greentext: false,
hideFilteredStatuses: false,
hideMutedPosts: false,
hidePostStats: false,
hideSitename: false,
hideUserStats: false,
loginMethod: "password",
logo: "/static/logo.svg",
logoMargin: ".1em",
logoMask: true,
minimalScopesMode: false,
noAttachmentLinks: false,
nsfwCensorImage: "",
postContentType: "text/plain",
redirectRootLogin: "/main/friends",
redirectRootNoLogin: "/main/all",
scopeCopy: true,
sidebarRight: false,
showFeaturesPanel: true,
showInstanceSpecificPanel: false,
subjectLineBehavior: "email",
alwaysShowSubjectInput: true
},
masto_fe: %{
showInstanceSpecificPanel: true
theme: "pleroma-dark",
webPushNotifications: false
}
config :pleroma, :assets,
@ -317,8 +347,8 @@ config :pleroma, :assets,
config :pleroma, :manifest,
icons: [
%{
src: "/static/logo.png",
type: "image/png"
src: "/static/logo.svg",
type: "image/svg+xml"
}
],
theme_color: "#282c37",
@ -327,6 +357,7 @@ config :pleroma, :manifest,
config :pleroma, :activitypub,
unfollow_blocked: true,
outgoing_blocks: true,
blockers_visible: true,
follow_handshake_timeout: 500,
note_replies_output_limit: 5,
sign_object_fetches: true,
@ -354,41 +385,59 @@ config :pleroma, :mrf_simple,
federated_timeline_removal: [],
report_removal: [],
reject: [],
followers_only: [],
accept: [],
avatar_removal: [],
banner_removal: []
banner_removal: [],
reject_deletes: []
config :pleroma, :mrf_keyword,
reject: [],
federated_timeline_removal: [],
replace: []
config :pleroma, :mrf_hashtag,
sensitive: ["nsfw"],
reject: [],
federated_timeline_removal: []
config :pleroma, :mrf_subchain, match_actor: %{}
config :pleroma, :mrf_activity_expiration, days: 365
config :pleroma, :mrf_vocabulary,
accept: [],
reject: []
# threshold of 7 days
config :pleroma, :mrf_object_age,
threshold: 172_800,
threshold: 604_800,
actions: [:delist, :strip_followers]
config :pleroma, :mrf_follow_bot, follower_nickname: nil
config :pleroma, :rich_media,
enabled: true,
ignore_hosts: [],
ignore_tld: ["local", "localdomain", "lan"],
parsers: [
Pleroma.Web.RichMedia.Parsers.TwitterCard,
Pleroma.Web.RichMedia.Parsers.OGP,
Pleroma.Web.RichMedia.Parsers.OEmbed
],
failure_backoff: 60_000,
ttl_setters: [Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl]
config :pleroma, :media_proxy,
enabled: false,
invalidation: [
enabled: false,
provider: Pleroma.Web.MediaProxy.Invalidation.Script
],
proxy_opts: [
redirect_on_failure: false,
max_body_length: 25 * 1_048_576,
# Note: max_read_duration defaults to Pleroma.ReverseProxy.max_read_duration_default/1
max_read_duration: 30_000,
http: [
follow_redirect: true,
pool: :media
@ -396,9 +445,28 @@ config :pleroma, :media_proxy,
],
whitelist: []
config :pleroma, :chat, enabled: true
config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http,
method: :purge,
headers: [],
options: []
config :phoenix, :format_encoders, json: Jason
config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script,
script_path: nil,
url_format: nil
# Note: media preview proxy depends on media proxy to be enabled
config :pleroma, :media_preview_proxy,
enabled: false,
thumbnail_max_width: 600,
thumbnail_max_height: 600,
image_quality: 85,
min_content_length: 100 * 1024
config :pleroma, :shout,
enabled: true,
limit: 5_000
config :phoenix, :format_encoders, json: Jason, "activity+json": Jason
config :phoenix, :json_library, Jason
@ -412,12 +480,15 @@ config :pleroma, :gopher,
config :pleroma, Pleroma.Web.Metadata,
providers: [
Pleroma.Web.Metadata.Providers.OpenGraph,
Pleroma.Web.Metadata.Providers.TwitterCard,
Pleroma.Web.Metadata.Providers.RelMe,
Pleroma.Web.Metadata.Providers.Feed
Pleroma.Web.Metadata.Providers.TwitterCard
],
unfurl_nsfw: false
config :pleroma, Pleroma.Web.Preload,
providers: [
Pleroma.Web.Preload.Providers.Instance
]
config :pleroma, :http_security,
enabled: true,
sts: false,
@ -470,30 +541,40 @@ config :pleroma, Pleroma.User,
"user-search",
"user_exists",
"users",
"web"
]
"web",
"verify_credentials",
"update_credentials",
"relationships",
"search",
"confirmation_resend",
"mfa"
],
email_blacklist: []
config :pleroma, Oban,
repo: Pleroma.Repo,
verbose: false,
prune: {:maxlen, 1500},
log: false,
queues: [
activity_expiration: 10,
token_expiration: 5,
filter_expiration: 1,
backup: 1,
federator_incoming: 50,
federator_outgoing: 50,
ingestion_queue: 50,
web_push: 50,
mailer: 10,
transmogrifier: 20,
scheduled_activities: 10,
poll_notifications: 10,
background: 5,
remote_fetcher: 2,
attachments_cleanup: 5,
new_users_digest: 1
attachments_cleanup: 1,
new_users_digest: 1,
mute_expire: 5
],
plugins: [Oban.Plugins.Pruner],
crontab: [
{"0 0 * * *", Pleroma.Workers.Cron.ClearOauthTokenWorker},
{"0 * * * *", Pleroma.Workers.Cron.StatsWorker},
{"* * * * *", Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker},
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker}
]
@ -504,16 +585,14 @@ config :pleroma, :workers,
federator_outgoing: 5
]
config :auto_linker,
opts: [
extra: true,
# TODO: Set to :no_scheme when it works properly
validate_tld: true,
class: false,
strip_prefix: false,
new_window: false,
rel: "ugc"
]
config :pleroma, Pleroma.Formatter,
class: false,
rel: "ugc",
new_window: false,
truncate: false,
strip_prefix: false,
extra: true,
validate_tld: :no_scheme
config :pleroma, :ldap,
enabled: System.get_env("LDAP_ENABLED") == "true",
@ -547,10 +626,7 @@ config :ueberauth,
base_path: "/oauth",
providers: ueberauth_providers
config :pleroma,
:auth,
enforce_oauth_admin_scope_usage: true,
oauth_consumer_strategies: oauth_consumer_strategies
config :pleroma, :auth, oauth_consumer_strategies: oauth_consumer_strategies
config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Sendmail, enabled: false
@ -567,7 +643,12 @@ config :pleroma, Pleroma.Emails.UserEmail,
config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: false
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics"
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter,
enabled: false,
auth: false,
ip_whitelist: [],
path: "/api/pleroma/app_metrics",
format: :text
config :pleroma, Pleroma.ScheduledActivity,
daily_user_limit: 25,
@ -582,12 +663,18 @@ config :pleroma, :email_notifications,
}
config :pleroma, :oauth2,
token_expires_in: 600,
token_expires_in: 3600 * 24 * 365 * 100,
issue_new_refresh_token: true,
clean_expired_tokens: false
config :pleroma, :database, rum_enabled: false
config :pleroma, :features, improved_hashtag_timeline: :auto
config :pleroma, :populate_hashtags_table, fault_rate_allowance: 0.01
config :pleroma, :delete_context_objects, fault_rate_allowance: 0.01
config :pleroma, :env, Mix.env()
config :http_signatures,
@ -606,12 +693,87 @@ config :pleroma, :rate_limit,
account_confirmation_resend: {8_640_000, 5},
ap_routes: {60_000, 15}
config :pleroma, Pleroma.ActivityExpiration, enabled: true
config :pleroma, Pleroma.Workers.PurgeExpiredActivity, enabled: true, min_lifetime: 600
config :pleroma, Pleroma.Plugs.RemoteIp, enabled: true
config :pleroma, Pleroma.Web.Plugs.RemoteIp,
enabled: true,
headers: ["x-forwarded-for"],
proxies: [],
reserved: [
"127.0.0.0/8",
"::1/128",
"fc00::/7",
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
config :pleroma, :static_fe, enabled: false
# Example of frontend configuration
# This example will make us serve the primary frontend from the
# frontends directory within your `:pleroma, :instance, static_dir`.
# e.g., instance/static/frontends/pleroma/develop/
#
# With no frontend configuration, the bundled files from the `static` directory will
# be used.
#
# config :pleroma, :frontends,
# primary: %{"name" => "pleroma-fe", "ref" => "develop"},
# admin: %{"name" => "admin-fe", "ref" => "stable"},
# available: %{...}
config :pleroma, :frontends,
available: %{
"kenoma" => %{
"name" => "kenoma",
"git" => "https://git.pleroma.social/lambadalambda/kenoma",
"build_url" =>
"https://git.pleroma.social/lambadalambda/kenoma/-/jobs/artifacts/${ref}/download?job=build",
"ref" => "master"
},
"pleroma-fe" => %{
"name" => "pleroma-fe",
"git" => "https://git.pleroma.social/pleroma/pleroma-fe",
"build_url" =>
"https://git.pleroma.social/pleroma/pleroma-fe/-/jobs/artifacts/${ref}/download?job=build",
"ref" => "develop"
},
"fedi-fe" => %{
"name" => "fedi-fe",
"git" => "https://git.pleroma.social/pleroma/fedi-fe",
"build_url" =>
"https://git.pleroma.social/pleroma/fedi-fe/-/jobs/artifacts/${ref}/download?job=build_release",
"ref" => "master",
"custom-http-headers" => [
{"service-worker-allowed", "/"}
]
},
"admin-fe" => %{
"name" => "admin-fe",
"git" => "https://git.pleroma.social/pleroma/admin-fe",
"build_url" =>
"https://git.pleroma.social/pleroma/admin-fe/-/jobs/artifacts/${ref}/download?job=build",
"ref" => "develop"
},
"soapbox-fe" => %{
"name" => "soapbox-fe",
"git" => "https://gitlab.com/soapbox-pub/soapbox-fe",
"build_url" =>
"https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/${ref}/download?job=build-production",
"ref" => "v1.0.0",
"build_dir" => "static"
},
"glitch-lily" => %{
"name" => "glitch-lily",
"git" => "https://lily-is.land/infra/glitch-lily",
"build_url" =>
"https://lily-is.land/infra/glitch-lily/-/jobs/artifacts/${ref}/download?job=build",
"ref" => "servant",
"build_dir" => "public"
}
}
config :pleroma, :web_cache_ttl,
activity_pub: nil,
activity_pub_question: 30_000
@ -624,6 +786,89 @@ config :pleroma, Pleroma.Repo,
parameters: [gin_fuzzy_search_limit: "500"],
prepare: :unnamed
config :pleroma, :connections_pool,
reclaim_multiplier: 0.1,
connection_acquisition_wait: 250,
connection_acquisition_retries: 5,
max_connections: 250,
max_idle_time: 30_000,
retry: 0,
connect_timeout: 5_000
config :pleroma, :pools,
federation: [
size: 50,
max_waiting: 10,
recv_timeout: 10_000
],
media: [
size: 50,
max_waiting: 20,
recv_timeout: 15_000
],
upload: [
size: 25,
max_waiting: 5,
recv_timeout: 15_000
],
default: [
size: 10,
max_waiting: 2,
recv_timeout: 5_000
]
config :pleroma, :hackney_pools,
federation: [
max_connections: 50,
timeout: 150_000
],
media: [
max_connections: 50,
timeout: 150_000
],
upload: [
max_connections: 25,
timeout: 300_000
]
config :pleroma, :majic_pool, size: 2
private_instance? = :if_instance_is_private
config :pleroma, :restrict_unauthenticated,
timelines: %{local: private_instance?, federated: private_instance?},
profiles: %{local: private_instance?, remote: private_instance?},
activities: %{local: private_instance?, remote: private_instance?}
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: false
config :pleroma, :mrf,
policies: [Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy, Pleroma.Web.ActivityPub.MRF.TagPolicy],
transparency: true,
transparency_exclusions: []
config :tzdata, :http_client, Pleroma.HTTP.Tzdata
config :ex_aws, http_client: Pleroma.HTTP.ExAws
config :web_push_encryption, http_client: Pleroma.HTTP.WebPush
config :pleroma, :instances_favicons, enabled: false
config :floki, :html_parser, Floki.HTMLParser.FastHtml
config :pleroma, Pleroma.Web.Auth.Authenticator, Pleroma.Web.Auth.PleromaAuthenticator
config :pleroma, Pleroma.User.Backup,
purge_after_days: 30,
limit_days: 7,
dir: nil
config :pleroma, ConcurrentLimiter, [
{Pleroma.Web.RichMedia.Helpers, [max_running: 5, max_waiting: 5]},
{Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy, [max_running: 5, max_waiting: 5]}
]
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{Mix.env()}.exs"

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
use Mix.Config
import Config
# For development, we disable any cache and enable
# debugging and code reloading.
@ -52,10 +52,17 @@ config :pleroma, Pleroma.Repo,
hostname: "localhost",
pool_size: 10
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: true
# Reduce recompilation time
# https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects
config :phoenix, :plug_init_mode, :runtime
if File.exists?("./config/dev.secret.exs") do
import_config "dev.secret.exs"
else
IO.puts(
:stderr,
"!!! RUNNING IN LOCALHOST DEV MODE! !!!\nFEDERATION WON'T WORK UNTIL YOU CONFIGURE A dev.secret.exs"
)
end

View File

@ -1,4 +1,4 @@
use Mix.Config
import Config
config :pleroma, Pleroma.Web.Endpoint,
http: [

View File

@ -1,2 +1,3 @@
firefox, /emoji/Firefox.gif, Gif,Fun
blank, /emoji/blank.png, Fun
dinosaur, /emoji/dino walking.gif, Gif

View File

@ -1,4 +1,4 @@
use Mix.Config
import Config
# For production, we often load configuration from external
# sources, such as your system environment. For this reason,
@ -63,7 +63,12 @@ config :logger, :ex_syslogger, level: :info
# Finally import the config/prod.secret.exs
# which should be versioned separately.
import_config "prod.secret.exs"
if File.exists?("./config/prod.secret.exs") do
import_config "prod.secret.exs"
else
"`config/prod.secret.exs` not found. You may want to create one by running `mix pleroma.instance gen`"
|> IO.warn([])
end
if File.exists?("./config/prod.exported_from_db.secret.exs"),
do: import_config("prod.exported_from_db.secret.exs")

View File

@ -1,31 +0,0 @@
import Config
config :pleroma, :instance, static_dir: "/var/lib/pleroma/static"
config :pleroma, Pleroma.Uploaders.Local, uploads: "/var/lib/pleroma/uploads"
config :pleroma, :modules, runtime_dir: "/var/lib/pleroma/modules"
config_path = System.get_env("PLEROMA_CONFIG_PATH") || "/etc/pleroma/config.exs"
config :pleroma, release: true, config_path: config_path
if File.exists?(config_path) do
import_config config_path
else
warning = [
IO.ANSI.red(),
IO.ANSI.bright(),
"!!! #{config_path} not found! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file",
IO.ANSI.reset()
]
IO.puts(warning)
end
exported_config =
config_path
|> Path.dirname()
|> Path.join("prod.exported_from_db.secret.exs")
if File.exists?(exported_config) do
import_config exported_config
end

View File

@ -1,4 +1,4 @@
use Mix.Config
import Config
# We don't run a server during test. If one is required,
# you can enable the server option below.
@ -21,7 +21,10 @@ config :logger, :console,
config :pleroma, :auth, oauth_consumer_strategies: []
config :pleroma, Pleroma.Upload, filters: [], link_name: false
config :pleroma, Pleroma.Upload,
filters: [],
link_name: false,
default_description: :filename
config :pleroma, Pleroma.Uploaders.Local, uploads: "test/uploads"
@ -35,7 +38,7 @@ config :pleroma, :instance,
external_user_synchronization: false,
static_dir: "test/instance_static/"
config :pleroma, :activitypub, sign_object_fetches: false
config :pleroma, :activitypub, sign_object_fetches: false, follow_handshake_timeout: 0
# Configure your database
config :pleroma, Pleroma.Repo,
@ -44,10 +47,13 @@ config :pleroma, Pleroma.Repo,
password: "postgres",
database: "pleroma_test",
hostname: System.get_env("DB_HOST") || "localhost",
pool: Ecto.Adapters.SQL.Sandbox
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: 50
config :pleroma, :dangerzone, override_repo_pool_size: true
# Reduce hash rounds for testing
config :pbkdf2_elixir, rounds: 1
config :pleroma, :password, iterations: 1
config :tesla, adapter: Tesla.Mock
@ -56,18 +62,29 @@ config :pleroma, :rich_media,
ignore_hosts: [],
ignore_tld: ["local", "localdomain", "lan"]
config :pleroma, :instance,
multi_factor_authentication: [
totp: [
# digits 6 or 8
digits: 6,
period: 30
],
backup_codes: [
number: 2,
length: 6
]
]
config :web_push_encryption, :vapid_details,
subject: "mailto:administrator@example.com",
public_key:
"BLH1qVhJItRGCfxgTtONfsOKDc9VRAraXw-3NsmjMngWSh7NxOizN6bkuRA7iLTMPS82PjwJAr3UoK9EC1IFrz4",
private_key: "_-XZ0iebPrRfZ_o0-IatTdszYa8VCH1yLN-JauK7HHA"
config :web_push_encryption, :http_client, Pleroma.Web.WebPushHttpClientMock
config :pleroma, Oban,
queues: false,
prune: :disabled,
crontab: false
crontab: false,
plugins: false
config :pleroma, Pleroma.ScheduledActivity,
daily_user_limit: 2,
@ -90,9 +107,35 @@ config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock
config :pleroma, :modules, runtime_dir: "test/fixtures/modules"
config :pleroma, Pleroma.Gun, Pleroma.GunMock
config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: true
config :pleroma, Pleroma.Plugs.RemoteIp, enabled: false
config :pleroma, Pleroma.Web.Plugs.RemoteIp, enabled: false
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: true
config :tzdata, :autoupdate, :disabled
config :pleroma, :mrf, policies: []
config :pleroma, :pipeline,
object_validator: Pleroma.Web.ActivityPub.ObjectValidatorMock,
mrf: Pleroma.Web.ActivityPub.MRFMock,
activity_pub: Pleroma.Web.ActivityPub.ActivityPubMock,
side_effects: Pleroma.Web.ActivityPub.SideEffectsMock,
federator: Pleroma.Web.FederatorMock,
config: Pleroma.ConfigMock
config :pleroma, :cachex, provider: Pleroma.CachexMock
config :pleroma, :side_effects,
ap_streamer: Pleroma.Web.ActivityPub.ActivityPubMock,
logger: Pleroma.LoggerMock
# Reduce recompilation time
# https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects
config :phoenix, :plug_init_mode, :runtime
if File.exists?("./config/test.secret.exs") do
import_config "test.secret.exs"

7
coveralls.json Normal file
View File

@ -0,0 +1,7 @@
{
"skip_files": [
"test/support",
"lib/mix/tasks/pleroma/benchmark.ex",
"lib/credo/check/consistency/file_location.ex"
]
}

File diff suppressed because it is too large Load Diff

View File

@ -1,188 +0,0 @@
# Differences in Mastodon API responses from vanilla Mastodon
A Pleroma instance can be identified by "<Mastodon version> (compatible; Pleroma <version>)" present in `version` field in response from `/api/v1/instance`
## Flake IDs
Pleroma uses 128-bit ids as opposed to Mastodon's 64 bits. However just like Mastodon's ids they are sortable strings
## Attachment cap
Some apps operate under the assumption that no more than 4 attachments can be returned or uploaded. Pleroma however does not enforce any limits on attachment count neither when returning the status object nor when posting.
## Timelines
Adding the parameter `with_muted=true` to the timeline queries will also return activities by muted (not by blocked!) users.
Adding the parameter `exclude_visibilities` to the timeline queries will exclude the statuses with the given visibilities. The parameter accepts an array of visibility types (`public`, `unlisted`, `private`, `direct`), e.g., `exclude_visibilities[]=direct&exclude_visibilities[]=private`.
## Statuses
- `visibility`: has an additional possible value `list`
Has these additional fields under the `pleroma` object:
- `local`: true if the post was made on the local instance
- `conversation_id`: the ID of the AP context the status is associated with (if any)
- `direct_conversation_id`: the ID of the Mastodon direct message conversation the status is associated with (if any)
- `in_reply_to_account_acct`: the `acct` property of User entity for replied user (if any)
- `content`: a map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`
- `spoiler_text`: a map consisting of alternate representations of the `spoiler_text` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`
- `expires_at`: a datetime (iso8601) that states when the post will expire (be deleted automatically), or empty if the post won't expire
- `thread_muted`: true if the thread the post belongs to is muted
- `emoji_reactions`: A list with emoji / reaction maps. The format is `{name: "☕", count: 1, me: true}`. Contains no information about the reacting users, for that use the `/statuses/:id/reactions` endpoint.
## Attachments
Has these additional fields under the `pleroma` object:
- `mime_type`: mime type of the attachment.
## Accounts
The `id` parameter can also be the `nickname` of the user. This only works in these endpoints, not the deeper nested ones for following etc.
- `/api/v1/accounts/:id`
- `/api/v1/accounts/:id/statuses`
Has these additional fields under the `pleroma` object:
- `tags`: Lists an array of tags for the user
- `relationship{}`: Includes fields as documented for Mastodon API https://docs.joinmastodon.org/entities/relationship/
- `is_moderator`: boolean, nullable, true if user is a moderator
- `is_admin`: boolean, nullable, true if user is an admin
- `confirmation_pending`: boolean, true if a new user account is waiting on email confirmation to be activated
- `hide_followers`: boolean, true when the user has follower hiding enabled
- `hide_follows`: boolean, true when the user has follow hiding enabled
- `hide_followers_count`: boolean, true when the user has follower stat hiding enabled
- `hide_follows_count`: boolean, true when the user has follow stat hiding enabled
- `settings_store`: A generic map of settings for frontends. Opaque to the backend. Only returned in `verify_credentials` and `update_credentials`
- `chat_token`: The token needed for Pleroma chat. Only returned in `verify_credentials`
- `deactivated`: boolean, true when the user is deactivated
- `allow_following_move`: boolean, true when the user allows automatically follow moved following accounts
- `unread_conversation_count`: The count of unread conversations. Only returned to the account owner.
### Source
Has these additional fields under the `pleroma` object:
- `show_role`: boolean, nullable, true when the user wants his role (e.g admin, moderator) to be shown
- `no_rich_text` - boolean, nullable, true when html tags are stripped from all statuses requested from the API
- `discoverable`: boolean, true when the user allows discovery of the account in search results and other services.
- `actor_type`: string, the type of this account.
## Conversations
Has an additional field under the `pleroma` object:
- `recipients`: The list of the recipients of this Conversation. These will be addressed when replying to this conversation.
## GET `/api/v1/conversations`
Accepts additional parameters:
- `recipients`: Only return conversations with the given recipients (a list of user ids). Usage example: `GET /api/v1/conversations?recipients[]=1&recipients[]=2`
## Account Search
Behavior has changed:
- `/api/v1/accounts/search`: Does not require authentication
## Search (global)
Unlisted posts are available in search results, they are considered to be public posts that shouldn't be shown in local/federated timeline.
## Notifications
Has these additional fields under the `pleroma` object:
- `is_seen`: true if the notification was read by the user
### Move Notification
The `type` value is `move`. Has an additional field:
- `target`: new account
### EmojiReact Notification
The `type` value is `pleroma:emoji_reaction`. Has these fields:
- `emoji`: The used emoji
- `account`: The account of the user who reacted
- `status`: The status that was reacted on
## GET `/api/v1/notifications`
Accepts additional parameters:
- `exclude_visibilities`: will exclude the notifications for activities with the given visibilities. The parameter accepts an array of visibility types (`public`, `unlisted`, `private`, `direct`). Usage example: `GET /api/v1/notifications?exclude_visibilities[]=direct&exclude_visibilities[]=private`.
- `with_move`: boolean, when set to `true` will include Move notifications. `false` by default.
## POST `/api/v1/statuses`
Additional parameters can be added to the JSON body/Form data:
- `preview`: boolean, if set to `true` the post won't be actually posted, but the status entitiy would still be rendered back. This could be useful for previewing rich text/custom emoji, for example.
- `content_type`: string, contain the MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint.
- `to`: A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply.
- `visibility`: string, besides standard MastoAPI values (`direct`, `private`, `unlisted` or `public`) it can be used to address a List by setting it to `list:LIST_ID`.
- `expires_in`: The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour.
- `in_reply_to_conversation_id`: Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to `direct`.
## GET `/api/v1/statuses`
An endpoint to get multiple statuses by IDs.
Required parameters:
- `ids`: array of activity ids
Usage example: `GET /api/v1/statuses/?ids[]=1&ids[]=2`.
Returns: array of Status.
The maximum number of statuses is limited to 100 per request.
## PATCH `/api/v1/update_credentials`
Additional parameters can be added to the JSON body/Form data:
- `no_rich_text` - if true, html tags are stripped from all statuses requested from the API
- `hide_followers` - if true, user's followers will be hidden
- `hide_follows` - if true, user's follows will be hidden
- `hide_followers_count` - if true, user's follower count will be hidden
- `hide_follows_count` - if true, user's follow count will be hidden
- `hide_favorites` - if true, user's favorites timeline will be hidden
- `show_role` - if true, user's role (e.g admin, moderator) will be exposed to anyone in the API
- `default_scope` - the scope returned under `privacy` key in Source subentity
- `pleroma_settings_store` - Opaque user settings to be saved on the backend.
- `skip_thread_containment` - if true, skip filtering out broken threads
- `allow_following_move` - if true, allows automatically follow moved following accounts
- `pleroma_background_image` - sets the background image of the user.
- `discoverable` - if true, discovery of this account in search results and other services is allowed.
- `actor_type` - the type of this account.
### Pleroma Settings Store
Pleroma has mechanism that allows frontends to save blobs of json for each user on the backend. This can be used to save frontend-specific settings for a user that the backend does not need to know about.
The parameter should have a form of `{frontend_name: {...}}`, with `frontend_name` identifying your type of client, e.g. `pleroma_fe`. It will overwrite everything under this property, but will not overwrite other frontend's settings.
This information is returned in the `verify_credentials` endpoint.
## Authentication
*Pleroma supports refreshing tokens.
`POST /oauth/token`
Post here request with grant_type=refresh_token to obtain new access token. Returns an access token.
## Account Registration
`POST /api/v1/accounts`
Has theses additionnal parameters (which are the same as in Pleroma-API):
* `fullname`: optional
* `bio`: optional
* `captcha_solution`: optional, contains provider-specific captcha solution,
* `captcha_token`: optional, contains provider-specific captcha token
* `token`: invite token required when the registerations aren't public.

View File

@ -1,475 +0,0 @@
# Pleroma API
Requests that require it can be authenticated with [an OAuth token](https://tools.ietf.org/html/rfc6749), the `_pleroma_key` cookie, or [HTTP Basic Authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization).
Request parameters can be passed via [query strings](https://en.wikipedia.org/wiki/Query_string) or as [form data](https://www.w3.org/TR/html401/interact/forms.html). Files must be uploaded as `multipart/form-data`.
## `/api/pleroma/emoji`
### Lists the custom emoji on that server.
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
* Example response:
```json
{
"girlpower": {
"tags": [
"Finmoji"
],
"image_url": "/finmoji/128px/girlpower-128.png"
},
"education": {
"tags": [
"Finmoji"
],
"image_url": "/finmoji/128px/education-128.png"
},
"finnishlove": {
"tags": [
"Finmoji"
],
"image_url": "/finmoji/128px/finnishlove-128.png"
}
}
```
* Note: Same data as Mastodon APIs `/api/v1/custom_emojis` but in a different format
## `/api/pleroma/follow_import`
### Imports your follows, for example from a Mastodon CSV file.
* Method: `POST`
* Authentication: required
* Params:
* `list`: STRING or FILE containing a whitespace-separated list of accounts to follow
* Response: HTTP 200 on success, 500 on error
* Note: Users that can't be followed are silently skipped.
## `/api/pleroma/captcha`
### Get a new captcha
* Method: `GET`
* Authentication: not required
* Params: none
* Response: Provider specific JSON, the only guaranteed parameter is `type`
* Example response: `{"type": "kocaptcha", "token": "whatever", "url": "https://captcha.kotobank.ch/endpoint"}`
## `/api/pleroma/delete_account`
### Delete an account
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* Response: JSON. Returns `{"status": "success"}` if the deletion was successful, `{"error": "[error message]"}` otherwise
* Example response: `{"error": "Invalid password."}`
## `/api/pleroma/disable_account`
### Disable an account
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* Response: JSON. Returns `{"status": "success"}` if the account was successfully disabled, `{"error": "[error message]"}` otherwise
* Example response: `{"error": "Invalid password."}`
## `/api/pleroma/admin/`
See [Admin-API](admin_api.md)
## `/api/v1/pleroma/notifications/read`
### Mark notifications as read
* Method `POST`
* Authentication: required
* Params (mutually exclusive):
* `id`: a single notification id to read
* `max_id`: read all notifications up to this id
* Response: Notification entity/Array of Notification entities that were read. In case of `max_id`, only the first 80 read notifications will be returned.
## `/api/v1/pleroma/accounts/:id/subscribe`
### Subscribe to receive notifications for all statuses posted by a user
* Method `POST`
* Authentication: required
* Params:
* `id`: account id to subscribe to
* Response: JSON, returns a mastodon relationship object on success, otherwise returns `{"error": "error_msg"}`
* Example response:
```json
{
"id": "abcdefg",
"following": true,
"followed_by": false,
"blocking": false,
"muting": false,
"muting_notifications": false,
"subscribing": true,
"requested": false,
"domain_blocking": false,
"showing_reblogs": true,
"endorsed": false
}
```
## `/api/v1/pleroma/accounts/:id/unsubscribe`
### Unsubscribe to stop receiving notifications from user statuses
* Method `POST`
* Authentication: required
* Params:
* `id`: account id to unsubscribe from
* Response: JSON, returns a mastodon relationship object on success, otherwise returns `{"error": "error_msg"}`
* Example response:
```json
{
"id": "abcdefg",
"following": true,
"followed_by": false,
"blocking": false,
"muting": false,
"muting_notifications": false,
"subscribing": false,
"requested": false,
"domain_blocking": false,
"showing_reblogs": true,
"endorsed": false
}
```
## `/api/v1/pleroma/accounts/:id/favourites`
### Returns favorites timeline of any user
* Method `GET`
* Authentication: not required
* Params:
* `id`: the id of the account for whom to return results
* `limit`: optional, the number of records to retrieve
* `since_id`: optional, returns results that are more recent than the specified id
* `max_id`: optional, returns results that are older than the specified id
* Response: JSON, returns a list of Mastodon Status entities on success, otherwise returns `{"error": "error_msg"}`
* Example response:
```json
[
{
"account": {
"id": "9hptFmUF3ztxYh3Svg",
"url": "https://pleroma.example.org/users/nick2",
"username": "nick2",
...
},
"application": {"name": "Web", "website": null},
"bookmarked": false,
"card": null,
"content": "This is :moominmamma: note 0",
"created_at": "2019-04-15T15:42:15.000Z",
"emojis": [],
"favourited": false,
"favourites_count": 1,
"id": "9hptFmVJ02khbzYJaS",
"in_reply_to_account_id": null,
"in_reply_to_id": null,
"language": null,
"media_attachments": [],
"mentions": [],
"muted": false,
"pinned": false,
"pleroma": {
"content": {"text/plain": "This is :moominmamma: note 0"},
"conversation_id": 13679,
"local": true,
"spoiler_text": {"text/plain": "2hu"}
},
"reblog": null,
"reblogged": false,
"reblogs_count": 0,
"replies_count": 0,
"sensitive": false,
"spoiler_text": "2hu",
"tags": [{"name": "2hu", "url": "/tag/2hu"}],
"uri": "https://pleroma.example.org/objects/198ed2a1-7912-4482-b559-244a0369e984",
"url": "https://pleroma.example.org/notice/9hptFmVJ02khbzYJaS",
"visibility": "public"
}
]
```
## `/api/v1/pleroma/accounts/update_*`
### Set and clear account avatar, banner, and background
- PATCH `/api/v1/pleroma/accounts/update_avatar`: Set/clear user avatar image
- PATCH `/api/v1/pleroma/accounts/update_banner`: Set/clear user banner image
- PATCH `/api/v1/pleroma/accounts/update_background`: Set/clear user background image
## `/api/v1/pleroma/accounts/confirmation_resend`
### Resend confirmation email
* Method `POST`
* Params:
* `email`: email of that needs to be verified
* Authentication: not required
* Response: 204 No Content
## `/api/v1/pleroma/mascot`
### Gets user mascot image
* Method `GET`
* Authentication: required
* Response: JSON. Returns a mastodon media attachment entity.
* Example response:
```json
{
"id": "abcdefg",
"url": "https://pleroma.example.org/media/abcdefg.png",
"type": "image",
"pleroma": {
"mime_type": "image/png"
}
}
```
### Updates user mascot image
* Method `PUT`
* Authentication: required
* Params:
* `image`: Multipart image
* Response: JSON. Returns a mastodon media attachment entity
when successful, otherwise returns HTTP 415 `{"error": "error_msg"}`
* Example response:
```json
{
"id": "abcdefg",
"url": "https://pleroma.example.org/media/abcdefg.png",
"type": "image",
"pleroma": {
"mime_type": "image/png"
}
}
```
* Note: Behaves exactly the same as `POST /api/v1/upload`.
Can only accept images - any attempt to upload non-image files will be met with `HTTP 415 Unsupported Media Type`.
## `/api/pleroma/notification_settings`
### Updates user notification settings
* Method `PUT`
* Authentication: required
* Params:
* `followers`: BOOLEAN field, receives notifications from followers
* `follows`: BOOLEAN field, receives notifications from people the user follows
* `remote`: BOOLEAN field, receives notifications from people on remote instances
* `local`: BOOLEAN field, receives notifications from people on the local instance
* `privacy_option`: BOOLEAN field. When set to true, it removes the contents of a message from the push notification.
* Response: JSON. Returns `{"status": "success"}` if the update was successful, otherwise returns `{"error": "error_msg"}`
## `/api/pleroma/healthcheck`
### Healthcheck endpoint with additional system data.
* Method `GET`
* Authentication: not required
* Params: none
* Response: JSON, statuses (200 - healthy, 503 unhealthy).
* Example response:
```json
{
"pool_size": 0, # database connection pool
"active": 0, # active processes
"idle": 0, # idle processes
"memory_used": 0.00, # Memory used
"healthy": true, # Instance state
"job_queue_stats": {} # Job queue stats
}
```
## `/api/pleroma/change_email`
### Change account email
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* `email`: new email
* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise
* Note: Currently, Mastodon has no API for changing email. If they add it in future it might be incompatible with Pleroma.
# Pleroma Conversations
Pleroma Conversations have the same general structure that Mastodon Conversations have. The behavior differs in the following ways when using these endpoints:
1. Pleroma Conversations never add or remove recipients, unless explicitly changed by the user.
2. Pleroma Conversations statuses can be requested by Conversation id.
3. Pleroma Conversations can be replied to.
Conversations have the additional field `recipients` under the `pleroma` key. This holds a list of all the accounts that will receive a message in this conversation.
The status posting endpoint takes an additional parameter, `in_reply_to_conversation_id`, which, when set, will set the visiblity to direct and address only the people who are the recipients of that Conversation.
⚠ Conversation IDs can be found in direct messages with the `pleroma.direct_conversation_id` key, do not confuse it with `pleroma.conversation_id`.
## `GET /api/v1/pleroma/conversations/:id/statuses`
### Timeline for a given conversation
* Method `GET`
* Authentication: required
* Params: Like other timelines
* Response: JSON, statuses (200 - healthy, 503 unhealthy).
## `GET /api/v1/pleroma/conversations/:id`
### The conversation with the given ID.
* Method `GET`
* Authentication: required
* Params: None
* Response: JSON, statuses (200 - healthy, 503 unhealthy).
## `PATCH /api/v1/pleroma/conversations/:id`
### Update a conversation. Used to change the set of recipients.
* Method `PATCH`
* Authentication: required
* Params:
* `recipients`: A list of ids of users that should receive posts to this conversation. This will replace the current list of recipients, so submit the full list. The owner of owner of the conversation will always be part of the set of recipients, though.
* Response: JSON, statuses (200 - healthy, 503 unhealthy)
## `GET /api/v1/pleroma/conversations/read`
### Marks all user's conversations as read.
* Method `POST`
* Authentication: required
* Params: None
* Response: JSON, returns a list of Mastodon Conversation entities that were marked as read (200 - healthy, 503 unhealthy).
## `GET /api/pleroma/emoji/packs`
### Lists the custom emoji packs on the server
* Method `GET`
* Authentication: not required
* Params: None
* Response: JSON, "ok" and 200 status and the JSON hashmap of "pack name" to "pack contents"
## `PUT /api/pleroma/emoji/packs/:name`
### Creates an empty custom emoji pack
* Method `PUT`
* Authentication: required
* Params: None
* Response: JSON, "ok" and 200 status or 409 if the pack with that name already exists
## `DELETE /api/pleroma/emoji/packs/:name`
### Delete a custom emoji pack
* Method `DELETE`
* Authentication: required
* Params: None
* Response: JSON, "ok" and 200 status or 500 if there was an error deleting the pack
## `POST /api/pleroma/emoji/packs/:name/update_file`
### Update a file in a custom emoji pack
* Method `POST`
* Authentication: required
* Params:
* if the `action` is `add`, adds an emoji named `shortcode` to the pack `pack_name`,
that means that the emoji file needs to be uploaded with the request
(thus requiring it to be a multipart request) and be named `file`.
There can also be an optional `filename` that will be the new emoji file name
(if it's not there, the name will be taken from the uploaded file).
* if the `action` is `update`, changes emoji shortcode
(from `shortcode` to `new_shortcode` or moves the file (from the current filename to `new_filename`)
* if the `action` is `remove`, removes the emoji named `shortcode` and it's associated file
* Response: JSON, updated "files" section of the pack and 200 status, 409 if the trying to use a shortcode
that is already taken, 400 if there was an error with the shortcode, filename or file (additional info
in the "error" part of the response JSON)
## `POST /api/pleroma/emoji/packs/:name/update_metadata`
### Updates (replaces) pack metadata
* Method `POST`
* Authentication: required
* Params:
* `new_data`: new metadata to replace the old one
* Response: JSON, updated "metadata" section of the pack and 200 status or 400 if there was a
problem with the new metadata (the error is specified in the "error" part of the response JSON)
## `POST /api/pleroma/emoji/packs/download_from`
### Requests the instance to download the pack from another instance
* Method `POST`
* Authentication: required
* Params:
* `instance_address`: the address of the instance to download from
* `pack_name`: the pack to download from that instance
* Response: JSON, "ok" and 200 status if the pack was downloaded, or 500 if there were
errors downloading the pack
## `POST /api/pleroma/emoji/packs/list_from`
### Requests the instance to list the packs from another instance
* Method `POST`
* Authentication: required
* Params:
* `instance_address`: the address of the instance to download from
* Response: JSON with the pack list, same as if the request was made to that instance's
list endpoint directly + 200 status
## `GET /api/pleroma/emoji/packs/:name/download_shared`
### Requests a local pack from the instance
* Method `GET`
* Authentication: not required
* Params: None
* Response: the archive of the pack with a 200 status code, 403 if the pack is not set as shared,
404 if the pack does not exist
## `GET /api/v1/pleroma/accounts/:id/scrobbles`
### Requests a list of current and recent Listen activities for an account
* Method `GET`
* Authentication: not required
* Params: None
* Response: An array of media metadata entities.
* Example response:
```json
[
{
"account": {...},
"id": "1234",
"title": "Some Title",
"artist": "Some Artist",
"album": "Some Album",
"length": 180000,
"created_at": "2019-09-28T12:40:45.000Z"
}
]
```
## `POST /api/v1/pleroma/scrobble`
### Creates a new Listen activity for an account
* Method `POST`
* Authentication: required
* Params:
* `title`: the title of the media playing
* `album`: the album of the media playing [optional]
* `artist`: the artist of the media playing [optional]
* `length`: the length of the media playing [optional]
* Response: the newly created media metadata entity representing the Listen activity
# Emoji Reactions
Emoji reactions work a lot like favourites do. They make it possible to react to a post with a single emoji character.
## `PUT /api/v1/pleroma/statuses/:id/reactions/:emoji`
### React to a post with a unicode emoji
* Method: `PUT`
* Authentication: required
* Params: `emoji`: A single character unicode emoji
* Response: JSON, the status.
## `DELETE /api/v1/pleroma/statuses/:id/reactions/:emoji`
### Remove a reaction to a post with a unicode emoji
* Method: `DELETE`
* Authentication: required
* Params: `emoji`: A single character unicode emoji
* Response: JSON, the status.
## `GET /api/v1/pleroma/statuses/:id/reactions`
### Get an object of emoji to account mappings with accounts that reacted to the post
* Method: `GET`
* Authentication: optional
* Params: None
* Response: JSON, a list of emoji/account list tuples, sorted by emoji insertion date, in ascending order, e.g, the first emoji in the list is the oldest.
* Example Response:
```json
[
{"name": "😀", "count": 2, "me": true, "accounts": [{"id" => "xyz.."...}, {"id" => "zyx..."}]},
{"name": "☕", "count": 1, "me": false, "accounts": [{"id" => "abc..."}]}
]
```
## `GET /api/v1/pleroma/statuses/:id/reactions/:emoji`
### Get an object of emoji to account mappings with accounts that reacted to the post for a specific emoji`
* Method: `GET`
* Authentication: optional
* Params: None
* Response: JSON, a list of emoji/account list tuples
* Example Response:
```json
[
{"name": "😀", "count": 2, "me": true, "accounts": [{"id" => "xyz.."...}, {"id" => "zyx..."}]}
]
```

View File

@ -1,22 +0,0 @@
# Prometheus Metrics
Pleroma includes support for exporting metrics via the [prometheus_ex](https://github.com/deadtrickster/prometheus.ex) library.
## `/api/pleroma/app_metrics`
### Exports Prometheus application metrics
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
## Grafana
### Config example
The following is a config example to use with [Grafana](https://grafana.com)
```
- job_name: 'beam'
metrics_path: /api/pleroma/app_metrics
scheme: https
static_configs:
- targets: ['pleroma.soykaf.com']
```

View File

@ -11,14 +11,17 @@
config :pleroma, configurable_from_database: true
```
```sh tab="OTP"
./bin/pleroma_ctl config migrate_to_db
```
=== "OTP"
```sh tab="From Source"
mix pleroma.config migrate_to_db
```
```sh
./bin/pleroma_ctl config migrate_to_db
```
=== "From Source"
```sh
mix pleroma.config migrate_to_db
```
## Transfer config from DB to `config/env.exported_from_db.secret.exs`
@ -29,12 +32,126 @@ mix pleroma.config migrate_to_db
config :pleroma, configurable_from_database: false
```
To delete transfered settings from database optional flag `-d` can be used. `<env>` is `prod` by default.
Options:
```sh tab="OTP"
./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d]
```
- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non standart folder, you must manually copy file into directory where Pleroma can read it. For OTP install path will be `PLEROMA_CONFIG_PATH` or `/etc/pleroma`. For installation from source - `config` directory in the pleroma folder.
- `<env>` - environment, for which is migrated config. By default is `prod`.
- To delete transferred settings from database optional flag `-d` can be used
```sh tab="From Source"
mix pleroma.config migrate_from_db [--env=<env>] [-d]
```
=== "OTP"
```sh
./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d] [--path=<path>]
```
=== "From Source"
```sh
mix pleroma.config migrate_from_db [--env=<env>] [-d] [--path=<path>]
```
## Dump all of the config settings defined in the database
=== "OTP"
```sh
./bin/pleroma_ctl config dump
```
=== "From Source"
```sh
mix pleroma.config dump
```
## List individual configuration groups in the database
=== "OTP"
```sh
./bin/pleroma_ctl config groups
```
=== "From Source"
```sh
mix pleroma.config groups
```
## Dump the saved configuration values for a specific group or key
e.g., this shows all the settings under `config :pleroma`
=== "OTP"
```sh
./bin/pleroma_ctl config dump pleroma
```
=== "From Source"
```sh
mix pleroma.config dump pleroma
```
To get values under a specific key:
e.g., this shows all the settings under `config :pleroma, :instance`
=== "OTP"
```sh
./bin/pleroma_ctl config dump pleroma instance
```
=== "From Source"
```sh
mix pleroma.config dump pleroma instance
```
## Delete the saved configuration values for a specific group or key
e.g., this deletes all the settings under `config :tesla`
=== "OTP"
```sh
./bin/pleroma_ctl config delete [--force] tesla
```
=== "From Source"
```sh
mix pleroma.config delete [--force] tesla
```
To delete values under a specific key:
e.g., this deletes all the settings under `config :phoenix, :stacktrace_depth`
=== "OTP"
```sh
./bin/pleroma_ctl config delete [--force] phoenix stacktrace_depth
```
=== "From Source"
```sh
mix pleroma.config delete [--force] phoenix stacktrace_depth
```
## Remove all settings from the database
This forcibly removes all saved values in the database.
=== "OTP"
```sh
./bin/pleroma_ctl config [--force] reset
```
=== "From Source"
```sh
mix pleroma.config [--force] reset
```

View File

@ -9,13 +9,18 @@
Replaces embedded objects with references to them in the `objects` table. Only needs to be ran once if the instance was created before Pleroma 1.0.5. The reason why this is not a migration is because it could significantly increase the database size after being ran, however after this `VACUUM FULL` will be able to reclaim about 20% (really depends on what is in the database, your mileage may vary) of the db size before the migration.
```sh tab="OTP"
./bin/pleroma_ctl database remove_embedded_objects [option ...]
```
=== "OTP"
```sh
./bin/pleroma_ctl database remove_embedded_objects [option ...]
```
=== "From Source"
```sh
mix pleroma.database remove_embedded_objects [option ...]
```
```sh tab="From Source"
mix pleroma.database remove_embedded_objects [option ...]
```
### Options
- `--vacuum` - run `VACUUM FULL` after the embedded objects are replaced with their references
@ -27,13 +32,17 @@ This will prune remote posts older than 90 days (configurable with [`config :ple
!!! danger
The disk space will only be reclaimed after `VACUUM FULL`. You may run out of disk space during the execution of the task or vacuuming if you don't have about 1/3rds of the database size free.
```sh tab="OTP"
./bin/pleroma_ctl database prune_objects [option ...]
```
=== "OTP"
```sh tab="From Source"
mix pleroma.database prune_objects [option ...]
```
```sh
./bin/pleroma_ctl database prune_objects [option ...]
```
=== "From Source"
```sh
mix pleroma.database prune_objects [option ...]
```
### Options
- `--vacuum` - run `VACUUM FULL` after the objects are pruned
@ -42,30 +51,111 @@ mix pleroma.database prune_objects [option ...]
Can be safely re-run
```sh tab="OTP"
./bin/pleroma_ctl database bump_all_conversations
```
=== "OTP"
```sh tab="From Source"
mix pleroma.database bump_all_conversations
```
```sh
./bin/pleroma_ctl database bump_all_conversations
```
=== "From Source"
```sh
mix pleroma.database bump_all_conversations
```
## Remove duplicated items from following and update followers count for all users
```sh tab="OTP"
./bin/pleroma_ctl database update_users_following_followers_counts
```
=== "OTP"
```sh tab="From Source"
mix pleroma.database update_users_following_followers_counts
```
```sh
./bin/pleroma_ctl database update_users_following_followers_counts
```
=== "From Source"
```sh
mix pleroma.database update_users_following_followers_counts
```
## Fix the pre-existing "likes" collections for all objects
```sh tab="OTP"
./bin/pleroma_ctl database fix_likes_collections
```
=== "OTP"
```sh tab="From Source"
mix pleroma.database fix_likes_collections
```
```sh
./bin/pleroma_ctl database fix_likes_collections
```
=== "From Source"
```sh
mix pleroma.database fix_likes_collections
```
## Vacuum the database
### Analyze
Running an `analyze` vacuum job can improve performance by updating statistics used by the query planner. **It is safe to cancel this.**
=== "OTP"
```sh
./bin/pleroma_ctl database vacuum analyze
```
=== "From Source"
```sh
mix pleroma.database vacuum analyze
```
### Full
Running a `full` vacuum job rebuilds your entire database by reading all of the data and rewriting it into smaller
and more compact files with an optimized layout. This process will take a long time and use additional disk space as
it builds the files side-by-side the existing database files. It can make your database faster and use less disk space,
but should only be run if necessary. **It is safe to cancel this.**
=== "OTP"
```sh
./bin/pleroma_ctl database vacuum full
```
=== "From Source"
```sh
mix pleroma.database vacuum full
```
## Add expiration to all local statuses
=== "OTP"
```sh
./bin/pleroma_ctl database ensure_expiration
```
=== "From Source"
```sh
mix pleroma.database ensure_expiration
```
## Change Text Search Configuration
Change `default_text_search_config` for database and (if necessary) text_search_config used in index, then rebuild index (it may take time).
=== "OTP"
```sh
./bin/pleroma_ctl database set_text_search_config english
```
=== "From Source"
```sh
mix pleroma.database set_text_search_config english
```
See [PostgreSQL documentation](https://www.postgresql.org/docs/current/textsearch-configuration.html) and `docs/configuration/howto_search_cjk.md` for more detail.

View File

@ -4,22 +4,30 @@
## Send digest email since given date (user registration date by default) ignoring user activity status.
```sh tab="OTP"
./bin/pleroma_ctl digest test <nickname> [since_date]
```
=== "OTP"
```sh tab="From Source"
mix pleroma.digest test <nickname> [since_date]
```
```sh
./bin/pleroma_ctl digest test <nickname> [since_date]
```
=== "From Source"
```sh
mix pleroma.digest test <nickname> [since_date]
```
Example:
```sh tab="OTP"
./bin/pleroma_ctl digest test donaldtheduck 2019-05-20
```
=== "OTP"
```sh tab="From Source"
mix pleroma.digest test donaldtheduck 2019-05-20
```
```sh
./bin/pleroma_ctl digest test donaldtheduck 2019-05-20
```
=== "From Source"
```sh
mix pleroma.digest test donaldtheduck 2019-05-20
```

View File

@ -1,24 +1,45 @@
# Managing emails
# EMail administration tasks
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
## Send test email (instance email by default)
```sh tab="OTP"
./bin/pleroma_ctl email test [--to <destination email address>]
```
=== "OTP"
```sh tab="From Source"
mix pleroma.email test [--to <destination email address>]
```
```sh
./bin/pleroma_ctl email test [--to <destination email address>]
```
=== "From Source"
Example:
```sh
mix pleroma.email test [--to <destination email address>]
```
```sh tab="OTP"
./bin/pleroma_ctl email test --to root@example.org
```
Example:
```sh tab="From Source"
mix pleroma.email test --to root@example.org
```
=== "OTP"
```sh
./bin/pleroma_ctl email test --to root@example.org
```
=== "From Source"
```sh
mix pleroma.email test --to root@example.org
```
## Send confirmation emails to all unconfirmed user accounts
=== "OTP"
```sh
./bin/pleroma_ctl email resend_confirmation_emails
```
=== "From Source"
```sh
mix pleroma.email resend_confirmation_emails
```

View File

@ -4,13 +4,15 @@
## Lists emoji packs and metadata specified in the manifest
```sh tab="OTP"
./bin/pleroma_ctl emoji ls-packs [option ...]
```
=== "OTP"
```sh
./bin/pleroma_ctl emoji ls-packs [option ...]
```
```sh tab="From Source"
mix pleroma.emoji ls-packs [option ...]
```
=== "From Source"
```sh
mix pleroma.emoji ls-packs [option ...]
```
### Options
@ -18,29 +20,42 @@ mix pleroma.emoji ls-packs [option ...]
## Fetch, verify and install the specified packs from the manifest into `STATIC-DIR/emoji/PACK-NAME`
```sh tab="OTP"
./bin/pleroma_ctl emoji get-packs [option ...] <pack ...>
```
=== "OTP"
```sh
./bin/pleroma_ctl emoji get-packs [option ...] <pack ...>
```
```sh tab="From Source"
mix pleroma.emoji get-packs [option ...] <pack ...>
```
=== "From Source"
```sh
mix pleroma.emoji get-packs [option ...] <pack ...>
```
### Options
- `-m, --manifest PATH/URL` - same as [`ls-packs`](#ls-packs)
## Create a new manifest entry and a file list from the specified remote pack file
```sh tab="OTP"
./bin/pleroma_ctl emoji gen-pack PACK-URL
```
=== "OTP"
```sh
./bin/pleroma_ctl emoji gen-pack PACK-URL
```
```sh tab="From Source"
mix pleroma.emoji gen-pack PACK-URL
```
=== "From Source"
```sh
mix pleroma.emoji gen-pack PACK-URL
```
Currently, only .zip archives are recognized as remote pack files and packs are therefore assumed to be zip archives. This command is intended to run interactively and will first ask you some basic questions about the pack, then download the remote file and generate an SHA256 checksum for it, then generate an emoji file list for you.
Currently, only .zip archives are recognized as remote pack files and packs are therefore assumed to be zip archives. This command is intended to run interactively and will first ask you some basic questions about the pack, then download the remote file and generate an SHA256 checksum for it, then generate an emoji file list for you.
The manifest entry will either be written to a newly created `index.json` file or appended to the existing one, *replacing* the old pack with the same name if it was in the file previously.
The manifest entry will either be written to a newly created `pack_name.json` file (pack name is asked in questions) or appended to the existing one, *replacing* the old pack with the same name if it was in the file previously.
The file list will be written to the file specified previously, *replacing* that file. You _should_ check that the file list doesn't contain anything you don't need in the pack, that is, anything that is not an emoji (the whole pack is downloaded, but only emoji files are extracted).
## Reload emoji packs
=== "OTP"
```sh
./bin/pleroma_ctl emoji reload
```
This command only works with OTP releases.

View File

@ -0,0 +1,96 @@
# Managing frontends
=== "OTP"
```sh
./bin/pleroma_ctl frontend install <frontend> [--ref <ref>] [--file <file>] [--build-url <build-url>] [--path <path>] [--build-dir <build-dir>]
```
=== "From Source"
```sh
mix pleroma.frontend install <frontend> [--ref <ref>] [--file <file>] [--build-url <build-url>] [--path <path>] [--build-dir <build-dir>]
```
Frontend can be installed either from local zip file, or automatically downloaded from the web.
You can give all the options directly on the command line, but missing information will be filled out by looking at the data configured under `frontends.available` in the config files.
Currently, known `<frontend>` values are:
- [admin-fe](https://git.pleroma.social/pleroma/admin-fe)
- [kenoma](http://git.pleroma.social/lambadalambda/kenoma)
- [pleroma-fe](http://git.pleroma.social/pleroma/pleroma-fe)
- [fedi-fe](https://git.pleroma.social/pleroma/fedi-fe)
- [soapbox-fe](https://gitlab.com/soapbox-pub/soapbox-fe)
You can still install frontends that are not configured, see below.
## Example installations for a known frontend
For a frontend configured under the `available` key, it's enough to install it by name.
=== "OTP"
```sh
./bin/pleroma_ctl frontend install pleroma
```
=== "From Source"
```sh
mix pleroma.frontend install pleroma
```
This will download the latest build for the pre-configured `ref` and install it. It can then be configured as the one of the served frontends in the config file (see `primary` or `admin`).
You can override any of the details. To install a pleroma build from a different URL, you could do this:
=== "OTP"
```sh
./bin/pleroma_ctl frontend install pleroma --ref 2hu_edition --build-url https://example.org/raymoo.zip
```
=== "From Source"
```sh
mix pleroma.frontend install pleroma --ref 2hu_edition --build-url https://example.org/raymoo.zip
```
Similarly, you can also install from a local zip file.
=== "OTP"
```sh
./bin/pleroma_ctl frontend install pleroma --ref mybuild --file ~/Downloads/doomfe.zip
```
=== "From Source"
```sh
mix pleroma.frontend install pleroma --ref mybuild --file ~/Downloads/doomfe.zip
```
The resulting frontend will always be installed into a folder of this template: `${instance_static}/frontends/${name}/${ref}`.
Careful: This folder will be completely replaced on installation.
## Example installation for an unknown frontend
The installation process is the same, but you will have to give all the needed options on the command line. For example:
=== "OTP"
```sh
./bin/pleroma_ctl frontend install gensokyo --ref master --build-url https://gensokyo.2hu/builds/marisa.zip
```
=== "From Source"
```sh
mix pleroma.frontend install gensokyo --ref master --build-url https://gensokyo.2hu/builds/marisa.zip
```
If you don't have a zip file but just want to install a frontend from a local path, you can simply copy the files over a folder of this template: `${instance_static}/frontends/${name}/${ref}`.

View File

@ -3,13 +3,17 @@
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
## Generate a new configuration file
```sh tab="OTP"
./bin/pleroma_ctl instance gen [option ...]
```
=== "OTP"
```sh tab="From Source"
mix pleroma.instance gen [option ...]
```
```sh
./bin/pleroma_ctl instance gen [option ...]
```
=== "From Source"
```sh
mix pleroma.instance gen [option ...]
```
If any of the options are left unspecified, you will be prompted interactively.
@ -33,3 +37,9 @@ If any of the options are left unspecified, you will be prompted interactively.
- `--static-dir <path>` - the directory custom public files should be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)
- `--listen-ip <ip>` - the ip the app should listen to, defaults to 127.0.0.1
- `--listen-port <port>` - the port the app should listen to, defaults to 4000
- `--strip-uploads-location <Y|N>` - use ExifTool to strip uploads of sensitive location data
- `--read-uploads-description <Y|N>` - use ExifTool to read image descriptions from uploads
- `--anonymize-uploads <Y|N>` - randomize uploaded filenames
- `--dedupe-uploads <Y|N>` - store files based on their hash to reduce data storage requirements if duplicates are uploaded with different filenames
- `--skip-release-env` - skip generation the release environment file
- `--release-env-file` - release environment file path

View File

@ -0,0 +1,20 @@
# Creating trusted OAuth App
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
## Create trusted OAuth App.
Optional params:
* `-s SCOPES` - scopes for app, e.g. `read,write,follow,push`.
=== "OTP"
```sh
./bin/pleroma_ctl app create -n APP_NAME -r REDIRECT_URI
```
=== "From Source"
```sh
mix pleroma.app create -n APP_NAME -r REDIRECT_URI
```

View File

@ -4,30 +4,42 @@
## Follow a relay
```sh tab="OTP"
./bin/pleroma_ctl relay follow <relay_url>
```
=== "OTP"
```sh tab="From Source"
mix pleroma.relay follow <relay_url>
```
```sh
./bin/pleroma_ctl relay follow <relay_url>
```
=== "From Source"
```sh
mix pleroma.relay follow <relay_url>
```
## Unfollow a remote relay
```sh tab="OTP"
./bin/pleroma_ctl relay unfollow <relay_url>
```
=== "OTP"
```sh tab="From Source"
mix pleroma.relay unfollow <relay_url>
```
```sh
./bin/pleroma_ctl relay unfollow <relay_url>
```
=== "From Source"
```sh
mix pleroma.relay unfollow <relay_url>
```
## List relay subscriptions
```sh tab="OTP"
./bin/pleroma_ctl relay list
```
=== "OTP"
```sh tab="From Source"
mix pleroma.relay list
```
```sh
./bin/pleroma_ctl relay list
```
=== "From Source"
```sh
mix pleroma.relay list
```

View File

@ -0,0 +1,21 @@
# Managing robots.txt
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
## Generate a new robots.txt file and add it to the static directory
The `robots.txt` that ships by default is permissive. It allows well-behaved search engines to index all of your instance's URIs.
If you want to generate a restrictive `robots.txt`, you can run the following mix task. The generated `robots.txt` will be written in your instance [static directory](../../../configuration/static_dir/).
=== "OTP"
```sh
./bin/pleroma_ctl robots_txt disallow_all
```
=== "From Source"
```sh
mix pleroma.robots_txt disallow_all
```

View File

@ -3,13 +3,17 @@
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
## Migrate uploads from local to remote storage
```sh tab="OTP"
./bin/pleroma_ctl uploads migrate_local <target_uploader> [option ...]
```
=== "OTP"
```sh tab="From Source"
mix pleroma.uploads migrate_local <target_uploader> [option ...]
```
```sh
./bin/pleroma_ctl uploads migrate_local <target_uploader> [option ...]
```
=== "From Source"
```sh
mix pleroma.uploads migrate_local <target_uploader> [option ...]
```
### Options
- `--delete` - delete local uploads after migrating them to the target uploader

View File

@ -4,13 +4,17 @@
## Create a user
```sh tab="OTP"
./bin/pleroma_ctl user new <nickname> <email> [option ...]
```
=== "OTP"
```sh tab="From Source"
mix pleroma.user new <nickname> <email> [option ...]
```
```sh
./bin/pleroma_ctl user new <nickname> <email> [option ...]
```
=== "From Source"
```sh
mix pleroma.user new <nickname> <email> [option ...]
```
### Options
@ -22,23 +26,33 @@ mix pleroma.user new <nickname> <email> [option ...]
- `-y`, `--assume-yes`/`--no-assume-yes` - whether to assume yes to all questions
## List local users
```sh tab="OTP"
./bin/pleroma_ctl user list
```
```sh tab="From Source"
mix pleroma.user list
```
=== "OTP"
```sh
./bin/pleroma_ctl user list
```
=== "From Source"
```sh
mix pleroma.user list
```
## Generate an invite link
```sh tab="OTP"
./bin/pleroma_ctl user invite [option ...]
```
```sh tab="From Source"
mix pleroma.user invite [option ...]
```
=== "OTP"
```sh
./bin/pleroma_ctl user invite [option ...]
```
=== "From Source"
```sh
mix pleroma.user invite [option ...]
```
### Options
@ -46,135 +60,243 @@ mix pleroma.user invite [option ...]
- `--max-use NUMBER` - maximum numbers of token uses
## List generated invites
```sh tab="OTP"
./bin/pleroma_ctl user invites
```
```sh tab="From Source"
mix pleroma.user invites
```
=== "OTP"
```sh
./bin/pleroma_ctl user invites
```
=== "From Source"
```sh
mix pleroma.user invites
```
## Revoke invite
```sh tab="OTP"
./bin/pleroma_ctl user revoke_invite <token_or_id>
```
```sh tab="From Source"
mix pleroma.user revoke_invite <token_or_id>
```
=== "OTP"
```sh
./bin/pleroma_ctl user revoke_invite <token>
```
=== "From Source"
```sh
mix pleroma.user revoke_invite <token>
```
## Delete a user
```sh tab="OTP"
./bin/pleroma_ctl user rm <nickname>
```
```sh tab="From Source"
mix pleroma.user rm <nickname>
```
=== "OTP"
```sh
./bin/pleroma_ctl user rm <nickname>
```
=== "From Source"
```sh
mix pleroma.user rm <nickname>
```
## Delete user's posts and interactions
```sh tab="OTP"
./bin/pleroma_ctl user delete_activities <nickname>
```
```sh tab="From Source"
mix pleroma.user delete_activities <nickname>
```
=== "OTP"
```sh
./bin/pleroma_ctl user delete_activities <nickname>
```
=== "From Source"
```sh
mix pleroma.user delete_activities <nickname>
```
## Sign user out from all applications (delete user's OAuth tokens and authorizations)
```sh tab="OTP"
./bin/pleroma_ctl user sign_out <nickname>
```
```sh tab="From Source"
mix pleroma.user sign_out <nickname>
```
=== "OTP"
```sh
./bin/pleroma_ctl user sign_out <nickname>
```
=== "From Source"
```sh
mix pleroma.user sign_out <nickname>
```
## Activate a user
=== "OTP"
```sh
./bin/pleroma_ctl user activate NICKNAME
```
=== "From Source"
```sh
mix pleroma.user activate NICKNAME
```
## Deactivate a user and unsubscribes local users from the user
=== "OTP"
```sh
./bin/pleroma_ctl user deactivate NICKNAME
```
=== "From Source"
```sh
mix pleroma.user deactivate NICKNAME
```
## Deactivate or activate a user
```sh tab="OTP"
./bin/pleroma_ctl user toggle_activated <nickname>
```
## Deactivate all accounts from an instance and unsubscribe local users on it
```sh tab="From Source"
mix pleroma.user toggle_activated <nickname>
```
=== "OTP"
```sh
./bin/pleroma_ctl user deactivate_all_from_instance <instance>
```
## Unsubscribe local users from a user and deactivate the user
```sh tab="OTP"
./bin/pleroma_ctl user unsubscribe NICKNAME
```
=== "From Source"
```sh tab="From Source"
mix pleroma.user unsubscribe NICKNAME
```
## Unsubscribe local users from an instance and deactivate all accounts on it
```sh tab="OTP"
./bin/pleroma_ctl user unsubscribe_all_from_instance <instance>
```
```sh tab="From Source"
mix pleroma.user unsubscribe_all_from_instance <instance>
```
```sh
mix pleroma.user deactivate_all_from_instance <instance>
```
## Create a password reset link for user
```sh tab="OTP"
./bin/pleroma_ctl user reset_password <nickname>
```
```sh tab="From Source"
mix pleroma.user reset_password <nickname>
```
=== "OTP"
```sh
./bin/pleroma_ctl user reset_password <nickname>
```
=== "From Source"
```sh
mix pleroma.user reset_password <nickname>
```
## Disable Multi Factor Authentication (MFA/2FA) for a user
=== "OTP"
```sh
./bin/pleroma_ctl user reset_mfa <nickname>
```
=== "From Source"
```sh
mix pleroma.user reset_mfa <nickname>
```
## Set the value of the given user's settings
```sh tab="OTP"
./bin/pleroma_ctl user set <nickname> [option ...]
```
```sh tab="From Source"
mix pleroma.user set <nickname> [option ...]
```
=== "OTP"
```sh
./bin/pleroma_ctl user set <nickname> [option ...]
```
=== "From Source"
```sh
mix pleroma.user set <nickname> [option ...]
```
### Options
- `--admin`/`--no-admin` - whether the user should be an admin
- `--confirmed`/`--no-confirmed` - whether the user account is confirmed
- `--locked`/`--no-locked` - whether the user should be locked
- `--moderator`/`--no-moderator` - whether the user should be a moderator
- `--admin`/`--no-admin` - whether the user should be an admin
## Add tags to a user
```sh tab="OTP"
./bin/pleroma_ctl user tag <nickname> <tags>
```
```sh tab="From Source"
mix pleroma.user tag <nickname> <tags>
```
=== "OTP"
```sh
./bin/pleroma_ctl user tag <nickname> <tags>
```
=== "From Source"
```sh
mix pleroma.user tag <nickname> <tags>
```
## Delete tags from a user
```sh tab="OTP"
./bin/pleroma_ctl user untag <nickname> <tags>
```
```sh tab="From Source"
mix pleroma.user untag <nickname> <tags>
```
=== "OTP"
```sh
./bin/pleroma_ctl user untag <nickname> <tags>
```
=== "From Source"
```sh
mix pleroma.user untag <nickname> <tags>
```
## Toggle confirmation status of the user
```sh tab="OTP"
./bin/pleroma_ctl user toggle_confirmed <nickname>
```
```sh tab="From Source"
mix pleroma.user toggle_confirmed <nickname>
```
=== "OTP"
```sh
./bin/pleroma_ctl user confirm <nickname>
```
=== "From Source"
```sh
mix pleroma.user confirm <nickname>
```
## Set confirmation status for all regular active users
*Admins and moderators are excluded*
=== "OTP"
```sh
./bin/pleroma_ctl user confirm_all
```
=== "From Source"
```sh
mix pleroma.user confirm_all
```
## Revoke confirmation status for all regular active users
*Admins and moderators are excluded*
=== "OTP"
```sh
./bin/pleroma_ctl user unconfirm_all
```
=== "From Source"
```sh
mix pleroma.user unconfirm_all
```

View File

@ -5,22 +5,26 @@
1. Stop the Pleroma service.
2. Go to the working directory of Pleroma (default is `/opt/pleroma`)
3. Run `sudo -Hu postgres pg_dump -d <pleroma_db> --format=custom -f </path/to/backup_location/pleroma.pgdump>` (make sure the postgres user has write access to the destination file)
4. Copy `pleroma.pgdump`, `config/prod.secret.exs` and the `uploads` folder to your backup destination. If you have other modifications, copy those changes too.
4. Copy `pleroma.pgdump`, `config/prod.secret.exs`, `config/setup_db.psql` (if still available) and the `uploads` folder to your backup destination. If you have other modifications, copy those changes too.
5. Restart the Pleroma service.
## Restore/Move
1. Optionally reinstall Pleroma (either on the same server or on another server if you want to move servers). Try to use the same database name.
1. Optionally reinstall Pleroma (either on the same server or on another server if you want to move servers).
2. Stop the Pleroma service.
3. Go to the working directory of Pleroma (default is `/opt/pleroma`)
4. Copy the above mentioned files back to their original position.
5. Drop the existing database and recreate an empty one `sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'CREATE DATABASE <pleroma_db>;';`
6. Run `sudo -Hu postgres pg_restore -d <pleroma_db> -v -1 </path/to/backup_location/pleroma.pgdump>`
7. If you installed a newer Pleroma version, you should run `mix ecto.migrate`[^1]. This task performs database migrations, if there were any.
8. Restart the Pleroma service.
9. After you've restarted Pleroma, you will notice that postgres will take up more cpu resources than usual. A lot in fact. To fix this you must do a VACUUM ANLAYZE. This can also be done while the instance is still running like so:
$ sudo -u postgres psql pleroma_database_name
pleroma=# VACUUM ANALYZE;
5. Drop the existing database and user if restoring in-place. `sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'DROP USER <pleroma_db>;'`
6. Restore the database schema and pleroma postgres role the with the original `setup_db.psql` if you have it: `sudo -Hu postgres psql -f config/setup_db.psql`.
Alternatively, run the `mix pleroma.instance gen` task again. You can ignore most of the questions, but make the database user, name, and password the same as found in your backup of `config/prod.secret.exs`. Then run the restoration of the pleroma role and schema with of the generated `config/setup_db.psql` as instructed above. You may delete the `config/generated_config.exs` file as it is not needed.
7. Now restore the Pleroma instance's data into the empty database schema: `sudo -Hu postgres pg_restore -d <pleroma_db> -v -1 </path/to/backup_location/pleroma.pgdump>`
8. If you installed a newer Pleroma version, you should run `mix ecto.migrate`[^1]. This task performs database migrations, if there were any.
9. Restart the Pleroma service.
10. Run `sudo -Hu postgres vacuumdb --all --analyze-in-stages`. This will quickly generate the statistics so that postgres can properly plan queries.
11. If setting up on a new server configure Nginx by using the `installation/pleroma.nginx` config sample or reference the Pleroma installation guide for your OS which contains the Nginx configuration instructions.
[^1]: Prefix with `MIX_ENV=prod` to run it using the production config file.
## Remove
@ -32,6 +36,6 @@
3. Disable pleroma from systemd `systemctl disable pleroma`
4. Remove the files and folders you created during installation (see installation guide). This includes the pleroma, nginx and systemd files and folders.
5. Reload nginx now that the configuration is removed `systemctl reload nginx`
6. Remove the database and database user `sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'DROP USER <pleroma_db>;';`
6. Remove the database and database user `sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'DROP USER <pleroma_db>;'`
7. Remove the system user `userdel pleroma`
8. Remove the dependencies that you don't need anymore (see installation guide). Make sure you don't remove packages that are still needed for other software that you have running!

View File

@ -1,6 +1,6 @@
# Updating your instance
You should **always check the release notes/changelog** in case there are config deprecations, special update special update steps, etc.
You should **always check the [release notes/changelog](https://git.pleroma.social/pleroma/pleroma/-/releases)** in case there are config deprecations, special update steps, etc.
Besides that, doing the following is generally enough:
@ -17,10 +17,11 @@ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"
## For from source installations (using git)
1. Go to the working directory of Pleroma (default is `/opt/pleroma`)
2. Run `git pull`. This pulls the latest changes from upstream.
3. Run `mix deps.get`. This pulls in any new dependencies.
2. Run `git pull` [^1]. This pulls the latest changes from upstream.
3. Run `mix deps.get` [^1]. This pulls in any new dependencies.
4. Stop the Pleroma service.
5. Run `mix ecto.migrate`[^1]. This task performs database migrations, if there were any.
5. Run `mix ecto.migrate` [^1] [^2]. This task performs database migrations, if there were any.
6. Start the Pleroma service.
[^1]: Prefix with `MIX_ENV=prod` to run it using the production config file.
[^1]: Depending on which install guide you followed (for example on Debian/Ubuntu), you want to run `git` and `mix` tasks as `pleroma` user by adding `sudo -Hu pleroma` before the command.
[^2]: Prefix with `MIX_ENV=prod` to run it using the production config file.

View File

@ -1,99 +1,124 @@
# Pleroma Clients
Note: Additionnal clients may be working but theses are officially supporting Pleroma.
Note: Additional clients may be working but theses are officially supporting Pleroma.
Feel free to contact us to be added to this list!
## Desktop
### Roma for Desktop
- Homepage: <https://www.pleroma.com/#desktopApp>
- Source Code: <https://github.com/roma-apps/roma-desktop>
- Platforms: Windows, Mac, (Linux?)
- Features: Streaming Ready
- Platforms: Windows, Mac, Linux
- Features: MastoAPI, Streaming Ready
### Social
- Source Code: <https://gitlab.gnome.org/BrainBlasted/Social>
- Source Code: <https://gitlab.gnome.org/World/Social>
- Contact: [@brainblasted@social.libre.fi](https://social.libre.fi/users/brainblasted)
- Platforms: Linux (GNOME)
- Note(2019-01-28): Not at a pre-alpha stage yet
- Features: MastoAPI
### Whalebird
- Homepage: <https://whalebird.org/>
- Homepage: <https://whalebird.social/>
- Source Code: <https://github.com/h3poteto/whalebird-desktop>
- Contact: [@h3poteto@pleroma.io](https://pleroma.io/users/h3poteto)
- Platforms: Windows, Mac, Linux
- Features: Streaming Ready
- Features: MastoAPI, Streaming Ready
## Handheld
### AndStatus
- Homepage: <http://andstatus.org/>
- Source Code: <https://github.com/andstatus/andstatus/>
- Platforms: Android
- Features: MastoAPI, ActivityPub (Client-to-Server)
### Amaroq
- Homepage: <https://itunes.apple.com/us/app/amaroq-for-mastodon/id1214116200>
- Source Code: <https://github.com/ReticentJohn/Amaroq>
- Contact: [@eurasierboy@mastodon.social](https://mastodon.social/users/eurasierboy)
- Platforms: iOS
- Features: No Streaming
- Features: MastoAPI, No Streaming
### Fedilab
- Homepage: <https://fedilab.app/>
- Source Code: <https://framagit.org/tom79/fedilab/>
- Contact: [@fedilab@framapiaf.org](https://framapiaf.org/users/fedilab)
- Platforms: Android
- Features: Streaming Ready, Moderation, Text Formatting
- Features: MastoAPI, Streaming Ready, Moderation, Text Formatting
### Kyclos
- Source Code: <https://git.pleroma.social/pleroma/harbour-kyclos>
- Platforms: SailfishOS
- Features: No Streaming
- Features: MastoAPI, No Streaming
### Nekonium
- Homepage: [F-Droid Repository](https://repo.gdgd.jp.net/), [Google Play](https://play.google.com/store/apps/details?id=com.apps.nekonium), [Amazon](https://www.amazon.co.jp/dp/B076FXPRBC/)
- Source: <https://gogs.gdgd.jp.net/lin/nekonium>
- Contact: [@lin@pleroma.gdgd.jp.net](https://pleroma.gdgd.jp.net/users/lin)
### Husky
- Source code: <https://git.mentality.rip/FWGS/Husky>
- Contact: [@Husky@enigmatic.observer](https://enigmatic.observer/users/Husky)
- Platforms: Android
- Features: Streaming Ready
- Features: MastoAPI, No Streaming, Emoji Reactions, Text Formatting, FE Stickers
### Roma
- Homepage: <https://www.pleroma.com/#mobileApps>
- Source Code: [iOS](https://github.com/roma-apps/roma-ios), [Android](https://github.com/roma-apps/roma-android)
### Fedi
- Homepage: <https://www.fediapp.com/>
- Source Code: Proprietary, but gratis
- Platforms: iOS, Android
- Features: No Streaming
- Features: MastoAPI, Pleroma-specific features like Reactions
### Tusky
- Homepage: <https://tuskyapp.github.io/>
- Source Code: <https://github.com/tuskyapp/Tusky>
- Contact: [@ConnyDuck@mastodon.social](https://mastodon.social/users/ConnyDuck)
- Platforms: Android
- Features: No Streaming
- Features: MastoAPI, No Streaming
### Twidere
- Homepage: <https://twidere.mariotaku.org/>
- Source Code: <https://github.com/TwidereProject/Twidere-Android/>, <https://github.com/TwidereProject/Twidere-iOS/>
- Source Code: <https://github.com/TwidereProject/Twidere-Android/>
- Contact: <me@mariotaku.org>
- Platform: Android, iOS
- Features: No Streaming
- Platform: Android
- Features: MastoAPI, No Streaming
### Indigenous
- Homepage: <https://indigenous.realize.be/>
- Source Code: <https://github.com/swentel/indigenous-android/>
- Contact: [@swentel@realize.be](https://realize.be)
- Platforms: Android
- Features: MastoAPI, No Streaming
## Alternative Web Interfaces
### Brutaldon
- Homepage: <https://jfm.carcosa.net/projects/software/brutaldon/>
- Source Code: <https://git.carcosa.net/jmcbray/brutaldon>
- Contact: [@gcupc@glitch.social](https://glitch.social/users/gcupc)
- Features: No Streaming
### Feather
- Source Code: <https://github.com/kaniini/feather>
- Contact: [@kaniini@pleroma.site](https://pleroma.site/kaniini)
- Features: No Streaming
- Features: MastoAPI, No Streaming
### Halcyon
- Source Code: <https://notabug.org/halcyon-suite/halcyon>
- Contact: [@halcyon@social.csswg.org](https://social.csswg.org/users/halcyon)
- Features: Streaming Ready
- Features: MastoAPI, Streaming Ready
### Pinafore
- Homepage: <https://pinafore.social/>
- Source Code: <https://github.com/nolanlawson/pinafore>
- Contact: [@pinafore@mastodon.technology](https://mastodon.technology/users/pinafore)
- Note: Pleroma support is a secondary goal
- Features: No Streaming
- Features: MastoAPI, No Streaming
### Sengi
- Homepage: <https://nicolasconstant.github.io/sengi/>
- Source Code: <https://github.com/NicolasConstant/sengi>
- Contact: [@sengi_app@mastodon.social](https://mastodon.social/users/sengi_app)
- Note(2019-01-28): The development is currently in a early stage.
- Features: MastoAPI
### DashFE
- Source Code: <https://notabug.org/daisuke/DashboardFE>
- Contact: [@dashfe@stereophonic.space](https://stereophonic.space/users/dashfe)
### BloatFE
- Source Code: <https://git.freesoftwareextremist.com/bloat/>
- Contact: [@r@freesoftwareextremist.com](https://freesoftwareextremist.com/users/r)
- Features: Does not requires JavaScript
- Features: MastoAPI
### Glitch-lily
- Source Code: <https://lily.kazv.moe/infra/glitch-lily>
- Contact: [@tusooa@kazv.moe](https://kazv.moe/users/tusooa)
- Features: MastoAPI
- Based on [glitch-soc](https://github.com/glitch-soc/mastodon) frontend

View File

@ -0,0 +1 @@
See `Authentication` section of [the configuration cheatsheet](../configuration/cheatsheet.md#authentication).

View File

@ -8,13 +8,19 @@ For from source installations Pleroma configuration works by first importing the
To add configuration to your config file, you can copy it from the base config. The latest version of it can be viewed [here](https://git.pleroma.social/pleroma/pleroma/blob/develop/config/config.exs). You can also use this file if you don't know how an option is supposed to be formatted.
## :shout
* `enabled` - Enables the backend Shoutbox chat feature. Defaults to `true`.
* `limit` - Shout character limit. Defaults to `5_000`
## :instance
* `name`: The instances name.
* `email`: Email used to reach an Administrator/Moderator of the instance.
* `notify_email`: Email used for notifications.
* `description`: The instances description, can be seen in nodeinfo and ``/api/v1/instance``.
* `short_description`: Shorter version of instance description, can be seen on ``/api/v1/instance``.
* `limit`: Posts character limit (CW/Subject included in the counter).
* `chat_limit`: Character limit of the instance chat messages.
* `description_limit`: The character limit for image descriptions.
* `remote_limit`: Hard character limit beyond which remote posts will be dropped.
* `upload_limit`: File size limit of uploads (except for avatar, background, banner).
* `avatar_upload_limit`: File size limit of users profile avatars.
@ -28,11 +34,83 @@ To add configuration to your config file, you can copy it from the base config.
* `registrations_open`: Enable registrations for anyone, invitations can be enabled when false.
* `invites_enabled`: Enable user invitations for admins (depends on `registrations_open: false`).
* `account_activation_required`: Require users to confirm their emails before signing in.
* `account_approval_required`: Require users to be manually approved by an admin before signing in.
* `federating`: Enable federation with other instances.
* `federation_incoming_replies_max_depth`: Max. depth of reply-to activities fetching on incoming federation, to prevent out-of-memory situations while fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes.
* `federation_reachability_timeout_days`: Timeout (in days) of each external federation target being unreachable prior to pausing federating to it.
* `allow_relay`: Enable Pleromas Relay, which makes it possible to follow a whole instance.
* `rewrite_policy`: Message Rewrite Policy, either one or a list. Here are the ones available by default:
* `allow_relay`: Permits remote instances to subscribe to all public posts of your instance. This may increase the visibility of your instance.
* `public`: Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note that there is a dependent setting restricting or allowing unauthenticated access to specific resources, see `restrict_unauthenticated` for more details.
* `quarantined_instances`: ActivityPub instances where private (DMs, followers-only) activities will not be send.
* `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML).
* `extended_nickname_format`: Set to `true` to use extended local nicknames format (allows underscores/dashes). This will break federation with
older software for theses nicknames.
* `max_pinned_statuses`: The maximum number of pinned statuses. `0` will disable the feature.
* `autofollowed_nicknames`: Set to nicknames of (local) users that every new user should automatically follow.
* `autofollowing_nicknames`: Set to nicknames of (local) users that automatically follows every newly registered user.
* `attachment_links`: Set to true to enable automatically adding attachment link text to statuses.
* `max_report_comment_size`: The maximum size of the report comment (Default: `1000`).
* `safe_dm_mentions`: If set to true, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. "@friend hey i really don't like @enemy"). Default: `false`.
* `healthcheck`: If set to true, system data will be shown on ``/api/v1/pleroma/healthcheck``.
* `remote_post_retention_days`: The default amount of days to retain remote posts when pruning the database.
* `user_bio_length`: A user bio maximum length (default: `5000`).
* `user_name_length`: A user name maximum length (default: `100`).
* `skip_thread_containment`: Skip filter out broken threads. The default is `false`.
* `limit_to_local_content`: Limit unauthenticated users to search for local statutes and users only. Possible values: `:unauthenticated`, `:all` and `false`. The default is `:unauthenticated`.
* `max_account_fields`: The maximum number of custom fields in the user profile (default: `10`).
* `max_remote_account_fields`: The maximum number of custom fields in the remote user profile (default: `20`).
* `account_field_name_length`: An account field name maximum length (default: `512`).
* `account_field_value_length`: An account field value maximum length (default: `2048`).
* `registration_reason_length`: Maximum registration reason length (default: `500`).
* `external_user_synchronization`: Enabling following/followers counters synchronization for external users.
* `cleanup_attachments`: Remove attachments along with statuses. Does not affect duplicate files and attachments without status. Enabling this will increase load to database when deleting statuses on larger instances.
* `show_reactions`: Let favourites and emoji reactions be viewed through the API (default: `true`).
* `password_reset_token_validity`: The time after which reset tokens aren't accepted anymore, in seconds (default: one day).
## :database
* `improved_hashtag_timeline`: Setting to force toggle / force disable improved hashtags timeline. `:enabled` forces hashtags to be fetched from `hashtags` table for hashtags timeline. `:disabled` forces object-embedded hashtags to be used (slower). Keep it `:auto` for automatic behaviour (it is auto-set to `:enabled` [unless overridden] when HashtagsTableMigrator completes).
## Background migrations
* `populate_hashtags_table/sleep_interval_ms`: Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances).
* `populate_hashtags_table/fault_rate_allowance`: Max rate of failed objects to actually processed objects in order to enable the feature (any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if hashtags transfer failed for all records).
## Welcome
* `direct_message`: - welcome message sent as a direct message.
* `enabled`: Enables the send a direct message to a newly registered user. Defaults to `false`.
* `sender_nickname`: The nickname of the local user that sends the welcome message.
* `message`: A message that will be send to a newly registered users as a direct message.
* `chat_message`: - welcome message sent as a chat message.
* `enabled`: Enables the send a chat message to a newly registered user. Defaults to `false`.
* `sender_nickname`: The nickname of the local user that sends the welcome message.
* `message`: A message that will be send to a newly registered users as a chat message.
* `email`: - welcome message sent as a email.
* `enabled`: Enables the send a welcome email to a newly registered user. Defaults to `false`.
* `sender`: The email address or tuple with `{nickname, email}` that will use as sender to the welcome email.
* `subject`: A subject of welcome email.
* `html`: A html that will be send to a newly registered users as a email.
* `text`: A text that will be send to a newly registered users as a email.
Example:
```elixir
config :pleroma, :welcome,
direct_message: [
enabled: true,
sender_nickname: "lain",
message: "Hi! Welcome on board!"
],
email: [
enabled: true,
sender: {"Pleroma App", "welcome@pleroma.app"},
subject: "Welcome to <%= instance_name %>",
html: "Welcome to <%= instance_name %>",
text: "Welcome to <%= instance_name %>"
]
```
## Message rewrite facility
### :mrf
* `policies`: Message Rewrite Policy, either one or a list. Here are the ones available by default:
* `Pleroma.Web.ActivityPub.MRF.NoOpPolicy`: Doesnt modify activities (default).
* `Pleroma.Web.ActivityPub.MRF.DropPolicy`: Drops all activities. It generally doesnt makes sense to use in production.
* `Pleroma.Web.ActivityPub.MRF.SimplePolicy`: Restrict the visibility of activities from certains instances (See [`:mrf_simple`](#mrf_simple)).
@ -45,49 +123,32 @@ To add configuration to your config file, you can copy it from the base config.
* `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)).
* `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)).
* `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)).
* `public`: Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network.
* `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send.
* `managed_config`: Whenether the config for pleroma-fe is configured in [:frontend_configurations](#frontend_configurations) or in ``static/config.json``.
* `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML).
* `mrf_transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo).
* `mrf_transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.
* `extended_nickname_format`: Set to `true` to use extended local nicknames format (allows underscores/dashes). This will break federation with
older software for theses nicknames.
* `max_pinned_statuses`: The maximum number of pinned statuses. `0` will disable the feature.
* `autofollowed_nicknames`: Set to nicknames of (local) users that every new user should automatically follow.
* `no_attachment_links`: Set to true to disable automatically adding attachment link text to statuses.
* `welcome_message`: A message that will be send to a newly registered users as a direct message.
* `welcome_user_nickname`: The nickname of the local user that sends the welcome message.
* `max_report_comment_size`: The maximum size of the report comment (Default: `1000`).
* `safe_dm_mentions`: If set to true, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. "@friend hey i really don't like @enemy"). Default: `false`.
* `healthcheck`: If set to true, system data will be shown on ``/api/pleroma/healthcheck``.
* `remote_post_retention_days`: The default amount of days to retain remote posts when pruning the database.
* `user_bio_length`: A user bio maximum length (default: `5000`).
* `user_name_length`: A user name maximum length (default: `100`).
* `skip_thread_containment`: Skip filter out broken threads. The default is `false`.
* `limit_to_local_content`: Limit unauthenticated users to search for local statutes and users only. Possible values: `:unauthenticated`, `:all` and `false`. The default is `:unauthenticated`.
* `max_account_fields`: The maximum number of custom fields in the user profile (default: `10`).
* `max_remote_account_fields`: The maximum number of custom fields in the remote user profile (default: `20`).
* `account_field_name_length`: An account field name maximum length (default: `512`).
* `account_field_value_length`: An account field value maximum length (default: `2048`).
* `external_user_synchronization`: Enabling following/followers counters synchronization for external users.
* `cleanup_attachments`: Remove attachments along with statuses. Does not affect duplicate files and attachments without status. Enabling this will increase load to database when deleting statuses on larger instances.
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.Workers.PurgeExpiredActivity` to be enabled for processing the scheduled delections.
* `Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy`: Makes all bot posts to disappear from public timelines.
* `Pleroma.Web.ActivityPub.MRF.FollowBotPolicy`: Automatically follows newly discovered users from the specified bot account. Local accounts, locked accounts, and users with "#nobot" in their bio are respected and excluded from being followed.
* `Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy`: Drops follow requests from followbots. Users can still allow bots to follow them by first following the bot.
* `Pleroma.Web.ActivityPub.MRF.KeywordPolicy`: Rejects or removes from the federated timeline or replaces keywords. (See [`:mrf_keyword`](#mrf_keyword)).
* `Pleroma.Web.ActivityPub.MRF.ForceMentionsInContent`: Forces every mentioned user to be reflected in the post content.
* `transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo).
* `transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.
## Federation
### MRF policies
!!! note
Configuring MRF policies is not enough for them to take effect. You have to enable them by specifying their module in `rewrite_policy` under [:instance](#instance) section.
Configuring MRF policies is not enough for them to take effect. You have to enable them by specifying their module in `policies` under [:mrf](#mrf) section.
#### :mrf_simple
* `media_removal`: List of instances to remove media from.
* `media_nsfw`: List of instances to put media as NSFW(sensitive) from.
* `federated_timeline_removal`: List of instances to remove from Federated (aka The Whole Known Network) Timeline.
* `reject`: List of instances to reject any activities from.
* `accept`: List of instances to accept any activities from.
* `report_removal`: List of instances to reject reports from.
* `avatar_removal`: List of instances to strip avatars from.
* `banner_removal`: List of instances to strip banners from.
* `media_removal`: List of instances to strip media attachments from and the reason for doing so.
* `media_nsfw`: List of instances to tag all media as NSFW (sensitive) from and the reason for doing so.
* `federated_timeline_removal`: List of instances to remove from the Federated Timeline (aka The Whole Known Network) and the reason for doing so.
* `reject`: List of instances to reject activities (except deletes) from and the reason for doing so.
* `accept`: List of instances to only accept activities (except deletes) from and the reason for doing so.
* `followers_only`: Force posts from the given instances to be visible by followers only and the reason for doing so.
* `report_removal`: List of instances to reject reports from and the reason for doing so.
* `avatar_removal`: List of instances to strip avatars from and the reason for doing so.
* `banner_removal`: List of instances to strip banners from and the reason for doing so.
* `reject_deletes`: List of instances to reject deletions from and the reason for doing so.
#### :mrf_subchain
This policy processes messages through an alternate pipeline when a given message matches certain criteria.
@ -133,8 +194,9 @@ their ActivityPub ID.
An example:
```elixir
config :pleroma, :mrf_user_allowlist,
"example.org": ["https://example.org/users/admin"]
config :pleroma, :mrf_user_allowlist, %{
"example.org" => ["https://example.org/users/admin"]
}
```
#### :mrf_object_age
@ -145,30 +207,54 @@ config :pleroma, :mrf_user_allowlist,
* `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines
* `:reject` rejects the message entirely
#### :mrf_steal_emoji
* `hosts`: List of hosts to steal emojis from
* `rejected_shortcodes`: Regex-list of shortcodes to reject
* `size_limit`: File size limit (in bytes), checked before an emoji is saved to the disk
#### :mrf_activity_expiration
* `days`: Default global expiration time for all local Create activities (in days)
#### :mrf_hashtag
* `sensitive`: List of hashtags to mark activities as sensitive (default: `nsfw`)
* `federated_timeline_removal`: List of hashtags to remove activities from the federated timeline (aka TWNK)
* `reject`: List of hashtags to reject activities from
Notes:
- The hashtags in the configuration do not have a leading `#`.
- This MRF Policy is always enabled, if you want to disable it you have to set empty lists
#### :mrf_follow_bot
* `follower_nickname`: The name of the bot account to use for following newly discovered users. Using `followbot` or similar is strongly suggested.
### :activitypub
* `unfollow_blocked`: Whether blocks result in people getting unfollowed
* `outgoing_blocks`: Whether to federate blocks to other instances
* `blockers_visible`: Whether a user can see the posts of users who blocked them
* `deny_follow_blocked`: Whether to disallow following an account that has blocked the user in question
* `sign_object_fetches`: Sign object fetches with HTTP signatures
* `authorized_fetch_mode`: Require HTTP signatures for AP fetches
## Pleroma.User
* `restricted_nicknames`: List of nicknames users may not register with.
* `email_blacklist`: List of email domains users may not register with.
## Pleroma.ScheduledActivity
* `daily_user_limit`: the number of scheduled activities a user is allowed to create in a single day (Default: `25`)
* `total_user_limit`: the number of scheduled activities a user is allowed to create in total (Default: `300`)
* `enabled`: whether scheduled activities are sent to the job queue to be executed
## Pleroma.ActivityExpiration
* `enabled`: whether expired activities will be sent to the job queue to be deleted
## Frontends
### :frontend_configurations
This can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for `pleroma_fe` and `masto_fe` are configured. You can find the documentation for `pleroma_fe` configuration into [Pleroma-FE configuration and customization for instance administrators](/frontend/CONFIGURATION/#options).
This can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for `pleroma_fe` are configured. You can find the documentation for `pleroma_fe` configuration into [Pleroma-FE configuration and customization for instance administrators](/frontend/CONFIGURATION/#options).
Frontends can access these settings at `/api/pleroma/frontend_configurations`
Frontends can access these settings at `/api/v1/pleroma/frontend_configurations`
To add your own configuration for PleromaFE, use it like this:
@ -177,10 +263,7 @@ config :pleroma, :frontend_configurations,
pleroma_fe: %{
theme: "pleroma-dark",
# ... see /priv/static/static/config.json for the available keys.
},
masto_fe: %{
showInstanceSpecificPanel: true
}
}
```
These settings **need to be complete**, they will override the defaults.
@ -233,6 +316,7 @@ This section describe PWA manifest instance-specific values. Currently this opti
* `background_color`: Describe the background color of the app. (Example: `"#191b22"`, `"aliceblue"`).
## :emoji
* `shortcode_globs`: Location of custom emoji files. `*` can be used as a wildcard. Example `["/emoji/custom/**/*.png"]`
* `pack_extensions`: A list of file extensions for emojis, when no emoji.txt for a pack is present. Example `[".png", ".gif"]`
* `groups`: Emojis are ordered in groups (tags). This is an array of key-value pairs where the key is the groupname and the value the location or array of locations. `*` can be used as a wildcard. Example `[Custom: ["/emoji/*.png", "/emoji/custom/*.png"]]`
@ -241,10 +325,55 @@ This section describe PWA manifest instance-specific values. Currently this opti
memory for this amount of seconds multiplied by the number of files.
## :media_proxy
* `enabled`: Enables proxying of remote media to the instances proxy
* `base_url`: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts.
* `proxy_opts`: All options defined in `Pleroma.ReverseProxy` documentation, defaults to `[max_body_length: (25*1_048_576)]`.
* `whitelist`: List of domains to bypass the mediaproxy
* `whitelist`: List of hosts with scheme to bypass the mediaproxy (e.g. `https://example.com`)
* `invalidation`: options for remove media from cache after delete object:
* `enabled`: Enables purge cache
* `provider`: Which one of the [purge cache strategy](#purge-cache-strategy) to use.
## :media_preview_proxy
* `enabled`: Enables proxying of remote media preview to the instances proxy. Requires enabled media proxy (`media_proxy/enabled`).
* `thumbnail_max_width`: Max width of preview thumbnail for images (video preview always has original dimensions).
* `thumbnail_max_height`: Max height of preview thumbnail for images (video preview always has original dimensions).
* `image_quality`: Quality of the output. Ranges from 0 (min quality) to 100 (max quality).
* `min_content_length`: Min content length to perform preview, in bytes. If greater than 0, media smaller in size will be served as is, without thumbnailing.
### Purge cache strategy
#### Pleroma.Web.MediaProxy.Invalidation.Script
This strategy allow perform external shell script to purge cache.
Urls of attachments are passed to the script as arguments.
* `script_path`: Path to the external script.
* `url_format`: Set to `:htcacheclean` if using Apache's htcacheclean utility.
Example:
```elixir
config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script,
script_path: "./installation/nginx-cache-purge.example"
```
#### Pleroma.Web.MediaProxy.Invalidation.Http
This strategy allow perform custom http request to purge cache.
* `method`: http method. default is `purge`
* `headers`: http headers.
* `options`: request options.
Example:
```elixir
config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http,
method: :purge,
headers: [],
options: []
```
## Link previews
@ -252,8 +381,6 @@ This section describe PWA manifest instance-specific values. Currently this opti
* `providers`: a list of metadata providers to enable. Providers available:
* `Pleroma.Web.Metadata.Providers.OpenGraph`
* `Pleroma.Web.Metadata.Providers.TwitterCard`
* `Pleroma.Web.Metadata.Providers.RelMe` - add links from user bio with rel=me into the `<header>` as `<link rel=me>`.
* `Pleroma.Web.Metadata.Providers.Feed` - add a link to a user's Atom feed into the `<header>` as `<link rel=alternate>`.
* `unfurl_nsfw`: If set to `true` nsfw attachments will be shown in previews.
### :rich_media (consumer)
@ -261,6 +388,7 @@ This section describe PWA manifest instance-specific values. Currently this opti
* `ignore_hosts`: list of hosts which will be ignored by the metadata parser. For example `["accounts.google.com", "xss.website"]`, defaults to `[]`.
* `ignore_tld`: list TLDs (top-level domains) which will ignore for parse metadata. default is ["local", "localdomain", "lan"].
* `parsers`: list of Rich Media parsers.
* `failure_backoff`: Amount of milliseconds after request failure, during which the request will not be retried.
## HTTP server
@ -299,25 +427,25 @@ This will make Pleroma listen on `127.0.0.1` port `8080` and generate urls start
* ``referrer_policy``: The referrer policy to use, either `"same-origin"` or `"no-referrer"`.
* ``report_uri``: Adds the specified url to `report-uri` and `report-to` group in CSP header.
### Pleroma.Plugs.RemoteIp
### Pleroma.Web.Plugs.RemoteIp
!!! warning
If your instance is not behind at least one reverse proxy, you should not enable this plug.
`Pleroma.Plugs.RemoteIp` is a shim to call [`RemoteIp`](https://git.pleroma.social/pleroma/remote_ip) but with runtime configuration.
`Pleroma.Web.Plugs.RemoteIp` is a shim to call [`RemoteIp`](https://git.pleroma.social/pleroma/remote_ip) but with runtime configuration.
Available options:
* `enabled` - Enable/disable the plug. Defaults to `false`.
* `headers` - A list of strings naming the `req_headers` to use when deriving the `remote_ip`. Order does not matter. Defaults to `["x-forwarded-for"]`.
* `proxies` - A list of strings in [CIDR](https://en.wikipedia.org/wiki/CIDR) notation specifying the IPs of known proxies. Defaults to `[]`.
* `reserved` - Defaults to [localhost](https://en.wikipedia.org/wiki/Localhost) and [private network](https://en.wikipedia.org/wiki/Private_network).
* `headers` - A list of strings naming the HTTP headers to use when deriving the true client IP address. Defaults to `["x-forwarded-for"]`.
* `proxies` - A list of upstream proxy IP subnets in CIDR notation from which we will parse the content of `headers`. Defaults to `[]`. IPv4 entries without a bitmask will be assumed to be /32 and IPv6 /128.
* `reserved` - A list of reserved IP subnets in CIDR notation which should be ignored if found in `headers`. Defaults to `["127.0.0.0/8", "::1/128", "fc00::/7", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]`.
### :rate_limit
!!! note
If your instance is behind a reverse proxy ensure [`Pleroma.Plugs.RemoteIp`](#pleroma-plugs-remoteip) is enabled (it is enabled by default).
If your instance is behind a reverse proxy ensure [`Pleroma.Web.Plugs.RemoteIp`](#pleroma-plugs-remoteip) is enabled (it is enabled by default).
A keyword list of rate limiters where a key is a limiter name and value is the limiter configuration. The basic configuration is a tuple where:
@ -369,8 +497,7 @@ Available caches:
* `proxy_url`: an upstream proxy to fetch posts and/or media with, (default: `nil`)
* `send_user_agent`: should we include a user agent with HTTP requests? (default: `true`)
* `user_agent`: what user agent should we use? (default: `:default`), must be string or `:default`
* `adapter`: array of hackney options
* `adapter`: array of adapter options
### :hackney_pools
@ -389,6 +516,37 @@ For each pool, the options are:
* `timeout` - retention duration for connections
### :connections_pool
*For `gun` adapter*
Settings for HTTP connection pool.
* `:connection_acquisition_wait` - Timeout to acquire a connection from pool.The total max time is this value multiplied by the number of retries.
* `connection_acquisition_retries` - Number of attempts to acquire the connection from the pool if it is overloaded. Each attempt is timed `:connection_acquisition_wait` apart.
* `:max_connections` - Maximum number of connections in the pool.
* `:connect_timeout` - Timeout to connect to the host.
* `:reclaim_multiplier` - Multiplied by `:max_connections` this will be the maximum number of idle connections that will be reclaimed in case the pool is overloaded.
### :pools
*For `gun` adapter*
Settings for request pools. These pools are limited on top of `:connections_pool`.
There are four pools used:
* `:federation` for the federation jobs. You may want this pool's max_connections to be at least equal to the number of federator jobs + retry queue jobs.
* `:media` - for rich media, media proxy.
* `:upload` - for proxying media when a remote uploader is used and `proxy_remote: true`.
* `:default` - for other requests.
For each pool, the options are:
* `:size` - limit to how much requests can be concurrently executed.
* `:recv_timeout` - timeout while `gun` will wait for response
* `:max_waiting` - limit to how much requests can be waiting for others to finish, after this is reached, subsequent requests will be dropped.
## Captcha
### Pleroma.Captcha
@ -406,7 +564,7 @@ A built-in captcha provider. Enabled by default.
#### Pleroma.Captcha.Kocaptcha
Kocaptcha is a very simple captcha service with a single API endpoint,
the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint
the source code is here: [kocaptcha](https://github.com/koto-bank/kocaptcha). The default endpoint
`https://captcha.kotobank.ch` is hosted by the developer.
* `endpoint`: the Kocaptcha endpoint to use.
@ -414,40 +572,51 @@ the source code is here: https://github.com/koto-bank/kocaptcha. The default end
## Uploads
### Pleroma.Upload
* `uploader`: Which one of the [uploaders](#uploaders) to use.
* `filters`: List of [upload filters](#upload-filters) to use.
* `link_name`: When enabled Pleroma will add a `name` parameter to the url of the upload, for example `https://instance.tld/media/corndog.png?name=corndog.png`. This is needed to provide the correct filename in Content-Disposition headers when using filters like `Pleroma.Upload.Filter.Dedupe`
* `base_url`: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host.
* `base_url`: The base URL to access a user-uploaded file. Useful when you want to host the media files via another domain or are using a 3rd party S3 provider.
* `proxy_remote`: If you're using a remote uploader, Pleroma will proxy media requests instead of redirecting to it.
* `proxy_opts`: Proxy options, see `Pleroma.ReverseProxy` documentation.
* `filename_display_max_length`: Set max length of a filename to display. 0 = no limit. Default: 30.
* `default_description`: Sets which default description an image has if none is set explicitly. Options: nil (default) - Don't set a default, :filename - use the filename of the file, a string (e.g. "attachment") - Use this string
!!! warning
`strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`.
### Uploaders
#### Pleroma.Uploaders.Local
* `uploads`: Which directory to store the user-uploads in, relative to pleromas working directory.
#### Pleroma.Uploaders.S3
Don't forget to configure [Ex AWS S3](#ex-aws-s3-settings)
* `bucket`: S3 bucket name.
* `bucket_namespace`: S3 bucket namespace.
* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.ap-northeast-1.amazonaws.com")
* `truncated_namespace`: If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or "" etc.
For example, when using CDN to S3 virtual host format, set "".
At this time, write CNAME to CDN in public_endpoint.
* `streaming_enabled`: Enable streaming uploads, when enabled the file will be sent to the server in chunks as it's being read. This may be unsupported by some providers, try disabling this if you have upload problems.
#### Ex AWS S3 settings
* `access_key_id`: Access key ID
* `secret_access_key`: Secret access key
* `host`: S3 host
Example:
```elixir
config :ex_aws, :s3,
access_key_id: "xxxxxxxxxx",
secret_access_key: "yyyyyyyyyy",
host: "s3.eu-central-1.amazonaws.com"
```
### Upload filters
#### Pleroma.Upload.Filter.Mogrify
* `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", "auto-orient", {"implode", "1"}]`.
#### Pleroma.Upload.Filter.Dedupe
No specific configuration.
#### Pleroma.Upload.Filter.AnonymizeFilename
This filter replaces the filename (not the path) of an upload. For complete obfuscation, add
@ -455,6 +624,26 @@ This filter replaces the filename (not the path) of an upload. For complete obfu
* `text`: Text to replace filenames in links. If empty, `{random}.extension` will be used. You can get the original filename extension by using `{extension}`, for example `custom-file-name.{extension}`.
#### Pleroma.Upload.Filter.Dedupe
No specific configuration.
#### Pleroma.Upload.Filter.Exiftool.StripLocation
This filter only strips the GPS and location metadata with Exiftool leaving color profiles and attributes intact.
No specific configuration.
#### Pleroma.Upload.Filter.Exiftool.ReadDescription
This filter reads the ImageDescription and iptc:Caption-Abstract fields with Exiftool so clients can prefill the media description field.
No specific configuration.
#### Pleroma.Upload.Filter.Mogrify
* `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", "auto-orient", {"implode", "1"}]`.
## Email
### Pleroma.Emails.Mailer
@ -515,8 +704,7 @@ Email notifications settings.
Configuration options described in [Oban readme](https://github.com/sorentwo/oban#usage):
* `repo` - app's Ecto repo (`Pleroma.Repo`)
* `verbose` - logs verbosity
* `prune` - non-retryable jobs [pruning settings](https://github.com/sorentwo/oban#pruning) (`:disabled` / `{:maxlen, value}` / `{:maxage, value}`)
* `log` - logs verbosity
* `queues` - job queues (see below)
* `crontab` - periodic jobs, see [`Oban.Cron`](#obancron)
@ -534,9 +722,8 @@ Pleroma has the following queues:
Pleroma has these periodic job workers:
`Pleroma.Workers.Cron.ClearOauthTokenWorker` - a job worker to cleanup expired oauth tokens.
Example:
* `Pleroma.Workers.Cron.DigestEmailsWorker` - digest emails for users with new mentions and follows
* `Pleroma.Workers.Cron.NewUsersDigestWorker` - digest emails for admins with new registrations
```elixir
config :pleroma, Oban,
@ -548,7 +735,8 @@ config :pleroma, Oban,
federator_outgoing: 50
],
crontab: [
{"0 0 * * *", Pleroma.Workers.Cron.ClearOauthTokenWorker}
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker}
]
```
@ -580,24 +768,6 @@ config :pleroma, :workers,
* `enabled: false` corresponds to `config :pleroma, :workers, retries: [federator_outgoing: 1]`
* deprecated options: `max_jobs`, `initial_timeout`
### Pleroma.Scheduler
Configuration for [Quantum](https://github.com/quantum-elixir/quantum-core) jobs scheduler.
See [Quantum readme](https://github.com/quantum-elixir/quantum-core#usage) for the list of supported options.
Example:
```elixir
config :pleroma, Pleroma.Scheduler,
global: true,
overlap: true,
timezone: :utc,
jobs: [{"0 */6 * * * *", {Pleroma.Web.Websub, :refresh_subscriptions, []}}]
```
The above example defines a single job which invokes `Pleroma.Web.Websub.refresh_subscriptions()` every 6 hours ("0 */6 * * * *", [crontab format](https://en.wikipedia.org/wiki/Cron)).
## :web_push_encryption, :vapid_details
Web Push Notifications configuration. You can use the mix task `mix web_push.gen.keypair` to generate it.
@ -710,19 +880,18 @@ config :pleroma, :admin_token, "somerandomtoken"
You can then do
```shell
curl "http://localhost:4000/api/pleroma/admin/users/invites?admin_token=somerandomtoken"
curl "http://localhost:4000/api/v1/pleroma/admin/users/invites?admin_token=somerandomtoken"
```
or
```shell
curl -H "X-Admin-Token: somerandomtoken" "http://localhost:4000/api/pleroma/admin/users/invites"
curl -H "X-Admin-Token: somerandomtoken" "http://localhost:4000/api/v1/pleroma/admin/users/invites"
```
### :auth
Warning: it's discouraged to use this feature because of the associated security risk: static / rarely changed instance-wide token is much weaker compared to email-password pair of a real admin user; consider using HTTP Basic Auth or OAuth-based authentication instead.
* `Pleroma.Web.Auth.PleromaAuthenticator`: default database authenticator.
* `Pleroma.Web.Auth.LDAPAuthenticator`: LDAP authentication.
### :auth
Authentication / authorization settings.
@ -753,6 +922,25 @@ Pleroma account will be created with the same name as the LDAP user name.
* `base`: LDAP base, e.g. "dc=example,dc=com"
* `uid`: LDAP attribute name to authenticate the user, e.g. when "cn", the filter will be "cn=username,base"
Note, if your LDAP server is an Active Directory server the correct value is commonly `uid: "cn"`, but if you use an
OpenLDAP server the value may be `uid: "uid"`.
### :oauth2 (Pleroma as OAuth 2.0 provider settings)
OAuth 2.0 provider settings:
* `token_expires_in` - The lifetime in seconds of the access token.
* `issue_new_refresh_token` - Keeps old refresh token or generate new refresh token when to obtain an access token.
* `clean_expired_tokens` - Enable a background job to clean expired oauth tokens. Defaults to `false`.
OAuth 2.0 provider and related endpoints:
* `POST /api/v1/apps` creates client app basing on provided params.
* `GET/POST /oauth/authorize` renders/submits authorization form.
* `POST /oauth/token` creates/renews OAuth token.
* `POST /oauth/revoke` revokes provided OAuth token.
* `GET /api/v1/accounts/verify_credentials` (with proper `Authorization` header or `access_token` URI param) returns user info on requester (with `acct` field containing local nickname and `fqn` field containing fully-qualified nickname which could generally be used as email stub for OAuth software that demands email field in identity endpoint response, like Peertube).
### OAuth consumer mode
OAuth consumer mode allows sign in / sign up via external OAuth providers (e.g. Twitter, Facebook, Google, Microsoft, etc.).
@ -825,50 +1013,153 @@ config :ueberauth, Ueberauth,
]
```
### OAuth 2.0 provider - :oauth2
Configure OAuth 2 provider capabilities:
* `token_expires_in` - The lifetime in seconds of the access token.
* `issue_new_refresh_token` - Keeps old refresh token or generate new refresh token when to obtain an access token.
* `clean_expired_tokens` - Enable a background job to clean expired oauth tokens. Defaults to `false`. Interval settings sets in configuration periodic jobs [`Oban.Cron`](#obancron)
## Link parsing
### :uri_schemes
* `valid_schemes`: List of the scheme part that is considered valid to be an URL.
### :auto_linker
### Pleroma.Formatter
Configuration for the `auto_linker` library:
Configuration for Pleroma's link formatter which parses mentions, hashtags, and URLs.
* `class: "auto-linker"` - specify the class to be added to the generated link. false to clear.
* `rel: "noopener noreferrer"` - override the rel attribute. false to clear.
* `new_window: true` - set to false to remove `target='_blank'` attribute.
* `scheme: false` - Set to true to link urls with schema `http://google.com`.
* `truncate: false` - Set to a number to truncate urls longer then the number. Truncated urls will end in `..`.
* `strip_prefix: true` - Strip the scheme prefix.
* `extra: false` - link urls with rarely used schemes (magnet, ipfs, irc, etc.).
* `class` - specify the class to be added to the generated link (default: `false`)
* `rel` - specify the rel attribute (default: `ugc`)
* `new_window` - adds `target="_blank"` attribute (default: `false`)
* `truncate` - Set to a number to truncate URLs longer then the number. Truncated URLs will end in `...` (default: `false`)
* `strip_prefix` - Strip the scheme prefix (default: `false`)
* `extra` - link URLs with rarely used schemes (magnet, ipfs, irc, etc.) (default: `true`)
* `validate_tld` - Set to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for urls without a scheme (e.g `example.com` will be validated, but `http://example.loki` won't) (default: `:no_scheme`)
Example:
```elixir
config :auto_linker,
opts: [
scheme: true,
extra: true,
class: false,
strip_prefix: false,
new_window: false,
rel: "ugc"
]
config :pleroma, Pleroma.Formatter,
class: false,
rel: "ugc",
new_window: false,
truncate: false,
strip_prefix: false,
extra: true,
validate_tld: :no_scheme
```
## Custom Runtime Modules (`:modules`)
* `runtime_dir`: A path to custom Elixir modules (such as MRF policies).
## :configurable_from_database
Boolean, enables/disables in-database configuration. Read [Transfering the config to/from the database](../administration/CLI_tasks/config.md) for more information.
## :database_config_whitelist
List of valid configuration sections which are allowed to be configured from the
database. Settings stored in the database before the whitelist is configured are
still applied, so it is suggested to only use the whitelist on instances that
have not migrated the config to the database.
Example:
```elixir
config :pleroma, :database_config_whitelist, [
{:pleroma, :instance},
{:pleroma, Pleroma.Web.Metadata},
{:auto_linker}
]
```
### Multi-factor authentication - :two_factor_authentication
* `totp` - a list containing TOTP configuration
- `digits` - Determines the length of a one-time pass-code in characters. Defaults to 6 characters.
- `period` - a period for which the TOTP code will be valid in seconds. Defaults to 30 seconds.
* `backup_codes` - a list containing backup codes configuration
- `number` - number of backup codes to generate.
- `length` - backup code length. Defaults to 16 characters.
## Restrict entities access for unauthenticated users
### :restrict_unauthenticated
Restrict access for unauthenticated users to timelines (public and federated), user profiles and statuses.
* `timelines`: public and federated timelines
* `local`: public timeline
* `federated`: federated timeline (includes public timeline)
* `profiles`: user profiles
* `local`
* `remote`
* `activities`: statuses
* `local`
* `remote`
Note: when `:instance, :public` is set to `false`, all `:restrict_unauthenticated` items be effectively set to `true` by default. If you'd like to allow unauthenticated access to specific API endpoints on a private instance, please explicitly set `:restrict_unauthenticated` to non-default value in `config/prod.secret.exs`.
Note: setting `restrict_unauthenticated/timelines/local` to `true` has no practical sense if `restrict_unauthenticated/timelines/federated` is set to `false` (since local public activities will still be delivered to unauthenticated users as part of federated timeline).
## Pleroma.Web.ApiSpec.CastAndValidate
* `:strict` a boolean, enables strict input validation (useful in development, not recommended in production). Defaults to `false`.
## :instances_favicons
Control favicons for instances.
* `enabled`: Allow/disallow displaying and getting instances favicons
## Pleroma.User.Backup
!!! note
Requires enabled email
* `:purge_after_days` an integer, remove backup achives after N days.
* `:limit_days` an integer, limit user to export not more often than once per N days.
* `:dir` a string with a path to backup temporary directory or `nil` to let Pleroma choose temporary directory in the following order:
1. the directory named by the TMPDIR environment variable
2. the directory named by the TEMP environment variable
3. the directory named by the TMP environment variable
4. C:\TMP on Windows or /tmp on Unix-like operating systems
5. as a last resort, the current working directory
## Frontend management
Frontends in Pleroma are swappable - you can specify which one to use here.
You can set a frontends for the key `primary` and `admin` and the options of `name` and `ref`. This will then make Pleroma serve the frontend from a folder constructed by concatenating the instance static path, `frontends` and the name and ref.
The key `primary` refers to the frontend that will be served by default for general requests. The key `admin` refers to the frontend that will be served at the `/pleroma/admin` path.
If you don't set anything here, the bundled frontends will be used.
Example:
```
config :pleroma, :frontends,
primary: %{
"name" => "pleroma",
"ref" => "stable"
},
admin: %{
"name" => "admin",
"ref" => "develop"
}
```
This would serve the frontend from the the folder at `$instance_static/frontends/pleroma/stable`. You have to copy the frontend into this folder yourself. You can choose the name and ref any way you like, but they will be used by mix tasks to automate installation in the future, the name referring to the project and the ref referring to a commit.
## Ephemeral activities (Pleroma.Workers.PurgeExpiredActivity)
Settings to enable and configure expiration for ephemeral activities
* `:enabled` - enables ephemeral activities creation
* `:min_lifetime` - minimum lifetime for ephemeral activities (in seconds). Default: 10 minutes.
## ConcurrentLimiter
Settings to restrict concurrently running jobs. Jobs which can be configured:
* `Pleroma.Web.RichMedia.Helpers` - generating link previews of URLs in activities
* `Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy` - warming remote media cache via MediaProxyWarmingPolicy
Each job has these settings:
* `:max_running` - max concurrently runnings jobs
* `:max_waiting` - max waiting jobs

View File

@ -0,0 +1,155 @@
# How to activate Pleroma in-database configuration
## Explanation
The configuration of Pleroma has traditionally been managed with a config file, e.g. `config/prod.secret.exs`. This method requires a restart of the application for any configuration changes to take effect. We have made it possible to control most settings in the AdminFE interface after running a migration script.
## Migration to database config
1. Run the mix task to migrate to the database.
**Source:**
```
$ mix pleroma.config migrate_to_db
```
or
**OTP:**
*Note: OTP users need Pleroma to be running for `pleroma_ctl` commands to work*
```
$ ./bin/pleroma_ctl config migrate_to_db
```
```
Migrating settings from file: /home/pleroma/config/dev.secret.exs
Settings for key instance migrated.
Settings for group :pleroma migrated.
```
2. It is recommended to backup your config file now.
```
cp config/dev.secret.exs config/dev.secret.exs.orig
```
3. Edit your Pleroma config to enable database configuration:
```
config :pleroma, configurable_from_database: true
```
4. ⚠️ **THIS IS NOT REQUIRED** ⚠️
Now you can edit your config file and strip it down to the only settings which are not possible to control in the database. e.g., the Postgres (Repo) and webserver (Endpoint) settings cannot be controlled in the database because the application needs the settings to start up and access the database.
Any settings in the database will override those in the config file, but you may find it less confusing if the setting is only declared in one place.
A non-exhaustive list of settings that are only possible in the config file include the following:
* config :pleroma, Pleroma.Web.Endpoint
* config :pleroma, Pleroma.Repo
* config :pleroma, configurable\_from\_database
* config :pleroma, :database, rum_enabled
* config :pleroma, :connections_pool
Here is an example of a server config stripped down after migration:
```
import Config
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "cool.pleroma.site", scheme: "https", port: 443]
config :pleroma, Pleroma.Repo,
adapter: Ecto.Adapters.Postgres,
username: "pleroma",
password: "MySecretPassword",
database: "pleroma_prod",
hostname: "localhost"
config :pleroma, configurable_from_database: true
```
5. Restart your instance and you can now access the Settings tab in AdminFE.
## Reverting back from database config
1. Run the mix task to migrate back from the database. You'll receive some debugging output and a few messages informing you of what happened.
**Source:**
```
$ mix pleroma.config migrate_from_db
```
or
**OTP:**
```
$ ./bin/pleroma_ctl config migrate_from_db
```
```
10:26:30.593 [debug] QUERY OK source="config" db=9.8ms decode=1.2ms queue=26.0ms idle=0.0ms
SELECT c0."id", c0."key", c0."group", c0."value", c0."inserted_at", c0."updated_at" FROM "config" AS c0 []
10:26:30.659 [debug] QUERY OK source="config" db=1.1ms idle=80.7ms
SELECT c0."id", c0."key", c0."group", c0."value", c0."inserted_at", c0."updated_at" FROM "config" AS c0 []
Database configuration settings have been saved to config/dev.exported_from_db.secret.exs
```
2. Remove `config :pleroma, configurable_from_database: true` from your config. The in-database configuration still exists, but it will not be used. Future migrations will erase the database config before importing your config file again.
3. Restart your instance.
## Debugging
### Clearing database config
You can clear the database config with the following command:
**Source:**
```
$ mix pleroma.config reset
```
or
**OTP:**
```
$ ./bin/pleroma_ctl config reset
```
Additionally, every time you migrate the configuration to the database the config table is automatically truncated to ensure a clean migration.
### Manually removing a setting
If you encounter a situation where the server cannot run properly because of an invalid setting in the database and this is preventing you from accessing AdminFE, you can manually remove the offending setting if you know which one it is.
e.g., here is an example showing a the removal of the `config :pleroma, :instance` settings:
**Source:**
```
$ mix pleroma.config delete pleroma instance
Are you sure you want to continue? [n] y
config :pleroma, :instance deleted from the ConfigDB.
```
or
**OTP:**
```
$ ./bin/pleroma_ctl config delete pleroma instance
Are you sure you want to continue? [n] y
config :pleroma, :instance deleted from the ConfigDB.
```
Now the `config :pleroma, :instance` settings have been removed from the database.

View File

@ -0,0 +1,136 @@
# Configuring Ejabberd (XMPP Server) to use Pleroma for authentication
If you want to give your Pleroma users an XMPP (chat) account, you can configure [Ejabberd](https://github.com/processone/ejabberd) to use your Pleroma server for user authentication, automatically giving every local user an XMPP account.
In general, you just have to follow the configuration described at [https://docs.ejabberd.im/admin/configuration/authentication/#external-script](https://docs.ejabberd.im/admin/configuration/authentication/#external-script). Please read this section carefully.
Copy the script below to suitable path on your system and set owner and permissions. Also do not forget adjusting `PLEROMA_HOST` and `PLEROMA_PORT`, if necessary.
```bash
cp pleroma_ejabberd_auth.py /etc/ejabberd/pleroma_ejabberd_auth.py
chown ejabberd /etc/ejabberd/pleroma_ejabberd_auth.py
chmod 700 /etc/ejabberd/pleroma_ejabberd_auth.py
```
Set external auth params in ejabberd.yaml file:
```bash
auth_method: [external]
extauth_program: "python3 /etc/ejabberd/pleroma_ejabberd_auth.py"
extauth_instances: 3
auth_use_cache: false
```
Restart / reload your ejabberd service.
After restarting your Ejabberd server, your users should now be able to connect with their Pleroma credentials.
```python
import sys
import struct
import http.client
from base64 import b64encode
import logging
PLEROMA_HOST = "127.0.0.1"
PLEROMA_PORT = "4000"
AUTH_ENDPOINT = "/api/v1/accounts/verify_credentials"
USER_ENDPOINT = "/api/v1/accounts"
LOGFILE = "/var/log/ejabberd/pleroma_auth.log"
logging.basicConfig(filename=LOGFILE, level=logging.INFO)
# Pleroma functions
def create_connection():
return http.client.HTTPConnection(PLEROMA_HOST, PLEROMA_PORT)
def verify_credentials(user: str, password: str) -> bool:
user_pass_b64 = b64encode("{}:{}".format(
user, password).encode('utf-8')).decode("ascii")
params = {}
headers = {
"Authorization": "Basic {}".format(user_pass_b64)
}
try:
conn = create_connection()
conn.request("GET", AUTH_ENDPOINT, params, headers)
response = conn.getresponse()
if response.status == 200:
return True
return False
except Exception as e:
logging.info("Can not connect: %s", str(e))
return False
def does_user_exist(user: str) -> bool:
conn = create_connection()
conn.request("GET", "{}/{}".format(USER_ENDPOINT, user))
response = conn.getresponse()
if response.status == 200:
return True
return False
def auth(username: str, server: str, password: str) -> bool:
return verify_credentials(username, password)
def isuser(username, server):
return does_user_exist(username)
def read():
(pkt_size,) = struct.unpack('>H', bytes(sys.stdin.read(2), encoding='utf8'))
pkt = sys.stdin.read(pkt_size)
cmd = pkt.split(':')[0]
if cmd == 'auth':
username, server, password = pkt.split(':', 3)[1:]
write(auth(username, server, password))
elif cmd == 'isuser':
username, server = pkt.split(':', 2)[1:]
write(isuser(username, server))
elif cmd == 'setpass':
# u, s, p = pkt.split(':', 3)[1:]
write(False)
elif cmd == 'tryregister':
# u, s, p = pkt.split(':', 3)[1:]
write(False)
elif cmd == 'removeuser':
# u, s = pkt.split(':', 2)[1:]
write(False)
elif cmd == 'removeuser3':
# u, s, p = pkt.split(':', 3)[1:]
write(False)
else:
write(False)
def write(result):
if result:
sys.stdout.write('\x00\x02\x00\x01')
else:
sys.stdout.write('\x00\x02\x00\x00')
sys.stdout.flush()
if __name__ == "__main__":
logging.info("Starting pleroma ejabberd auth daemon...")
while True:
try:
read()
except Exception as e:
logging.info(
"Error while processing data from ejabberd %s", str(e))
pass
```

View File

@ -0,0 +1,42 @@
# How to enable text search for Chinese, Japanese and Korean
Pleroma's full text search feature is powered by PostgreSQL's native [text search](https://www.postgresql.org/docs/current/textsearch.html), it works well out of box for most of languages, but needs extra configurations for some asian languages like Chinese, Japanese and Korean (CJK).
## Setup and test the new search config
In most cases, you would need an extension installed to support parsing CJK text. Here are a few extensions you may choose from, or you are more than welcome to share additional ones you found working for you with the rest of Pleroma community.
* [a generic n-gram parser](https://github.com/huangjimmy/pg_cjk_parser) supports Simplifed/Traditional Chinese, Japanese, and Korean
* [a Korean parser](https://github.com/i0seph/textsearch_ko) based on mecab
* [a Japanese parser](https://www.amris.co.jp/tsja/index.html) based on mecab
* [zhparser](https://github.com/amutu/zhparser/) is a PostgreSQL extension base on the Simple Chinese Word Segmentation(SCWS)
* [another Chinese parser](https://github.com/jaiminpan/pg_jieba) based on Jieba Chinese Word Segmentation
Once you have the new search config , make sure you test it with the `pleroma` user in PostgreSQL (change `YOUR.CONFIG` to your real configuration name)
```
SELECT ts_debug('YOUR.CONFIG', '安装和配置Nginx, ElixirとErlangをインストールします');
```
Check output of the query, and see if it matches your expectation.
## Update text search config and index in database
=== "OTP"
```sh
./bin/pleroma_ctl database set_text_search_config YOUR.CONFIG
```
=== "From Source"
```sh
mix pleroma.database set_text_search_config YOUR.CONFIG
```
Note: index update may take a while, and it can be done while the instance is up and running, so you may restart db connection as soon as you see `Recreate index` in task output.
## Restart database connection
Since some changes above will only apply with a new database connection, you will have to restart either Pleroma or PostgreSQL process, or use `pg_terminate_backend` SQL command without restarting either.
Now the search results of statuses should be much more friendly for your language of choice, the results for searching users and tags were not changed, as the default parsing/matching should work for most cases.

View File

@ -60,7 +60,7 @@ Example of `my-awesome-theme.json` where we add the name "My Awesome Theme"
### Set as default theme
Now we can set the new theme as default in the [Pleroma FE configuration](General-tips-for-customizing-Pleroma-FE.md).
Now we can set the new theme as default in the [Pleroma FE configuration](../../../frontend/CONFIGURATION).
Example of adding the new theme in the back-end config files
```elixir

View File

@ -34,35 +34,39 @@ config :pleroma, :instance,
To use `SimplePolicy`, you must enable it. Do so by adding the following to your `:instance` config object, so that it looks like this:
```elixir
config :pleroma, :instance,
config :pleroma, :mrf,
[...]
rewrite_policy: Pleroma.Web.ActivityPub.MRF.SimplePolicy
policies: Pleroma.Web.ActivityPub.MRF.SimplePolicy
```
Once `SimplePolicy` is enabled, you can configure various groups in the `:mrf_simple` config object. These groups are:
* `media_removal`: Servers in this group will have media stripped from incoming messages.
* `media_nsfw`: Servers in this group will have the #nsfw tag and sensitive setting injected into incoming messages which contain media.
* `reject`: Servers in this group will have their messages rejected.
* `federated_timeline_removal`: Servers in this group will have their messages unlisted from the public timelines by flipping the `to` and `cc` fields.
* `accept`: If not empty, only messages from these instances will be accepted (whitelist federation).
* `media_nsfw`: Servers in this group will have the #nsfw tag and sensitive setting injected into incoming messages which contain media.
* `media_removal`: Servers in this group will have media stripped from incoming messages.
* `avatar_removal`: Avatars from these servers will be stripped from incoming messages.
* `banner_removal`: Banner images from these servers will be stripped from incoming messages.
* `report_removal`: Servers in this group will have their reports (flags) rejected.
* `federated_timeline_removal`: Servers in this group will have their messages unlisted from the public timelines by flipping the `to` and `cc` fields.
* `reject_deletes`: Deletion requests will be rejected from these servers.
Servers should be configured as lists.
### Example
This example will enable `SimplePolicy`, block media from `illegalporn.biz`, mark media as NSFW from `porn.biz` and `porn.business`, reject messages from `spam.com`, remove messages from `spam.university` from the federated timeline and block reports (flags) from `whiny.whiner`:
This example will enable `SimplePolicy`, block media from `illegalporn.biz`, mark media as NSFW from `porn.biz` and `porn.business`, reject messages from `spam.com`, remove messages from `spam.university` from the federated timeline and block reports (flags) from `whiny.whiner`. We also give a reason why the moderation was done:
```elixir
config :pleroma, :instance,
rewrite_policy: [Pleroma.Web.ActivityPub.MRF.SimplePolicy]
config :pleroma, :mrf,
policies: [Pleroma.Web.ActivityPub.MRF.SimplePolicy]
config :pleroma, :mrf_simple,
media_removal: ["illegalporn.biz"],
media_nsfw: ["porn.biz", "porn.business"],
reject: ["spam.com"],
federated_timeline_removal: ["spam.university"],
report_removal: ["whiny.whiner"]
media_removal: [{"illegalporn.biz", "Media can contain illegal contant"}],
media_nsfw: [{"porn.biz", "unmarked nsfw media"}, {"porn.business", "A lot of unmarked nsfw media"}],
reject: [{"spam.com", "They keep spamming our users"}],
federated_timeline_removal: [{"spam.university", "Annoying low-quality posts who otherwise fill up TWKN"}],
report_removal: [{"whiny.whiner", "Keep spamming us with irrelevant reports"}]
```
### Use with Care
@ -71,14 +75,14 @@ The effects of MRF policies can be very drastic. It is important to use this fun
## Writing your own MRF Policy
As discussed above, the MRF system is a modular system that supports pluggable policies. This means that an admin may write a custom MRF policy in Elixir or any other language that runs on the Erlang VM, by specifying the module name in the `rewrite_policy` config setting.
As discussed above, the MRF system is a modular system that supports pluggable policies. This means that an admin may write a custom MRF policy in Elixir or any other language that runs on the Erlang VM, by specifying the module name in the `policies` config setting.
For example, here is a sample policy module which rewrites all messages to "new message content":
```elixir
defmodule Pleroma.Web.ActivityPub.MRF.RewritePolicy do
@moduledoc "MRF policy which rewrites all Notes to have 'new message content'."
@behaviour Pleroma.Web.ActivityPub.MRF
@behaviour Pleroma.Web.ActivityPub.MRF.Policy
# Catch messages which contain Note objects with actual data to filter.
# Capture the object as `object`, the message content as `content` and the
@ -113,7 +117,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.RewritePolicy do
@impl true
def describe do
{:ok, %{mrf_sample: %{content: "new message content"}}}`
{:ok, %{mrf_sample: %{content: "new message content"}}}
end
end
```
@ -121,11 +125,34 @@ end
If you save this file as `lib/pleroma/web/activity_pub/mrf/rewrite_policy.ex`, it will be included when you next rebuild Pleroma. You can enable it in the configuration like so:
```elixir
config :pleroma, :instance,
rewrite_policy: [
config :pleroma, :mrf,
policies: [
Pleroma.Web.ActivityPub.MRF.SimplePolicy,
Pleroma.Web.ActivityPub.MRF.RewritePolicy
]
```
Please note that the Pleroma developers consider custom MRF policy modules to fall under the purview of the AGPL. As such, you are obligated to release the sources to your custom MRF policy modules upon request.
### MRF policies descriptions
If MRF policy depends on config, it can be added into MRF tab to adminFE by adding `config_description/0` method, which returns a map with a specific structure. See existing MRF's like `lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex` for examples. Note that more complex inputs, like tuples or maps, may need extra changes in the adminFE and just adding it to `config_description/0` may not be enough to get these inputs working from the adminFE.
Example:
```elixir
%{
key: :mrf_activity_expiration,
related_policy: "Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy",
label: "MRF Activity Expiration Policy",
description: "Adds automatic expiration to all local activities",
children: [
%{
key: :days,
type: :integer,
description: "Default global expiration time for all local activities (in days)",
suggestions: [90, 365]
}
]
}
```

View File

@ -0,0 +1,66 @@
# Optimizing the BEAM
Pleroma is built upon the Erlang/OTP VM known as BEAM. The BEAM VM is highly optimized for latency, but this has drawbacks in environments without dedicated hardware. One of the tricks used by the BEAM VM is [busy waiting](https://en.wikipedia.org/wiki/Busy_waiting). This allows the application to pretend to be busy working so the OS kernel does not pause the application process and switch to another process waiting for the CPU to execute its workload. It does this by spinning for a period of time which inflates the apparent CPU usage of the application so it is immediately ready to execute another task. This can be observed with utilities like **top(1)** which will show consistently high CPU usage for the process. Switching between procesess is a rather expensive operation and also clears CPU caches further affecting latency and performance. The goal of busy waiting is to avoid this penalty.
This strategy is very successful in making a performant and responsive application, but is not desirable on Virtual Machines or hardware with few CPU cores. Pleroma instances are often deployed on the same server as the required PostgreSQL database which can lead to situations where the Pleroma application is holding the CPU in a busy-wait loop and as a result the database cannot process requests in a timely manner. The fewer CPUs available, the more this problem is exacerbated. The latency is further amplified by the OS being installed on a Virtual Machine as the Hypervisor uses CPU time-slicing to pause the entire OS and switch between other tasks.
More adventurous admins can be creative with CPU affinity (e.g., *taskset* for Linux and *cpuset* on FreeBSD) to pin processes to specific CPUs and eliminate much of this contention. The most important advice is to run as few processes as possible on your server to achieve the best performance. Even idle background processes can occasionally create [software interrupts](https://en.wikipedia.org/wiki/Interrupt) and take attention away from the executing process creating latency spikes and invalidation of the CPU caches as they must be cleared when switching between processes for security.
Please only change these settings if you are experiencing issues or really know what you are doing. In general, there's no need to change these settings.
## VPS Provider Recommendations
### Good
* Hetzner Cloud
### Bad
* AWS (known to use burst scheduling)
## Example configurations
Tuning the BEAM requires you provide a config file normally called [vm.args](http://erlang.org/doc/man/erl.html#emulator-flags). If you are using systemd to manage the service you can modify the unit file as such:
`ExecStart=/usr/bin/elixir --erl '-args_file /opt/pleroma/config/vm.args' -S /usr/bin/mix phx.server`
Check your OS documentation to adopt a similar strategy on other platforms.
### Virtual Machine and/or few CPU cores
Disable the busy-waiting. This should generally only be done if you're on a platform that does burst scheduling, like AWS.
**vm.args:**
```
+sbwt none
+sbwtdcpu none
+sbwtdio none
```
### Dedicated Hardware
Enable more busy waiting, increase the internal maximum limit of BEAM processes and ports. You can use this if you run on dedicated hardware, but it is not necessary.
**vm.args:**
```
+P 16777216
+Q 16777216
+K true
+A 128
+sbt db
+sbwt very_long
+swt very_low
+sub true
+Mulmbcs 32767
+Mumbcgs 1
+Musmbcs 2047
```
## Additional Reading
* [WhatsApp: Scaling to Millions of Simultaneous Connections](https://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf)
* [Preemptive Scheduling and Spinlocks](https://www.uio.no/studier/emner/matnat/ifi/nedlagte-emner/INF3150/h03/annet/slides/preemptive.pdf)
* [The Curious Case of BEAM CPU Usage](https://stressgrid.com/blog/beam_cpu_usage/)

View File

@ -0,0 +1,48 @@
# Optimizing PostgreSQL performance
Pleroma performance is largely dependent on performance of the underlying database. Better performance can be achieved by adjusting a few settings.
## PGTune
[PgTune](https://pgtune.leopard.in.ua) can be used to get recommended settings. Be sure to set "Number of Connections" to 20, otherwise it might produce settings hurtful to database performance. It is also recommended to not use "Network Storage" option.
## Disable generic query plans
When PostgreSQL receives a query, it decides on a strategy for searching the requested data, this is called a query plan. The query planner has two modes: generic and custom. Generic makes a plan for all queries of the same shape, ignoring the parameters, which is then cached and reused. Custom, on the contrary, generates a unique query plan based on query parameters.
By default PostgreSQL has an algorithm to decide which mode is more efficient for particular query, however this algorithm has been observed to be wrong on some of the queries Pleroma sends, leading to serious performance loss. Therefore, it is recommended to disable generic mode.
Pleroma already avoids generic query plans by default, however the method it uses is not the most efficient because it needs to be compatible with all supported PostgreSQL versions. For PostgreSQL 12 and higher additional performance can be gained by adding the following to Pleroma configuration:
```elixir
config :pleroma, Pleroma.Repo,
prepare: :named,
parameters: [
plan_cache_mode: "force_custom_plan"
]
```
A more detailed explaination of the issue can be found at <https://blog.soykaf.com/post/postgresql-elixir-troubles/>.
## Example configurations
Here are some configuration suggestions for PostgreSQL 10+.
### 1GB RAM, 1 CPU
```
shared_buffers = 256MB
effective_cache_size = 768MB
maintenance_work_mem = 64MB
work_mem = 13107kB
```
### 2GB RAM, 2 CPU
```
shared_buffers = 512MB
effective_cache_size = 1536MB
maintenance_work_mem = 128MB
work_mem = 26214kB
max_worker_processes = 2
max_parallel_workers_per_gather = 1
max_parallel_workers = 2
```

View File

@ -1,45 +1,61 @@
# Static Directory
Static frontend files are shipped in `priv/static/` and tracked by version control in this repository. If you want to overwrite or update these without the possibility of merge conflicts, you can write your custom versions to `instance/static/`.
Static frontend files are shipped with pleroma. If you want to overwrite or update these without problems during upgrades, you can write your custom versions to the static directory.
```
config :pleroma, :instance,
static_dir: "instance/static/",
```
You can find the location of the static directory in the [configuration](../cheatsheet/#instance).
For example, edit `instance/static/instance/panel.html` .
=== "OTP"
```elixir
config :pleroma, :instance,
static_dir: "/var/lib/pleroma/static/"
```
=== "From Source"
```elixir
config :pleroma, :instance,
static_dir: "instance/static/"
```
Alternatively, you can overwrite this value in your configuration to use a different static instance directory.
This document is written assuming `instance/static/`.
This document is written using `$static_dir` as the value of the `config :pleroma, :instance, static_dir` setting.
Or, if you want to manage your custom file in git repository, basically remove the `instance/` entry from `.gitignore`.
If you use a From Source installation and want to manage your custom files in the git repository, you can remove the `instance/` entry from `.gitignore`.
## robots.txt
By default, the `robots.txt` that ships in `priv/static/` is permissive. It allows well-behaved search engines to index all of your instance's URIs.
There's a mix tasks to [generate a new robot.txt](../../administration/CLI_tasks/robots_txt/).
If you want to generate a restrictive `robots.txt`, you can run the following mix task. The generated `robots.txt` will be written in your instance static directory.
For more complex things, you can write your own robots.txt to `$static_dir/robots.txt`.
E.g. if you want to block all crawlers except for [fediverse.network](https://fediverse.network/about) you can use
```
mix pleroma.robots_txt disallow_all
User-Agent: *
Disallow: /
User-Agent: crawler-us-il-1.fediverse.network
Allow: /
User-Agent: makhnovtchina.random.sh
Allow: /
```
## Thumbnail
Put on `instance/static/instance/thumbnail.jpeg` with your selfie or other neat picture. It will appear in [Pleroma Instances](http://distsn.org/pleroma-instances.html).
Add `$static_dir/instance/thumbnail.jpeg` with your selfie or other neat picture. It will be available on `http://your-domain.tld/instance/thumbnail.jpeg` and can be used by external applications.
## Instance-specific panel
![instance-specific panel demo](/uploads/296b19ec806b130e0b49b16bfe29ce8a/image.png)
Create and Edit your file on `instance/static/instance/panel.html`.
Create and Edit your file at `$static_dir/instance/panel.html`.
## Background
You can change the background of your Pleroma instance by uploading it to `instance/static/`, and then changing `background` in `config/prod.secret.exs` accordingly.
You can change the background of your Pleroma instance by uploading it to `$static_dir/`, and then changing `background` in [your configuration](../cheatsheet/#frontend_configurations) accordingly.
If you put `instance/static/images/background.jpg`
E.g. if you put `$static_dir/images/background.jpg`
```
config :pleroma, :frontend_configurations,
@ -50,12 +66,14 @@ config :pleroma, :frontend_configurations,
## Logo
![logo modification demo](/uploads/c70b14de60fa74245e7f0dcfa695ebff/image.png)
!!! important
Note the extra `static` folder for the default logo.png location
If you want to give a brand to your instance, You can change the logo of your instance by uploading it to `instance/static/`.
If you want to give a brand to your instance, You can change the logo of your instance by uploading it to the static directory `$static_dir/static/logo.png`.
Alternatively, you can specify the path with config.
If you put `instance/static/static/mylogo-file.png`
Alternatively, you can specify the path to your logo in [your configuration](../cheatsheet/#frontend_configurations).
E.g. if you put `$static_dir/static/mylogo-file.png`
```
config :pleroma, :frontend_configurations,
@ -66,4 +84,12 @@ config :pleroma, :frontend_configurations,
## Terms of Service
Terms of Service will be shown to all users on the registration page. It's the best place where to write down the rules for your instance. You can modify the rules by changing `instance/static/static/terms-of-service.html`.
!!! important
Note the extra `static` folder for the terms-of-service.html
Terms of Service will be shown to all users on the registration page. It's the best place where to write down the rules for your instance. You can modify the rules by adding and changing `$static_dir/static/terms-of-service.html`.
## Styling rendered pages
To overwrite the CSS stylesheet of the OAuth form and other static pages, you can upload your own CSS file to `instance/static/static.css`. This will completely replace the CSS used by those pages, so it might be a good idea to copy the one from `priv/static/instance/static.css` and make your changes.

View File

@ -0,0 +1,38 @@
# Storing Remote Media
Pleroma does not store remote/federated media by default. The best way to achieve this is to change Nginx to keep its reverse proxy cache
for a year and to activate the `MediaProxyWarmingPolicy` MRF policy in Pleroma which will automatically fetch all media through the proxy
as soon as the post is received by your instance.
## Nginx
```
proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2
keys_zone=pleroma_media_cache:10m inactive=1y use_temp_path=off;
location ~ ^/(media|proxy) {
proxy_cache pleroma_media_cache;
slice 1m;
proxy_cache_key $host$uri$is_args$args$slice_range;
proxy_set_header Range $slice_range;
proxy_http_version 1.1;
proxy_cache_valid 206 301 302 304 1h;
proxy_cache_valid 200 1y;
proxy_cache_use_stale error timeout invalid_header updating;
proxy_ignore_client_abort on;
proxy_buffering on;
chunked_transfer_encoding on;
proxy_ignore_headers Cache-Control Expires;
proxy_hide_header Cache-Control Expires;
proxy_pass http://127.0.0.1:4000;
}
```
## Pleroma
Add to your `prod.secret.exs`:
```
config :pleroma, :mrf,
policies: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy]
```

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,255 @@
# Chats
Chats are a way to represent an IM-style conversation between two actors. They are not the same as direct messages and they are not `Status`es, even though they have a lot in common.
## Why Chats?
There are no 'visibility levels' in ActivityPub, their definition is purely a Mastodon convention. Direct Messaging between users on the fediverse has mostly been modeled by using ActivityPub addressing following Mastodon conventions on normal `Note` objects. In this case, a 'direct message' would be a message that has no followers addressed and also does not address the special public actor, but just the recipients in the `to` field. It would still be a `Note` and is presented with other `Note`s as a `Status` in the API.
This is an awkward setup for a few reasons:
- As DMs generally still follow the usual `Status` conventions, it is easy to accidentally pull somebody into a DM thread by mentioning them. (e.g. "I hate @badguy so much")
- It is possible to go from a publicly addressed `Status` to a DM reply, back to public, then to a 'followers only' reply, and so on. This can be become very confusing, as it is unclear which user can see which part of the conversation.
- The standard `Status` format of implicit addressing also leads to rather ugly results if you try to display the messages as a chat, because all the recipients are always mentioned by name in the message.
- As direct messages are posted with the same api call (and usually same frontend component) as public messages, accidentally making a public message private or vice versa can happen easily. Client bugs can also lead to this, accidentally making private messages public.
As a measure to improve this situation, the `Conversation` concept and related Pleroma extensions were introduced. While it made it possible to work around a few of the issues, many of the problems remained and it didn't see much adoption because it was too complicated to use correctly.
## Chats explained
For this reasons, Chats are a new and different entity, both in the API as well as in ActivityPub. A quick overview:
- Chats are meant to represent an instant message conversation between two actors. For now these are only 1-on-1 conversations, but the other actor can be a group in the future.
- Chat messages have the ActivityPub type `ChatMessage`. They are not `Note`s. Servers that don't understand them will just drop them.
- The only addressing allowed in `ChatMessage`s is one single ActivityPub actor in the `to` field.
- There's always only one Chat between two actors. If you start chatting with someone and later start a 'new' Chat, the old Chat will be continued.
- `ChatMessage`s are posted with a different api, making it very hard to accidentally send a message to the wrong person.
- `ChatMessage`s don't show up in the existing timelines.
- Chats can never go from private to public. They are always private between the two actors.
## Caveats
- Chats are NOT E2E encrypted (yet). Security is still the same as email.
## API
In general, the way to send a `ChatMessage` is to first create a `Chat`, then post a message to that `Chat`. `Group`s will later be supported by making them a sub-type of `Account`.
This is the overview of using the API. The API is also documented via OpenAPI, so you can view it and play with it by pointing SwaggerUI or a similar OpenAPI tool to `https://yourinstance.tld/api/openapi`.
### Creating or getting a chat.
To create or get an existing Chat for a certain recipient (identified by Account ID)
you can call:
`POST /api/v1/pleroma/chats/by-account-id/:account_id`
The account id is the normal FlakeId of the user
```
POST /api/v1/pleroma/chats/by-account-id/someflakeid
```
If you already have the id of a chat, you can also use
```
GET /api/v1/pleroma/chats/:id
```
There will only ever be ONE Chat for you and a given recipient, so this call
will return the same Chat if you already have one with that user.
Returned data:
```json
{
"account": {
"id": "someflakeid",
"username": "somenick",
...
},
"id" : "1",
"unread" : 2,
"last_message" : {...}, // The last message in that chat
"updated_at": "2020-04-21T15:11:46.000Z"
}
```
### Marking a chat as read
To mark a number of messages in a chat up to a certain message as read, you can use
`POST /api/v1/pleroma/chats/:id/read`
Parameters:
- last_read_id: Given this id, all chat messages until this one will be marked as read. Required.
Returned data:
```json
{
"account": {
"id": "someflakeid",
"username": "somenick",
...
},
"id" : "1",
"unread" : 0,
"updated_at": "2020-04-21T15:11:46.000Z"
}
```
### Marking a single chat message as read
To set the `unread` property of a message to `false`
`POST /api/v1/pleroma/chats/:id/messages/:message_id/read`
Returned data:
The modified chat message
### Getting a list of Chats
`GET /api/v1/pleroma/chats`
This will return a list of chats that you have been involved in, sorted by their
last update (so new chats will be at the top).
Parameters:
- with_muted: Include chats from muted users (boolean).
Returned data:
```json
[
{
"account": {
"id": "someflakeid",
"username": "somenick",
...
},
"id" : "1",
"unread" : 2,
"last_message" : {...}, // The last message in that chat
"updated_at": "2020-04-21T15:11:46.000Z"
}
]
```
The recipient of messages that are sent to this chat is given by their AP ID.
No pagination is implemented for now.
### Getting the messages for a Chat
For a given Chat id, you can get the associated messages with
`GET /api/v1/pleroma/chats/:id/messages`
This will return all messages, sorted by most recent to least recent. The usual
pagination options are implemented.
Returned data:
```json
[
{
"account_id": "someflakeid",
"chat_id": "1",
"content": "Check this out :firefox:",
"created_at": "2020-04-21T15:11:46.000Z",
"emojis": [
{
"shortcode": "firefox",
"static_url": "https://dontbulling.me/emoji/Firefox.gif",
"url": "https://dontbulling.me/emoji/Firefox.gif",
"visible_in_picker": false
}
],
"id": "13",
"unread": true
},
{
"account_id": "someflakeid",
"chat_id": "1",
"content": "Whats' up?",
"created_at": "2020-04-21T15:06:45.000Z",
"emojis": [],
"id": "12",
"unread": false,
"idempotency_key": "75442486-0874-440c-9db1-a7006c25a31f"
}
]
```
- idempotency_key: The copy of the `idempotency-key` HTTP request header that can be used for optimistic message sending. Included only during the first few minutes after the message creation.
### Posting a chat message
Posting a chat message for given Chat id works like this:
`POST /api/v1/pleroma/chats/:id/messages`
Parameters:
- content: The text content of the message. Optional if media is attached.
- media_id: The id of an upload that will be attached to the message.
Currently, no formatting beyond basic escaping and emoji is implemented.
Returned data:
```json
{
"account_id": "someflakeid",
"chat_id": "1",
"content": "Check this out :firefox:",
"created_at": "2020-04-21T15:11:46.000Z",
"emojis": [
{
"shortcode": "firefox",
"static_url": "https://dontbulling.me/emoji/Firefox.gif",
"url": "https://dontbulling.me/emoji/Firefox.gif",
"visible_in_picker": false
}
],
"id": "13",
"unread": false
}
```
### Deleting a chat message
Deleting a chat message for given Chat id works like this:
`DELETE /api/v1/pleroma/chats/:chat_id/messages/:message_id`
Returned data is the deleted message.
### Notifications
There's a new `pleroma:chat_mention` notification, which has this form. It is not given out in the notifications endpoint by default, you need to explicitly request it with `include_types[]=pleroma:chat_mention`:
```json
{
"id": "someid",
"type": "pleroma:chat_mention",
"account": { ... } // User account of the sender,
"chat_message": {
"chat_id": "1",
"id": "10",
"content": "Hello",
"account_id": "someflakeid",
"unread": false
},
"created_at": "somedate"
}
```
### Streaming
There is an additional `user:pleroma_chat` stream. Incoming chat messages will make the current chat be sent to this `user` stream. The `event` of an incoming chat message is `pleroma:chat_update`. The payload is the updated chat with the incoming chat message in the `last_message` field.
### Web Push
If you want to receive push messages for this type, you'll need to add the `pleroma:chat_mention` type to your alerts in the push subscription.

View File

@ -0,0 +1,390 @@
# Differences in Mastodon API responses from vanilla Mastodon
A Pleroma instance can be identified by "<Mastodon version> (compatible; Pleroma <version>)" present in `version` field in response from `/api/v1/instance`
## Flake IDs
Pleroma uses 128-bit ids as opposed to Mastodon's 64 bits. However, just like Mastodon's ids, they are lexically sortable strings
## Timelines
Adding the parameter `with_muted=true` to the timeline queries will also return activities by muted (not by blocked!) users.
Adding the parameter `exclude_visibilities` to the timeline queries will exclude the statuses with the given visibilities. The parameter accepts an array of visibility types (`public`, `unlisted`, `private`, `direct`), e.g., `exclude_visibilities[]=direct&exclude_visibilities[]=private`.
Adding the parameter `reply_visibility` to the public and home timelines queries will filter replies. Possible values: without parameter (default) shows all replies, `following` - replies directed to you or users you follow, `self` - replies directed to you.
Adding the parameter `instance=lain.com` to the public timeline will show only statuses originating from `lain.com` (or any remote instance).
Home, public, hashtag & list timelines accept these parameters:
- `only_media`: show only statuses with media attached
- `local`: show only local statuses
- `remote`: show only remote statuses
## Statuses
- `visibility`: has additional possible values `list` and `local` (for local-only statuses)
Has these additional fields under the `pleroma` object:
- `local`: true if the post was made on the local instance
- `conversation_id`: the ID of the AP context the status is associated with (if any)
- `direct_conversation_id`: the ID of the Mastodon direct message conversation the status is associated with (if any)
- `in_reply_to_account_acct`: the `acct` property of User entity for replied user (if any)
- `content`: a map consisting of alternate representations of the `content` property with the key being its mimetype. Currently, the only alternate representation supported is `text/plain`
- `spoiler_text`: a map consisting of alternate representations of the `spoiler_text` property with the key being its mimetype. Currently, the only alternate representation supported is `text/plain`
- `expires_at`: a datetime (iso8601) that states when the post will expire (be deleted automatically), or empty if the post won't expire
- `thread_muted`: true if the thread the post belongs to is muted
- `emoji_reactions`: A list with emoji / reaction maps. The format is `{name: "☕", count: 1, me: true}`. Contains no information about the reacting users, for that use the `/statuses/:id/reactions` endpoint.
- `parent_visible`: If the parent of this post is visible to the user or not.
- `pinned_at`: a datetime (iso8601) when status was pinned, `null` otherwise.
The `GET /api/v1/statuses/:id/source` endpoint additionally has the following attributes:
- `content_type`: The content type of the status source.
## Scheduled statuses
Has these additional fields in `params`:
- `expires_in`: the number of seconds the posted activity should expire in.
## Media Attachments
Has these additional fields under the `pleroma` object:
- `mime_type`: mime type of the attachment.
### Attachment cap
Some apps operate under the assumption that no more than 4 attachments can be returned or uploaded. Pleroma however does not enforce any limits on attachment count neither when returning the status object nor when posting.
### Limitations
Pleroma does not process remote images and therefore cannot include fields such as `meta` and `blurhash`. It does not support focal points or aspect ratios. The frontend is expected to handle it.
## Accounts
The `id` parameter can also be the `nickname` of the user. This only works in these endpoints, not the deeper nested ones for following etc.
- `/api/v1/accounts/:id`
- `/api/v1/accounts/:id/statuses`
`/api/v1/accounts/:id/statuses` endpoint accepts these parameters:
- `pinned`: include only pinned statuses
- `tagged`: with tag
- `only_media`: include only statuses with media attached
- `with_muted`: include statuses/reactions from muted accounts
- `exclude_reblogs`: exclude reblogs
- `exclude_replies`: exclude replies
- `exclude_visibilities`: exclude visibilities
Endpoints which accept `with_relationships` parameter:
- `/api/v1/accounts/:id`
- `/api/v1/accounts/:id/followers`
- `/api/v1/accounts/:id/following`
- `/api/v1/mutes`
Has these additional fields under the `pleroma` object:
- `ap_id`: nullable URL string, ActivityPub id of the user
- `background_image`: nullable URL string, background image of the user
- `tags`: Lists an array of tags for the user
- `relationship` (object): Includes fields as documented for Mastodon API https://docs.joinmastodon.org/entities/relationship/
- `is_moderator`: boolean, nullable, true if user is a moderator
- `is_admin`: boolean, nullable, true if user is an admin
- `confirmation_pending`: boolean, true if a new user account is waiting on email confirmation to be activated
- `hide_favorites`: boolean, true when the user has hiding favorites enabled
- `hide_followers`: boolean, true when the user has follower hiding enabled
- `hide_follows`: boolean, true when the user has follow hiding enabled
- `hide_followers_count`: boolean, true when the user has follower stat hiding enabled
- `hide_follows_count`: boolean, true when the user has follow stat hiding enabled
- `settings_store`: A generic map of settings for frontends. Opaque to the backend. Only returned in `/api/v1/accounts/verify_credentials` and `/api/v1/accounts/update_credentials`
- `chat_token`: The token needed for Pleroma shoutbox. Only returned in `/api/v1/accounts/verify_credentials`
- `deactivated`: boolean, true when the user is deactivated
- `allow_following_move`: boolean, true when the user allows automatically follow moved following accounts
- `unread_conversation_count`: The count of unread conversations. Only returned to the account owner.
- `unread_notifications_count`: The count of unread notifications. Only returned to the account owner.
- `notification_settings`: object, can be absent. See `/api/v1/pleroma/notification_settings` for the parameters/keys returned.
- `accepts_chat_messages`: boolean, but can be null if we don't have that information about a user
- `favicon`: nullable URL string, Favicon image of the user's instance
### Source
Has these additional fields under the `pleroma` object:
- `show_role`: boolean, nullable, true when the user wants his role (e.g admin, moderator) to be shown
- `no_rich_text` - boolean, nullable, true when html tags are stripped from all statuses requested from the API
- `discoverable`: boolean, true when the user allows external services (search bots) etc. to index / list the account (regardless of this setting, user will still appear in regular search results)
- `actor_type`: string, the type of this account.
## Conversations
Has an additional field under the `pleroma` object:
- `recipients`: The list of the recipients of this Conversation. These will be addressed when replying to this conversation.
## GET `/api/v1/conversations`
Accepts additional parameters:
- `recipients`: Only return conversations with the given recipients (a list of user ids). Usage example: `GET /api/v1/conversations?recipients[]=1&recipients[]=2`
## Account Search
Behavior has changed:
- `/api/v1/accounts/search`: Does not require authentication
## Search (global)
Unlisted posts are available in search results, they are considered to be public posts that shouldn't be shown in local/federated timeline.
## Notifications
Has these additional fields under the `pleroma` object:
- `is_seen`: true if the notification was read by the user
### Move Notification
The `type` value is `move`. Has an additional field:
- `target`: new account
### EmojiReact Notification
The `type` value is `pleroma:emoji_reaction`. Has these fields:
- `emoji`: The used emoji
- `account`: The account of the user who reacted
- `status`: The status that was reacted on
### ChatMention Notification (not default)
This notification has to be requested explicitly.
The `type` value is `pleroma:chat_mention`
- `account`: The account who sent the message
- `chat_message`: The chat message
### Report Notification (not default)
This notification has to be requested explicitly.
The `type` value is `pleroma:report`
- `account`: The account who reported
- `report`: The report
## GET `/api/v1/notifications`
Accepts additional parameters:
- `exclude_visibilities`: will exclude the notifications for activities with the given visibilities. The parameter accepts an array of visibility types (`public`, `unlisted`, `private`, `direct`). Usage example: `GET /api/v1/notifications?exclude_visibilities[]=direct&exclude_visibilities[]=private`.
- `include_types`: will include the notifications for activities with the given types. The parameter accepts an array of types (`mention`, `follow`, `reblog`, `favourite`, `move`, `pleroma:emoji_reaction`, `pleroma:chat_mention`, `pleroma:report`). Usage example: `GET /api/v1/notifications?include_types[]=mention&include_types[]=reblog`.
## DELETE `/api/v1/notifications/destroy_multiple`
An endpoint to delete multiple statuses by IDs.
Required parameters:
- `ids`: array of activity ids
Usage example: `DELETE /api/v1/notifications/destroy_multiple/?ids[]=1&ids[]=2`.
Returns on success: 200 OK `{}`
## POST `/api/v1/statuses`
Additional parameters can be added to the JSON body/Form data:
- `preview`: boolean, if set to `true` the post won't be actually posted, but the status entity would still be rendered back. This could be useful for previewing rich text/custom emoji, for example.
- `content_type`: string, contain the MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint.
- `to`: A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for post visibility are not affected by this and will still apply.
- `visibility`: string, besides standard MastoAPI values (`direct`, `private`, `unlisted`, `local` or `public`) it can be used to address a List by setting it to `list:LIST_ID`.
- `expires_in`: The number of seconds the posted activity should expire in. When a posted activity expires it will be deleted from the server, and a delete request for it will be federated. This needs to be longer than an hour.
- `in_reply_to_conversation_id`: Will reply to a given conversation, addressing only the people who are part of the recipient set of that conversation. Sets the visibility to `direct`.
## GET `/api/v1/statuses`
An endpoint to get multiple statuses by IDs.
Required parameters:
- `ids`: array of activity ids
Usage example: `GET /api/v1/statuses/?ids[]=1&ids[]=2`.
Returns: array of Status.
The maximum number of statuses is limited to 100 per request.
## PATCH `/api/v1/accounts/update_credentials`
Additional parameters can be added to the JSON body/Form data:
- `no_rich_text` - if true, html tags are stripped from all statuses requested from the API
- `hide_followers` - if true, user's followers will be hidden
- `hide_follows` - if true, user's follows will be hidden
- `hide_followers_count` - if true, user's follower count will be hidden
- `hide_follows_count` - if true, user's follow count will be hidden
- `hide_favorites` - if true, user's favorites timeline will be hidden
- `show_role` - if true, user's role (e.g admin, moderator) will be exposed to anyone in the API
- `default_scope` - the scope returned under `privacy` key in Source subentity
- `pleroma_settings_store` - Opaque user settings to be saved on the backend.
- `skip_thread_containment` - if true, skip filtering out broken threads
- `allow_following_move` - if true, allows automatically follow moved following accounts
- `also_known_as` - array of ActivityPub IDs, needed for following move
- `pleroma_background_image` - sets the background image of the user. Can be set to "" (an empty string) to reset.
- `discoverable` - if true, external services (search bots) etc. are allowed to index / list the account (regardless of this setting, user will still appear in regular search results).
- `actor_type` - the type of this account.
- `accepts_chat_messages` - if false, this account will reject all chat messages.
- `language` - user's preferred language for receiving emails (digest, confirmation, etc.)
All images (avatar, banner and background) can be reset to the default by sending an empty string ("") instead of a file.
### Pleroma Settings Store
Pleroma has mechanism that allows frontends to save blobs of json for each user on the backend. This can be used to save frontend-specific settings for a user that the backend does not need to know about.
The parameter should have a form of `{frontend_name: {...}}`, with `frontend_name` identifying your type of client, e.g. `pleroma_fe`. It will overwrite everything under this property, but will not overwrite other frontend's settings.
This information is returned in the `/api/v1/accounts/verify_credentials` endpoint.
## Authentication
*Pleroma supports refreshing tokens.*
### POST `/oauth/token`
You can obtain access tokens for a user in a few additional ways.
#### Refreshing a token
To obtain a new access token from a refresh token, pass `grant_type=refresh_token` with the following extra parameters:
- `refresh_token`: The refresh token.
#### Getting a token with a password
To obtain a token from a user's password, pass `grant_type=password` with the following extra parameters:
- `username`: Username to authenticate.
- `password`: The user's password.
#### Response body
Additional fields are returned in the response:
- `id`: The primary key of this token in Pleroma's database.
- `me` (user tokens only): The ActivityPub ID of the user who owns the token.
## Account Registration
`POST /api/v1/accounts`
Has these additional parameters (which are the same as in Pleroma-API):
- `fullname`: optional
- `bio`: optional
- `captcha_solution`: optional, contains provider-specific captcha solution,
- `captcha_token`: optional, contains provider-specific captcha token
- `captcha_answer_data`: optional, contains provider-specific captcha data
- `token`: invite token required when the registrations aren't public.
- `language`: optional, user's preferred language for receiving emails (digest, confirmation, etc.), default to the language set in the `userLanguage` cookies or `Accept-Language` header.
## Instance
`GET /api/v1/instance` has additional fields
- `max_toot_chars`: The maximum characters per post
- `chat_limit`: The maximum characters per chat message
- `description_limit`: The maximum characters per image description
- `poll_limits`: The limits of polls
- `upload_limit`: The maximum upload file size
- `avatar_upload_limit`: The same for avatars
- `background_upload_limit`: The same for backgrounds
- `banner_upload_limit`: The same for banners
- `background_image`: A background image that frontends can use
- `pleroma.metadata.features`: A list of supported features
- `pleroma.metadata.federation`: The federation restrictions of this instance
- `pleroma.metadata.fields_limits`: A list of values detailing the length and count limitation for various instance-configurable fields.
- `pleroma.metadata.post_formats`: A list of the allowed post format types
- `vapid_public_key`: The public key needed for push messages
## Push Subscription
`POST /api/v1/push/subscription`
`PUT /api/v1/push/subscription`
Permits these additional alert types:
- pleroma:chat_mention
- pleroma:emoji_reaction
## Markers
Has these additional fields under the `pleroma` object:
- `unread_count`: contains number unread notifications
## Streaming
### Chats
There is an additional `user:pleroma_chat` stream. Incoming chat messages will make the current chat be sent to this `user` stream. The `event` of an incoming chat message is `pleroma:chat_update`. The payload is the updated chat with the incoming chat message in the `last_message` field.
### Remote timelines
For viewing remote server timelines, there are `public:remote` and `public:remote:media` streams. Each of these accept a parameter like `?instance=lain.com`.
### Follow relationships updates
Pleroma streams follow relationships updates as `pleroma:follow_relationships_update` events to the `user` stream.
The message payload consist of:
- `state`: a relationship state, one of `follow_pending`, `follow_accept` or `follow_reject`.
- `follower` and `following` maps with following fields:
- `id`: user ID
- `follower_count`: follower count
- `following_count`: following count
## User muting and thread muting
Both user muting and thread muting can be done for only a certain time by adding an `expires_in` parameter to the API calls and giving the expiration time in seconds.
## Not implemented
Pleroma is generally compatible with the Mastodon 2.7.2 API, but some newer features and non-essential features are omitted. These features usually return an HTTP 200 status code, but with an empty response. While they may be added in the future, they are considered low priority.
### Suggestions
*Added in Mastodon 2.4.3*
- `GET /api/v1/suggestions`: Returns an empty array, `[]`
### Trends
*Added in Mastodon 3.0.0*
- `GET /api/v1/trends`: Returns an empty array, `[]`
### Identity proofs
*Added in Mastodon 2.8.0*
- `GET /api/v1/identity_proofs`: Returns an empty array, `[]`
### Featured tags
*Added in Mastodon 3.0.0*
- `GET /api/v1/featured_tags`: Returns HTTP 404

View File

@ -0,0 +1,347 @@
# Nodeinfo
See also [the Nodeinfo standard](https://nodeinfo.diaspora.software/).
## `/.well-known/nodeinfo`
### The well-known path
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
* Example response:
```json
{
"links":[
{
"href":"https://example.com/nodeinfo/2.0.json",
"rel":"http://nodeinfo.diaspora.software/ns/schema/2.0"
},
{
"href":"https://example.com/nodeinfo/2.1.json",
"rel":"http://nodeinfo.diaspora.software/ns/schema/2.1"
}
]
}
```
## `/nodeinfo/2.0.json`
### Nodeinfo 2.0
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
* Example response:
```json
{
"metadata":{
"accountActivationRequired":false,
"features":[
"pleroma_api",
"mastodon_api",
"mastodon_api_streaming",
"polls",
"pleroma_explicit_addressing",
"shareable_emoji_packs",
"multifetch",
"pleroma:api/v1/notifications:include_types_filter",
"chat",
"shout",
"relay",
"pleroma_emoji_reactions",
"pleroma_chat_messages"
],
"federation":{
"enabled":true,
"exclusions":false,
"mrf_hashtag":{
"federated_timeline_removal":[
],
"reject":[
],
"sensitive":[
"nsfw"
]
},
"mrf_object_age":{
"actions":[
"delist",
"strip_followers"
],
"threshold":604800
},
"mrf_policies":[
"ObjectAgePolicy",
"TagPolicy",
"HashtagPolicy"
],
"quarantined_instances":[
]
},
"fieldsLimits":{
"maxFields":10,
"maxRemoteFields":20,
"nameLength":512,
"valueLength":2048
},
"invitesEnabled":false,
"mailerEnabled":false,
"nodeDescription":"Pleroma: An efficient and flexible fediverse server",
"nodeName":"Example",
"pollLimits":{
"max_expiration":31536000,
"max_option_chars":200,
"max_options":20,
"min_expiration":0
},
"postFormats":[
"text/plain",
"text/html",
"text/markdown",
"text/bbcode"
],
"private":false,
"restrictedNicknames":[
".well-known",
"~",
"about",
"activities",
"api",
"auth",
"check_password",
"dev",
"friend-requests",
"inbox",
"internal",
"main",
"media",
"nodeinfo",
"notice",
"oauth",
"objects",
"ostatus_subscribe",
"pleroma",
"proxy",
"push",
"registration",
"relay",
"settings",
"status",
"tag",
"user-search",
"user_exists",
"users",
"web",
"verify_credentials",
"update_credentials",
"relationships",
"search",
"confirmation_resend",
"mfa"
],
"skipThreadContainment":true,
"staffAccounts":[
"https://example.com/users/admin",
"https://example.com/users/staff"
],
"suggestions":{
"enabled":false
},
"uploadLimits":{
"avatar":2000000,
"background":4000000,
"banner":4000000,
"general":16000000
}
},
"openRegistrations":true,
"protocols":[
"activitypub"
],
"services":{
"inbound":[
],
"outbound":[
]
},
"software":{
"name":"pleroma",
"version":"2.4.1"
},
"usage":{
"localPosts":27,
"users":{
"activeHalfyear":129,
"activeMonth":70,
"total":235
}
},
"version":"2.0"
}
```
## `/nodeinfo/2.1.json`
### Nodeinfo 2.1
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
* Example response:
```json
{
"metadata":{
"accountActivationRequired":false,
"features":[
"pleroma_api",
"mastodon_api",
"mastodon_api_streaming",
"polls",
"pleroma_explicit_addressing",
"shareable_emoji_packs",
"multifetch",
"pleroma:api/v1/notifications:include_types_filter",
"chat",
"shout",
"relay",
"pleroma_emoji_reactions",
"pleroma_chat_messages"
],
"federation":{
"enabled":true,
"exclusions":false,
"mrf_hashtag":{
"federated_timeline_removal":[
],
"reject":[
],
"sensitive":[
"nsfw"
]
},
"mrf_object_age":{
"actions":[
"delist",
"strip_followers"
],
"threshold":604800
},
"mrf_policies":[
"ObjectAgePolicy",
"TagPolicy",
"HashtagPolicy"
],
"quarantined_instances":[
]
},
"fieldsLimits":{
"maxFields":10,
"maxRemoteFields":20,
"nameLength":512,
"valueLength":2048
},
"invitesEnabled":false,
"mailerEnabled":false,
"nodeDescription":"Pleroma: An efficient and flexible fediverse server",
"nodeName":"Example",
"pollLimits":{
"max_expiration":31536000,
"max_option_chars":200,
"max_options":20,
"min_expiration":0
},
"postFormats":[
"text/plain",
"text/html",
"text/markdown",
"text/bbcode"
],
"private":false,
"restrictedNicknames":[
".well-known",
"~",
"about",
"activities",
"api",
"auth",
"check_password",
"dev",
"friend-requests",
"inbox",
"internal",
"main",
"media",
"nodeinfo",
"notice",
"oauth",
"objects",
"ostatus_subscribe",
"pleroma",
"proxy",
"push",
"registration",
"relay",
"settings",
"status",
"tag",
"user-search",
"user_exists",
"users",
"web",
"verify_credentials",
"update_credentials",
"relationships",
"search",
"confirmation_resend",
"mfa"
],
"skipThreadContainment":true,
"staffAccounts":[
"https://example.com/users/admin",
"https://example.com/users/staff"
],
"suggestions":{
"enabled":false
},
"uploadLimits":{
"avatar":2000000,
"background":4000000,
"banner":4000000,
"general":16000000
}
},
"openRegistrations":true,
"protocols":[
"activitypub"
],
"services":{
"inbound":[
],
"outbound":[
]
},
"software":{
"name":"pleroma",
"repository":"https://git.pleroma.social/pleroma/pleroma",
"version":"2.4.1"
},
"usage":{
"localPosts":27,
"users":{
"activeHalfyear":129,
"activeMonth":70,
"total":235
}
},
"version":"2.1"
}
```

View File

@ -0,0 +1,766 @@
# Pleroma API
Requests that require it can be authenticated with [an OAuth token](https://tools.ietf.org/html/rfc6749), the `_pleroma_key` cookie, or [HTTP Basic Authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization).
Request parameters can be passed via [query strings](https://en.wikipedia.org/wiki/Query_string) or as [form data](https://www.w3.org/TR/html401/interact/forms.html). Files must be uploaded as `multipart/form-data`.
The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/api/pleroma/*` will be deprecated in the future).
## `/api/v1/pleroma/emoji`
### Lists the custom emoji on that server.
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
* Example response:
```json
{
"girlpower": {
"tags": [
"Finmoji"
],
"image_url": "/finmoji/128px/girlpower-128.png"
},
"education": {
"tags": [
"Finmoji"
],
"image_url": "/finmoji/128px/education-128.png"
},
"finnishlove": {
"tags": [
"Finmoji"
],
"image_url": "/finmoji/128px/finnishlove-128.png"
}
}
```
* Note: Same data as Mastodon APIs `/api/v1/custom_emojis` but in a different format
## `/api/pleroma/follow_import`
### Imports your follows, for example from a Mastodon CSV file.
* Method: `POST`
* Authentication: required
* Params:
* `list`: STRING or FILE containing a whitespace-separated list of accounts to follow
* Response: HTTP 200 on success, 500 on error
* Note: Users that can't be followed are silently skipped.
## `/api/pleroma/blocks_import`
### Imports your blocks.
* Method: `POST`
* Authentication: required
* Params:
* `list`: STRING or FILE containing a whitespace-separated list of accounts to block
* Response: HTTP 200 on success, 500 on error
## `/api/pleroma/mutes_import`
### Imports your mutes.
* Method: `POST`
* Authentication: required
* Params:
* `list`: STRING or FILE containing a whitespace-separated list of accounts to mute
* Response: HTTP 200 on success, 500 on error
## `/api/v1/pleroma/captcha`
### Get a new captcha
* Method: `GET`
* Authentication: not required
* Params: none
* Response: Provider specific JSON, the only guaranteed parameter is `type`
* Example response: `{"type": "kocaptcha", "token": "whatever", "url": "https://captcha.kotobank.ch/endpoint", "seconds_valid": 300}`
## `/api/pleroma/delete_account`
### Delete an account
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* Response: JSON. Returns `{"status": "success"}` if the deletion was successful, `{"error": "[error message]"}` otherwise
* Example response: `{"error": "Invalid password."}`
## `/api/pleroma/disable_account`
### Disable an account
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* Response: JSON. Returns `{"status": "success"}` if the account was successfully disabled, `{"error": "[error message]"}` otherwise
* Example response: `{"error": "Invalid password."}`
## `/api/pleroma/accounts/mfa`
#### Gets current MFA settings
* method: `GET`
* Authentication: required
* OAuth scope: `read:security`
* Response: JSON. Returns `{"settings": {"enabled": "false", "totp": false }}`
* Note: `enabled` is whether multi-factor auth is enabled for the user in general, while `totp` is one type of MFA.
## `/api/pleroma/accounts/mfa/setup/totp`
#### Pre-setup the MFA/TOTP method
* method: `GET`
* Authentication: required
* OAuth scope: `write:security`
* Response: JSON. Returns `{"key": [secret_key], "provisioning_uri": "[qr code uri]" }` when successful, otherwise returns HTTP 422 `{"error": "error_msg"}`
## `/api/pleroma/accounts/mfa/confirm/totp`
#### Confirms & enables MFA/TOTP support for user account.
* method: `POST`
* Authentication: required
* OAuth scope: `write:security`
* Params:
* `password`: user's password
* `code`: token from TOTP App
* Response: JSON. Returns `{}` if the enable was successful, HTTP 422 `{"error": "[error message]"}` otherwise
## `/api/pleroma/accounts/mfa/totp`
#### Disables MFA/TOTP method for user account.
* method: `DELETE`
* Authentication: required
* OAuth scope: `write:security`
* Params:
* `password`: user's password
* Response: JSON. Returns `{}` if the disable was successful, HTTP 422 `{"error": "[error message]"}` otherwise
* Example response: `{"error": "Invalid password."}`
## `/api/pleroma/accounts/mfa/backup_codes`
#### Generstes backup codes MFA for user account.
* method: `GET`
* Authentication: required
* OAuth scope: `write:security`
* Response: JSON. Returns `{"codes": codes}`when successful, otherwise HTTP 422 `{"error": "[error message]"}`
## `/api/v1/pleroma/admin/`
See [Admin-API](admin_api.md)
## `/api/v1/pleroma/notifications/read`
### Mark notifications as read
* Method `POST`
* Authentication: required
* Params (mutually exclusive):
* `id`: a single notification id to read
* `max_id`: read all notifications up to this id
* Response: Notification entity/Array of Notification entities that were read. In case of `max_id`, only the first 80 read notifications will be returned.
## `/api/v1/pleroma/accounts/:id/subscribe`
### Subscribe to receive notifications for all statuses posted by a user
* Method `POST`
* Authentication: required
* Params:
* `id`: account id to subscribe to
* Response: JSON, returns a mastodon relationship object on success, otherwise returns `{"error": "error_msg"}`
* Example response:
```json
{
"id": "abcdefg",
"following": true,
"followed_by": false,
"blocking": false,
"muting": false,
"muting_notifications": false,
"subscribing": true,
"notifying": true,
"requested": false,
"domain_blocking": false,
"showing_reblogs": true,
"endorsed": false,
"note": ""
}
```
## `/api/v1/pleroma/accounts/:id/unsubscribe`
### Unsubscribe to stop receiving notifications from user statuses
* Method `POST`
* Authentication: required
* Params:
* `id`: account id to unsubscribe from
* Response: JSON, returns a mastodon relationship object on success, otherwise returns `{"error": "error_msg"}`
* Example response:
```json
{
"id": "abcdefg",
"following": true,
"followed_by": false,
"blocking": false,
"muting": false,
"muting_notifications": false,
"subscribing": false,
"notifying": false,
"requested": false,
"domain_blocking": false,
"showing_reblogs": true,
"endorsed": false,
"note": ""
}
```
## `/api/v1/pleroma/accounts/:id/favourites`
### Returns favorites timeline of any user
* Method `GET`
* Authentication: not required
* Params:
* `id`: the id of the account for whom to return results
* `limit`: optional, the number of records to retrieve
* `since_id`: optional, returns results that are more recent than the specified id
* `max_id`: optional, returns results that are older than the specified id
* Response: JSON, returns a list of Mastodon Status entities on success, otherwise returns `{"error": "error_msg"}`
* Example response:
```json
[
{
"account": {
"id": "9hptFmUF3ztxYh3Svg",
"url": "https://pleroma.example.org/users/nick2",
"username": "nick2",
...
},
"application": {"name": "Web", "website": null},
"bookmarked": false,
"card": null,
"content": "This is :moominmamma: note 0",
"created_at": "2019-04-15T15:42:15.000Z",
"emojis": [],
"favourited": false,
"favourites_count": 1,
"id": "9hptFmVJ02khbzYJaS",
"in_reply_to_account_id": null,
"in_reply_to_id": null,
"language": null,
"media_attachments": [],
"mentions": [],
"muted": false,
"pinned": false,
"pleroma": {
"content": {"text/plain": "This is :moominmamma: note 0"},
"conversation_id": 13679,
"local": true,
"spoiler_text": {"text/plain": "2hu"}
},
"reblog": null,
"reblogged": false,
"reblogs_count": 0,
"replies_count": 0,
"sensitive": false,
"spoiler_text": "2hu",
"tags": [{"name": "2hu", "url": "/tag/2hu"}],
"uri": "https://pleroma.example.org/objects/198ed2a1-7912-4482-b559-244a0369e984",
"url": "https://pleroma.example.org/notice/9hptFmVJ02khbzYJaS",
"visibility": "public"
}
]
```
## `/api/v1/pleroma/accounts/update_*`
### Set and clear account avatar, banner, and background
- PATCH `/api/v1/pleroma/accounts/update_avatar`: Set/clear user avatar image
- PATCH `/api/v1/pleroma/accounts/update_banner`: Set/clear user banner image
- PATCH `/api/v1/pleroma/accounts/update_background`: Set/clear user background image
## `/api/v1/pleroma/accounts/confirmation_resend`
### Resend confirmation email
* Method `POST`
* Params:
* `email`: email of that needs to be verified
* Authentication: not required
* Response: 204 No Content
## `/api/v1/pleroma/mascot`
### Gets user mascot image
* Method `GET`
* Authentication: required
* Response: JSON. Returns a mastodon media attachment entity.
* Example response:
```json
{
"id": "abcdefg",
"url": "https://pleroma.example.org/media/abcdefg.png",
"type": "image",
"pleroma": {
"mime_type": "image/png"
}
}
```
### Updates user mascot image
* Method `PUT`
* Authentication: required
* Params:
* `file`: Multipart image
* Response: JSON. Returns a mastodon media attachment entity
when successful, otherwise returns HTTP 415 `{"error": "error_msg"}`
* Example response:
```json
{
"id": "abcdefg",
"url": "https://pleroma.example.org/media/abcdefg.png",
"type": "image",
"pleroma": {
"mime_type": "image/png"
}
}
```
* Note: Behaves exactly the same as `POST /api/v1/upload`.
Can only accept images - any attempt to upload non-image files will be met with `HTTP 415 Unsupported Media Type`.
## `/api/pleroma/notification_settings`
### Updates user notification settings
* Method `PUT`
* Authentication: required
* Params:
* `block_from_strangers`: BOOLEAN field, blocks notifications from accounts you do not follow
* `hide_notification_contents`: BOOLEAN field. When set to true, it removes the contents of a message from the push notification.
* Response: JSON. Returns `{"status": "success"}` if the update was successful, otherwise returns `{"error": "error_msg"}`
## `/api/v1/pleroma/healthcheck`
### Healthcheck endpoint with additional system data.
* Method `GET`
* Authentication: not required
* Params: none
* Response: JSON, statuses (200 - healthy, 503 unhealthy).
* Example response:
```json
{
"pool_size": 0, # database connection pool
"active": 0, # active processes
"idle": 0, # idle processes
"memory_used": 0.00, # Memory used
"healthy": true, # Instance state
"job_queue_stats": {} # Job queue stats
}
```
## `/api/pleroma/change_email`
### Change account email
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* `email`: new email
* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise
* Note: Currently, Mastodon has no API for changing email. If they add it in future it might be incompatible with Pleroma.
## `/api/pleroma/move_account`
### Move account
* Method `POST`
* Authentication: required
* Params:
* `password`: user's password
* `target_account`: the nickname of the target account (e.g. `foo@example.org`)
* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise
* Note: This endpoint emits a `Move` activity to all followers of the current account. Some remote servers will automatically unfollow the current account and follow the target account upon seeing this, but this depends on the remote server implementation and cannot be guaranteed. For local followers , they will automatically unfollow and follow if and only if they have set the `allow_following_move` preference ("Allow auto-follow when following account moves").
## `/api/pleroma/aliases`
### Get aliases of the current account
* Method `GET`
* Authentication: required
* Response: JSON. Returns `{"aliases": [alias, ...]}`, where `alias` is the nickname of an alias, e.g. `foo@example.org`.
### Add alias to the current account
* Method `PUT`
* Authentication: required
* Params:
* `alias`: the nickname of the alias to add, e.g. `foo@example.org`.
* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise
### Delete alias from the current account
* Method `DELETE`
* Authentication: required
* Params:
* `alias`: the nickname of the alias to delete, e.g. `foo@example.org`.
* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise
# Pleroma Conversations
Pleroma Conversations have the same general structure that Mastodon Conversations have. The behavior differs in the following ways when using these endpoints:
1. Pleroma Conversations never add or remove recipients, unless explicitly changed by the user.
2. Pleroma Conversations statuses can be requested by Conversation id.
3. Pleroma Conversations can be replied to.
Conversations have the additional field `recipients` under the `pleroma` key. This holds a list of all the accounts that will receive a message in this conversation.
The status posting endpoint takes an additional parameter, `in_reply_to_conversation_id`, which, when set, will set the visiblity to direct and address only the people who are the recipients of that Conversation.
⚠ Conversation IDs can be found in direct messages with the `pleroma.direct_conversation_id` key, do not confuse it with `pleroma.conversation_id`.
## `GET /api/v1/pleroma/conversations/:id/statuses`
### Timeline for a given conversation
* Method `GET`
* Authentication: required
* Params: Like other timelines
* Response: JSON, statuses (200 - healthy, 503 unhealthy).
## `GET /api/v1/pleroma/conversations/:id`
### The conversation with the given ID.
* Method `GET`
* Authentication: required
* Params: None
* Response: JSON, statuses (200 - healthy, 503 unhealthy).
## `PATCH /api/v1/pleroma/conversations/:id`
### Update a conversation. Used to change the set of recipients.
* Method `PATCH`
* Authentication: required
* Params:
* `recipients`: A list of ids of users that should receive posts to this conversation. This will replace the current list of recipients, so submit the full list. The owner of owner of the conversation will always be part of the set of recipients, though.
* Response: JSON, statuses (200 - healthy, 503 unhealthy)
## `POST /api/v1/pleroma/conversations/read`
### Marks all user's conversations as read.
* Method `POST`
* Authentication: required
* Params: None
* Response: JSON, returns a list of Mastodon Conversation entities that were marked as read (200 - healthy, 503 unhealthy).
## `GET /api/v1/pleroma/emoji/pack?name=:name`
### Get pack.json for the pack
* Method `GET`
* Authentication: not required
* Params:
* `page`: page number for files (default 1)
* `page_size`: page size for files (default 30)
* Response: JSON, pack json with `files`, `files_count` and `pack` keys with 200 status or 404 if the pack does not exist.
```json
{
"files": {...},
"files_count": 0, // emoji count in pack
"pack": {...}
}
```
## `POST /api/v1/pleroma/emoji/pack?name=:name`
### Creates an empty pack
* Method `POST`
* Authentication: required (admin)
* Params:
* `name`: pack name
* Response: JSON, "ok" and 200 status or 409 if the pack with that name already exists
## `PATCH /api/v1/pleroma/emoji/pack?name=:name`
### Updates (replaces) pack metadata
* Method `PATCH`
* Authentication: required (admin)
* Params:
* `name`: pack name
* `metadata`: metadata to replace the old one
* `license`: Pack license
* `homepage`: Pack home page url
* `description`: Pack description
* `fallback-src`: Fallback url to download pack from
* `fallback-src-sha256`: SHA256 encoded for fallback pack archive
* `share-files`: is pack allowed for sharing (boolean)
* Response: JSON, updated "metadata" section of the pack and 200 status or 400 if there was a
problem with the new metadata (the error is specified in the "error" part of the response JSON)
## `DELETE /api/v1/pleroma/emoji/pack?name=:name`
### Delete a custom emoji pack
* Method `DELETE`
* Authentication: required (admin)
* Params:
* `name`: pack name
* Response: JSON, "ok" and 200 status or 500 if there was an error deleting the pack
## `GET /api/v1/pleroma/emoji/packs/import`
### Imports packs from filesystem
* Method `GET`
* Authentication: required (admin)
* Params: None
* Response: JSON, returns a list of imported packs.
## `GET /api/v1/pleroma/emoji/packs/remote`
### Make request to another instance for packs list
* Method `GET`
* Authentication: required (admin)
* Params:
* `url`: url of the instance to get packs from
* `page`: page number for packs (default 1)
* `page_size`: page size for packs (default 50)
* Response: JSON with the pack list, hashmap with pack name and pack contents
## `POST /api/v1/pleroma/emoji/packs/download`
### Download pack from another instance
* Method `POST`
* Authentication: required (admin)
* Params:
* `url`: url of the instance to download from
* `name`: pack to download from that instance
* `as`: (*optional*) name how to save pack
* Response: JSON, "ok" with 200 status if the pack was downloaded, or 500 if there were
errors downloading the pack
## `POST /api/v1/pleroma/emoji/packs/files?name=:name`
### Add new file to the pack
* Method `POST`
* Authentication: required (admin)
* Params:
* `name`: pack name
* `file`: file needs to be uploaded with the multipart request or link to remote file.
* `shortcode`: (*optional*) shortcode for new emoji, must be unique for all emoji. If not sended, shortcode will be taken from original filename.
* `filename`: (*optional*) new emoji file name. If not specified will be taken from original filename.
* Response: JSON, list of files for updated pack (hashmap -> shortcode => filename) with status 200, either error status with error message.
## `PATCH /api/v1/pleroma/emoji/packs/files?name=:name`
### Update emoji file from pack
* Method `PATCH`
* Authentication: required (admin)
* Params:
* `name`: pack name
* `shortcode`: emoji file shortcode
* `new_shortcode`: new emoji file shortcode
* `new_filename`: new filename for emoji file
* `force`: (*optional*) with true value to overwrite existing emoji with new shortcode
* Response: JSON, list with updated files for updated pack (hashmap -> shortcode => filename) with status 200, either error status with error message.
## `DELETE /api/v1/pleroma/emoji/packs/files?name=:name`
### Delete emoji file from pack
* Method `DELETE`
* Authentication: required (admin)
* Params:
* `name`: pack name
* `shortcode`: emoji file shortcode
* Response: JSON, list with updated files for updated pack (hashmap -> shortcode => filename) with status 200, either error status with error message.
## `GET /api/v1/pleroma/emoji/packs`
### Lists local custom emoji packs
* Method `GET`
* Authentication: not required
* Params:
* `page`: page number for packs (default 1)
* `page_size`: page size for packs (default 50)
* Response: `packs` key with JSON hashmap of pack name to pack contents and `count` key for count of packs.
```json
{
"packs": {
"pack_name": {...}, // pack contents
...
},
"count": 0 // packs count
}
```
## `GET /api/v1/pleroma/emoji/packs/archive?name=:name`
### Requests a local pack archive from the instance
* Method `GET`
* Authentication: not required
* Params:
* `name`: pack name
* Response: the archive of the pack with a 200 status code, 403 if the pack is not set as shared,
404 if the pack does not exist
## `GET /api/v1/pleroma/accounts/:id/scrobbles`
### Requests a list of current and recent Listen activities for an account
* Method `GET`
* Authentication: not required
* Params: None
* Response: An array of media metadata entities.
* Example response:
```json
[
{
"account": {...},
"id": "1234",
"title": "Some Title",
"artist": "Some Artist",
"album": "Some Album",
"length": 180000,
"created_at": "2019-09-28T12:40:45.000Z"
}
]
```
## `POST /api/v1/pleroma/scrobble`
### Creates a new Listen activity for an account
* Method `POST`
* Authentication: required
* Params:
* `title`: the title of the media playing
* `album`: the album of the media playing [optional]
* `artist`: the artist of the media playing [optional]
* `length`: the length of the media playing [optional]
* Response: the newly created media metadata entity representing the Listen activity
# Emoji Reactions
Emoji reactions work a lot like favourites do. They make it possible to react to a post with a single emoji character. To detect the presence of this feature, you can check `pleroma_emoji_reactions` entry in the features list of nodeinfo.
## `PUT /api/v1/pleroma/statuses/:id/reactions/:emoji`
### React to a post with a unicode emoji
* Method: `PUT`
* Authentication: required
* Params: `emoji`: A unicode RGI emoji or a regional indicator
* Response: JSON, the status.
## `DELETE /api/v1/pleroma/statuses/:id/reactions/:emoji`
### Remove a reaction to a post with a unicode emoji
* Method: `DELETE`
* Authentication: required
* Params: `emoji`: A unicode RGI emoji or a regional indicator
* Response: JSON, the status.
## `GET /api/v1/pleroma/statuses/:id/reactions`
### Get an object of emoji to account mappings with accounts that reacted to the post
* Method: `GET`
* Authentication: optional
* Params: None
* Response: JSON, a list of emoji/account list tuples, sorted by emoji insertion date, in ascending order, e.g, the first emoji in the list is the oldest.
* Example Response:
```json
[
{"name": "😀", "count": 2, "me": true, "accounts": [{"id" => "xyz.."...}, {"id" => "zyx..."}]},
{"name": "☕", "count": 1, "me": false, "accounts": [{"id" => "abc..."}]}
]
```
## `GET /api/v1/pleroma/statuses/:id/reactions/:emoji`
### Get an object of emoji to account mappings with accounts that reacted to the post for a specific emoji
* Method: `GET`
* Authentication: optional
* Params: None
* Response: JSON, a list of emoji/account list tuples
* Example Response:
```json
[
{"name": "😀", "count": 2, "me": true, "accounts": [{"id" => "xyz.."...}, {"id" => "zyx..."}]}
]
```
## `POST /api/v1/pleroma/backups`
### Create a user backup archive
* Method: `POST`
* Authentication: required
* Params: none
* Response: JSON
* Example response:
```json
[{
"content_type": "application/zip",
"file_size": 0,
"inserted_at": "2020-09-10T16:18:03.000Z",
"processed": false,
"url": "https://example.com/media/backups/archive-foobar-20200910T161803-QUhx6VYDRQ2wfV0SdA2Pfj_2CLM_ATUlw-D5l5TJf4Q.zip"
}]
```
## `GET /api/v1/pleroma/backups`
### Lists user backups
* Method: `GET`
* Authentication: not required
* Params: none
* Response: JSON
* Example response:
```json
[{
"content_type": "application/zip",
"file_size": 55457,
"inserted_at": "2020-09-10T16:18:03.000Z",
"processed": true,
"url": "https://example.com/media/backups/archive-foobar-20200910T161803-QUhx6VYDRQ2wfV0SdA2Pfj_2CLM_ATUlw-D5l5TJf4Q.zip"
}]
```
## `GET /api/oauth_tokens`
### Retrieve a list of active sessions for the user
* Method: `GET`
* Authentication: required
* Params: none
* Response: JSON
* Example response:
```json
[
{
"app_name": "Pleroma FE",
"id": 9275,
"valid_until": "2121-11-24T15:51:08.234234"
},
{
"app_name": "Patron",
"id": 8805,
"valid_until": "2121-10-26T18:09:59.857150"
},
{
"app_name": "Soapbox FE",
"id": 9727,
"valid_until": "2121-12-25T16:52:39.692877"
}
]
```
## `DELETE /api/oauth_tokens/:id`
### Revoke a user session by its ID
* Method: `DELETE`
* Authentication: required
* Params: none
* Response: HTTP 200 on success, 500 on error
## `/api/v1/pleroma/settings/:app`
### Gets settings for some application
* Method `GET`
* Authentication: `read:accounts`
* Response: JSON. The settings for that application, or empty object if there is none.
* Example response:
```json
{
"some key": "some value"
}
```
### Updates settings for some application
* Method `PATCH`
* Authentication: `write:accounts`
* Request body: JSON object. The object will be merged recursively with old settings. If some field is set to null, it is removed.
* Example request:
```json
{
"some key": "some value",
"key to remove": null,
"nested field": {
"some key": "some value",
"key to remove": null
}
}
```
* Response: JSON. Updated (merged) settings for that application.
* Example response:
```json
{
"some key": "some value",
"nested field": {
"some key": "some value",
}
}
```

View File

@ -0,0 +1,44 @@
# Prometheus Metrics
Pleroma includes support for exporting metrics via the [prometheus_ex](https://github.com/deadtrickster/prometheus.ex) library.
Config example:
```
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter,
enabled: true,
auth: {:basic, "myusername", "mypassword"},
ip_whitelist: ["127.0.0.1"],
path: "/api/pleroma/app_metrics",
format: :text
```
* `enabled` (Pleroma extension) enables the endpoint
* `ip_whitelist` (Pleroma extension) could be used to restrict access only to specified IPs
* `auth` sets the authentication (`false` for no auth; configurable to HTTP Basic Auth, see [prometheus-plugs](https://github.com/deadtrickster/prometheus-plugs#exporting) documentation)
* `format` sets the output format (`:text` or `:protobuf`)
* `path` sets the path to app metrics page
## `/api/pleroma/app_metrics`
### Exports Prometheus application metrics
* Method: `GET`
* Authentication: not required by default (see configuration options above)
* Params: none
* Response: text
## Grafana
### Config example
The following is a config example to use with [Grafana](https://grafana.com)
```
- job_name: 'beam'
metrics_path: /api/pleroma/app_metrics
scheme: https
static_configs:
- targets: ['pleroma.soykaf.com']
```

View File

@ -0,0 +1,65 @@
# AP Extensions
## Actor endpoints
The following endpoints are additionally present into our actors.
- `oauthRegistrationEndpoint` (`http://litepub.social/ns#oauthRegistrationEndpoint`)
- `uploadMedia` (`https://www.w3.org/ns/activitystreams#uploadMedia`)
### oauthRegistrationEndpoint
Points to MastodonAPI `/api/v1/apps` for now.
See <https://docs.joinmastodon.org/methods/apps/>
### uploadMedia
Inspired by <https://www.w3.org/wiki/SocialCG/ActivityPub/MediaUpload>, it is part of the ActivityStreams namespace because it used to be part of the ActivityPub specification and got removed from it.
Content-Type: multipart/form-data
Parameters:
- (required) `file`: The file being uploaded
- (optionnal) `description`: A plain-text description of the media, for accessibility purposes.
Response: HTTP 201 Created with the object into the body, no `Location` header provided as it doesn't have an `id`
The object given in the reponse should then be inserted into an Object's `attachment` field.
## ChatMessages
`ChatMessage`s are the messages sent in 1-on-1 chats. They are similar to
`Note`s, but the addresing is done by having a single AP actor in the `to`
field. Addressing multiple actors is not allowed. These messages are always
private, there is no public version of them. They are created with a `Create`
activity.
They are part of the `litepub` namespace as `http://litepub.social/ns#ChatMessage`.
Example:
```json
{
"actor": "http://2hu.gensokyo/users/raymoo",
"id": "http://2hu.gensokyo/objects/1",
"object": {
"attributedTo": "http://2hu.gensokyo/users/raymoo",
"content": "You expected a cute girl? Too bad.",
"id": "http://2hu.gensokyo/objects/2",
"published": "2020-02-12T14:08:20Z",
"to": [
"http://2hu.gensokyo/users/marisa"
],
"type": "ChatMessage"
},
"published": "2018-02-12T14:08:20Z",
"to": [
"http://2hu.gensokyo/users/marisa"
],
"type": "Create"
}
```
This setup does not prevent multi-user chats, but these will have to go through
a `Group`, which will be the recipient of the messages and then `Announce` them
to the users in the `Group`.

View File

@ -0,0 +1,21 @@
# Authentication & Authorization
## OAuth token-based authentication & authorization
* Pleroma supports hierarchical OAuth scopes, just like Mastodon but with added granularity of admin scopes. For a reference, see [Mastodon OAuth scopes](https://docs.joinmastodon.org/api/oauth-scopes/).
* It is important to either define OAuth scope restrictions or explicitly mark OAuth scope check as skipped, for every controller action. To define scopes, call `plug(Pleroma.Web.Plugs.OAuthScopesPlug, %{scopes: [...]})`. To explicitly set OAuth scopes check skipped, call `plug(:skip_plug, Pleroma.Web.Plugs.OAuthScopesPlug <when ...>)`.
* In controllers, `use Pleroma.Web, :controller` will result in `action/2` (see `Pleroma.Web.controller/0` for definition) be called prior to actual controller action, and it'll perform security / privacy checks before passing control to actual controller action.
For routes with `:authenticated_api` pipeline, authentication & authorization are expected, thus `OAuthScopesPlug` will be run unless explicitly skipped (also `EnsureAuthenticatedPlug` will be executed immediately before action even if there was an early run to give an early error, since `OAuthScopesPlug` supports `:proceed_unauthenticated` option, and other plugs may support similar options as well).
For `:api` pipeline routes, it'll be verified whether `OAuthScopesPlug` was called or explicitly skipped, and if it was not then auth information will be dropped for request. Then `EnsurePublicOrAuthenticatedPlug` will be called to ensure that either the instance is not private or user is authenticated (unless explicitly skipped). Such automated checks help to prevent human errors and result in higher security / privacy for users.
## Non-OAuth authentication
* With non-OAuth authentication ([HTTP Basic Authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) or HTTP header- or params-provided auth), OAuth scopes check is _not_ performed for any action (since password is provided during the auth, requester is able to obtain a token with full permissions anyways); auth plugs invoke `Pleroma.Helpers.AuthHelper.skip_oauth(conn)` in this case.
## Auth-related configuration, OAuth consumer mode etc.
See `Authentication` section of [the configuration cheatsheet](../configuration/cheatsheet.md#authentication).

View File

@ -0,0 +1 @@
This section contains notes and guidelines for developers.

View File

@ -0,0 +1,9 @@
# Setting up a Gitlab-runner
When you push changes, a pipeline will start some automated jobs. These are done with so called [runners](https://docs.gitlab.com/runner/), services that run somewhere on a server and run these automated jobs. These jobs typically run tests and should pass. If not, you probably need to fix something.
Generally, Pleroma provides a runner, so you don't need to set up your own. However, if for whatever reason you want to set up your own, here's some high level instructions.
1. We use docker to run the jobs, so you should install that. For Debian, you need to allow non-free packages in the [source list](https://wiki.debian.org/SourcesList). Then you can install docker with `apt install docker-compose`.
2. You can [install](https://docs.gitlab.com/runner/install/index.html) and [configure](https://docs.gitlab.com/runner/register/index.html) a Gitlab-runner. It's probably easiest to install from the packages, but there are other options as well.
3. When registering the runner, you'll need some values. You can find them in the project under your own name. Choose "Settings", "CI/CD", and then expand "Runners". For executor you can choose "docker". For default image, you can use the image used in <https://git.pleroma.social/pleroma/pleroma/-/blob/develop/.gitlab-ci.yml#L1> (although it shouldn't matter much).

View File

@ -0,0 +1,70 @@
# Setting up a Pleroma development environment
Pleroma requires some adjustments from the defaults for running the instance locally. The following should help you to get started.
## Installing
1. Install Pleroma as explained in [the docs](../installation/debian_based_en.md), with some exceptions:
* You can use your own fork of the repository and add pleroma as a remote `git remote add pleroma 'https://git.pleroma.social/pleroma/pleroma'`
* You can skip systemd and nginx and all that stuff
* No need to create a dedicated pleroma user, it's easier to just use your own user
* For the DB you can still choose a dedicated user, the mix tasks set it up for you so it's no extra work for you
* For domain you can use `localhost`
* instead of creating a `prod.secret.exs`, create `dev.secret.exs`
* No need to prefix with `MIX_ENV=prod`. We're using dev and that's the default MIX_ENV
2. Change the dev.secret.exs
* Change the scheme in `config :pleroma, Pleroma.Web.Endpoint` to http (see examples below)
* If you want to change other settings, you can do that too
3. You can now start the server `mix phx.server`. Once it's build and started, you can access the instance on `http://<host>:<port>` (e.g.http://localhost:4000 ) and should be able to do everything locally you normaly can.
Example config to change the scheme to http. Change the port if you want to run on another port.
```elixir
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "localhost", scheme: "http", port: 4000],
```
Example config to disable captcha. This makes it a bit easier to create test-users.
```elixir
config :pleroma, Pleroma.Captcha,
enabled: false
```
Example config to change the log level to info
```elixir
config :logger, :console,
# :debug :info :warning :error
level: :info
```
## Testing
1. Create a `test.secret.exs` file with the content as shown below
2. Create the database user and test database.
1. You can use the `config/setup_db.psql` as a template. Copy the file if you want and change the database name, user and password to the values for the test-database (e.g. 'pleroma_local_test' for database and user). Then run this file like you did during installation.
2. The tests will try to create the Database, so we'll have to allow our test-database user to create databases, `sudo -Hu postgres psql -c "ALTER USER pleroma_local_test WITH CREATEDB;"`
3. Run the tests with `mix test`. The tests should succeed.
Example content for the `test.secret.exs` file. Feel free to use another user, database name or password, just make sure the database is dedicated for the testing environment.
```elixir
# Pleroma test configuration
# NOTE: This file should not be committed to a repo or otherwise made public
# without removing sensitive information.
import Config
config :pleroma, Pleroma.Repo,
username: "pleroma_local_test",
password: "mysuperduperpassword",
database: "pleroma_local_test",
hostname: "localhost"
```
## Updating
Update Pleroma as explained in [the docs](../administration/updating.md). Just make sure you pull from upstream and not from your own fork.
## Working on multiple branches
If you develop on a separate branch, it's possible you did migrations that aren't merged into another branch you're working on. If you have multiple things you're working on, it's probably best to set up multiple pleroma's each with their own database. If you finished with a branch and want to switch back to develop to start a new branch from there, you can drop the database and recreate the database (e.g. by using `config/setup_db.psql`). The commands to drop and recreate the database can be found in [the docs](../administration/backup.md).

19
docs/index.md Normal file
View File

@ -0,0 +1,19 @@
# Introduction to Pleroma
## What is Pleroma?
Pleroma is a federated social networking platform, compatible with Mastodon and other ActivityPub implementations. It is free software licensed under the AGPLv3.
It actually consists of two components: a backend, named simply Pleroma, and a user-facing frontend, named Pleroma-FE. It also includes the Mastodon frontend, if that's your thing.
It's part of what we call the fediverse, a federated network of instances which speak common protocols and can communicate with each other.
One account on an instance is enough to talk to the entire fediverse!
## How can I use it?
Pleroma instances are already widely deployed, a list can be found at <https://the-federation.info/pleroma> and <https://fediverse.network/pleroma>.
If you don't feel like joining an existing instance, but instead prefer to deploy your own instance, that's easy too!
Installation instructions can be found in the installation section of these docs.
## I got an account, now what?
Great! Now you can explore the fediverse! Open the login page for your Pleroma instance (e.g. <https://pleroma.soykaf.com>) and login with your username and password. (If you don't have an account yet, click on Register)
### Pleroma-FE
The default front-end used by Pleroma is Pleroma-FE. You can find more information on what it is and how to use it in the [Introduction to Pleroma-FE](../frontend).

View File

@ -1,24 +1,14 @@
# Installing on Alpine Linux
{! backend/installation/otp_vs_from_source_source.include !}
## Installation
This guide is a step-by-step installation guide for Alpine Linux. The instructions were verified against Alpine v3.10 standard image. You might miss additional dependencies if you use `netboot` instead.
It assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.linode.com/docs/tools-reference/custom-kernels-distros/install-alpine-linux-on-your-linode/#configuration). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su -l <username> -s $SHELL -c 'command'` instead.
### Required packages
* `postgresql`
* `elixir`
* `erlang`
* `erlang-parsetools`
* `erlang-xmerl`
* `git`
* Development Tools
#### Optional packages used in this guide
* `nginx` (preferred, example configs for other reverse proxies can be found in the repo)
* `certbot` (or any other ACME client for Lets Encrypt certificates)
{! backend/installation/generic_dependencies.include !}
### Prepare the system
@ -28,7 +18,6 @@ It assumes that you have administrative rights, either as root or a user with [s
awk 'NR==2' /etc/apk/repositories | sed 's/main/community/' | tee -a /etc/apk/repositories
```
* Then update the system, if not already done:
```shell
@ -39,7 +28,7 @@ sudo apk upgrade
* Install some tools, which are needed later:
```shell
sudo apk add git build-base
sudo apk add git build-base cmake file-dev
```
### Install Elixir and Erlang
@ -55,6 +44,7 @@ sudo apk add erlang erlang-runtime-tools erlang-xmerl elixir
```shell
sudo apk add erlang-eldap
```
### Install PostgreSQL
* Install Postgresql server:
@ -75,6 +65,12 @@ sudo /etc/init.d/postgresql start
sudo rc-update add postgresql
```
### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md))
```shell
sudo apk add ffmpeg imagemagick exiftool
```
### Install PleromaBE
* Add a new system user for the Pleroma service:
@ -106,7 +102,7 @@ cd /opt/pleroma
sudo -Hu pleroma mix deps.get
```
* Generate the configuration: `sudo -Hu pleroma mix pleroma.instance gen`
* Generate the configuration: `sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen`
* Answer with `yes` if it asks you to install `rebar3`.
* This may take some time, because parts of pleroma get compiled first.
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
@ -114,7 +110,7 @@ sudo -Hu pleroma mix deps.get
* Check the configuration and if all looks right, rename it, so Pleroma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances):
```shell
mv config/{generated_config.exs,prod.secret.exs}
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
```
* The previous command creates also the file `config/setup_db.psql`, with which you can create the database:
@ -225,11 +221,8 @@ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress
#### Further reading
* [Backup your instance](../administration/backup.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)
* [Updating your instance](../administration/updating.md)
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**.
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -1,4 +1,7 @@
# Installing on Arch Linux
{! backend/installation/otp_vs_from_source_source.include !}
## Installation
This guide will assume that you have administrative rights, either as root or a user with [sudo permissions](https://wiki.archlinux.org/index.php/Sudo). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su <username> -s $SHELL -c 'command'` instead.
@ -9,11 +12,16 @@ This guide will assume that you have administrative rights, either as root or a
* `elixir`
* `git`
* `base-devel`
* `cmake`
* `file`
#### Optional packages used in this guide
* `nginx` (preferred, example configs for other reverse proxies can be found in the repo)
* `certbot` (or any other ACME client for Lets Encrypt certificates)
* `ImageMagick`
* `ffmpeg`
* `exiftool`
### Prepare the system
@ -26,7 +34,7 @@ sudo pacman -Syu
* Install some of the above mentioned programs:
```shell
sudo pacman -S git base-devel elixir
sudo pacman -S git base-devel elixir cmake file
```
### Install PostgreSQL
@ -51,6 +59,12 @@ sudo -iu postgres initdb -D /var/lib/postgres/data
sudo systemctl enable --now postgresql.service
```
### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md))
```shell
sudo pacman -S ffmpeg imagemagick perl-image-exiftool
```
### Install PleromaBE
* Add a new system user for the Pleroma service:
@ -81,7 +95,7 @@ cd /opt/pleroma
sudo -Hu pleroma mix deps.get
```
* Generate the configuration: `sudo -Hu pleroma mix pleroma.instance gen`
* Generate the configuration: `sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen`
* Answer with `yes` if it asks you to install `rebar3`.
* This may take some time, because parts of pleroma get compiled first.
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
@ -89,7 +103,7 @@ sudo -Hu pleroma mix deps.get
* Check the configuration and if all looks right, rename it, so Pleroma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances):
```shell
mv config/{generated_config.exs,prod.secret.exs}
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
```
* The previous command creates also the file `config/setup_db.psql`, with which you can create the database:
@ -200,11 +214,8 @@ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress
#### Further reading
* [Backup your instance](../administration/backup.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)
* [Updating your instance](../administration/updating.md)
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**.
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -1,26 +1,12 @@
# Installing on Debian Based Distributions
{! backend/installation/otp_vs_from_source_source.include !}
## Installation
This guide will assume you are on Debian Stretch. This guide should also work with Ubuntu 16.04 and 18.04. It also assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.digitalocean.com/community/tutorials/how-to-add-delete-and-grant-sudo-privileges-to-users-on-a-debian-vps). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su <username> -s $SHELL -c 'command'` instead.
This guide will assume you are on Debian 11 (“bullseye”) or later. This guide should also work with Ubuntu 18.04 (“Bionic Beaver”) and later. It also assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.digitalocean.com/community/tutorials/how-to-add-delete-and-grant-sudo-privileges-to-users-on-a-debian-vps). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su <username> -s $SHELL -c 'command'` instead.
### Required packages
* `postgresql` (9.6+, Ubuntu 16.04 comes with 9.5, you can get a newer version from [here](https://www.postgresql.org/download/linux/ubuntu/))
* `postgresql-contrib` (9.6+, same situtation as above)
* `elixir` (1.5+, [install from here, Debian and Ubuntu ship older versions](https://elixir-lang.org/install.html#unix-and-unix-like) or use [asdf](https://github.com/asdf-vm/asdf) as the pleroma user)
* `erlang-dev`
* `erlang-tools`
* `erlang-parsetools`
* `erlang-eldap`, if you want to enable ldap authenticator
* `erlang-ssh`
* `erlang-xmerl`
* `git`
* `build-essential`
#### Optional packages used in this guide
* `nginx` (preferred, example configs for other reverse proxies can be found in the repo)
* `certbot` (or any other ACME client for Lets Encrypt certificates)
{! backend/installation/generic_dependencies.include !}
### Prepare the system
@ -34,23 +20,23 @@ sudo apt full-upgrade
* Install some of the above mentioned programs:
```shell
sudo apt install git build-essential postgresql postgresql-contrib
sudo apt install git build-essential postgresql postgresql-contrib cmake libmagic-dev
```
### Install Elixir and Erlang
* Download and add the Erlang repository:
```shell
wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i /tmp/erlang-solutions_1.0_all.deb
```
* Install Elixir and Erlang:
* Install Elixir and Erlang (you might need to use backports or [asdf](https://github.com/asdf-vm/asdf) on old systems):
```shell
sudo apt update
sudo apt install elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools erlang-ssh
sudo apt install elixir erlang-dev erlang-nox
```
### Optional packages: [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md)
```shell
sudo apt install imagemagick ffmpeg libimage-exiftool-perl
```
### Install PleromaBE
@ -83,7 +69,7 @@ cd /opt/pleroma
sudo -Hu pleroma mix deps.get
```
* Generate the configuration: `sudo -Hu pleroma mix pleroma.instance gen`
* Generate the configuration: `sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen`
* Answer with `yes` if it asks you to install `rebar3`.
* This may take some time, because parts of pleroma get compiled first.
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
@ -91,9 +77,10 @@ sudo -Hu pleroma mix deps.get
* Check the configuration and if all looks right, rename it, so Pleroma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances):
```shell
mv config/{generated_config.exs,prod.secret.exs}
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
```
* The previous command creates also the file `config/setup_db.psql`, with which you can create the database:
```shell
@ -190,11 +177,8 @@ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress
#### Further reading
* [Backup your instance](../administration/backup.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)
* [Updating your instance](../administration/updating.md)
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**.
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -10,21 +10,22 @@
### 必要なソフトウェア
- PostgreSQL 9.6以上 (Ubuntu16.04では9.5しか提供されていないので,[](https://www.postgresql.org/download/linux/ubuntu/)こちらから新しいバージョンを入手してください)
- postgresql-contrib 9.6以上 (同上)
- Elixir 1.5 以上 ([Debianのリポジトリからインストールしないこと ここからインストールすること!](https://elixir-lang.org/install.html#unix-and-unix-like)。または [asdf](https://github.com/asdf-vm/asdf) をpleromaユーザーでインストールしてください)
- erlang-dev
- erlang-tools
- erlang-parsetools
- erlang-eldap (LDAP認証を有効化するときのみ必要)
- erlang-ssh
- erlang-xmerl
- git
- build-essential
- `postgresql-contrib` 9.6以上 (同上)
- Elixir 1.8 以上 ([Debianのリポジトリからインストールしないこと ここからインストールすること!](https://elixir-lang.org/install.html#unix-and-unix-like)。または [asdf](https://github.com/asdf-vm/asdf) をpleromaユーザーでインストールしてください)
- `erlang-dev`
- `erlang-nox`
- `git`
- `build-essential`
- `cmake`
- `libmagic-dev`
#### このガイドで利用している追加パッケージ
- nginx (おすすめです。他のリバースプロキシを使う場合は、参考となる設定をこのリポジトリから探してください)
- certbot (または何らかのLet's Encrypt向けACMEクライアント)
- `nginx` (おすすめです。他のリバースプロキシを使う場合は、参考となる設定をこのリポジトリから探してください)
- `certbot` (または何らかのLet's Encrypt向けACMEクライアント)
- `ImageMagick`
- `ffmpeg`
- `exiftool`
### システムを準備する
@ -36,22 +37,27 @@ sudo apt full-upgrade
* 上記に挙げたパッケージをインストールしておきます。
```
sudo apt install git build-essential postgresql postgresql-contrib
sudo apt install git build-essential postgresql postgresql-contrib cmake ffmpeg imagemagick libmagic-dev
```
### ElixirとErlangをインストールします
* Erlangのリポジトリをダウンロードおよびインストールします。
```
wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i /tmp/erlang-solutions_1.0_all.deb
wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
sudo dpkg -i /tmp/erlang-solutions_2.0_all.deb
```
* ElixirとErlangをインストールします、
```
sudo apt update
sudo apt install elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools erlang-ssh
sudo apt install elixir erlang-dev erlang-nox
```
### オプションパッケージ: [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md)
```shell
sudo apt install imagemagick ffmpeg libimage-exiftool-perl
```
### Pleroma BE (バックエンド) をインストールします
@ -83,7 +89,7 @@ sudo -Hu pleroma mix deps.get
* コンフィギュレーションを生成します。
```
sudo -Hu pleroma mix pleroma.instance gen
sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen
```
* rebar3をインストールしてもよいか聞かれたら、yesを入力してください。
* このときにpleromaの一部がコンパイルされるため、この処理には時間がかかります。
@ -92,12 +98,12 @@ sudo -Hu pleroma mix pleroma.instance gen
* コンフィギュレーションを確認して、もし問題なければ、ファイル名を変更してください。
```
mv config/{generated_config.exs,prod.secret.exs}
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
```
* 先程のコマンドで、すでに `config/setup_db.psql` というファイルが作られています。このファイルをもとに、データベースを作成します。
```
sudo -Hu pleroma mix pleroma.instance gen
sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen
```
* そして、データベースのマイグレーションを実行します。
@ -179,14 +185,11 @@ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress
#### その他の設定とカスタマイズ
* [Backup your instance](../administration/backup.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)
* [Updating your instance](../administration/updating.md)
{! backend/installation/further_reading.include !}
## 質問ある?
インストールについて質問がある、もしくは、うまくいかないときは、以下のところで質問できます。
* [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org)
* **Freenode** の **#pleroma** IRCチャンネル
* [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat)
* **libera.chat** の **#pleroma** IRCチャンネル

View File

@ -0,0 +1,218 @@
# Installing on FreeBSD
This document was written for FreeBSD 12.1, but should be work on future releases.
{! backend/installation/generic_dependencies.include !}
## Installing software used in this guide
This assumes the target system has `pkg(8)`.
```
# pkg install elixir postgresql12-server postgresql12-client postgresql12-contrib git-lite sudo nginx gmake acme.sh cmake
```
Copy the rc.d scripts to the right directory:
Setup the required services to automatically start at boot, using `sysrc(8)`.
```
# sysrc nginx_enable=YES
# sysrc postgresql_enable=YES
```
## Initialize postgres
```
# service postgresql initdb
# service postgresql start
```
### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md))
```shell
# pkg install imagemagick ffmpeg p5-Image-ExifTool
```
## Configuring Pleroma
Create a user for Pleroma:
```
# pw add user pleroma -m
# echo 'export LC_ALL="en_US.UTF-8"' >> /home/pleroma/.profile
# su -l pleroma
```
Clone the repository:
```
$ cd $HOME # Should be the same as /home/pleroma
$ git clone -b stable https://git.pleroma.social/pleroma/pleroma.git
```
Configure Pleroma. Note that you need a domain name at this point:
```
$ cd /home/pleroma/pleroma
$ mix deps.get # Enter "y" when asked to install Hex
$ MIX_ENV=prod mix pleroma.instance gen # You will be asked a few questions here.
$ cp config/generated_config.exs config/prod.secret.exs
```
Since Postgres is configured, we can now initialize the database. There should
now be a file in `config/setup_db.psql` that makes this easier. Edit it, and
*change the password* to a password of your choice. Make sure it is secure, since
it'll be protecting your database. As root, you can now initialize the database:
```
# cd /home/pleroma/pleroma
# sudo -Hu postgres -g postgres psql -f config/setup_db.psql
```
Postgres allows connections from all users without a password by default. To
fix this, edit `/var/db/postgres/data12/pg_hba.conf`. Change every `trust` to
`password`.
Once this is done, restart Postgres with:
```
# service postgresql restart
```
Run the database migrations.
Back as the pleroma user, run the following to implement any database migrations.
```
# su -l pleroma
$ cd /home/pleroma/pleroma
$ MIX_ENV=prod mix ecto.migrate
```
You will need to do this whenever you update with `git pull`:
## Configuring acme.sh
We'll be using acme.sh in Stateless Mode for TLS certificate renewal.
First, as root, allow the user `acme` to have access to the acme log file, as follows:
```
# touch /var/log/acme.sh.log
# chown acme:acme /var/log/acme.sh.log
# chmod 600 /var/log/acme.sh.log
```
Next, obtain your account fingerprint:
```
# sudo -Hu acme -g acme acme.sh --register-account
```
You need to add the following to your nginx configuration for the server
running on port 80:
```
location ~ ^/\.well-known/acme-challenge/([-_a-zA-Z0-9]+)$ {
default_type text/plain;
return 200 "$1.6fXAG9VyG0IahirPEU2ZerUtItW2DHzDzD9wZaEKpqd";
}
```
Replace the string after after `$1.` with your fingerprint.
Start nginx:
```
# service nginx start
```
It should now be possible to issue a cert (replace `example.com`
with your domain name):
```
# sudo -Hu acme -g acme acme.sh --issue -d example.com --stateless
```
Let's add auto-renewal to `/etc/crontab`
(replace `example.com` with your domain):
```
/usr/local/bin/sudo -Hu acme -g acme /usr/local/sbin/acme.sh -r -d example.com --stateless
```
### Configuring nginx
FreeBSD's default nginx configuration does not contain an include directive, which is
typically used for multiple sites. Therefore, you will need to first create the required
directory as follows:
```
# mkdir -p /usr/local/etc/nginx/sites-available
```
Next, add an `include` directive to `/usr/local/etc/nginx/nginx.conf`, within the `http {}`
block, as follows:
```
http {
...
include /usr/local/etc/nginx/sites-available/*;
}
```
As root, copy `/home/pleroma/pleroma/installation/pleroma.nginx` to
`/usr/local/etc/nginx/sites-available/pleroma.nginx`.
Edit the defaults of `/usr/local/etc/nginx/sites-available/pleroma.nginx`:
* Change `ssl_trusted_certificate` to `/var/db/acme/certs/example.tld/example.tld.cer`.
* Change `ssl_certificate` to `/var/db/acme/certs/example.tld/fullchain.cer`.
* Change `ssl_certificate_key` to `/var/db/acme/certs/example.tld/example.tld.key`.
* Change all references of `example.tld` to your instance's domain name.
## Creating a startup script for Pleroma
Pleroma will need to compile when it initially starts, which typically takes a longer
period of time. Therefore, it is good practice to initially run pleroma from the
command-line before utilizing the rc.d script. That is done as follows:
```
# su -l pleroma
$ cd $HOME/pleroma
$ MIX_ENV=prod mix phx.server
```
Copy the startup script to the correct location and make sure it's executable:
```
# cp /home/pleroma/pleroma/installation/freebsd/rc.d/pleroma /usr/local/etc/rc.d/pleroma
# chmod +x /usr/local/etc/rc.d/pleroma
```
Update the `/etc/rc.conf` and start pleroma with the following commands:
```
# sysrc pleroma_enable=YES
# service pleroma start
```
#### Create your first user
If your instance is up and running, you can create your first user with administrative rights with the following task:
```shell
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
```
## Conclusion
Restart nginx with `# service nginx restart` and you should be up and running.
Make sure your time is in sync, or other instances will receive your posts with
incorrect timestamps. You should have ntpd running.
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -0,0 +1,5 @@
* [How Federation Works/Why is my Federated Timeline empty?](https://blog.soykaf.com/post/how-federation-works/)
* [Backup your instance](../administration/backup.md)
* [Updating your instance](../administration/updating.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)

View File

@ -0,0 +1,16 @@
## Required dependencies
* PostgreSQL 9.6+
* Elixir 1.10+
* Erlang OTP 22.2+
* git
* file / libmagic
* gcc (clang might also work)
* GNU make
* CMake
## Optional dependencies
* ImageMagick
* FFmpeg
* exiftool

View File

@ -1,11 +1,12 @@
# Installing on Gentoo GNU/Linux
{! backend/installation/otp_vs_from_source_source.include !}
## Installation
This guide will assume that you have administrative rights, either as root or a user with [sudo permissions](https://wiki.gentoo.org/wiki/Sudo). Lines that begin with `#` indicate that they should be run as the superuser. Lines using `$` should be run as the indicated user, e.g. `pleroma$` should be run as the `pleroma` user.
### Configuring your hostname (optional)
If you would like your prompt to permanently include your host/domain, change `/etc/conf.d/hostname` to your hostname. You can reboot or use the `hostname` command to make immediate changes.
{! backend/installation/generic_dependencies.include !}
### Your make.conf, package.use, and USE flags
@ -28,12 +29,17 @@ Gentoo quite pointedly does not come with a cron daemon installed, and as such i
* `dev-db/postgresql`
* `dev-lang/elixir`
* `dev-vcs/git`
* `dev-util/cmake`
* `sys-apps/file`
#### Optional ebuilds used in this guide
* `www-servers/nginx` (preferred, example configs for other reverse proxies can be found in the repo)
* `app-crypt/certbot` (or any other ACME client for Lets Encrypt certificates)
* `app-crypt/certbot-nginx` (nginx certbot plugin that allows use of the all-powerful `--nginx` flag on certbot)
* `media-gfx/imagemagick`
* `media-video/ffmpeg`
* `media-libs/exiftool`
### Prepare the system
@ -46,10 +52,10 @@ Gentoo quite pointedly does not come with a cron daemon installed, and as such i
* Emerge all required the required and suggested software in one go:
```shell
# emerge --ask dev-db/postgresql dev-lang/elixir dev-vcs/git www-servers/nginx app-crypt/certbot app-crypt/certbot-nginx
# emerge --ask dev-db/postgresql dev-lang/elixir dev-vcs/git www-servers/nginx app-crypt/certbot app-crypt/certbot-nginx dev-util/cmake sys-apps/file
```
If you would not like to install the optional packages, remove them from this line.
If you would not like to install the optional packages, remove them from this line.
If you're running this from a low-powered virtual machine, it should work though it will take some time. There were no issues on a VPS with a single core and 1GB of RAM; if you are using an even more limited device and run into issues, you can try creating a swapfile or use a more powerful machine running Gentoo to [cross build](https://wiki.gentoo.org/wiki/Cross_build_environment). If you have a wait ahead of you, now would be a good time to take a break, strech a bit, refresh your beverage of choice and/or get a snack, and reply to Arch users' posts with "I use Gentoo btw" as we do.
@ -74,18 +80,24 @@ The output from emerging postgresql should give you a command for initializing t
```
* Start postgres and enable the system service
```shell
# /etc/init.d/postgresql-11 start
# rc-update add postgresql-11 default
```
### A note on licenses, the AGPL, and deployment procedures
If you do not plan to make any modifications to your Pleroma instance, cloning directly from the main repo will get you what you need. However, if you plan on doing any contributions to upstream development, making changes or modifications to your instance, making custom themes, or want to play around--and let's be honest here, if you're using Gentoo that is most likely you--you will save yourself a lot of headache later if you take the time right now to fork the Pleroma repo and use that in the following section.
Not only does this make it much easier to deploy changes you make, as you can commit and pull from upstream and all that good stuff from the comfort of your local machine then simply `git pull` on your instance server when you're ready to deploy, it also ensures you are compliant with the Affero General Public Licence that Pleroma is licenced under, which stipulates that all network services provided with modified AGPL code must publish their changes on a publicly available internet service and for free. It also makes it much easier to ask for help from and provide help to your fellow Pleroma admins if your public repo always reflects what you are running because it is part of your deployment procedure.
### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](docs/installation/optional/media_graphics_packages.md))
```shell
# emerge --ask media-video/ffmpeg media-gfx/imagemagick media-libs/exiftool
```
### Install PleromaBE
* Add a new system user for the Pleroma service and set up default directories:
@ -124,7 +136,7 @@ pleroma$ mix deps.get
* Generate the configuration:
```shell
pleroma$ mix pleroma.instance gen
pleroma$ MIX_ENV=prod mix pleroma.instance gen
```
* Answer with `yes` if it asks you to install `rebar3`.
@ -230,7 +242,7 @@ First, ensure that the command you will be installing into your crontab works.
# /usr/bin/certbot renew --nginx
```
Assuming not much time has passed since you got certbot working a few steps ago, you should get a message for all domains you installed certificates for saying `Cert not yet due for renewal`.
Assuming not much time has passed since you got certbot working a few steps ago, you should get a message for all domains you installed certificates for saying `Cert not yet due for renewal`.
Now, run crontab as a superuser with `crontab -e` or `sudo crontab -e` as appropriate, and add the following line to your cron:
@ -283,11 +295,8 @@ If you opted to allow sudo for the `pleroma` user but would like to remove the a
#### Further reading
* [Backup your instance](../administration/backup.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)
* [Updating your instance](../administration/updating.md)
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**.
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -1,20 +1,23 @@
# Switching a from-source install to OTP releases
## What are OTP releases?
OTP releases are as close as you can get to binary releases with Erlang/Elixir. The release is self-contained, and provides everything needed to boot it, it is easily administered via the provided shell script to open up a remote console, start/stop/restart the release, start in the background, send remote commands, and more.
{! backend/installation/otp_vs_from_source.include !}
In this guide we cover how you can migrate from a from source installation to one using OTP releases.
## Pre-requisites
You will be running commands as root. If you aren't root already, please elevate your priviledges by executing `sudo su`/`su`.
The system needs to have `curl` and `unzip` installed for downloading and unpacking release builds.
```sh tab="Alpine"
apk add curl unzip
```
=== "Alpine"
```sh
apk add curl unzip
```
```sh tab="Debian/Ubuntu"
apt install curl unzip
```
=== "Debian/Ubuntu"
```sh
apt install curl unzip
```
## Moving content out of the application directory
When using OTP releases the application directory changes with every version so it would be a bother to keep content there (and also dangerous unless `--no-rm` option is used when updating). Fortunately almost all paths in Pleroma are configurable, so it is possible to move them out of there.
@ -110,27 +113,29 @@ OTP releases have different service files than from-source installs so they need
**Warning:** The service files assume pleroma user's home directory is `/opt/pleroma`, please make sure all paths fit your installation.
```sh tab="Alpine"
# Copy the service into a proper directory
cp -f ~pleroma/installation/init.d/pleroma /etc/init.d/pleroma
=== "Alpine"
```sh
# Copy the service into a proper directory
cp -f ~pleroma/installation/init.d/pleroma /etc/init.d/pleroma
# Start pleroma
rc-service pleroma start
```
# Start pleroma
rc-service pleroma start
```
```sh tab="Debian/Ubuntu"
# Copy the service into a proper directory
cp ~pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
=== "Debian/Ubuntu"
```sh
# Copy the service into a proper directory
cp ~pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
# Reload service files
systemctl daemon-reload
# Reload service files
systemctl daemon-reload
# Reenable pleroma to start on boot
systemctl reenable pleroma
# Reenable pleroma to start on boot
systemctl reenable pleroma
# Start pleroma
systemctl start pleroma
```
# Start pleroma
systemctl start pleroma
```
## Running mix tasks
Refer to [Running mix tasks](otp_en.md#running-mix-tasks) section from OTP release installation guide.

View File

@ -1,6 +1,8 @@
# Installing on NetBSD
## Required software
{! backend/installation/generic_dependencies.include !}
## Installing software used in this guide
pkgin should have been installed by the NetBSD installer if you selected
the right options. If it isn't installed, install it using pkg_add.
@ -10,7 +12,7 @@ Pleroma uses.
The `mksh` shell is needed to run the Elixir `mix` script.
`# pkgin install acmesh elixir git-base git-docs mksh nginx postgresql11-server postgresql11-client postgresql11-contrib sudo`
`# pkgin install acmesh elixir git-base git-docs mksh nginx postgresql11-server postgresql11-client postgresql11-contrib sudo ffmpeg4 ImageMagick`
You can also build these packages using pkgsrc:
```
@ -19,6 +21,7 @@ databases/postgresql11-client
databases/postgresql11-server
devel/git-base
devel/git-docs
devel/cmake
lang/elixir
security/acmesh
security/sudo
@ -43,6 +46,10 @@ pgsql=YES
First, run `# /etc/rc.d/pgsql start`. Then, `$ sudo -Hu pgsql -g pgsql createdb`.
### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md))
`# pkgin install ImageMagick ffmpeg4 p5-Image-ExifTool`
## Configuring Pleroma
Create a user for Pleroma:
@ -66,7 +73,7 @@ Configure Pleroma. Note that you need a domain name at this point:
```
$ cd /home/pleroma/pleroma
$ mix deps.get
$ mix pleroma.instance gen # You will be asked a few questions here.
$ MIX_ENV=prod mix pleroma.instance gen # You will be asked a few questions here.
```
Since Postgres is configured, we can now initialize the database. There should
@ -188,11 +195,17 @@ Run `# /etc/rc.d/pleroma start` to start Pleroma.
Restart nginx with `# /etc/rc.d/nginx restart` and you should be up and running.
If you need further help, contact niaa on freenode.
Make sure your time is in sync, or other instances will receive your posts with
incorrect timestamps. You should have ntpd running.
## Instances running NetBSD
* <https://catgirl.science>
#### Further reading
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -4,25 +4,32 @@ This guide describes the installation and configuration of pleroma (and the requ
For any additional information regarding commands and configuration files mentioned here, check the man pages [online](https://man.openbsd.org/) or directly on your server with the man command.
{! backend/installation/generic_dependencies.include !}
### Preparing the system
#### Required software
The following packages need to be installed:
* elixir
* gmake
* ImageMagick
* git
* postgresql-server
* postgresql-contrib
To install them, run the following command (with doas or as root):
```
pkg_add elixir gmake ImageMagick git postgresql-server postgresql-contrib
pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick
```
Pleroma requires a reverse proxy, OpenBSD has relayd in base (and is used in this guide) and packages/ports are available for nginx (www/nginx) and apache (www/apache-httpd). Independently of the reverse proxy, [acme-client(1)](https://man.openbsd.org/acme-client) can be used to get a certificate from Let's Encrypt.
#### Optional software
Per [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md):
* ImageMagick
* ffmpeg
* exiftool
To install the above:
```
pkg_add ImageMagick ffmpeg p5-Image-ExifTool
```
#### Creating the pleroma user
Pleroma will be run by a dedicated user, \_pleroma. Before creating it, insert the following lines in login.conf:
```
@ -224,7 +231,7 @@ Enter a shell as \_pleroma (as root `su _pleroma -`) and enter pleroma's install
Then follow the main installation guide:
* run `mix deps.get`
* run `mix pleroma.instance gen` and enter your instance's information when asked
* run `MIX_ENV=prod mix pleroma.instance gen` and enter your instance's information when asked
* copy config/generated\_config.exs to config/prod.secret.exs. The default values should be sufficient but you should edit it and check that everything seems OK.
* exit your current shell back to a root one and run `psql -U postgres -f /home/_pleroma/pleroma/config/setup_db.psql` to setup the database.
* return to a \_pleroma shell into pleroma's installation directory (`su _pleroma -;cd ~/pleroma`) and run `MIX_ENV=prod mix ecto.migrate`
@ -242,3 +249,11 @@ If your instance is up and running, you can create your first user with administ
```
LC_ALL=en_US.UTF-8 MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
```
#### Further reading
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -10,13 +10,24 @@ suositeltavaa tehdä komennon `doas` avulla, katso `doas (1)` ja `doas.conf (5)`
Tästä eteenpäin oletuksena on, että domain "esimerkki.com" osoittaa
serverin IP-osoitteeseen.
Jos asennuksen kanssa on ongelmia, IRC-kanava #pleroma Freenodessa tai
Matrix-kanava #freenode_#pleroma:matrix.org ovat hyviä paikkoja löytää apua
Jos asennuksen kanssa on ongelmia, IRC-kanava #pleroma Libera.chat tai
Matrix-kanava #pleroma:libera.chat ovat hyviä paikkoja löytää apua
(englanniksi), `/msg eal kukkuu` jos haluat välttämättä puhua härmää.
Asenna tarvittava ohjelmisto:
`# pkg_add git elixir gmake postgresql-server-10.3 postgresql-contrib-10.3`
`# pkg_add git elixir gmake postgresql-server-10.3 postgresql-contrib-10.3 cmake ffmpeg ImageMagick`
#### Optional software
[`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md):
* ImageMagick
* ffmpeg
* exiftool
Asenna tarvittava ohjelmisto:
`# pkg_add ImageMagick ffmpeg p5-Image-ExifTool`
Luo postgresql-tietokanta:

View File

@ -0,0 +1,33 @@
# Optional software packages needed for specific functionality
For specific Pleroma functionality (which is disabled by default) some or all of the below packages are required:
* `ImageMagic`
* `ffmpeg`
* `exiftool`
Please refer to documentation in `docs/installation` on how to install them on specific OS.
Note: the packages are not required with the current default settings of Pleroma.
## `ImageMagick`
`ImageMagick` is a set of tools to create, edit, compose, or convert bitmap images.
It is required for the following Pleroma features:
* `Pleroma.Upload.Filters.Mogrify`, `Pleroma.Upload.Filters.Mogrifun` upload filters (related config: `Plaroma.Upload/filters` in `config/config.exs`)
* Media preview proxy for still images (related config: `media_preview_proxy/enabled` in `config/config.exs`)
## `ffmpeg`
`ffmpeg` is software to record, convert and stream audio and video.
It is required for the following Pleroma features:
* Media preview proxy for videos (related config: `media_preview_proxy/enabled` in `config/config.exs`)
## `exiftool`
`exiftool` is media files metadata reader/writer.
It is required for the following Pleroma features:
* `Pleroma.Upload.Filters.Exiftool.StripLocation` upload filter (related config: `Plaroma.Upload/filters` in `config/config.exs`)
* `Pleroma.Upload.Filters.Exiftool.ReadDescription` upload filter (related config: `Plaroma.Upload/filters` in `config/config.exs`)

View File

@ -1,5 +1,9 @@
# Installing on Linux using OTP releases
{! backend/installation/otp_vs_from_source.include !}
This guide covers a installation using an OTP release. To install Pleroma from source, please check out the corresponding guide for your distro.
## Pre-requisites
* A machine running Linux with GNU (e.g. Debian, Ubuntu) or musl (e.g. Alpine) libc and `x86_64`, `aarch64` or `armv7l` CPU, you have root access to. If you are not sure if it's compatible see [Detecting flavour section](#detecting-flavour) below
* A (sub)domain pointed to the machine
@ -27,16 +31,37 @@ Other than things bundled in the OTP release Pleroma depends on:
* PostgreSQL (also utilizes extensions in postgresql-contrib)
* nginx (could be swapped with another reverse proxy but this guide covers only it)
* certbot (for Let's Encrypt certificates, could be swapped with another ACME client, but this guide covers only it)
* libmagic/file
```sh tab="Alpine"
echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories
apk update
apk add curl unzip ncurses postgresql postgresql-contrib nginx certbot
```
=== "Alpine"
```
awk 'NR==2' /etc/apk/repositories | sed 's/main/community/' | tee -a /etc/apk/repositories
apk update
apk add curl unzip ncurses postgresql postgresql-contrib nginx certbot file-dev
```
```sh tab="Debian/Ubuntu"
apt install curl unzip libncurses5 postgresql postgresql-contrib nginx certbot
```
=== "Debian/Ubuntu"
```
apt install curl unzip libncurses5 postgresql postgresql-contrib nginx certbot libmagic-dev
```
### Installing optional packages
Per [`docs/installation/optional/media_graphics_packages.md`](optional/media_graphics_packages.md):
* ImageMagick
* ffmpeg
* exiftool
=== "Alpine"
```
apk update
apk add imagemagick ffmpeg exiftool
```
=== "Debian/Ubuntu"
```
apt install imagemagick ffmpeg libimage-exiftool-perl
```
## Setup
### Configuring PostgreSQL
@ -47,40 +72,37 @@ apt install curl unzip libncurses5 postgresql postgresql-contrib nginx certbot
RUM indexes are an alternative indexing scheme that is not included in PostgreSQL by default. You can read more about them on the [Configuration page](../configuration/cheatsheet.md#rum-indexing-for-full-text-search). They are completely optional and most of the time are not worth it, especially if you are running a single user instance (unless you absolutely need ordered search results).
```sh tab="Alpine"
apk add git build-base postgresql-dev
git clone https://github.com/postgrespro/rum /tmp/rum
cd /tmp/rum
make USE_PGXS=1
make USE_PGXS=1 install
cd
rm -r /tmp/rum
```
=== "Alpine"
```
apk add git build-base postgresql-dev
git clone https://github.com/postgrespro/rum /tmp/rum
cd /tmp/rum
make USE_PGXS=1
make USE_PGXS=1 install
cd
rm -r /tmp/rum
```
```sh tab="Debian/Ubuntu"
# Available only on Buster/19.04
apt install postgresql-11-rum
```
=== "Debian/Ubuntu"
```
# Available only on Buster/19.04
apt install postgresql-11-rum
```
#### (Optional) Performance configuration
For optimal performance, you may use [PGTune](https://pgtune.leopard.in.ua), don't forget to restart postgresql after editing the configuration
It is encouraged to check [Optimizing your PostgreSQL performance](../configuration/postgresql.md) document, for tips on PostgreSQL tuning.
```sh tab="Alpine"
rc-service postgresql restart
```
Restart PostgreSQL to apply configuration changes:
```sh tab="Debian/Ubuntu"
systemctl restart postgresql
```
=== "Alpine"
```
rc-service postgresql restart
```
If you are using PostgreSQL 12 or higher, add this to your Ecto database configuration
```elixir
prepare: :named,
parameters: [
plan_cache_mode: "force_custom_plan"
]
```
=== "Debian/Ubuntu"
```
systemctl restart postgresql
```
### Installing Pleroma
```sh
@ -151,14 +173,16 @@ certbot certonly --standalone --preferred-challenges http -d yourinstance.tld
The location of nginx configs is dependent on the distro
```sh tab="Alpine"
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/conf.d/pleroma.conf
```
=== "Alpine"
```
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/conf.d/pleroma.conf
```
```sh tab="Debian/Ubuntu"
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf
ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf
```
=== "Debian/Ubuntu"
```
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf
ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf
```
If your distro does not have either of those you can append `include /etc/nginx/pleroma.conf` to the end of the http section in /etc/nginx/nginx.conf and
```sh
@ -175,39 +199,43 @@ nginx -t
```
#### Start nginx
```sh tab="Alpine"
rc-service nginx start
```
=== "Alpine"
```
rc-service nginx start
```
```sh tab="Debian/Ubuntu"
systemctl start nginx
```
=== "Debian/Ubuntu"
```
systemctl start nginx
```
At this point if you open your (sub)domain in a browser you should see a 502 error, that's because Pleroma is not started yet.
### Setting up a system service
```sh tab="Alpine"
# Copy the service into a proper directory
cp /opt/pleroma/installation/init.d/pleroma /etc/init.d/pleroma
=== "Alpine"
```
# Copy the service into a proper directory
cp /opt/pleroma/installation/init.d/pleroma /etc/init.d/pleroma
# Start pleroma and enable it on boot
rc-service pleroma start
rc-update add pleroma
```
# Start pleroma and enable it on boot
rc-service pleroma start
rc-update add pleroma
```
```sh tab="Debian/Ubuntu"
# Copy the service into a proper directory
cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
=== "Debian/Ubuntu"
```
# Copy the service into a proper directory
cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
# Start pleroma and enable it on boot
systemctl start pleroma
systemctl enable pleroma
```
# Start pleroma and enable it on boot
systemctl start pleroma
systemctl enable pleroma
```
If everything worked, you should see Pleroma-FE when visiting your domain. If that didn't happen, try reviewing the installation steps, starting Pleroma in the foreground and seeing if there are any errrors.
Still doesn't work? Feel free to contact us on [#pleroma on freenode](https://irc.pleroma.social) or via matrix at <https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org>, you can also [file an issue on our Gitlab](https://git.pleroma.social/pleroma/pleroma-support/issues/new)
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC, you can also [file an issue on our Gitlab](https://git.pleroma.social/pleroma/pleroma-support/issues/new).
## Post installation
@ -223,59 +251,57 @@ $EDITOR path-to-nginx-config
nginx -t
```
```sh tab="Alpine"
# Restart nginx
rc-service nginx restart
=== "Alpine"
```
# Restart nginx
rc-service nginx restart
# Start the cron daemon and make it start on boot
rc-service crond start
rc-update add crond
# Start the cron daemon and make it start on boot
rc-service crond start
rc-update add crond
# Ensure the webroot menthod and post hook is working
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --dry-run --post-hook 'rc-service nginx reload'
# Ensure the webroot menthod and post hook is working
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --dry-run --post-hook 'rc-service nginx reload'
# Add it to the daily cron
echo '#!/bin/sh
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "rc-service nginx reload"
' > /etc/periodic/daily/renew-pleroma-cert
chmod +x /etc/periodic/daily/renew-pleroma-cert
# Add it to the daily cron
echo '#!/bin/sh
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "rc-service nginx reload"
' > /etc/periodic/daily/renew-pleroma-cert
chmod +x /etc/periodic/daily/renew-pleroma-cert
# If everything worked the output should contain /etc/cron.daily/renew-pleroma-cert
run-parts --test /etc/periodic/daily
```
# If everything worked the output should contain /etc/cron.daily/renew-pleroma-cert
run-parts --test /etc/periodic/daily
```
```sh tab="Debian/Ubuntu"
# Restart nginx
systemctl restart nginx
=== "Debian/Ubuntu"
```
# Restart nginx
systemctl restart nginx
# Ensure the webroot menthod and post hook is working
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --dry-run --post-hook 'systemctl reload nginx'
# Ensure the webroot menthod and post hook is working
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --dry-run --post-hook 'systemctl reload nginx'
# Add it to the daily cron
echo '#!/bin/sh
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
' > /etc/cron.daily/renew-pleroma-cert
chmod +x /etc/cron.daily/renew-pleroma-cert
# Add it to the daily cron
echo '#!/bin/sh
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
' > /etc/cron.daily/renew-pleroma-cert
chmod +x /etc/cron.daily/renew-pleroma-cert
# If everything worked the output should contain /etc/cron.daily/renew-pleroma-cert
run-parts --test /etc/cron.daily
```
# If everything worked the output should contain /etc/cron.daily/renew-pleroma-cert
run-parts --test /etc/cron.daily
```
## Create your first user and set as admin
```sh
cd /opt/pleroma/bin
cd /opt/pleroma
su pleroma -s $SHELL -lc "./bin/pleroma_ctl user new joeuser joeuser@sld.tld --admin"
```
This will create an account withe the username of 'joeuser' with the email address of joeuser@sld.tld, and set that user's account as an admin. This will result in a link that you can paste into the browser, which logs you in and enables you to set the password.
## Further reading
* [Backup your instance](../administration/backup.md)
* [Hardening your instance](../configuration/hardening.md)
* [How to activate mediaproxy](../configuration/howto_mediaproxy.md)
* [Updating your instance](../administration/updating.md)
{! backend/installation/further_reading.include !}
## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**.
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC, you can also [file an issue on our Gitlab](https://git.pleroma.social/pleroma/pleroma-support/issues/new).

View File

@ -0,0 +1,3 @@
## OTP releases vs from-source installations
There are two ways to install Pleroma. You can use OTP releases or do a from-source installation. OTP releases are as close as you can get to binary releases with Erlang/Elixir. The release is self-contained, and provides everything needed to boot it, it is easily administered via the provided shell script to open up a remote console, start/stop/restart the release, start in the background, send remote commands, and more. With from source installations you install Pleroma from source, meaning you have to install certain dependencies like Erlang+Elixir and compile Pleroma yourself.

View File

@ -0,0 +1,3 @@
{! backend/installation/otp_vs_from_source.include !}
This guide covers a from-source installation. To install using OTP releases, please check out [the OTP guide](./otp_en.md).

View File

@ -0,0 +1,9 @@
# Installing on Yunohost
[YunoHost](https://yunohost.org) is a server operating system aimed at self-hosting. The YunoHost community maintains a package of Pleroma which allows you to install Pleroma on YunoHost. You can install it via the normal way through the admin web interface, or through the CLI. More information can be found at [the repo of the package](https://github.com/YunoHost-Apps/pleroma_ynh).
## Questions
Questions and problems related to the YunoHost parts can be done through the [regular YunoHost channels](https://yunohost.org/en/help).
For questions about Pleroma, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.

View File

@ -1,65 +0,0 @@
# Introduction to Pleroma
## What is Pleroma?
Pleroma is a federated social networking platform, compatible with GNU social, Mastodon and other OStatus and ActivityPub implementations. It is free software licensed under the AGPLv3.
It actually consists of two components: a backend, named simply Pleroma, and a user-facing frontend, named Pleroma-FE. It also includes the Mastodon frontend, if that's your thing.
It's part of what we call the fediverse, a federated network of instances which speak common protocols and can communicate with each other.
One account on an instance is enough to talk to the entire fediverse!
## How can I use it?
Pleroma instances are already widely deployed, a list can be found at <http://distsn.org/pleroma-instances.html>. Information on all existing fediverse instances can be found at <https://fediverse.network/>.
If you don't feel like joining an existing instance, but instead prefer to deploy your own instance, that's easy too!
Installation instructions can be found in the installation section of these docs.
## I got an account, now what?
Great! Now you can explore the fediverse! Open the login page for your Pleroma instance (e.g. <https://pleroma.soykaf.com>) and login with your username and password. (If you don't have an account yet, click on Register)
At this point you will have two columns in front of you.
### Left column
- first block: here you can see your avatar, your nickname and statistics (Statuses, Following, Followers). Clicking your profile pic will open your profile.
Under that you have a text form which allows you to post new statuses. The number on the bottom of the text form is a character counter, every instance can have a different character limit (the default is 5000).
If you want to mention someone, type @ + name of the person. A drop-down menu will help you in finding the right person.
Under the text form there are also several visibility options and there is the option to use rich text.
Under that the icon on the left is for uploading media files and attach them to your post. There is also an emoji-picker and an option to post a poll.
To post your status, simply press Submit.
On the top right you will also see a wrench icon. This opens your personal settings.
- second block: Here you can switch between the different timelines:
- Timeline: all the people that you follow
- Interactions: here you can switch between different timelines where there was interaction with your account. There is Mentions, Repeats and Favorites, and New follows
- Direct Messages: these are the Direct Messages sent to you
- Public Timeline: all the statutes from the local instance
- The Whole Known Network: all public posts the instance knows about, both local and remote!
- About: This isn't a Timeline but shows relevant info about the instance. You can find a list of the moderators and admins, Terms of Service, MRF policies and enabled features.
- Optional third block: This is the Instance panel that can be activated, but is deactivated by default. It's fully customisable and by default has links to the pleroma-fe and Mastodon-fe.
- fourth block: This is the Notifications block, here you will get notified whenever somebody mentions you, follows you, repeats or favorites one of your statuses.
### Right column
This is where the interesting stuff happens!
Depending on the timeline you will see different statuses, but each status has a standard structure:
- Profile pic, name and link to profile. An optional left-arrow if it's a reply to another status (hovering will reveal the reply-to status). Clicking on the profile pic will uncollapse the user's profile.
- A `+` button on the right allows you to Expand/Collapse an entire discussion thread. It also updates in realtime!
- An arrow icon allows you to open the status on the instance where it's originating from.
- The text of the status, including mentions and attachements. If you click on a mention, it will automatically open the profile page of that person.
- Three buttons (left to right): Reply, Repeat, Favorite. There is also a forth button, this is a dropdown menu for simple moderation like muting the conversation or, if you have moderation rights, delete the status from the server.
### Top right
- The magnifier icon opens the search screen where you can search for statuses, people and hashtags. It's also possible to import statusses from remote servers by pasting the url to the post in the search field.
- The gear icon gives you general settings
- If you have admin rights, you'll see an icon that opens the admin interface
- The last icon is to log out
### Bottom right
On the bottom right you have a chatbox. Here you can communicate with people on the same instance in realtime. It is local-only, for now, but there are plans to make it extendable to the entire fediverse!
### Mastodon interface
If the Pleroma interface isn't your thing, or you're just trying something new but you want to keep using the familiar Mastodon interface, we got that too!
Just add a "/web" after your instance url (e.g. <https://pleroma.soycaf.com/web>) and you'll end on the Mastodon web interface, but with a Pleroma backend! MAGIC!
The Mastodon interface is from the Glitch-soc fork. For more information on the Mastodon interface you can check the [Mastodon](https://docs.joinmastodon.org/) and [Glitch-soc](https://glitch-soc.github.io/docs/) documentation.
Remember, what you see is only the frontend part of Mastodon, the backend is still Pleroma.

View File

@ -1,2 +1,2 @@
elixir_version=1.8.2
erlang_version=21.3.7
elixir_version=1.10.4
erlang_version=22.3.4.1

View File

@ -0,0 +1,36 @@
#!/bin/sh
# A simple shell script to delete a media from Apache's mod_disk_cache.
# You will likely need to setup a sudo rule like the following:
#
# Cmnd_Alias HTCACHECLEAN = /usr/local/sbin/htcacheclean
# pleroma ALL=HTCACHECLEAN, NOPASSWD: HTCACHECLEAN
#
# Please also ensure you have enabled:
#
# config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script, url_format: :htcacheclean
#
# which will correctly format the URLs passed to this script for the htcacheclean utility.
#
SCRIPTNAME=${0##*/}
# mod_disk_cache directory
CACHE_DIRECTORY="/tmp/pleroma-media-cache"
## Removes an item via the htcacheclean utility
## $1 - the filename, can be a pattern .
## $2 - the cache directory.
purge_item() {
sudo htcacheclean -v -p "${2}" "${1}"
} # purge_item
purge() {
for url in $@
do
echo "$SCRIPTNAME delete \`$url\` from cache ($CACHE_DIRECTORY)"
purge_item "$url" $CACHE_DIRECTORY
done
}
purge $@

View File

@ -5,34 +5,13 @@
# 2. Copy this section into your Caddyfile and restart Caddy.
example.tld {
log /var/log/caddy/pleroma_access.log
errors /var/log/caddy/pleroma_error.log
log {
output file /var/log/caddy/pleroma.log
}
gzip
encode gzip
# this is explicitly IPv4 since Pleroma.Web.Endpoint binds on IPv4 only
# and `localhost.` resolves to [::0] on some systems: see issue #930
proxy / 127.0.0.1:4000 {
websocket
transparent
}
tls {
# Remove the rest of the lines in here, if you want to support older devices
key_type p256
ciphers ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256
}
# If you do not want to use the mediaproxy function, remove these lines.
# To use this directive, you need the http.cache plugin for Caddy.
cache {
match_path /media
default_max_age 720m
}
cache {
match_path /proxy
default_max_age 720m
}
# Stop removing lines here.
reverse_proxy 127.0.0.1:4000
}

View File

@ -1,45 +0,0 @@
#!/bin/sh
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
project_id="74"
project_branch="rebase/glitch-soc"
static_dir="instance/static"
# For bundling:
# project_branch="pleroma"
# static_dir="priv/static"
if [[ ! -d "${static_dir}" ]]
then
echo "Error: ${static_dir} directory is missing, are you sure you are running this script at the root of pleromas repository?"
exit 1
fi
last_modified="$(curl -s -I 'https://git.pleroma.social/api/v4/projects/'${project_id}'/jobs/artifacts/'${project_branch}'/download?job=build' | grep '^Last-Modified:' | cut -d: -f2-)"
echo "branch:${project_branch}"
echo "Last-Modified:${last_modified}"
artifact="mastofe.zip"
if [[ -e mastofe.timestamp ]] && [[ "${last_modified}" != "" ]]
then
if [[ "$(cat mastofe.timestamp)" == "${last_modified}" ]]
then
echo "MastoFE is up-to-date, exiting…"
exit 0
fi
fi
curl -c - "https://git.pleroma.social/api/v4/projects/${project_id}/jobs/artifacts/${project_branch}/download?job=build" -o "${artifact}" || exit
# TODO: Update the emoji as well
rm -fr "${static_dir}/sw.js" "${static_dir}/packs" || exit
unzip -q "${artifact}" || exit
cp public/assets/sw.js "${static_dir}/sw.js" || exit
cp -r public/packs "${static_dir}/packs" || exit
echo "${last_modified}" > mastofe.timestamp
rm -fr public
rm -i "${artifact}"

View File

@ -0,0 +1,27 @@
#!/bin/sh
# $FreeBSD$
# PROVIDE: pleroma
# REQUIRE: DAEMON postgresql
# KEYWORD: shutdown
# sudo -u pleroma MIX_ENV=prod elixir --erl \"-detached\" -S mix phx.server
. /etc/rc.subr
name=pleroma
rcvar=pleroma_enable
desc="Pleroma Social Media Platform"
load_rc_config ${name}
: ${pleroma_user:=pleroma}
: ${pleroma_home:=$(getent passwd ${pleroma_user} | awk -F: '{print $6}')}
: ${pleroma_chdir:="${pleroma_home}/pleroma"}
: ${pleroma_env:="HOME=${pleroma_home} MIX_ENV=prod"}
command=/usr/local/bin/elixir
command_args="--erl \"-detached\" -S /usr/local/bin/mix phx.server"
procname="*beam.smp"
run_rc_command "$1"

Some files were not shown because too many files have changed in this diff Show More