Compare commits

...

5640 commits

Author SHA1 Message Date
feld
99fbe0418a Merge branch 'gins-tonic' into 'develop'
Improved performance of status search queries using the default GIN index

See merge request pleroma/pleroma!4352
2025-04-10 22:01:25 +00:00
Mark Felder
1266b180b9 Improved performance of status search queries using the default GIN index 2025-04-10 14:32:31 -07:00
lain
1775a4db08 Merge branch 'siteinfo-baseurls' into 'develop'
Provide media proxy and upload base urls in siteinfo

See merge request pleroma/pleroma!4349
2025-04-02 13:00:42 +00:00
lain
8322134a21 Edit siteinfo-baseurls.add 2025-04-02 12:30:32 +00:00
Moon Man
93aa563cfe implemented 2025-04-02 07:00:45 -04:00
mkljczk
4f78a9142a Merge branch 'typo' into 'develop'
fix a few typos

See merge request pleroma/pleroma!4347
2025-04-02 10:48:07 +00:00
feld
2651058fa4 Merge branch 'fix-freebsd-rc' into 'develop'
Set PATH in the FreeBSD rc script to avoid failures starting the service

Closes #3367

See merge request pleroma/pleroma!4348
2025-04-01 03:21:30 +00:00
Mark Felder
f60a1e7d44 Set PATH in the FreeBSD rc script to avoid failures starting the service 2025-03-31 20:17:18 -07:00
Nicole Mikołajczyk
4d4174c339 fix a few typos
Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl>
2025-03-28 18:47:00 +01:00
lain
254b31bf1c Merge branch 'more-emoji-likes' into 'develop'
More emoji likes

Closes #3364

See merge request pleroma/pleroma!4342
2025-03-20 09:12:09 +00:00
lain
81960dccf2 Merge branch 'translate-posts' into 'develop'
Support translation providers (DeepL, LibreTranslate)

See merge request pleroma/pleroma!4102
2025-03-20 09:11:57 +00:00
feld
3e802240b1 Merge branch 'fix-releases' into 'develop'
Fix releases by not relying on Mix

See merge request pleroma/pleroma!4344
2025-03-19 18:01:18 +00:00
Mark Felder
638d047a5c Fix releases by not relying on Mix 2025-03-19 10:47:32 -07:00
feld
7107901f60 Merge branch 'truncate-rich-media' into 'develop'
Truncate the length of Rich Media title and description fields

See merge request pleroma/pleroma!4343
2025-03-19 17:42:11 +00:00
Mark Felder
7763b9a87f Truncate the length of Rich Media title and description fields
Some sites like Instagram are serving obnoxiously long metadata fields
2025-03-19 10:29:45 -07:00
mkljczk
25a3ee2256 InstanceView: do not repeat information
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-03-19 17:59:42 +01:00
mkljczk
08de5f94e3 Merge remote-tracking branch 'origin/develop' into translate-posts
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-03-19 17:59:24 +01:00
lain
6e1223a1ed Merge branch 'language-detection' into 'develop'
Implement language detection with fastText

See merge request pleroma/pleroma!4103
2025-03-19 14:40:46 +00:00
Lain Soykaf
f9bff8f5e5 Transmogrifier: Keep likes as likes if the content is obviously wrong 2025-03-19 16:00:27 +04:00
Lain Soykaf
950bf60765 LikeHandlingTest: Add test for invalid content 2025-03-19 15:57:08 +04:00
Lain Soykaf
ef216c922f Add changelog 2025-03-18 15:54:33 +04:00
Lain Soykaf
e19ca7606d Transmogrifier: Also accept mitra emoji likes. 2025-03-18 15:53:27 +04:00
Lain Soykaf
fc7ca2ccf4 Federator: More specific logging for rejections 2025-03-18 15:25:54 +04:00
lain
7328235c64 Merge branch 'speed-improvement' into 'develop'
Migrations: Add activities_actor_type index

See merge request pleroma/pleroma!4341
2025-03-18 08:33:09 +00:00
Lain Soykaf
016df5093d Config: Use advisory lock 2025-03-16 12:23:22 +04:00
Lain Soykaf
ad79912a07 Create the index concurrently 2025-03-14 19:53:06 +04:00
Lain Soykaf
bee8b64fa7 Migrations: Add activities_actor_type index 2025-03-14 19:41:46 +04:00
mkljczk
fa76bb66f9 Merge remote-tracking branch 'origin/develop' into language-detection
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-03-11 20:38:56 +01:00
lain
f25ef1aa7f Merge branch 'stable' into 'develop'
Stable

See merge request pleroma/pleroma!4339
2025-03-11 16:59:48 +00:00
lain
66687bedda Merge branch 'release/2.9.1' into 'stable'
Release/2.9.1

See merge request pleroma/pleroma!4338
2025-03-11 16:04:14 +00:00
Lain Soykaf
5ce612b272 Linting 2025-03-11 18:21:27 +04:00
Lain Soykaf
4c8a8a4b62 Update changelog 2025-03-11 18:06:43 +04:00
Lain Soykaf
0a93a7b0c9 Mix: Update version 2025-03-11 18:04:54 +04:00
Lain Soykaf
3c2b51c7cb Changelog: Add missing changelog entries 2025-03-11 17:57:45 +04:00
Lain Soykaf
2293d0826a Tests: Fix tests. 2025-03-11 17:53:05 +04:00
Lain Soykaf
51c1d6fb2d Containment: Never fetch locally 2025-03-11 16:37:17 +04:00
Lain Soykaf
b0c2ec5fb9 Fetcher Tests: Add tests validating the content-type 2025-03-11 16:15:14 +04:00
Lain Soykaf
adb5cb96d3 Object.Fetcher: Don't do cross-site redirects. 2025-03-11 15:50:17 +04:00
Lain Soykaf
577b7cb061 StealEmojiPolicy: Sanitise emoji names. 2025-03-11 14:59:06 +04:00
Lain Soykaf
c143653364 ReverseProxy: Sanitize content. 2025-03-11 14:18:36 +04:00
Lain Soykaf
d9ae9b676c InstanceStatic: Extra-sanitize emoji 2025-03-11 14:09:31 +04:00
Lain Soykaf
b1309bdb40 More fixes for InstanceStatic 2025-03-10 18:44:17 +04:00
Lain Soykaf
1dd9ba5d6f Sanitize media uploads. 2025-03-10 17:23:21 +04:00
Lain Soykaf
b469b9d9d3 . 2025-03-10 16:48:54 +04:00
Lain Soykaf
edcd816730 Merge branch 'assorted-test-fixes' into secfix 2025-03-10 16:04:46 +04:00
lain
5ffc7d8c9d Merge branch 'develop' into 'develop'
docs: debian_based_en has a trailing "`"

See merge request pleroma/pleroma!4337
2025-03-08 15:47:53 +00:00
Mikka van der Velde
35033b6f3e Edit debian-distro-docs-pleromaBE.fix 2025-03-08 15:34:32 +00:00
Mikka van der Velde
5cf0321bc7 Add new file 2025-03-08 15:33:36 +00:00
Mikka van der Velde
be3bbe5863 Edit debian_based_en.md 2025-03-08 15:29:01 +00:00
lain
906c3ab308 Merge branch 'fix-safezip' into 'develop'
Safezip: Fix test (issue was a difference in file ordering between otp26 and otp27)

See merge request pleroma/pleroma!4336
2025-03-02 21:11:49 +00:00
Lain Soykaf
a184eccde7 Safezip: Fix test (issue was a difference in file ordering between otp26 and otp27) 2025-03-02 23:18:51 +04:00
lain
b2640f0dc4 Merge branch 'pl-fe' into 'develop'
Include my frontend in available frontends

See merge request pleroma/pleroma!4334
2025-03-02 19:11:27 +00:00
mkljczk
7bfa3bf282 Include my frontend in available frontends
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-03-02 17:38:22 +01:00
lain
a7b6d3c1d1 Merge branch 'changelog' into 'develop'
remove changelog entries from changelog.d

See merge request pleroma/pleroma!4335
2025-03-02 15:59:50 +00:00
mkljczk
bc722623b3 remove changelog entries from changelog.d
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-03-02 16:43:34 +01:00
lain
16944eb9da Merge branch 'stable' into 'develop'
2.9.0 mergeback

See merge request pleroma/pleroma!4332
2025-03-01 17:47:12 +00:00
lain
af6d5470d2 Merge branch 'release/2.9.0' into 'stable'
Release/2.9.0

See merge request pleroma/pleroma!4331
2025-03-01 16:41:38 +00:00
Lain Soykaf
cd5f018206 SafeZip Test: Skip failing CI tests for the release (tests work fine locally) 2025-03-01 20:08:19 +04:00
Lain Soykaf
79cbc74aa9 Linting 2025-03-01 19:05:20 +04:00
Lain Soykaf
a24e894b2b Update changelog 2025-03-01 18:14:36 +04:00
Lain Soykaf
e88eb24443 Mix: Bump version to 2.9.0 2025-03-01 17:49:52 +04:00
Lain Soykaf
32acdf0936 Merge branch 'security-2.9' into release/2.9.0 2025-03-01 17:45:28 +04:00
Oneric
13a88bd1a5 Register APNG MIME type
The newest git HEAD of MIME already knows about APNG, but this
hasn’t been released yet. Without this, APNG attachments from
remote posts won’t display as images in frontends.

Fixes: akkoma#657
2025-03-01 17:26:46 +04:00
Lain Soykaf
706bfffcda Linting 2025-03-01 17:16:48 +04:00
Lain Soykaf
88ee385302 Transmogrifier: Strip internal fields 2025-03-01 17:13:47 +04:00
Lain Soykaf
d6a136f823 Config: Deactivate client api by default 2025-03-01 15:49:01 +04:00
Lain Soykaf
4604f2944e Merge branch 'pleroma-ensure-authorized-fetch' into security-2.9 2025-03-01 14:07:02 +04:00
feld
a8e863e0d6 Merge branch 'rich-media-ordering' into 'develop'
Rich Media Parser should use first image found

Closes #3356

See merge request pleroma/pleroma!4329
2025-03-01 02:01:22 +00:00
Mark Felder
ac0882e348 Filter the parsed OpenGraph/Twittercard tags and only retain the ones we intend to use. 2025-02-28 17:24:23 -08:00
feld
b770850903 Merge branch 'retire-mrfs' into 'develop'
Retire MRFs DNSRBL, FODirectReply, and QuietReply

See merge request pleroma/pleroma!4330
2025-03-01 01:12:31 +00:00
Mark Felder
2c9d071aad Retire MRFs DNSRBL, FODirectReply, and QuietReply
DNSRBL was a neat experiment which should live out of tree. It works and could be used to coordinate rules across different servers, but Simple Policy will always be better

FODirectReply and QuietReply have reliability issues as implemented in an MRF. If we want to expose this functionality to admins it should be a setting that overrides the chosen scope during CommonAPI.post instead of trying to rewrite the recipients with an MRF.
2025-02-28 16:43:28 -08:00
Mark Felder
2137b681dc Fix image URLs in TwitterCard parser test
The logic has been changed to ensure we always choose the first image if multiple are specified. This also applies when both OpenGraph and TwitterCard tags are published on a page. We parse for OpenGraph tags first and in this case the website was intentionally serving different images for TwitterCards and OpenGraph.
2025-02-28 15:26:13 -08:00
Mark Felder
cb073a9cd0 Rich Media Parser should use first og:image 2025-02-28 15:12:49 -08:00
feld
63663ac88b Merge branch 'twittercard-image-order' into 'develop'
Fix OpenGraph/TwitterCard meta tag ordering for posts with multiple attachments

See merge request pleroma/pleroma!4328
2025-02-28 22:11:06 +00:00
Mark Felder
7bdeb9a1e5 Fix OpenGraph/TwitterCard meta tag ordering for posts with multiple attachments 2025-02-28 13:36:00 -08:00
tusooa
ca3c2a4ffa Verify a local Update sent through AP C2S so users can only update their own objects 2025-02-28 13:01:06 +04:00
Lain Soykaf
bf134664b4 PackTest: Add test for skipping emoji 2025-02-28 12:53:15 +04:00
Lain Soykaf
2fcb90f369 Emoji, Pack, Backup, Frontend: Use SafeZip 2025-02-27 17:06:15 +04:00
Lain Soykaf
b89070a6ad SafeZip: Add tests. 2025-02-27 15:30:20 +04:00
Oneric
0f5ac7e86d Add SafeZip module
This will replace all the slightly different safety workarounds at
different ZIP handling sites and ensure safety is actually consistently
enforced everywhere while also making code cleaner and easiert to
follow.
2025-02-27 14:19:50 +04:00
Lain Soykaf
70a784e16a AutolinkerToLinkifyTest: Asyncify 2025-02-25 17:36:05 +04:00
Lain Soykaf
fd128ec7c2 ConfigControllerTest: Fix it! 2025-02-25 17:18:49 +04:00
Lain Soykaf
c31fabdebd Mogrify/Mogrifun: Asyncify 2025-02-25 17:08:21 +04:00
Lain Soykaf
ee291f08e8 AnonymizeFilename: Asyncify 2025-02-25 16:40:45 +04:00
Lain Soykaf
5851d787b6 Merge branch and resolve conflict in database_test.exs 2025-02-25 16:23:46 +04:00
Lain Soykaf
bee027e511 DatabaseTest: Include user_follows_hashtag in expected tables 2025-02-25 16:16:15 +04:00
mkljczk
d3e310d769 Credo
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-25 10:40:51 +01:00
Lain Soykaf
7ccf339523 LanguageDetectorTest: Rename 2025-02-25 13:18:32 +04:00
Lain Soykaf
584e4efaaf mox_testing.md: Update with more information 2025-02-25 12:49:10 +04:00
Lain Soykaf
1e35ea785a LanguageDetector: Use StaticStubbedConfigMock. 2025-02-25 12:39:31 +04:00
Lain Soykaf
35814de0df LanguageDetectorTests: Switch to mox 2025-02-25 12:31:19 +04:00
Lain Soykaf
edfb1deb1c Application: Don't verify requirements during test at startup. 2025-02-25 12:20:19 +04:00
Lain Soykaf
ccc6f2b288 Docs: Add mox testing info 2025-02-25 12:19:49 +04:00
Lain Soykaf
1ebbab1618 AppTest: Make test more resilient. 2025-02-24 17:15:59 +04:00
Lain Soykaf
4b3a985660 PackTest: Make test more resilient 2025-02-24 17:15:48 +04:00
Lain Soykaf
229ce66a8f DataCase: By default, stub DateTime. 2025-02-23 17:52:33 +04:00
Lain Soykaf
263b02ffcb Tests: Use StaticConfig when possible. 2025-02-23 17:52:17 +04:00
Lain Soykaf
a92b1fbded UserRelationshipTest: Don't use Mock. 2025-02-23 17:51:25 +04:00
mkljczk
3b74d13147 Do not call LanguageDetector when not language is provided
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-22 18:31:26 +01:00
mkljczk
d7f9d30b2c Merge downstream changes
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-22 18:14:35 +01:00
mkljczk
22bbe55b55 fix
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-22 16:03:05 +01:00
mkljczk
d0dac30ac6 Merge downstream changes
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-22 15:53:44 +01:00
mkljczk
013c60e13a Merge remote-tracking branch 'origin/develop' into translate-posts 2025-02-22 14:07:23 +01:00
mkljczk
2b1ef1bbdf Merge remote-tracking branch 'origin/develop' into language-detection 2025-02-22 14:05:53 +01:00
lain
6f48ade417 Merge branch 'post-languages' into 'develop'
Allow to specify post language

See merge request pleroma/pleroma!3940
2025-02-22 12:42:42 +00:00
lain
801a2256f4 Merge branch 'follow-hashtags' into 'develop'
Hashtag following (from Akkoma)

See merge request pleroma/pleroma!4307
2025-02-22 12:26:18 +00:00
lain
fe3c72f7a2 Merge branch 'docs-fix' into 'develop'
Cheatsheet: Use the correct section

See merge request pleroma/pleroma!4325
2025-02-22 12:18:19 +00:00
Lain Soykaf
0d7d6ebebb Cheatsheet: Use the correct section 2025-02-22 16:17:30 +04:00
feld
ce3a2b49f2 Merge branch 'feld/emailed-patch' into 'develop'
Fix missing check for domain presence in rich media ignore_host configuration

See merge request pleroma/pleroma!4324
2025-02-22 02:16:38 +00:00
Mark Felder
f26509bf16 Fix missing check for domain presence in rich media ignore_host configuration 2025-02-21 17:38:55 -08:00
mkljczk
31e3b98641 Merge branch 'fix-incoming-scrobbles' into 'develop'
Allow incoming "Listen" activities

See merge request pleroma/pleroma!4323
2025-02-17 21:07:57 +00:00
mkljczk
d905fa0ad8 Allow incoming "Listen" activities
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-17 21:28:07 +01:00
mkljczk
ce4c07cc2b update test
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-17 19:21:08 +01:00
mkljczk
04af8bfd9c credo
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-17 18:26:24 +01:00
mkljczk
120fbbc97e Include contentMap in outgoing posts
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-02-17 17:55:03 +01:00
mkljczk
ea01b5934f Merge remote-tracking branch 'origin/develop' into post-languages 2025-02-17 17:36:02 +01:00
lain
a1f4da7ae2 Merge branch '3355-vips-blurhash' into 'develop'
AnalyzeMetadata: Don't crash on grayscale image blurhash

Closes #3355

See merge request pleroma/pleroma!4319
2025-01-30 09:19:59 +00:00
Lain Soykaf
ebd8278910 Add changelog 2025-01-30 12:32:16 +04:00
Lain Soykaf
81ab906466 AnalyzeMetadata: Don't crash on grayscale image blurhash 2025-01-30 12:18:20 +04:00
mkljczk
011d70df79 Merge branch 'fix-mastodon-edits' into 'develop'
Fix Mastodon incoming edits with inlined "likes"

See merge request pleroma/pleroma!4318
2025-01-28 22:33:08 +00:00
mkljczk
8cd7716872 Fix Mastodon incoming edits with inlined "likes"
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-01-28 22:47:42 +01:00
lain
acced73e5d Merge branch 'description' into 'develop'
description.exs: Remove suggestion referencing a deleted module

See merge request pleroma/pleroma!4316
2025-01-21 18:15:11 +00:00
mkljczk
4128ea3948 description.exs: Remove suggestion referencing a deleted module
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-01-21 18:24:42 +01:00
mkljczk
f2c612d4ae Merge branch 'actor-published' into 'develop'
Include "published" in actor view

See merge request pleroma/pleroma!4312
2025-01-21 13:03:35 +00:00
Haelwenn
4461cc984d Merge branch 'proxy-redirect' into 'develop'
MediaProxyController: Use 301 for permanent redirects

See merge request pleroma/pleroma!4313
2025-01-21 09:31:17 +00:00
Lain Soykaf
2226171890 MediaProxyController: Use 301 for permanent redirects 2025-01-21 12:24:56 +04:00
mkljczk
38b17933e1 Include "published" in actor view
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-01-19 16:26:46 +01:00
mkljczk
1bebc900ed Merge branch 'backup-links' into 'develop'
Link to exported outbox/followers/following collections in backup actor.json

See merge request pleroma/pleroma!4311
2025-01-18 23:33:10 +00:00
mkljczk
855294bb3d Link to exported outbox/followers/following collections in backup actor.json
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-01-09 12:58:51 +01:00
mkljczk
aa74c87443 fix tests
Signed-off-by: mkljczk <git@mkljczk.pl>
2024-12-30 22:41:53 +01:00
mkljczk
36b71733a0 fix alias ordering
Signed-off-by: mkljczk <git@mkljczk.pl>
2024-12-30 21:01:41 +01:00
mkljczk
d818a3d762 Merge remote-tracking branch 'origin/develop' into translate-posts 2024-12-30 18:17:50 +01:00
mkljczk
f565cf2b5b update spec
Signed-off-by: mkljczk <git@mkljczk.pl>
2024-12-30 18:11:21 +01:00
mkljczk
ddf5bfc995 Update changelog
Signed-off-by: mkljczk <git@mkljczk.pl>
2024-12-30 17:58:54 +01:00
FloatingGhost
bdb9f888d7 Add /api/v1/followed_tags
Signed-off-by: mkljczk <git@mkljczk.pl>
2024-12-30 17:57:57 +01:00
floatingghost
c94c6eac22 Remerge of hashtag following (#341)
this time with less idiot

Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/341
Signed-off-by: mkljczk <git@mkljczk.pl>
2024-12-30 17:56:18 +01:00
lain
138ead9856 Merge branch 'mergeback/2.8.0-image-fixes' into 'develop'
Mergeback/2.8.0 image fixes

See merge request pleroma/pleroma!4306
2024-12-21 09:20:20 +00:00
lain
fe3e61f6ec Merge branch 'maint/hexpm-images' into 'stable'
Switching release building to mostly use hex.pm images

See merge request pleroma/pleroma!4305
2024-12-21 07:24:16 +00:00
Lain Soykaf
6f3d82e2a0 Add changelog 2024-12-20 16:16:54 +04:00
Lain Soykaf
7dc90f5ea4 Switch release builder to hexpm images (mostly) 2024-12-20 16:14:08 +04:00
lain
a902b53b24 Merge branch '2.8.0-release-fix' into 'stable'
CI: Allow failure for non-musl arm for now

See merge request pleroma/pleroma!4304
2024-12-20 03:52:30 +00:00
Lain Soykaf
89e92121c2 CI: Allow failure for non-musl arm for now 2024-12-20 07:37:15 +04:00
lain
64660423c5 Merge branch 'mergeback/2.8.0' into 'develop'
Mergeback/2.8.0

See merge request pleroma/pleroma!4302
2024-12-19 10:47:04 +00:00
lain
1170dfdd49 Merge branch 'release/2.8.0' into 'stable'
Release/2.8.0

See merge request pleroma/pleroma!4295
2024-12-19 10:15:30 +00:00
Lain Soykaf
c0fdd0e2cf Update changelog 2024-12-09 12:48:11 +04:00
tusooa
b51f5a84eb Verify a local Update sent through AP C2S so users can only update their own objects 2024-12-09 12:43:08 +04:00
Lain Soykaf
8c6b3d3ce6 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into release/2.8.0 2024-11-28 11:23:07 +04:00
Haelwenn
16027b769c Merge branch 'fix/install-frontend-in-otp27' into 'develop'
Fix installing frontend in Erlang/OTP 27.1+

See merge request pleroma/pleroma!4300
2024-11-27 14:48:53 +00:00
kPherox
3f98c8bd1b
fix: skip directory entries
In OTP 27.1 or later, `:zip.unzip/2` without `:skip_directories` option returns directory entries.
However in OTP 26, passing `:skip_directories` returns a `:bad_option` error, so this option is not available for compatibility.
2024-11-27 17:55:33 +09:00
lain
36f8b924ae Merge branch 'mergeback/2.7.1' into 'develop'
mergeback: Version 2.7.1

See merge request pleroma/pleroma!4299
2024-11-27 08:09:51 +00:00
Haelwenn (lanodan) Monnier
3a8e24fed4
Merge remote-tracking branch 'pleroma/stable' into mergeback/2.7.1 2024-11-26 16:46:47 +01:00
Haelwenn
31487e5be4 Merge branch 'release/2.7.1' into 'stable'
Version 2.7.1

See merge request pleroma/pleroma!4298
2024-11-26 13:38:35 +00:00
Haelwenn (lanodan) Monnier
7bb2dccc05
Version 2.7.1 2024-11-26 14:09:09 +01:00
feld
6a0883e5d3
Merge branch 'bugfix-truncate-remote-user-fields' into 'develop'
User: truncate remote user fields instead of rejecting

See merge request pleroma/pleroma!4220
2024-11-26 14:06:49 +01:00
lain
53c2d2cd87
Merge branch 'mastodon-websocket-fix' into 'develop'
Fix Mastodon WebSocket authentication

See merge request pleroma/pleroma!4206
2024-11-26 14:06:31 +01:00
lain
f45f17b5ff
Merge branch 'follow-validator' into 'develop'
Do not require a cc field when validating an incoming Follow activity

See merge request pleroma/pleroma!4212
2024-11-26 14:04:45 +01:00
feld
a6e97c497b
Merge branch 'following-state-bug' into 'develop'
Fix Following status bug

See merge request pleroma/pleroma!4251
2024-11-26 14:04:21 +01:00
feld
2977779e94
Merge branch 'well-known' into 'develop'
NodeInfo: Accept application/activity+json requests

See merge request pleroma/pleroma!4242
2024-11-26 14:03:18 +01:00
feld
ced6b10c70
Merge branch 'swoosh-mailgun' into 'develop'
Fix Swoosh Mailgun support

See merge request pleroma/pleroma!4217
2024-11-26 13:58:48 +01:00
lain
d92d6132f2 Merge branch 'meilisearch/misc-fixes' into 'develop'
Miscellaneous fixes for Meilisearch

See merge request pleroma/pleroma!4296
2024-11-21 14:29:26 +00:00
Mint
462a6a2000 Revert "Docs: fix OTP mix task command for Meilisearch"
This reverts commit 3a82a51a6e.
2024-11-21 16:52:30 +03:00
lain
2482d56153 Merge branch 'fix-module-search-in-pleroma-ctl' into 'develop'
B ReleaseTasks: Fix task module finding.

See merge request pleroma/pleroma!4297
2024-11-21 13:15:33 +00:00
Lain Soykaf
14dbf789b3 Linting 2024-11-21 16:32:05 +04:00
Lain Soykaf
551534f3ee B ReleaseTasks: Fix task module finding. 2024-11-21 16:07:09 +04:00
Mint
da7132caba Remove unused import 2024-11-21 02:40:27 +03:00
Mint
af7de4c17a Changelog 2024-11-21 02:17:53 +03:00
Mint
3a82a51a6e Docs: fix OTP mix task command for Meilisearch 2024-11-21 02:16:36 +03:00
Mint
d65f768b59 Meilisearch: stop attempting to index posts with nil date 2024-11-21 02:14:55 +03:00
Mint
c9f9ec04c8 Meilisearch: use PUT method for indexing Mix task
See https://github.com/meilisearch/meilisearch/issues/2619
2024-11-21 02:13:10 +03:00
Lain Soykaf
0d8c2827e1 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into release/2.8.0 2024-11-13 14:05:27 +04:00
lain
dcb0c47773 Merge branch 'mastodon-websocket-fix' into 'develop'
Fix Mastodon WebSocket authentication

See merge request pleroma/pleroma!4206
2024-11-13 08:22:44 +00:00
lain
83b866b257 Merge branch 'bump-lexbor' into 'develop'
bump fast_html to 2.3.0

See merge request pleroma/pleroma!4294
2024-11-13 07:18:18 +00:00
Haelwenn (lanodan) Monnier
0c3b71e1cc
mix.lock: bump fast_html to 2.3.0 2024-11-13 05:17:51 +01:00
lain
62bbed1e58 Merge branch 'token-view-scopes' into 'develop'
Include session scopes in TokenView

See merge request pleroma/pleroma!4273
2024-11-12 11:18:10 +00:00
lain
4626a9280a Merge branch 'activity-pub-metadata' into 'develop'
Add metadata provider for ActivityPub alternate links

See merge request pleroma/pleroma!4286
2024-11-12 10:49:36 +00:00
Lain Soykaf
29b048d351 B TwitterAPI/ControllerTest: Actually test the keys 2024-11-12 14:35:02 +04:00
Lain Soykaf
2baa9b0072 Merge branch 'develop' into pleroma-token-view-scopes 2024-11-12 14:33:30 +04:00
lain
8b31316d2d Merge branch 'tusooa/se-opt-out' into 'develop'
Fix nonexisting user will not generate metadata for search engine opt-out

Closes #3329

See merge request pleroma/pleroma!4279
2024-11-12 10:24:28 +00:00
Lain Soykaf
5b3e4cf49b B Providers/ActivityPub: Ensure that nothing explodes on unexpected input. 2024-11-12 14:22:02 +04:00
lain
a815feb299 Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!4287
2024-11-12 10:12:09 +00:00
Codimp
1e9edccab8 Translated using Weblate (French)
Currently translated at 5.4% (53 of 974 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/fr/
2024-11-12 10:01:15 +00:00
lain
91b26c683a Merge branch 'fix/vapid_keyword_fallback' into 'develop'
push: make vapid_config fallback to empty array

See merge request pleroma/pleroma!4276
2024-11-12 10:01:05 +00:00
lain
6941c47ac8 Merge branch 'develop' into 'tusooa/se-opt-out'
# Conflicts:
#   lib/pleroma/web/metadata/providers/feed.ex
2024-11-12 09:58:28 +00:00
lain
ee3ab8b625 Merge branch 'atom-tag' into 'develop'
Metadata: Do not include .atom feed links for remote accounts

See merge request pleroma/pleroma!4281
2024-11-12 09:44:29 +00:00
lain
f7bf9a8c8f Merge branch 'dedupe-sharding' into 'develop'
Pleroma.Upload.Filter.Dedupe: sharding directory structure

See merge request pleroma/pleroma!4292
2024-11-12 09:22:44 +00:00
Lain Soykaf
ebea518c8c B DedupeTest: Add explicit test for the sharding structure 2024-11-12 12:43:16 +04:00
Lain Soykaf
8d2410948f Mix: Update version 2024-10-31 18:22:21 +04:00
Mark Felder
d2de251c4d Pleroma.Upload.Filter.Dedupe: sharding directory structure
Dedupe now uses a three-level sharding directory structure to improve performance when many files are uploaded and stored on a filesystem instead of an object store. (note: Minio still affected as it still uses a traditional filesystem)

This does not help if you already have hundreds of thousands of files uploaded. The media URLs are permanently part of the activity so the files cannot be relocated. A motivated user could write a tool to move the files and perhaps write an Nginx or equivalent redirect to make the files still accessible, but that is beyond the scope of this change.
2024-10-29 16:00:18 -04:00
feld
6099a94dbc Merge branch 'mediav2-fix' into 'develop'
Fix /api/v2/media returning the wrong status code for media processed synchronously

See merge request pleroma/pleroma!4291
2024-10-28 02:11:49 +00:00
Mark Felder
7d5ef81737 Fix /api/v2/media returning the wrong status code for media processed synchronously
The API should return a 202 only if data cannot be returned yet and a followup GET /api/v1/media/:id should be called to retrieve it. This is something Mastodon does when it needs to transcode large media files. It does not apply to Pleroma and causes apps to waste an API call when posting a status which causes apps to appear to hang on higher latency environments, such as on mobile networks.

https://docs.joinmastodon.org/methods/media/#v2
2024-10-27 21:52:42 -04:00
feld
2d591aedae Merge branch 'fzdevelop' into 'develop'
OpenBSD docs update

See merge request pleroma/pleroma!4290
2024-10-25 16:01:10 +00:00
Mark Felder
00b6a586ac OpenBSD needs libvips
Confirmed package exists by testing an OpenBSD 7.6 arm64 VM
2024-10-25 11:56:57 -04:00
Mark Felder
63c6dacfce Changelog 2024-10-25 11:40:58 -04:00
feld
bb3403abd8 Merge branch 'fzdevelop' into 'develop'
include vips in the media/graphics packages section

See merge request pleroma/pleroma!4289
2024-10-25 15:40:20 +00:00
Mark Felder
dc6362f71d Changelog 2024-10-25 11:38:20 -04:00
feld
7e3532a073 Merge branch 'release-tuning' into 'develop'
Release tuning

See merge request pleroma/pleroma!4275
2024-10-25 15:35:32 +00:00
Mark Felder
e1296737a6 Disable busywaits in releases 2024-10-25 11:34:54 -04:00
tusooa
78dc592696 Merge branch 'develop' into 'develop'
Some tidying and grammer improvements for these installation docs, based on my experience installing Pleroma on Ubuntu 24.04 a few minutes ago.

See merge request pleroma/pleroma!4288
2024-10-21 00:10:28 +00:00
Mark Jaroski
f048637b41 Some tidying and grammer improvements for these installation docs, based on my experience installing Pleroma on Ubuntu 24.04 a few minutes ago. 2024-10-21 00:10:27 +00:00
marcin mikołajczak
60ec42cb9c Add metadata provider for ActivityPub alternate links
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-10-12 23:45:18 +02:00
feld
639016bdee Merge branch 'refactor-change-password' into 'develop'
LDAP: permit password changing

See merge request pleroma/pleroma!4285
2024-10-11 20:48:20 +00:00
feld
4557cd960e Merge branch 'remote-report-policy' into 'develop'
Remote report policy

See merge request pleroma/pleroma!4280
2024-10-11 20:23:46 +00:00
feld
dd7f699d4a Merge branch 'tusooa/3331-fix-incoming-block' into 'develop'
Fix incoming Blocks being rejected

Closes #3331

See merge request pleroma/pleroma!4282
2024-10-11 20:22:21 +00:00
Mark Felder
b6a951cfb5 LDAP password changing changelog 2024-10-11 16:20:38 -04:00
Mark Felder
1da057e6a4 Reorganize the LDAP module 2024-10-11 15:51:56 -04:00
Mark Felder
6bc70b8b2a Add change_password/3 to LDAP module 2024-10-11 15:45:09 -04:00
Mark Felder
ff039f9530 Add example OpenLDAP ldif to enable users to change their own passwords 2024-10-11 15:41:08 -04:00
Mark Felder
67cc38b5ac Support password changes for LDAP auth backend 2024-10-11 15:39:38 -04:00
Mark Felder
23f78c7573 Refactor password changes to go through Pleroma.Web.Auth so they can be supported by the different auth backends 2024-10-11 14:29:15 -04:00
feld
3f3f8bc57a Merge branch 'poll-refresh' into 'develop'
Refactor Poll Refreshing

See merge request pleroma/pleroma!4278
2024-10-10 00:46:28 +00:00
Mark Felder
5b04c2bf13 Test the final refresh behavior of a PollWorker poll_end job 2024-10-09 20:15:00 -04:00
Mark Felder
03a6e33b81 Skip the final refresh job if the activity is local 2024-10-09 16:25:58 -04:00
fzorb fzorbius
37b1192b7b Should probably also include vips in the media/graphics packages section, as you need it to compile some library 2024-10-09 18:33:22 +00:00
marcin mikołajczak
ddedc575e7 Merge branch 'hashtag-feeds-restricted' into 'develop'
Repesct :restrict_unauthenticated for hashtag rss/atom feeds

See merge request pleroma/pleroma!4266
2024-10-09 09:42:53 +00:00
tusooa
f758b6e37c
Fix incoming Blocks being rejected 2024-10-08 23:09:59 -04:00
marcin mikołajczak
07cfbe4ae8 Merge branch 'profile-image-descriptions' into 'develop'
Federate avatar/header descriptions

See merge request pleroma/pleroma!4264
2024-10-06 20:05:36 +00:00
marcin mikołajczak
0c41d986de Metadata: Do not include .atom feed links for remote accounts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-10-06 17:02:31 +02:00
Mint
eb971aa022 Changelog 2024-10-03 20:03:52 +03:00
Mint
48af6850fc RemoteReportPolicy: Fix third-party report detection 2024-10-03 20:00:36 +03:00
Alex Gleason
55612cb8ee mix format 2024-10-03 20:00:15 +03:00
Mint
fd83b86b99 RemoteReportPolicy: add reject_third_party option 2024-10-03 20:00:15 +03:00
Alex Gleason
b7c91876d2 RemoteReportPolicy: add :reject_all option, fix tests 2024-10-03 19:59:39 +03:00
Alex Gleason
4533f171ab Add RemoteReportPolicy to reject reports without enough information 2024-10-03 19:59:39 +03:00
Mark Felder
a3038aa6a2 Increase poll refresh interval to 120 seconds 2024-10-03 11:01:33 -04:00
Mark Felder
b854e3836f Remove pattern that can never match 2024-10-03 10:30:32 -04:00
Mark Felder
fa8de790df Remove test superceded by logic change
We will not be inserting jobs that should be skipped due to updated_at
2024-10-03 10:19:11 -04:00
Mark Felder
ba2ae5e40b Check if a refresh is permitted by comparing timestamps before attempting to insert an Oban job
It's better to avoid inserting an Oban job that will just be rejected if it's not expensive to check.
2024-10-03 10:14:02 -04:00
tusooa
35bd197733
Fix nonexisting user will not generate metadata for search engine opt-out 2024-10-02 18:41:35 -04:00
Mark Felder
0a42a3f2ea Do not attempt to schedule poll refresh jobs for local activities 2024-10-02 11:05:17 -04:00
Mark Felder
9ff57946e7 Credo 2024-09-30 15:25:13 -04:00
Mark Felder
b735d9e6e1 Improve assertion 2024-09-30 14:55:38 -04:00
Mark Felder
2ab4049508 Poll refreshing changelog 2024-09-30 14:47:30 -04:00
Mark Felder
a1b384f63c Test that a poll refresh is cancelled if updated_at on the object is newer than the poll closing time 2024-09-30 14:45:41 -04:00
Mark Felder
b2340b5b77 Permit backdating the poll closed timestamp 2024-09-30 14:45:13 -04:00
Mark Felder
766edfe5b2 Test Poll refresh jobs stream out updates after refetching the object 2024-09-30 14:32:28 -04:00
Mark Felder
a2e7db43aa Rename assignment for consistency 2024-09-30 14:23:04 -04:00
Mark Felder
47ce3a4a96 Schedule a final poll refresh before streaming out the notifications 2024-09-30 14:17:35 -04:00
Mark Felder
4b3f604f95 Skip refetching poll results if the object's updated_at is newer than the poll closed timestamp 2024-09-30 14:02:41 -04:00
Mark Felder
c077a14ce1 Add Oban job to handle poll refreshing and stream out the update 2024-09-30 13:54:56 -04:00
Mark Felder
2380ae6dcc Validate an Oban job is inserted for poll refreshes 2024-09-30 13:38:13 -04:00
Mark Felder
382426e033 Remove Object.get_by_id_and_maybe_refetch/2
This was only used for poll refreshing and is not a good approach to the problem.
2024-09-30 12:41:09 -04:00
Haelwenn (lanodan) Monnier
7dd3a4d86d
push: make vapid_config fallback to empty array
2024-09-24T03:53:27.770757+00:00 NightmareMoon pleroma: path=/notice/AmJcSqyeyij4W70K36 [error] Preloading for /notice/AmJcSqyeyij4W70K36 failed.
    ** (FunctionClauseError) no function clause matching in Keyword.get/3
        (elixir 1.15.8) lib/keyword.ex:388: Keyword.get(nil, :public_key, nil)
        (pleroma 2.7.0-3067-g9b76dbd4-dev-lanodan2) lib/pleroma/web/mastodon_api/views/instance_view.ex:262: Pleroma.Web.MastodonAPI.InstanceView.pleroma_configuration/1
        (pleroma 2.7.0-3067-g9b76dbd4-dev-lanodan2) lib/pleroma/web/mastodon_api/views/instance_view.ex:45: Pleroma.Web.MastodonAPI.InstanceView.render/2
        (pleroma 2.7.0-3067-g9b76dbd4-dev-lanodan2) lib/pleroma/web/preload/providers/instance.ex:28: Pleroma.Web.Preload.Providers.Instance.build_info_tag/1
        (pleroma 2.7.0-3067-g9b76dbd4-dev-lanodan2) lib/pleroma/web/preload/providers/instance.ex:21: Pleroma.Web.Preload.Providers.Instance.generate_terms/1
        (pleroma 2.7.0-3067-g9b76dbd4-dev-lanodan2) lib/pleroma/web/preload.ex:13: anonymous fn/3 in Pleroma.Web.Preload.build_tags/2
2024-09-24 05:57:41 +02:00
Haelwenn
d2eb4992e2 Merge branch 'elixir-1.14-docker' into 'develop'
Dockerfile: Elixir 1.14

See merge request pleroma/pleroma!4274
2024-09-21 13:44:17 +00:00
Haelwenn (lanodan) Monnier
a1e3fb506b
Dockerfile: Elixir 1.14 2024-09-21 15:40:04 +02:00
Haelwenn
bc1b4f0be7 Merge branch 'features/mrf-id_filter' into 'develop'
Add id_filter to MRFs

See merge request pleroma/pleroma!3858
2024-09-21 12:27:35 +00:00
Haelwenn (lanodan) Monnier
0fa13c5535
MRF.SimplePolicy: Add id_filter/1 2024-09-21 14:07:26 +02:00
Haelwenn (lanodan) Monnier
30063c5914
MRF.DropPolicy: Add id_filter/1 2024-09-21 14:06:26 +02:00
Haelwenn (lanodan) Monnier
3dd6f65859
Object.Fetcher: Hook to MRF.id_filter 2024-09-21 14:06:26 +02:00
Haelwenn (lanodan) Monnier
03e14e759d
MRF: Add filtering against AP id 2024-09-21 14:06:24 +02:00
feld
196f108823 Merge branch 'oban-bump' into 'develop'
Oban: update to 2.18.3

See merge request pleroma/pleroma!4271
2024-09-19 21:42:49 +00:00
Mark Felder
d6a364dad4 Merge remote-tracking branch 'origin/develop' into oban-bump 2024-09-19 16:23:38 -04:00
feld
7c37fc6a71 Merge branch 'elixir-1.14' into 'develop'
Elixir 1.14

See merge request pleroma/pleroma!4272
2024-09-19 20:23:17 +00:00
marcin mikołajczak
23e5eed4e0 Include session scopes in TokenView
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-19 10:57:50 +02:00
Mark Felder
1bd28e7d59 CI script to build and publish an image for Elixir 1.14 2024-09-18 17:28:53 +00:00
Mark Felder
7e303600fb Remove old elixir 1.12 build image generation script 2024-09-18 17:15:55 +00:00
Mark Felder
f00545d85b Elixir 1.14 and Erlang/OTP 23 is now the minimum supported release 2024-09-18 13:14:17 -04:00
feld
6358294943 Merge branch 'ldap-call' into 'develop'
LDAP: fix compile warning

See merge request pleroma/pleroma!4270
2024-09-18 16:20:45 +00:00
Mark Felder
ecd1b8393b Oban: update to 2.18.3
This release includes the fix which should prevent the scenario where Postgrex crashes can cause Oban to get into a state where it will stop processing jobs.
2024-09-18 12:09:27 -04:00
Mark Felder
73204c1bca LDAP: fix compile warning
Sometimes the compile will emit the following warning, so we'll just avoid it by making it call a function in the LDAP module which will never have this problem.

warning: :GenServer.call/2 is undefined (module :GenServer is not available or is yet to be defined)
2024-09-18 11:58:52 -04:00
feld
8776d31794 Merge branch 'swoosh-mua' into 'develop'
Add dependencies for Swoosh's Mua mail adapter

See merge request pleroma/pleroma!4263
2024-09-17 19:45:29 +00:00
Mint
1de5208a9e Cheatsheet: add Mua mail adapter config 2024-09-17 22:03:43 +03:00
feld
f423534ef0 Merge branch 'ldap-tls' into 'develop'
LDAP: refactor to a GenServer

See merge request pleroma/pleroma!4268
2024-09-17 18:15:35 +00:00
Mark Felder
35ddb1d2c8 LDAP genserver changelog 2024-09-17 13:57:10 -04:00
Mark Felder
2b482e34eb Improve matching on bind errors 2024-09-17 13:54:57 -04:00
Mark Felder
ea63533cf2 Change :connection to :handle to match upstream nomenclature 2024-09-17 13:46:56 -04:00
Mark Felder
1d123832da Formatting 2024-09-17 13:46:49 -04:00
Mark Felder
21bf229731 Reduce LDAP timeouts
10 seconds is way too long for any login attempt or search result. LDAP should always be fast.
2024-09-17 13:43:22 -04:00
Mark Felder
363b462c54 Make the email attribute configurable
While here, fix the System.get_env usage to use the normal fallback value method and improve the UID label description
2024-09-17 13:40:15 -04:00
Mark Felder
14a9663f1a Remove cacertfile as child of SSL and TLS options
We need to pass the cacerts (list of charlist encoded certs) not cacertfile, so our new cacertfile setting handles this for us.
2024-09-17 13:40:15 -04:00
Mark Felder
a1972d57e3 Link the eldap connection process
Ensure if LDAP GenServer crashes it gets cleaned up, and we should crash and restart if somehow the eldap connection process crashes unexpectedly as we can't seem to receive any DOWN messages from it, etc.
2024-09-17 13:40:15 -04:00
Mark Felder
164ffbcab8 Fix return value when not doing STARTTLS 2024-09-17 13:40:15 -04:00
Mark Felder
d0ee899ab9 Only close connection if it is not nil 2024-09-17 13:40:15 -04:00
Mark Felder
123093a186 Ensure :ssl is started before we attempt to make the LDAP connection 2024-09-17 13:40:15 -04:00
Mark Felder
65a7b387c3 Require a reboot if LDAP configuration changes 2024-09-17 13:40:15 -04:00
Mark Felder
d82abf925d Ensure :cacertfile is configurable in ConfigDB 2024-09-17 13:40:15 -04:00
Mark Felder
44b836c94c Fix tests
We do not need to mock and verify connections are closed as the new Pleroma.LDAP GenServer will handle managing the connection lifetime
2024-09-17 13:40:15 -04:00
Mark Felder
7c04098dde Catchall for when LDAP is not enabled 2024-09-17 13:40:15 -04:00
Mark Felder
ead287d623 Credo 2024-09-17 13:40:08 -04:00
Mark Felder
9264b21907 Pleroma.LDAP
This adds a GenServer which will keep an LDAP connection open and auto reconnect on failure with a 5 second wait between retries. Another benefit is this prevents parsing the Root CAs for every login attempt as we only need to do it once per connection.
2024-09-17 13:40:08 -04:00
marcin mikołajczak
76cfc6127f Merge remote-tracking branch 'origin/develop' into ensure-authorized-fetch 2024-09-17 13:45:15 +02:00
feld
e7176bb998 Merge branch 'retry-tests' into 'develop'
Reapply "Custom mix task to retry failed tests once in CI pipeline"

See merge request pleroma/pleroma!4267
2024-09-16 20:13:10 +00:00
Mark Felder
e24e107f3d Merge remote-tracking branch 'origin/develop' into retry-tests 2024-09-16 11:51:22 -04:00
feld
3a0d4e9837 Merge branch 'ldap-tls' into 'develop'
LDAP: permit overriding the CA root, improve SSL/TLS

See merge request pleroma/pleroma!4265
2024-09-16 15:50:58 +00:00
Mark Felder
e59706c201 Reapply "Custom mix task to retry failed tests once in CI pipeline"
This reverts commit b281ad06de.
2024-09-16 11:42:55 -04:00
marcin mikołajczak
e74e0089bf Repesct :restrict_unauthenticated for hashtag rss/atom feeds
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-16 17:19:21 +02:00
marcin mikołajczak
309d22aca2 Allow disabling C2S ActivityPub API
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-16 13:44:36 +02:00
Mark Felder
91d1d7260b Retain the try do so an LDAP failure can fall back to local database.
This fixes tests but the automatic fallback may not be well documented behavior.
2024-09-15 23:18:18 -04:00
Mark Felder
af3bf8a462 Support implicit TLS connections
Update docs to clarify that the :ssl option is also for modern TLS, but the :tls option is only for STARTTLS

These options may benefit from being renamed but they match upstream terminology.
2024-09-15 14:00:19 -04:00
marcin mikołajczak
ad953143bb Require HTTP signatures (if enabled) for routes used by both C2S and S2S AP API
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-15 15:20:28 +02:00
marcin mikołajczak
8250a9764e Merge branch 'notifications-group-key' into 'develop'
Add `group_key` to notifications

See merge request pleroma/pleroma!4262
2024-09-15 10:07:52 +00:00
Mark Felder
5539fea3bb LDAP: permit overriding the CA root 2024-09-14 20:36:24 -04:00
marcin mikołajczak
1a120d0130 Federate avatar/header descriptions
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-14 21:32:32 +02:00
marcin mikołajczak
c1a1150888 Merge branch 'profile-image-descriptions' into 'develop'
Allow providing avatar/header descriptions

See merge request pleroma/pleroma!4227
2024-09-14 17:46:33 +00:00
marcin mikołajczak
0111659a1f Merge branch 'list-id-visibility' into 'develop'
Include list id in StatusView

See merge request pleroma/pleroma!4246
2024-09-14 17:46:09 +00:00
marcin mikołajczak
abf38b405d Merge branch 'manifest-icon-size' into 'develop'
Manifest: declare /static/logo.svg as 512x512 to match one bundled with pleroma

See merge request pleroma/pleroma!4260
2024-09-14 17:27:49 +00:00
Mint
e10db52e0a Add dependencies for Swoosh's Mua mail adapter 2024-09-13 02:58:59 +03:00
marcin mikołajczak
17b69c43d5 Add group_key to notifications
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-12 14:37:37 +02:00
marcin mikołajczak
affdcdb68d Manifest: declare /static/logo.svg as 512x512 to match one provided by pleroma-fe
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-12 11:27:29 +02:00
feld
360dd34f19 Merge branch 'ldap-tls' into 'develop'
LDAP Auth: fix TLS certificate verification

See merge request pleroma/pleroma!4259
2024-09-11 18:00:22 +00:00
Mark Felder
7def11d7c3 LDAP Auth: fix TLS certificate verification
Currently we only support STARTTLS and it was not verifying certificate and hostname correctly. We must pass a custom fqdn_fun/1 function so it knows what value to compare against.
2024-09-11 12:47:46 -04:00
Haelwenn
20e82c7456 Merge branch 'argon2' into 'develop'
Support and convert argon2 passwords

See merge request pleroma/pleroma!4257
2024-09-08 20:48:21 +00:00
Mint
7e91c3a306 Changelog 2024-09-08 05:41:48 +03:00
Mint
9de522ce50 Authentication: convert argon2 passwords, add tests 2024-09-08 05:32:40 +03:00
marcin mikołajczak
c9b28eaf9a Argon2 password support 2024-09-08 05:23:46 +03:00
feld
bb0cb06d8a Merge branch 'well-known' into 'develop'
NodeInfo: Accept application/activity+json requests

See merge request pleroma/pleroma!4242
2024-09-06 16:30:07 +00:00
feld
80f3e507d4 Merge branch 'dialyzer' into 'develop'
Dialyzer fixes

See merge request pleroma/pleroma!4254
2024-09-06 16:12:28 +00:00
feld
b871551d97 Merge branch 'oban-uniques' into 'develop'
Oban: more unique job constraints

See merge request pleroma/pleroma!4253
2024-09-06 16:02:06 +00:00
feld
7f3600fddd Merge branch 'scrubber-mention-hashtag' into 'develop'
Add tests for Mastodon mention hashtag class

See merge request pleroma/pleroma!4255
2024-09-06 15:52:06 +00:00
Mark Felder
1afcfd4845 Add tests for Mastodon mention hashtag class 2024-09-06 11:51:16 -04:00
Mark Felder
5b26c56624 Changelog 2024-09-06 11:34:06 -04:00
Mark Felder
06ce5e3b43 Dialyzer: pattern_match The pattern can never match the type {:diff, false}. 2024-09-06 11:27:07 -04:00
Mark Felder
1d0e3b1355 Dialyzer: The pattern variable _ can never match the type, because it is covered by previous clauses. 2024-09-06 11:24:37 -04:00
Mark Felder
06d6febff9 Dialyzer: The pattern variable _e@1 can never match the type, because it is covered by previous clauses. 2024-09-06 11:19:24 -04:00
Mark Felder
7eb579c191 Dialyzer: invalid contract 2024-09-06 11:18:12 -04:00
Mark Felder
bc16f09d7b Dialyzer: the pattern can never match the type
The original error was for the chat controller:

lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:104:pattern_match The pattern can never match the type {:error, :content_too_long | :forbidden | :no_content | :not_found} | {:user, nil}.

Improve typespecs for the Pipeline and apply them where it could be encountered
2024-09-06 11:12:15 -04:00
Mark Felder
fc3ea94a1c Dialyzer: the pattern can never match the type 2024-09-06 09:58:03 -04:00
Mark Felder
a887188890 Oban: more unique job constraints 2024-09-06 09:42:53 -04:00
feld
2c916ccd89 Merge branch 'following-state-bug' into 'develop'
Fix Following status bug

See merge request pleroma/pleroma!4251
2024-09-06 13:27:06 +00:00
feld
25db1a5d67 Merge branch 'oauth-app-spam2' into 'develop'
OAuth App Spam, revisited

See merge request pleroma/pleroma!4250
2024-09-05 21:19:09 +00:00
Mark Felder
5f573b4095 Credo: comment line length 2024-09-05 17:11:02 -04:00
Mark Felder
e51cd31a57 Bump credo to prevent it from crashing 2024-09-05 17:06:53 -04:00
Mark Felder
1797f5958a App orphans should only be removed if they are older than 15 mins 2024-09-05 20:55:28 +00:00
Mark Felder
4d76692db3 Fix Following status bug 2024-09-05 16:14:13 -04:00
Mark Felder
fb376ce005 Test Account View does not indicate following if a FollowingRelationship is missing 2024-09-05 16:14:06 -04:00
Mark Felder
53744bf146 Limit the number of orphaned to delete at 100 every 10 mins due to the cascading queries that have to check oauth_authorizations and oauth_tokens tables.
This should keep ahead of most app registration spam and not overwhelm lower powered servers.
2024-09-04 11:45:05 -04:00
Mark Felder
a1951f3af7 Add Cron worker to clean up orphaned apps hourly 2024-09-04 10:59:58 -04:00
Mark Felder
7bd0750787 Ensure apps are assigned to users 2024-09-04 10:40:37 -04:00
Mark Felder
427da7a99a Rate Limit the OAuth App spam 2024-09-04 09:22:58 -04:00
feld
fbcfbde833 Merge branch 'revert-9077d092' into 'develop'
Revert "Merge branch 'oauth-app-spam' into 'develop'"

See merge request pleroma/pleroma!4249
2024-09-04 02:41:31 +00:00
feld
92d5f0ac14 Revert "Merge branch 'oauth-app-spam' into 'develop'"
This reverts merge request !4244
2024-09-04 02:22:25 +00:00
marcin mikołajczak
6d5ae4d2e9 Include list id in StatusView
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-03 15:17:45 +02:00
marcin mikołajczak
fecfe8bf89 Merge branch 'scrubbers-allow-mention-hashtag' into 'develop'
scrubbers/default: Allow "mention hashtag" classes used by Mastodon

See merge request pleroma/pleroma!4245
2024-09-02 11:08:33 +00:00
marcin mikołajczak
37397a43be scrubbers/default: Allow "mention hashtag" classes used by Mastodon
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-09-02 12:39:29 +02:00
feld
9077d0925b Merge branch 'oauth-app-spam' into 'develop'
Fix OAuth app spam

See merge request pleroma/pleroma!4244
2024-09-01 18:24:06 +00:00
feld
61e4be396f Merge branch 'drop-unknown-deletes' into 'develop'
Drop unwanted activities from unknown actors

See merge request pleroma/pleroma!4236
2024-09-01 18:08:07 +00:00
Mark Felder
751d63d4bb Support OAuth App updating the website URL 2024-09-01 13:55:45 -04:00
Mark Felder
e3a7c1d906 Test that app scopes can be updated 2024-09-01 12:37:59 -04:00
Mark Felder
5a1144208d Prevent OAuth App flow from creating duplicate entries 2024-09-01 12:27:16 -04:00
Mark Felder
4ae17c6294 NodeInfo: Accept application/activity+json requests 2024-08-30 15:25:21 -04:00
Mark Felder
bb235f913f Update changelog 2024-08-30 10:05:12 -04:00
Mark Felder
11ee94ae17 InboxGuardPlug: Add early rejection of unknown activity types 2024-08-30 10:05:09 -04:00
Mark Felder
e38f5f1a81 Add recognized activity types to a constant and use it in the test 2024-08-30 09:47:45 -04:00
feld
5205e846eb Update allowed activity types from strangers
Move is emitted from the old account
EmojiReact is ~ Like
Announced TBD
2024-08-30 09:30:33 -04:00
Mark Felder
094da5d634 Update changelog 2024-08-29 16:05:40 -04:00
Mark Felder
012132303f Test more types we do not want to receive from strangers 2024-08-29 16:05:40 -04:00
Mark Felder
2b39956acb Fix test title to be more specific as it has a broader but incorrect meaning 2024-08-29 16:05:40 -04:00
Mark Felder
990b2058df Remove unnecessary error match in ReceiverWorker 2024-08-29 16:05:40 -04:00
Mark Felder
e2cdae2c88 Change relay inbox response when not federating to a 403 for consistency 2024-08-29 16:05:40 -04:00
Mark Felder
16a9b34876 Convert to an Plug called InboxGuard 2024-08-29 16:05:36 -04:00
Mark Felder
06deacd58e Formatting 2024-08-29 11:59:42 -04:00
Mark Felder
7bcc21ad6f Switch test to the inbox 2024-08-29 11:59:42 -04:00
feld
27fcc42171 Use Pleroma.Object.Containment.get_actor/1 to reliably find the actor of an incoming activity or object 2024-08-29 11:59:42 -04:00
Mark Felder
1c394dd18c Move the check to the inbox 2024-08-29 11:59:42 -04:00
Mark Felder
4bc6f334f4 Revert unintentional change 2024-08-29 11:59:42 -04:00
Mark Felder
ceffb8a891 Drop incoming Delete activities from unknown actors 2024-08-29 11:59:42 -04:00
feld
62856ab18f Merge branch 'todo-fixes' into 'develop'
Clean up Elixir 1.13 TODOs

See merge request pleroma/pleroma!4233
2024-08-29 15:27:53 +00:00
Mark Felder
b5814dc9b3 Merge remote-tracking branch 'origin/develop' into todo-fixes 2024-08-29 11:01:02 -04:00
feld
8d07034608 Merge branch 'pleroma-http-stream' into 'develop'
Pleroma.HTTP: support streaming response bodies

See merge request pleroma/pleroma!4239
2024-08-29 14:54:01 +00:00
Mark Felder
c17a78c55a Rich Media: add stream byte counting as an extra protection against malicious URLs 2024-08-29 09:37:11 -04:00
Mark Felder
d01569822e Changelog 2024-08-28 19:57:18 -04:00
Mark Felder
8ab4dd20df Update comments, remove solved TODO 2024-08-28 19:52:29 -04:00
Mark Felder
0bf82a1745 Add an AdapterHelper for Finch so we can support streaming request bodies 2024-08-28 19:50:51 -04:00
feld
7910b235c7 Merge branch 'user-refresh-oban-tests' into 'develop'
ReceiverWorker: tests, improvements

See merge request pleroma/pleroma!4241
2024-08-28 23:24:33 +00:00
Mark Felder
1821ef4f15 Move user active check into Federator.perform/1 2024-08-28 18:35:09 -04:00
marcin mikołajczak
1e8b79956e Merge branch 'docs-fix' into 'develop'
Correct response in AdminAPI docs

See merge request pleroma/pleroma!4240
2024-08-28 22:04:18 +00:00
Mark Felder
e498d252e4 Changelog update 2024-08-28 18:03:33 -04:00
Mark Felder
8a3efa7152 More error annotations 2024-08-28 18:02:35 -04:00
Mark Felder
c5ca806aa0 Add back one of the duplicate checks to fix a test, document where it comes from 2024-08-28 17:57:34 -04:00
Mark Felder
380a6a6df3 :validate_object is not a real error returned from anywhere 2024-08-28 17:45:31 -04:00
Mark Felder
2346807ac9 Annotate error cases 2024-08-28 17:44:33 -04:00
Mark Felder
2e9515578a ReceiverWorker job canceled due to deleted object 2024-08-28 17:38:13 -04:00
Mark Felder
6ae629cfe0 Cancel ReceiverWorker jobs if the user account has been disabled / deactivated 2024-08-28 17:24:59 -04:00
Mark Felder
bb2f4a76b3 Add test for origin containment failures 2024-08-28 17:01:30 -04:00
Mark Felder
3dadb9ed08 Changelog 2024-08-28 16:37:46 -04:00
Mark Felder
48a4661885 Simplify test, move data into a json fixture
By removing the inReplyTo, tags, and cc we can simplify the test and it still passes signature validation
2024-08-28 16:31:59 -04:00
Mark Felder
66e1b40895 Cancel if the User fetch resulted in a 410 2024-08-28 16:04:12 -04:00
Mark Felder
60101e240d Add test confirming cancellation for activity by a deleted user 2024-08-28 15:54:49 -04:00
Mark Felder
fc450fdefc ReceiverWorker: cancel job if user fetch is forbidden
An instance block with authenticated fetch being required can cause this as we couldn't get the user to find their public key to verify the signature. Commonly observed if someone boosts/Announces a post from an instance that blocked you.
2024-08-28 15:45:16 -04:00
marcin mikołajczak
3419e2cbdd Correct response in AdminAPI docs
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-28 18:28:22 +02:00
Mark Felder
0804b73c0a This error is not returned by Tesla
Upstream has a bug filed for this as they aren't handling this error internally, so it was raising
2024-08-27 22:08:31 -04:00
Mark Felder
44901502ff Fix incorrect identifier for the with statement 2024-08-27 21:56:02 -04:00
Mark Felder
116fe77b77 Tesla.Middleware.Timeout breaks streaming bodies
These are executed by Oban now and Oban can enforce the timeout if the regular HTTP timeout is not sufficient.
2024-08-27 21:55:07 -04:00
Mark Felder
0a86d2b3ac Handle streaming response errors 2024-08-27 21:22:59 -04:00
Mark Felder
ec8db9d4ee RichMedia: skip the HTTP HEAD request for adapters that support streaming the response body 2024-08-27 21:09:15 -04:00
Mark Felder
bb279c2802 Pleroma.HTTP add AdapterHelper.can_stream? to assist with discovering if the current adapter supports returning a Stream body 2024-08-27 21:08:25 -04:00
Mark Felder
5f6506d864 Pleroma.HTTP: option stream: true will return a stream as the body for Gun adapter 2024-08-27 20:39:32 -04:00
marcin mikołajczak
9d9bc74e91 Expose language detection in features
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-27 23:30:47 +02:00
tusooa
58f646bcda Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!4200
2024-08-23 01:19:22 +00:00
Eric Zhang
16c6942df9 Translated using Weblate (Chinese (Simplified))
Currently translated at 28.1% (274 of 974 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
9e3fa89243 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (34 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-default/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
7b979ac09d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (50 of 50 strings)

Translation: Pleroma/Pleroma Backend (domain oauth_scopes)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-oauth_scopes/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
914fdc508d Translated using Weblate (Chinese (Simplified))
Currently translated at 19.8% (193 of 974 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
030be71307 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (100 of 100 strings)

Translation: Pleroma/Pleroma Backend (domain errors)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-errors/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
73c6d7eaeb Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (34 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-default/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
6ba1b79259 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (47 of 47 strings)

Translation: Pleroma/Pleroma Backend (domain posix_errors)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-posix_errors/zh_Hans/
2024-08-22 18:10:59 +00:00
Yating Zhan
1902323e97 Translated using Weblate (Chinese (Simplified))
Currently translated at 19.8% (193 of 974 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
743c4f2f5f Translated using Weblate (Chinese (Simplified))
Currently translated at 19.8% (193 of 974 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/zh_Hans/
2024-08-22 18:10:59 +00:00
Eric Zhang
99ace19ca9 Added translation using Weblate (Chinese (Simplified)) 2024-08-22 18:10:59 +00:00
feld
0f3920f791 Merge branch 'fix-imports' into 'develop'
Refactor Oban jobs for imports

See merge request pleroma/pleroma!4234
2024-08-22 18:10:47 +00:00
Mark Felder
39108c5f12 Remove unnecessary re-fetch of the actor 2024-08-22 13:43:01 -04:00
Mark Felder
a9aa810d3d Change imports to generate an Oban job per each task 2024-08-22 13:24:07 -04:00
Mark Felder
649e51b581 Fix Oban jobs for imports 2024-08-22 11:35:55 -04:00
marcin mikołajczak
3ee8d0eeaf Merge branch 'post-languages' into translate-posts 2024-08-22 13:07:49 +02:00
marcin mikołajczak
3e5517e7bb Merge remote-tracking branch 'origin/develop' into post-languages 2024-08-22 13:06:57 +02:00
Mark Felder
5138a4984b Skip changelog 2024-08-21 15:24:33 -04:00
Mark Felder
e65555e8c5 Remove workaround for URI.merge bug on nil fields before Elixir 1.13
https://github.com/elixir-lang/elixir/issues/10771
2024-08-21 15:11:42 -04:00
Mark Felder
010edcbcb5 Use Map.filter now that minimum Elixir version is 1.13 2024-08-21 14:50:19 -04:00
feld
08a444f6c3 Merge branch 'reachability' into 'develop'
Fix reachability based on results of publishing attempts

See merge request pleroma/pleroma!4231
2024-08-19 16:49:08 +00:00
feld
12d682c62f Merge branch 'remote-fetcher-fixes' into 'develop'
Improve Remote Object Fetcher error handling, Oban

See merge request pleroma/pleroma!4230
2024-08-19 16:48:25 +00:00
Mark Felder
1b8141b506 Address case where instance reachability status couldn't be updated 2024-08-19 11:12:28 -04:00
Mark Felder
55cc1ba50e Fix test cases for validating instance reachability based on results of publishing attempts
Now that we store the unreachable_since in the Oban job the value is no longer a %NaiveDateTime{} so the code was wrong
2024-08-19 11:12:25 -04:00
feld
2f5a1db56e Merge branch 'mogrify' into 'develop'
Update mogrify

See merge request pleroma/pleroma!4225
2024-08-18 01:01:31 +00:00
Mark Felder
089fa4d146 Improve Remote Object Fetcher error handling, Oban 2024-08-17 20:42:33 -04:00
Mark Felder
190a505ad3 Merge remote-tracking branch 'origin/develop' into mogrify 2024-08-17 17:57:27 -04:00
feld
ee26d85578 Merge branch 'bump-oban' into 'develop'
Update Oban to 2.18

See merge request pleroma/pleroma!4228
2024-08-17 21:35:20 +00:00
Mark Felder
7537c22b22 Update Oban to 2.18 2024-08-17 15:41:53 -04:00
marcin mikołajczak
917ac89b4f Update tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 20:01:25 +02:00
marcin mikołajczak
3498662712 Move new fields to pleroma object
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 19:59:39 +02:00
marcin mikołajczak
c802f3b7f6 Validate media description length
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 19:58:32 +02:00
marcin mikołajczak
855c5a234f Update docs
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 17:06:39 +02:00
marcin mikołajczak
071452a5d5 Update changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 17:03:12 +02:00
marcin mikołajczak
681765669c Add test for avatar description
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 17:02:44 +02:00
marcin mikołajczak
71ef9f9519 Allow providing avatar/header descriptions
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-17 16:36:27 +02:00
Mark Felder
e1333c4fa4 Update mogrify
Sent a pull request upstream to expand the version range depended on my blurhash

https://github.com/rinpatch/blurhash/pull/1
2024-08-16 10:10:01 -04:00
feld
fcf9ad5573 Merge branch 'bugfix-truncate-remote-user-fields' into 'develop'
User: truncate remote user fields instead of rejecting

See merge request pleroma/pleroma!4220
2024-08-16 00:37:10 +00:00
feld
c91fc03e61 Merge branch 'norifications-marker' into 'develop'
Fix 'Setting a marker should mark notifications as read'

Closes #2769

See merge request pleroma/pleroma!4223
2024-08-16 00:36:31 +00:00
feld
3119ed3648 Merge branch 'ci-git-fetch' into 'develop'
CI: GIT_STRATEGY: fetch

See merge request pleroma/pleroma!4224
2024-08-16 00:34:15 +00:00
Haelwenn (lanodan) Monnier
b0e3a86316
CI: GIT_STRATEGY: fetch
Seems to avoid fetching all the branches which was preventing shallow cloning from being actually useful.
2024-08-15 01:49:31 +02:00
marcin mikołajczak
8cd8cea3fb Fix 'Setting a marker should mark notifications as read'
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-14 19:28:11 +02:00
Haelwenn (lanodan) Monnier
3b1e6ac8f0
User: truncate remote user fields instead of rejecting 2024-08-14 18:09:13 +02:00
feld
5174c29d4c Merge branch 'fix-random-test-errors' into 'develop'
Fix random test failures, revert auto-retry failed tests

See merge request pleroma/pleroma!4221
2024-08-13 20:16:09 +00:00
Mark Felder
b281ad06de Revert "Custom mix task to retry failed tests once in CI pipeline"
This reverts commit ed2976b237.
2024-08-13 15:49:04 -04:00
Mark Felder
648e94b369 Fix the uploads migration mix task test which leaked a change to the configured Uploader 2024-08-13 15:28:31 -04:00
feld
ccf476a4c8 Merge branch 'mrf-cleanup' into 'develop'
MRF cleanup

See merge request pleroma/pleroma!4219
2024-08-13 18:52:43 +00:00
Mark Felder
2ba5ad8eb5 MRF cleanup
MRFs written over time have been inconsistent with the terminology of what is being processed. MRFs work on Activities, but generally we always named the assignments "message" or "object" which is really confusing when trying to debug or write tests.
2024-08-13 14:22:41 -04:00
feld
7388c4b5ca Merge branch 'mrf-tests' into 'develop'
MRF.FODirectReply: use Visibility module to verify the scope

See merge request pleroma/pleroma!4218
2024-08-13 13:59:25 +00:00
Mark Felder
b0c64945c2 MRF.FODirectReply: use Visibility module to verify the scope 2024-08-12 20:18:02 -04:00
Mark Felder
8c978727c2 MRF.QuietReply: add test for replies to unlisted posts 2024-08-12 20:10:09 -04:00
feld
4e7928c985 Merge branch 'followers-only-reply-direct-mrf' into 'develop'
MRF.FODirectReply

See merge request pleroma/pleroma!4091
2024-08-12 21:46:45 +00:00
feld
fe2ed3fbc1 Merge branch 'user-factory' into 'develop'
User Factory: include the nickname in the generated URLs

See merge request pleroma/pleroma!4214
2024-08-12 21:38:30 +00:00
feld
f87aa8b83c Merge branch 'deprecate-subscribe' into 'develop'
Mark `/api/v1/pleroma/accounts/:id/subscribe`/`unsubscribe` as deprecated

See merge request pleroma/pleroma!4216
2024-08-12 21:27:12 +00:00
Mark Felder
c0ca7a4eca User Factory: include the nickname in the generated URLs 2024-08-12 17:12:39 -04:00
Mark Felder
488c4b8b98 MRF.FODirectReply
Force replies to followers-only posts to always be direct
2024-08-12 17:06:29 -04:00
feld
c29441f30d Merge branch 'mrf-quietreply' into 'develop'
MRF.QuietReply

See merge request pleroma/pleroma!4213
2024-08-12 20:25:19 +00:00
Mark Felder
471f5c81fd Add module documentation 2024-08-12 16:07:45 -04:00
feld
aa4f5428d3 Merge branch 'identity-proofs' into 'develop'
Remove stub for /api/v1/accounts/:id/identity_proofs (deprecated by Mastodon 3.5.0)

See merge request pleroma/pleroma!4215
2024-08-12 19:53:32 +00:00
feld
d3fbbfb39a Merge branch 'swoosh-mailgun' into 'develop'
Fix Swoosh Mailgun support

See merge request pleroma/pleroma!4217
2024-08-12 19:52:37 +00:00
Mark Felder
b76dfd8146 Revert accidental removal of test unrelated to identity proofs 2024-08-12 15:36:01 -04:00
Mark Felder
c116024bba Fix Swoosh Mailgun support 2024-08-12 15:28:33 -04:00
marcin mikołajczak
34715b8581 remove unused alias
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-12 13:38:33 +02:00
marcin mikołajczak
c1c0f0b144 Mark /api/v1/pleroma/accounts/:id/subscribe/unsubscribe as deprecated
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-12 12:38:51 +02:00
marcin mikołajczak
29f7ab7116 Update test as /api/v1/endorsements is not a stub
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-12 12:25:12 +02:00
marcin mikołajczak
6e53e94bda Remove stub for /api/v1/accounts/:id/identity_proofs (deprecated by Mastodon 3.5.0)
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-12 12:23:38 +02:00
Mark Felder
5a134a46f7 We must change to/cc in the activity and inner object 2024-08-08 15:23:59 -04:00
Mark Felder
d6cc6aff9b Unintended commit 2024-08-08 14:22:25 -04:00
Mark Felder
a0af6cba09 Added MRF.QuietReply which prevents replies to public posts from being published to the timelines 2024-08-08 14:12:44 -04:00
feld
540e62c5fc Merge branch 'inactive-test' into 'develop'
Do not allow committing tests with a .ex extension

See merge request pleroma/pleroma!4211
2024-08-08 06:27:14 +00:00
lain
72b5974f81 Merge branch 'follow-validator' into 'develop'
Do not require a cc field when validating an incoming Follow activity

See merge request pleroma/pleroma!4212
2024-08-08 05:29:46 +00:00
Mark Felder
ca934b744f Remove validation for cc fields on Blocks 2024-08-07 21:51:43 -04:00
Mark Felder
526a57ff9f Remove validation for cc fields on Follow Accept/Reject 2024-08-07 21:51:22 -04:00
Mark Felder
fcda1b5e2a Improve variable name 2024-08-07 14:46:39 -04:00
Mark Felder
b25f67372b Improve the FollowValidator 2024-08-07 14:42:44 -04:00
Mark Felder
8f15000c0f Do not require a cc field when validating an incoming Follow activity
The cc field is not required and the code was keeping the cc if it existed on an activity or replacing it with the default of an empty list when casting. If any Follow activity was received with a cc field, it would attempt to keep it.

This was noticed in !4208 where we would craft Follow requests with a cc value of nil.
2024-08-07 14:38:29 -04:00
Mark Felder
d2d07bfe4b Add test for Follow objects with a cc 2024-08-07 14:04:20 -04:00
Mark Felder
9e42c6b6a7 Merge remote-tracking branch 'origin/develop' into inactive-test 2024-08-07 13:59:01 -04:00
feld
45611ed325 Merge branch 'workerhelper-fix' into 'develop'
Fix WebPush notifications not generating jobs

See merge request pleroma/pleroma!4210
2024-08-07 17:37:44 +00:00
Mark Felder
2531785384 Do not allow committing tests with a .ex extension 2024-08-07 13:07:54 -04:00
Mark Felder
6900040fd0 Update changelog 2024-08-07 13:03:25 -04:00
Mark Felder
721005b312 Fix WebPush notifications not generating jobs
Dialyzer pointed this one out.

The WorkerHelper removal in !4166 was missing this Oban.insert() and tests were not noticing any problems because we mocked the Push.send function instead of executing it and checking for the Oban job.
2024-08-07 13:00:31 -04:00
feld
c81c663db3 Merge branch 'commonapi-consistency' into 'develop'
Fix CommonAPI.follow/2 return values order

See merge request pleroma/pleroma!4209
2024-08-07 17:00:16 +00:00
Mark Felder
06e8ece4cc Fix CommonAPI.follow/2 which returned users in the reverse order they were provided to the function 2024-08-07 12:39:58 -04:00
feld
351a306d46 Merge branch 'stream-follow-relationships-count' into 'develop'
StreamerView: Do not leak follows count if hidden

See merge request pleroma/pleroma!4205
2024-08-07 16:17:58 +00:00
Mark Felder
9d27a074c1 Merge branch 'stream-follow-relationships-count' into develop 2024-08-07 11:48:52 -04:00
Mark Felder
ad7fe4e95d Tests to confirm wanted behavior 2024-08-07 11:47:59 -04:00
Mark Felder
7d33b53908 Improve the variable naming 2024-08-07 11:47:43 -04:00
feld
a2490ddd9f Merge branch 'remove/workerhelper' into 'develop'
Remove WorkerHelper

See merge request pleroma/pleroma!4166
2024-08-07 13:26:41 +00:00
Mark Felder
c284c4e3e6 Extract the logic from the map 2024-08-07 09:19:33 -04:00
feld
c0195895d2 Merge branch 'publisher-cc-fix' into 'develop'
Fix follow requests which get stuck pending

See merge request pleroma/pleroma!4208
2024-08-06 17:14:30 +00:00
Mark Felder
0bfe592048 Credo 2024-08-06 12:48:36 -04:00
Mark Felder
706fc7e1ec Remove unused mocks 2024-08-06 12:24:08 -04:00
Mark Felder
a01f0f0f03 Changelog 2024-08-06 12:20:12 -04:00
Mark Felder
9ae9e2fc5c Use a struct to hold the prepared data passed to publish_one/1 2024-08-06 12:16:06 -04:00
Mark Felder
83fcf42c70 Force cc to an empty list if undefined 2024-08-06 12:03:44 -04:00
Mark Felder
30eef434a9 Test that cc on a published Follow is an empty list 2024-08-06 11:59:53 -04:00
Mark Felder
21fee42157 Test Factory: ensure remote users have a valid inbox
Without a valid inbox we can't generate the publish_one Oban jobs
2024-08-06 11:54:18 -04:00
Mark Felder
0319d1ad3c Remove test, logic was flawed
Before splitting the publish_one/1 function into two parts for testing purposes we had logic that checked the keys of params for :unreachable_since and if it was absent it did not set the instance as reachable. There is also a test to validate that when unreachable_since is nil, we set it as reachable.

However the default value of :unreachable_since when an instance is reachable is nil. The test appears to be testing a scenario that does not exist in the real world, and with this refactor we will always have an :unreachable_since key.

We were attempting to update the reachability upon every successful federation because we always include it when we generate the publish_one jobs.
2024-08-06 11:17:34 -04:00
Mark Felder
f8bdcaa161 Split Federator.publish_one/1 into a second function called prepare_one/1 2024-08-06 11:16:04 -04:00
Mark Felder
16ba2742b7 Use the normal Oban test assertions 2024-08-06 09:55:09 -04:00
Haelwenn
9cf684d661 Merge branch 'get-statuses-param' into 'develop'
Support `id` param in `GET /api/v1/statuses`

See merge request pleroma/pleroma!4204
2024-08-05 07:34:05 +00:00
Mark Felder
8c91fd8785 Fix Mastodon WebSocket authentication
Mastodon uses the Sec-Websocket-Protocol header to send the auth token. It is not clear if this is a violation of the RFC, but Mastodon is not the first application in the wild to use this header for authentication purposes. Phoenix does not allow accessing this header, so we work around it temporarily with a minor patch to Phoenix 1.7.14. We will reach out to Phoenix to discuss how to make this use case possible.
2024-08-04 15:04:29 -04:00
Mark Felder
3e4768efca Revert "Remove invalid test"
This reverts commit d0f4b2b02f.
2024-08-04 13:59:13 -04:00
marcin mikołajczak
52f7033f7a StreamerView: Do not leak follows count if hidden
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-04 16:03:25 +02:00
marcin mikołajczak
de9194893e Support id param in GET /api/v1/statuses
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-03 18:28:43 +02:00
feld
b389b85d77 Merge branch 'gun/snooze' into 'develop'
Gun: Publisher job behavior improvement

See merge request pleroma/pleroma!4202
2024-08-02 13:49:11 +00:00
Mark Felder
1f986ec713 Gun: Publisher job behavior improvement
Gun's connection pool also returns an error if duplicate workers are launched simultaneously. Snooze on this error as well, and lower the snooze to 3 seconds with the optimism that the connection will still be open by then and the delivery can be completed quickly.

The original setting of 30 seconds is pretty high and means there's an unnatural lag between deliveries of activities destined to the same server that were created at nearly the same time. This configuration should be more efficient.
2024-08-02 09:25:18 -04:00
lain
8f1866e3ad Merge branch 'stable' into 'develop'
Stable

See merge request pleroma/pleroma!4201
2024-08-02 10:45:44 +00:00
marcin mikołajczak
f7a7517296 Merge remote-tracking branch 'origin/develop' into translate-posts 2024-08-02 09:42:17 +02:00
marcin mikołajczak
b430093cab Translation: Rename target language param
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-02 09:41:48 +02:00
lain
36d469cf02 Merge branch 'release/2.7.0' into 'stable'
v2.7.0

See merge request pleroma/pleroma!4179
2024-08-01 08:53:29 +00:00
Lain Soykaf
a5d32aab50 Mix: Update version to 2.7.0 2024-08-01 11:49:57 +04:00
Lain Soykaf
574bc1fa5f Frontend: Update to 2.7.0 2024-08-01 11:49:36 +04:00
Lain Soykaf
2e6ddc4991 Prepare changelog 2024-08-01 11:44:05 +04:00
feld
f2dc706f6f Merge branch 'fix/disclose_client' into 'develop'
Fix User.disclose_client never working correctly

See merge request pleroma/pleroma!4199
2024-07-31 18:38:49 +00:00
Mark Felder
e6951e7e40 Fix User.disclose_client never working correctly
Our test environment cheats by constructing a conn with a custom oauth_access/2 function. This assigns a :token to the conn but due to the way it is constructed it has the :user preloaded. When the OAuth Plug fetches a token it does not preload the user, so the check for user.disclose_client was always nil and assumed to be false.

Preloading the :user ensures the test environment matches reality.
2024-07-31 14:14:35 -04:00
feld
f646b0554f Merge branch 'fix-migration' into 'develop'
Fix publisher job migration error

See merge request pleroma/pleroma!4198
2024-07-30 16:29:48 +00:00
Mark Felder
b50261262e Fix publisher job migration error 2024-07-30 11:48:10 -04:00
Mark Felder
d56b889cf1 Update changelog 2024-07-30 11:34:53 -04:00
Mark Felder
1d3a92be11 Remove :workers config from ConfigDB 2024-07-30 11:34:53 -04:00
Mark Felder
52e9bec156 Remove WorkerHelper 2024-07-30 11:34:48 -04:00
feld
355b028c23 Merge branch 'hackney-pool-timeout' into 'develop'
Align Hackney and Gun connection pool timeouts

See merge request pleroma/pleroma!4197
2024-07-30 15:33:17 +00:00
feld
a90838accf Merge branch 'federation/increase' into 'develop'
Increase federator outgoing job parallelism

See merge request pleroma/pleroma!4196
2024-07-30 15:31:18 +00:00
feld
18469f3b1d Merge branch 'oban/simpler-publish' into 'develop'
Publisher job simplification

See merge request pleroma/pleroma!4194
2024-07-30 15:23:28 +00:00
Mark Felder
49f46220ff Align Hackney and Gun connection pool timeouts 2024-07-30 11:11:30 -04:00
Mark Felder
a6119210b7 Increase federator outgoing job parallelism 2024-07-30 11:06:55 -04:00
Mark Felder
1bce582f0d Fix migration crashing due to Oban not running
We can use Pleroma.Repo to fetch the jobs
2024-07-30 10:58:10 -04:00
feld
4e24445b50 Merge branch 'oban/transmog' into 'develop'
Remove unused Oban queue

See merge request pleroma/pleroma!4195
2024-07-30 14:14:40 +00:00
Mark Felder
66649e1dcd Remove unused Oban queue 2024-07-30 09:49:09 -04:00
Mark Felder
05d4989795 Insert replacement jobs in the new format if any remain undelivered
The old jobs remain and will fail gracefully
2024-07-29 14:00:46 -04:00
feld
c9042763b0 Merge branch 'oban/backup' into 'develop'
Backups Refactoring

See merge request pleroma/pleroma!4158
2024-07-29 16:07:35 +00:00
Mark Felder
b48fd89a41 Revert unintended change to the Logger metadata tag name 2024-07-29 10:03:22 -04:00
Mark Felder
8893ad9899 Fix cancelling jobs 2024-07-29 09:59:35 -04:00
Mark Felder
74072622e0 Remove actor and actor_id from the job as it can be inferred by the activity 2024-07-29 09:52:13 -04:00
Mark Felder
59309a9eff Publisher job simplification
Publisher jobs now store the the activity id instead of inserting duplicate JSON data in the Oban queue for each delivery.
2024-07-28 21:04:36 -04:00
marcin mikołajczak
a40bf5d24f Fix good_locale_code?/1 regex
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-07-28 13:44:17 +02:00
marcin mikołajczak
ad8c26f6c2 Merge remote-tracking branch 'origin/develop' into post-languages 2024-07-28 13:41:58 +02:00
feld
6876761837 Merge branch 'fix/optimistic-inbox' into 'develop'
Fix Optimistic Inbox for failed signatures

See merge request pleroma/pleroma!4193
2024-07-25 21:18:04 +00:00
Mark Felder
21cf321f74 Quiet Dialyzer
It is angry we are making a fake %Plug.Conn{} to pass through Signature.validate_signature/1. We can work around it by making the code support a map, but then we lose the benefit of being able to use put_req_header/3
2024-07-25 16:36:34 -04:00
Mark Felder
c19d55cabb Safer string concatenation 2024-07-25 16:18:45 -04:00
Mark Felder
84b15ac111 Improve specs and matching 2024-07-25 16:18:31 -04:00
Mark Felder
775f45cfe2 Merge remote-tracking branch 'origin/develop' into oban/backup 2024-07-25 14:43:40 -04:00
Mark Felder
a964368e31 Add test to fetch and validate an activity that originally failed signature 2024-07-25 14:34:55 -04:00
Mark Felder
1b9c887dbb Extract validate_signature/2 from the HTTPSignaturePlug
This logic only exists in the Plug, so attempting to validate the signature by calling the library function HTTPSignature.validate_conn/2 directly will never work because we do not attempt to construct the (request-target) and @request-target headers with both the commonly misinterpreted and correct implementation of this field. Therefore all attempts to validate a signature from an Oban Job will fail.
2024-07-25 12:54:27 -04:00
Mark Felder
1a482a73c3 Fix Optimistic Inbox for failed signatures
When signatures fail on incoming activities we put the job into Oban to be processed later instead of doing the user fetching and validation inline which is expensive and increases latency on the incoming POST request. Unfortunately we did not retain the :method, :request_path, and :query_string parameters from the conn so the signature validation and Oban Job would always fail.

This was most obvious when Mastodon sends Deletes for users your server has never seen before.
2024-07-25 11:46:30 -04:00
feld
700c106680 Merge branch 'oban/rich-media-hardening' into 'develop'
Harden Rich Media parsing against very slow or malicious URLs

See merge request pleroma/pleroma!4192
2024-07-24 20:58:31 +00:00
Mark Felder
6598919213 Document the new timeout setting 2024-07-24 16:16:37 -04:00
Mark Felder
2314ff5981 Harden Rich Media parsing against very slow or malicious URLs 2024-07-24 15:55:30 -04:00
Mark Felder
8c5a68a62e Increase Oban.Pruner max_age to 15 mins 2024-07-24 15:52:23 -04:00
Mark Felder
97d488aea3 Fix RichMedia negative cache entries
The negative cache entry was a nil value, but that is an expected response when the cache is missing an entry so it didn't work as intended.
2024-07-24 15:45:39 -04:00
Mark Felder
5a62868106 Consider errors during HTTP GET and HEAD to be unrecoverable and insert a negative cache entry
This is for a normal HTTP error response or timeout while receiving the data. A hard error from a process crash, DNS lookup failure, etc should produce a different response than {:ok, %Tesla.Env{}} and the request/job will be retryable.
2024-07-24 15:43:49 -04:00
Mark Felder
731f7b87d2 Pad RichMediaWorker timeout to be 2s longer than the Rich Media HTTP timeout 2024-07-24 15:42:50 -04:00
Mark Felder
858fd01c01 Pleroma.HTTP: permit passing through custom Tesla Middlware for requests 2024-07-24 15:40:15 -04:00
feld
f32a837afa Merge branch 'dialyzer' into 'develop'
Fix dialyzer error

See merge request pleroma/pleroma!4190
2024-07-23 14:51:45 +00:00
Mark Felder
187897874b Make backup timeout configurable 2024-07-23 10:30:57 -04:00
Mark Felder
e5cbbaf3f0 Extend the backup job time limit to 30 minutes 2024-07-23 10:30:57 -04:00
Mark Felder
3f60d7bf64 Better random tempdir format 2024-07-23 10:30:57 -04:00
Mark Felder
ece063586b Limit backup jobs to 5 minutes 2024-07-23 10:30:57 -04:00
Mark Felder
e5a738d465 Refactor tests for Backups 2024-07-23 10:30:56 -04:00
Mark Felder
8f285a787f Refactor backups to be fully controlled by Oban 2024-07-23 10:30:40 -04:00
Mark Felder
2ee8f4f062 Fix dialyzer error
lib/pleroma/application.ex:1:pattern_match The pattern can never match the type true.
2024-07-23 10:25:39 -04:00
feld
ff663c0aeb Merge branch 'commonapi-cleanup' into 'develop'
CommonAPI Cleanup

See merge request pleroma/pleroma!4189
2024-07-22 23:36:18 +00:00
Mark Felder
c700c5db43 changelog 2024-07-22 19:23:16 -04:00
Mark Felder
12f498bc0d Fix order of args for show_reblogs/2 2024-07-22 19:19:21 -04:00
Mark Felder
3f4f567c9c Fix order of args for hide_reblogs/2 2024-07-22 19:16:00 -04:00
Mark Felder
adb93f7e5d Fix order of args for unfollow/2 2024-07-22 19:11:22 -04:00
Mark Felder
f79a16c062 Fix order of args for follow/2 2024-07-22 19:07:55 -04:00
Mark Felder
082319ff48 Fix order of args for unblock/2 2024-07-22 18:44:32 -04:00
Mark Felder
cbc5e48417 Fix order of args for block/2 2024-07-22 18:41:50 -04:00
Mark Felder
1cccc0fc21 Fix order of args for vote/3 2024-07-22 18:38:02 -04:00
Mark Felder
8127e0d8cc Fix order of args for thread_muted?/2 2024-07-22 18:25:37 -04:00
Mark Felder
4601473aaf Fix order of args for add_mute/2 2024-07-22 18:25:37 -04:00
Mark Felder
d27ad36ce4 Fix order of args for remove_mute/2 2024-07-22 18:25:37 -04:00
Mark Felder
f602813d31 Fix order of args for update/2 2024-07-22 18:25:37 -04:00
Mark Felder
7e37882cf7 Fix order of args for favorite/2 2024-07-22 18:25:37 -04:00
Mark Felder
b1d3348331 Annotate public functions with typespecs and mark some functions as private 2024-07-22 18:25:33 -04:00
Mark Felder
3a79f060bb Add missing type 2024-07-22 15:32:20 -04:00
feld
f77911f05b Merge branch 'oban/more-improvements' into 'develop'
Oban: more improvements

See merge request pleroma/pleroma!4187
2024-07-22 17:45:44 +00:00
feld
058f8acb58 Merge branch 'metadata/parsing-empty' into 'develop'
Fix Metadata providers when parsing objects with no content or summary

See merge request pleroma/pleroma!4188
2024-07-21 04:33:34 +00:00
Mark Felder
f9647a86ed Fix the ObjectValidator error matching 2024-07-21 00:03:51 -04:00
Mark Felder
cf70656d14 Fix test now that the reject error has more detail 2024-07-20 23:58:47 -04:00
Mark Felder
fb654acfad Fix OpenGraph and Twitter metadata providers when parsing objects with no content or summary fields. 2024-07-20 23:48:54 -04:00
Mark Felder
fdeb8616e8 Increase timeout for background, remote fetcher, and user refresh jobs 2024-07-20 22:16:33 -04:00
Mark Felder
d62a9afed3 Improved detecting unrecoverable errors for incoming federation jobs 2024-07-20 21:53:03 -04:00
Mark Felder
b8503f1ad4 PollWorker jobs will not retry if the activity no longer exists. 2024-07-20 21:24:13 -04:00
Mark Felder
e509519db4 Publisher jobs will not retry if the error received is a 400 2024-07-20 21:21:21 -04:00
feld
e4a6973e0b Merge branch 'transmogrifier/handle-non-validate-delete-errors' into 'develop'
Transmogrifier: handle non-validate errors on incoming Delete activities

See merge request pleroma/pleroma!4185
2024-07-21 00:47:10 +00:00
feld
776b069a04 Merge branch 'oban/cancel-federation' into 'develop'
Cancel queued publishing jobs when undoing an activity

See merge request pleroma/pleroma!4186
2024-07-20 19:33:27 +00:00
Mark Felder
d44765bc13 Support cancelling jobs when Unreacting 2024-07-20 15:14:46 -04:00
Mark Felder
304b7f5093 Support cancelling jobs when Unrepeating 2024-07-20 15:06:19 -04:00
Mark Felder
86ae00f9da Support cancelling jobs when Unfavoriting 2024-07-20 14:54:31 -04:00
Mark Felder
3f5c9f003b Reorganize test group to have shared a shared setup 2024-07-20 14:54:31 -04:00
Mark Felder
62280a3b9f Cancel queued (undelivered) publishing jobs for an activity when deleting that activity. 2024-07-20 14:54:04 -04:00
Mark Felder
d3c2180181 Formatting 2024-07-18 12:12:34 -04:00
Mint
1f3ac66844 Transmogrifier: handle non-validate errors on incoming Delete activities
This should fix WithClauseError resulting in Oban jobs for processing
incoming deletes being retried without getting cancelled when those
deletes are MRF rejected.
2024-07-18 18:04:32 +03:00
feld
c45ee5fc82 Merge branch 'oban/fetcher-rejected' into 'develop'
Dialyzer fix for RemoteFetcherWorker

See merge request pleroma/pleroma!4183
2024-07-17 18:03:48 +00:00
feld
89d22ac68e Merge branch 'docs/fix_mrfs' into 'develop'
Add docs for fix_mrf_policies

See merge request pleroma/pleroma!4184
2024-07-17 17:52:19 +00:00
Mark Felder
6cd3f9042f Add docs for fix_mrf_policies 2024-07-17 13:51:56 -04:00
feld
4544505761 Merge branch 'oban/rich-media-invalid' into 'develop'
Rework some Rich Media functionality for better error handling

See merge request pleroma/pleroma!4182
2024-07-17 17:50:17 +00:00
Mark Felder
c05cbaa937 Dialyzer fix for RemoteFetcherWorker 2024-07-17 13:42:13 -04:00
Mark Felder
f753bd3380 Explicitly handle the GET and HEAD errors 2024-07-17 13:12:51 -04:00
Mark Felder
1e0d5934d5 Fix return for cancelling job 2024-07-17 12:51:38 -04:00
Mark Felder
d124d8645e Rework some Rich Media functionality for better error handling
Oban should not retry jobs that are likely to fail again
2024-07-17 12:40:07 -04:00
feld
b4c5cc39f6 Merge branch 'oban/live_dashboard' into 'develop'
Add Oban Live Dashboard

See merge request pleroma/pleroma!4180
2024-07-17 13:52:07 +00:00
Mark Felder
4cbb59c8f6 Add Oban Live Dashboard 2024-07-17 09:32:29 -04:00
feld
683c4f0867 Merge branch 'fix-mrfs' into 'develop'
Added a Mix task "pleroma.config fix_mrf_policies"

See merge request pleroma/pleroma!4177
2024-07-15 19:21:53 +00:00
Mark Felder
c9203f125c Added a Mix task "pleroma.config fix_mrf_policies" which will remove erroneous MRF policies from ConfigDB 2024-07-15 15:21:16 -04:00
feld
cd535861e2 Merge branch 'oban/improvements' into 'develop'
Oban improvements

See merge request pleroma/pleroma!4176
2024-07-15 16:50:55 +00:00
Mark Felder
80e16de3bd Increase slow job queue parallelization 2024-07-15 12:00:58 -04:00
Mark Felder
30defb1674 Create a DeleteWorker and change user and instance deletion jobs to use it
These deletion tasks are slow, but the other background jobs are not. This
will allow us to have a lower timeout on the normal background jobs.
2024-07-15 11:58:07 -04:00
Mark Felder
52b6dd8bff Increase background job concurrency to 20 2024-07-15 11:45:13 -04:00
Mark Felder
2f14990c5c Change PurgeExpiredActivity to use the background queue 2024-07-15 11:45:13 -04:00
Mark Felder
2e2caad28d Fix Oban jobs exiting with :error instead of :cancel 2024-07-15 11:45:12 -04:00
Mark Felder
6278af209a Bump Oban to 2.17.12 2024-07-15 10:27:39 -04:00
Mark Felder
1e8d1904e6 Define missing Oban timeouts 2024-07-15 10:27:37 -04:00
feld
0ea63d824e Merge branch 'oban/deprecate-discards' into 'develop'
Oban: change :discard return values to :cancel

See merge request pleroma/pleroma!4175
2024-07-12 15:58:59 +00:00
Mark Felder
f52b229baa Oban: change :discard return values to :cancel
:discard will be removed in Oban 3.0. It was only meant for internal use.
2024-07-12 11:40:59 -04:00
feld
3754713599 Merge branch 'oban/fetcher-discard-rejected' into 'develop'
Discard Remote Fetcher jobs which errored due to an MRF rejection

See merge request pleroma/pleroma!4174
2024-07-12 14:56:55 +00:00
feld
680da772e7 Merge branch 'oban/remove-ingestion' into 'develop'
Remove the unused ingestion queue

See merge request pleroma/pleroma!4173
2024-07-12 14:55:02 +00:00
feld
2e7258cafd Merge branch 'move-poison' into 'develop'
Move poison dependency

See merge request pleroma/pleroma!4156
2024-07-12 14:26:25 +00:00
feld
19eeea7c12 Merge branch 'develop' into 'develop'
LDAP Authenticator: Improve error reporting.

See merge request pleroma/pleroma!4171
2024-07-12 14:25:49 +00:00
Mark Felder
b051e68bb0 Discard Remote Fetcher jobs which errored due to an MRF rejection 2024-07-12 10:15:02 -04:00
Mark Felder
d790df73f6 Remove the unused ingestion queue 2024-07-12 10:12:18 -04:00
Taylan Kammer
03c3c58d74 LDAP Authenticator: Improve error reporting. 2024-07-10 09:22:58 +02:00
feld
ef2ada59e0 Merge branch 'refactor/group-posts' into 'develop'
Refactor maybe_handle_group_posts/1

See merge request pleroma/pleroma!4170
2024-07-06 21:33:07 +00:00
Mark Felder
272aae157e Refactor maybe_handle_group_posts/1 2024-07-06 17:02:33 -04:00
Pleroma User
e4ba5777ee Merge branch 'develop' into 'move-poison'
# Conflicts:
#   mix.exs
2024-07-06 13:59:30 +00:00
tusooa
9e3633501b Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!4157
2024-07-03 02:24:28 +00:00
Pleroma User
2967e5fa44 Translated using Weblate (Ukrainian)
Currently translated at 94.5% (86 of 91 strings)

Translation: Pleroma/Pleroma Backend (domain static_pages)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-static_pages/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
4b7be135f0 Translated using Weblate (Ukrainian)
Currently translated at 16.2% (160 of 985 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
a8ad40dfd2 Translated using Weblate (Ukrainian)
Currently translated at 12.0% (6 of 50 strings)

Translation: Pleroma/Pleroma Backend (domain oauth_scopes)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-oauth_scopes/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
4d07b82f3e Translated using Weblate (Ukrainian)
Currently translated at 94.5% (86 of 91 strings)

Translation: Pleroma/Pleroma Backend (domain static_pages)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-static_pages/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
245f924009 Translated using Weblate (Ukrainian)
Currently translated at 65.9% (31 of 47 strings)

Translation: Pleroma/Pleroma Backend (domain posix_errors)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-posix_errors/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
ee528296ee Translated using Weblate (Ukrainian)
Currently translated at 91.1% (31 of 34 strings)

Translation: Pleroma/Pleroma Backend (domain default)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-default/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
7406892940 Translated using Weblate (Ukrainian)
Currently translated at 15.7% (155 of 985 strings)

Translation: Pleroma/Pleroma Backend (domain config_descriptions)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-config_descriptions/uk/
2024-07-01 20:38:32 +00:00
Pleroma User
6c3df79299 Added translation using Weblate (Ukrainian) 2024-07-01 20:38:32 +00:00
Pleroma User
ad10750ba2 Added translation using Weblate (Ukrainian) 2024-07-01 20:38:32 +00:00
Pleroma User
35d64a8b64 Added translation using Weblate (Ukrainian) 2024-07-01 20:38:32 +00:00
feld
7a4687562a Merge branch 'fix/ldap' into 'develop'
Fix LDAP support

See merge request pleroma/pleroma!4168
2024-07-01 20:38:20 +00:00
Mark Felder
2fe1e96f2b Fix LDAP support 2024-07-01 16:02:13 -04:00
Mark Felder
eb419b7ffd Add eldap back to applications as the module functions were unavailable 2024-07-01 15:58:49 -04:00
Mark Felder
3127c5f0af Fix automatic LDAP account registration on OTP 24.3+ 2024-07-01 15:58:15 -04:00
feld
e1981264a3 Merge branch 'warnings/elixir-1.17' into 'develop'
Elixir 1.17 warnings

See merge request pleroma/pleroma!4163
2024-07-01 17:33:50 +00:00
Mark Felder
62d9333eb0 CI: Switch to Elixir 1.17 2024-07-01 15:58:56 +00:00
Mark Felder
da05e21375 Fix cycles job name 2024-07-01 15:58:20 +00:00
Mark Felder
9402789437 Dialyzer: fix typespec 2024-07-01 11:47:27 -04:00
Mark Felder
b283b686c4 Dialyzer: Function application with args (_ :: map()) will not succeed. 2024-07-01 11:45:27 -04:00
Mark Felder
7955cd90e6 Dialyzer: The guard clause can never succeed. 2024-07-01 11:45:27 -04:00
Mark Felder
fd62969dc4 Dialyzer: pattern can never match the type 2024-07-01 11:45:25 -04:00
Mark Felder
a008005bdd Dialyzer: fix typespec 2024-07-01 11:38:40 -04:00
Mark Felder
69482004fc Dialyzer: pattern can never match the type because it is covered by previous clauses. 2024-07-01 11:38:40 -04:00
Mark Felder
33fa035c31 Update elixir-captcha to fix the compile warning 2024-07-01 11:38:40 -04:00
Mark Felder
71c8030e61 Update Phoenix to 1.7.14 2024-07-01 11:38:40 -04:00
Mark Felder
436286c93f Update Tesla to 1.11.0 2024-07-01 11:38:40 -04:00
Mark Felder
fb52099a13 Elixir 1.17 single quote charlist warning 2024-07-01 11:38:40 -04:00
Mark Felder
6e1aa8aeeb Elixir 1.17 undefined module warning
Fixes module name being not fully qualified

    warning: AdminAPI.FallbackController.call/2 is undefined (module AdminAPI.FallbackController is not available or is yet to be defined)
    │
  5 │ defmodule Pleroma.Web.AdminAPI.RuleController do
    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    │
    └─ lib/pleroma/web/admin_api/controllers/rule_controller.ex:5: Pleroma.Web.AdminAPI.RuleController.action/2

    warning: AdminAPI.FallbackController.init/1 is undefined (module AdminAPI.FallbackController is not available or is yet to be defined)
    │
  5 │ defmodule Pleroma.Web.AdminAPI.RuleController do
    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    │
    └─ lib/pleroma/web/admin_api/controllers/rule_controller.ex:5: Pleroma.Web.AdminAPI.RuleController.action/2
2024-07-01 11:38:40 -04:00
Mark Felder
d3cccce9fd Elixir 1.17 warnings for parens
Function calls must have parens
2024-07-01 11:38:40 -04:00
lain
ccbbee7963 Merge branch 'exif' into 'develop'
Ensure StripLocation works for PNGs

See merge request pleroma/pleroma!4167
2024-06-30 09:28:17 +00:00
Lain Soykaf
abbc5b6e48 Add changelog 2024-06-30 11:47:07 +04:00
Lain Soykaf
6d4fb53206 StripLocation: Remove all PNG extra info to make sure that GPS data is gone. 2024-06-28 21:59:00 +04:00
Lain Soykaf
ba88c5078a StripLocationTest: Add failing test for PNGs 2024-06-28 20:31:03 +04:00
feld
801a9367d0 Merge branch 'fix/oban-user-refresh-unique' into 'develop'
Oban Jobs for refreshing users were not respecting the uniqueness setting

See merge request pleroma/pleroma!4164
2024-06-28 14:47:25 +00:00
feld
01fb4776f8 Merge branch 'gun-pool-logs' into 'develop'
Change Gun connection pool logs to debug

See merge request pleroma/pleroma!4165
2024-06-28 14:39:42 +00:00
Mark Felder
9e5adf31c0 Change Gun connection pool logs to debug 2024-06-28 10:23:02 -04:00
Mark Felder
51a36bc9b8 Oban Jobs for refreshing users were not respecting the uniqueness setting 2024-06-28 10:12:58 -04:00
feld
394cb1e0f5 Merge branch 'ci/elixir-1.16' into 'develop'
Ci/elixir 1.16

See merge request pleroma/pleroma!4162
2024-06-28 13:20:46 +00:00
Mark Felder
01ed270dba Changelog 2024-06-27 14:06:15 +00:00
Mark Felder
6e932495dc Change CI jobs to Elixir 1.16.3 2024-06-27 14:05:59 +00:00
Mark Felder
f0334dce30 Add 1.16.3 ci image 2024-06-27 13:52:59 +00:00
feld
9953b0da59 Merge branch 'oban/richmedia-stream' into 'develop'
RichMedia: test that activity is streamed out after backfill

See merge request pleroma/pleroma!4160
2024-06-24 14:06:02 +00:00
Mark Felder
b135fa35a1 RichMedia: test that activity is streamed out 2024-06-24 09:47:16 -04:00
feld
a9bea02fe9 Merge branch 'oban/richmedia-stream' into 'develop'
Add test validating the activity_id is correctly present in the Oban job

See merge request pleroma/pleroma!4159
2024-06-24 02:05:41 +00:00
Mark Felder
634e3d4155 Add test validating the activity_id is correctly present in the Oban job
This was preventing the activity from being streamed over websockets.
2024-06-23 21:45:56 -04:00
pleromian
56927ffd22 add changelog for poison 2024-06-22 00:25:44 +02:00
feld
93eb458c24 Merge branch 'netbsd-wip' into 'develop'
update docs for NetBSD

See merge request pleroma/pleroma!4150
2024-06-21 15:35:48 +00:00
pleromian
47c6f3ddc6 poison is used only in tests 2024-06-21 00:41:09 +02:00
pleromian
b33b1b7253 docs: update nginx and rcscript path for NetBSD 2024-06-20 23:52:25 +02:00
feld
73916dbead Merge branch 'enable-erratic' into 'develop'
Enable erratic tests

See merge request pleroma/pleroma!4155
2024-06-20 20:20:32 +00:00
Mark Felder
7d5065819c Enable erratic tests 2024-06-20 19:43:39 +00:00
feld
fee1e17d87 Merge branch 'erratic/gun' into 'develop'
Gun Connection Pool: successfully retry after reclaiming the pool

See merge request pleroma/pleroma!4154
2024-06-20 18:50:07 +00:00
Mark Felder
9ef021e2da Switch the reclaimer to GenServer.start so it is not linked 2024-06-20 14:17:28 -04:00
Mark Felder
c765fcbe7e Gun Connection Pool: successfully retry after reclaiming the pool 2024-06-20 14:03:22 -04:00
feld
1071632a50 Merge branch 'fix/debug-logs' into 'develop'
Set console logs to :info for Elixir 1.15+

See merge request pleroma/pleroma!4151
2024-06-20 13:37:16 +00:00
Mark Felder
655ac98478 Merge remote-tracking branch 'origin/develop' into fix/debug-logs 2024-06-20 09:00:39 -04:00
feld
4a881ba366 Merge branch 'ci/cache' into 'develop'
Change CI caching strategy

See merge request pleroma/pleroma!4153
2024-06-20 13:00:09 +00:00
Mark Felder
f00a681cc1 Change CI caching strategy
Key the cache on the image being used and the commit sha. This should allow the cache to be reused by the same runner across multiple jobs/stages where appropriate.
2024-06-20 08:59:39 -04:00
feld
d4563f67e0 Merge branch 'oban/rich-media-backfill' into 'develop'
Rich Media Backfill with Oban

See merge request pleroma/pleroma!4152
2024-06-20 04:09:22 +00:00
Mark Felder
e1e099d3bf Set console logs to :info for Elixir 1.15+ 2024-06-19 23:26:12 -04:00
Mark Felder
17d04ccc8b RichMedia backfill processing through Oban 2024-06-19 23:20:22 -04:00
Mark Felder
4dfa50f256 Rename RichMediaExpirationWorker to RichMediaWorker 2024-06-19 22:24:48 -04:00
feld
9a4cdde5c9 Merge branch 'bugfix/elixir-1.15' into 'develop'
Elixir 1.15 compatibility

See merge request pleroma/pleroma!3917
2024-06-20 01:07:41 +00:00
pleromian
af53efa9e3 docs: update docs for NetBSD 2024-06-20 01:40:02 +02:00
Mark Felder
ed2976b237 Custom mix task to retry failed tests once in CI pipeline
This will be temporary* as we hunt down the cause of the random test failures

* gonna regret this
2024-06-19 19:04:12 -04:00
Mark Felder
3a8420b141 Remove remaining vestiges of Logger support in ConfigDB/TransferTask 2024-06-19 14:29:44 -04:00
Mark Felder
e0afb2c093 Elixir Logger configuration is now longer permitted through AdminFE and ConfigDB 2024-06-19 16:39:49 +00:00
Mark Felder
85b81cc933 Remove Logger from ConfigDB descriptions 2024-06-19 10:32:15 -04:00
Mark Felder
febf9d2684 Remove Logger from ConfigDB 2024-06-19 10:32:15 -04:00
Mark Felder
c11c35cf8f Enable :logger_backends application on < Elixir 1.15 2024-06-18 17:06:09 +00:00
Mark Felder
e43e09a04c Merge remote-tracking branch 'origin/develop' into bugfix/elixir-1.15 2024-06-18 16:47:01 +00:00
Mark Felder
e628d00a81 Disable Ecto logging in tests
The debug logs are very noisy and can be enabled during analysis of a specific error believed to be SQL-related
2024-06-18 15:25:18 +00:00
Mark Felder
3aed111a42 Enable capture_log globally 2024-06-18 10:50:31 -04:00
feld
3c1db78a6e Merge branch 'oban/user-refresh' into 'develop'
Refactor the async user refreshing to use Oban

See merge request pleroma/pleroma!4149
2024-06-18 13:06:11 +00:00
Mark Felder
9c67637255 Refactor the async user refreshing to use Oban
Previous implementation could cause duplicate simultaneous profile fetches which is not polite.
2024-06-17 10:41:14 -04:00
lain
825541b27c Merge branch 'async-user-refresh' into 'develop'
Async user refreshing

See merge request pleroma/pleroma!4148
2024-06-17 13:09:11 +00:00
Mark Felder
e37845cd35 Stale user refreshing should be done async to prevent blocking of rendering activities 2024-06-16 17:39:35 -04:00
Mark Felder
cbf8f8ac0d Fix mix pleroma.config dump on Elixir 1.15 2024-06-13 10:48:50 -04:00
Mark Felder
a734efeff8 Formatting 2024-06-12 15:21:43 -04:00
Lain Soykaf
41434ffcec Tests: Don't spawn processes in tests. 2024-06-12 15:20:04 -04:00
Haelwenn (lanodan) Monnier
6774ff15db docs: Bump elixir requirement up to 1.16 2024-06-12 15:20:04 -04:00
Haelwenn (lanodan) Monnier
cf9a058fae CI: Disallow failures for Elixir 1.15 2024-06-12 15:20:03 -04:00
Haelwenn (lanodan) Monnier
c389ea0f42 Fix compatibility with Loggers in Elixir 1.15+ 2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
ba6afdb44d mix: Turn off prune_code_path 2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
3d0d2a4513 media_controller_test: Make sure uploader is the Local one 2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
2180537a2b MediaProxy: :whitelist config fallback to [] 2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
66ac2e9b81 Upload.base_url: Don't pass nil to Path.join(), don't return nil 2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
3e7f05d0b1 Add changelog entry (elixir-1.15) 2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
8757c5e35a Logger.warn → Logger.warning
Note: Logger.warning got added in Elixir 1.11.0
2024-06-12 15:18:47 -04:00
Haelwenn (lanodan) Monnier
cb91dab75f Switch formatting checks to Elixir 1.15 2024-06-12 15:18:47 -04:00
marcin mikołajczak
b07fd324fb Merge remote-tracking branch 'origin/develop' into translate-posts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-06-12 17:13:23 +02:00
lain
38e6166d93 Merge branch '3280-emoji' into 'develop'
Transmogrifier: Encode Emoji id to be valid.

Closes #3280

See merge request pleroma/pleroma!4147
2024-06-12 09:15:14 +00:00
Lain Soykaf
1ae5c2b020 Transmogrifier: Encode Emoji id to be valid. 2024-06-12 12:41:33 +04:00
feld
4a28b81b59 Merge branch 'fix-webpush-actor' into 'develop'
Fix WebPush actor regression

See merge request pleroma/pleroma!4146
2024-06-11 23:08:12 +00:00
Mark Felder
5c8afbe646 Fix tests 2024-06-11 18:55:10 -04:00
Mark Felder
6a9d9da26f Cyclical complexity 2024-06-11 18:38:41 -04:00
Mark Felder
a291a6b8c0 Ensure the webpush notification for e.g., mentions start with the nickname of the actor it originates from 2024-06-11 18:15:32 -04:00
Mark Felder
603a575766 The user is not always preloaded into the notification 2024-06-11 18:14:07 -04:00
Mark Felder
568819c08a WebPush refactoring: separate build and deliver steps 2024-06-11 17:58:02 -04:00
feld
f47a124698 Merge branch 'webpush-polls' into 'develop'
Render nice web push notifications for polls

See merge request pleroma/pleroma!4144
2024-06-11 20:24:15 +00:00
feld
61506f8d93 Merge branch 'api-spex-error' into 'develop'
ApiSpec: Use conn.request_path for more legible error log

See merge request pleroma/pleroma!4145
2024-06-11 20:08:08 +00:00
Mark Felder
5313255b1a Use conn.request_path for more legible error log 2024-06-11 16:07:22 -04:00
Mark Felder
2fd155fb9b Add PollWorker test; move the streaming notification test to it 2024-06-11 15:59:48 -04:00
Mark Felder
51eeb80822 Merge remote-tracking branch 'origin/develop' into webpush-polls 2024-06-09 08:37:24 -04:00
lain
de80a7e890 Merge branch 'otp-bumps' into 'develop'
OTP version bumps

See merge request pleroma/pleroma!4143
2024-06-09 08:40:52 +00:00
Mark Felder
f000dab372 Switch test case to Impl.build_content/3 2024-06-08 22:54:59 -04:00
Mark Felder
8468d78882 Increase web push character limit for the body 2024-06-08 22:54:59 -04:00
Mark Felder
c1b84edefc Increase web push character limit for the body 2024-06-08 22:48:38 -04:00
Mark Felder
dcc50da400 Stream the notifications as part of the job 2024-06-08 22:40:08 -04:00
Mark Felder
3211557f74 Render nice web push notifications for polls 2024-06-08 22:08:12 -04:00
Mark Felder
b1ef6e5e9a Cleanup to make the code easier to follow 2024-06-08 19:50:01 -04:00
Mark Felder
86fa0889bc Remove unnecessary mastodon_type hack 2024-06-08 19:30:27 -04:00
Mark Felder
db88bf30d5 Add spec for send/1 2024-06-08 19:20:38 -04:00
Mark Felder
07cb89823f More robust validation the vapid config is set 2024-06-08 18:59:51 -04:00
Mark Felder
0641a1058a Update job names 2024-06-08 15:18:46 -04:00
Mark Felder
84319dbca4 OTP updates
Update to otp25 for Elixir 1.13; otp26 for Elixir 1.15
2024-06-08 14:44:09 -04:00
feld
9d67827619 Merge branch 'stream-poll-end' into 'develop'
Stream end of poll notification over websockets and web push

See merge request pleroma/pleroma!4137
2024-06-08 17:55:01 +00:00
Mark Felder
471412ad34 Stream end of poll notification over websockets and web push 2024-06-08 13:19:41 -04:00
Mark Felder
b1c52c3062 Rename Notification.send/1 to Notification.stream/1
Also update other places where we use the term "send" instead of "stream". This should make it clearer that we are streaming these over websockets / web push and not sending an activity.
2024-06-08 13:14:25 -04:00
Mark Felder
a5424c3681 Test that end of poll notifications are streamed over websockets 2024-06-08 13:08:28 -04:00
feld
c24e222887 Merge branch 'bump-deps' into 'develop'
Bump deps

See merge request pleroma/pleroma!4140
2024-06-08 01:39:09 +00:00
Pleroma User
dbf29cbae4 Bump deps 2024-06-08 01:39:08 +00:00
feld
b23b007d00 Merge branch 'feld/cleanup' into 'develop'
Minor cleanup commits

See merge request pleroma/pleroma!4142
2024-06-07 21:52:55 +00:00
feld
a4bd89c77e Merge branch 'spex/notification-types' into 'develop'
Spex: Add missing notification types to the api spec

See merge request pleroma/pleroma!4141
2024-06-07 20:42:50 +00:00
feld
f44987bd0f Merge branch 'bugfix/rich_media_config' into 'develop'
RichMedia: Respect configuration on status previews

See merge request pleroma/pleroma!4130
2024-06-07 20:37:19 +00:00
Mark Felder
d98b1c2757 Small cleanup / fixes 2024-06-07 16:35:26 -04:00
Mark Felder
5ed07aba7a Add missing pool to the type 2024-06-07 16:34:32 -04:00
Mark Felder
6ded017dee Do not start unused ConcurrentLimiter processes 2024-06-07 16:34:13 -04:00
Mark Felder
b52d772a6e Add some useful logging for ApiSpec errors 2024-06-07 16:26:56 -04:00
Mark Felder
5915062874 Add missing notification types to the api spec 2024-06-07 15:50:11 -04:00
Mark Felder
49156f0183 Fixes for default disabled rich media in test environment
Also add a test to validate the correct error when disabled
2024-06-07 13:31:34 -04:00
feld
bf8b251dc1 Merge branch 'cowboy-streaming' into 'develop'
Allow Cowboy to stream the response instead of chunk it

See merge request pleroma/pleroma!4138
2024-06-05 12:18:56 +00:00
Mark Felder
858d528cc1 Allow Cowboy to stream the response instead of chunk it 2024-06-04 23:08:05 -04:00
lain
acde8d0e0c Merge branch 'ipfs-dialyzer-fixes' into 'develop'
IPFS uploader: dialyzer fixes

See merge request pleroma/pleroma!4129
2024-06-01 11:30:42 +00:00
lain
cdeeb4dcc5 Merge branch '3276-pinned-collection-fetch' into 'develop'
Use proper workers for fetching pins instead of an ad-hoc task

Closes #3276

See merge request pleroma/pleroma!4136
2024-06-01 09:54:12 +00:00
Floatingghost
0302431888
Use proper workers for fetching pins instead of an ad-hoc task
BUG: https://git.pleroma.social/pleroma/pleroma/-/issues/3276
2024-05-31 09:09:04 -04:00
Mark Felder
cfc8d7aade IPFS uploader: dialyzer fixes
lib/pleroma/uploaders/ipfs.ex:43:no_return
Function put_file/1 has no local return.
________________________________________________________________________________
lib/pleroma/uploaders/ipfs.ex:49:call
The function call will not succeed.

Pleroma.HTTP.post(
  binary(),
  _mp :: %Tesla.Multipart{
    :boundary => binary(),
    :content_type_params => [binary()],
    :parts => [
      %Tesla.Multipart.Part{
        :body => binary(),
        :dispositions => [any()],
        :headers => [any()]
      },
      ...
    ]
  },
  [],
  [{:params, [{:"cid-version", <<49>>}]}]
)

will never return since the success typing is:
(binary(), binary(), [{binary(), binary()}], Keyword.t()) ::
  {:error, _}
  | {:ok,
     %Tesla.Env{
       :__client__ => %Tesla.Client{
         :adapter => nil | {_, _} | {_, _, _},
         :fun => _,
         :post => [any()],
         :pre => [any()]
       },
       :__module__ => atom(),
       :body => _,
       :headers => [{_, _}],
       :method => :delete | :get | :head | :options | :patch | :post | :put | :trace,
       :opts => [{_, _}],
       :query => [{_, _}],
       :status => nil | integer(),
       :url => binary()
     }}

and the contract is
(Pleroma.HTTP.Request.url(), String.t(), Pleroma.HTTP.Request.headers(), :elixir.keyword()) ::
  {:ok, Tesla.Env.t()} | {:error, any()}
2024-05-30 15:14:27 -04:00
feld
ff6f5a417f Merge branch 'mrf-nsfw-otp25' into 'develop'
Fix Logger.warn deprecation error on OTP25

See merge request pleroma/pleroma!4135
2024-05-30 15:38:18 +00:00
lain
6feb536e79 Merge branch 'missing-fks' into 'develop'
Add missing foreign key indexes

See merge request pleroma/pleroma!4134
2024-05-30 15:24:24 +00:00
Mark Felder
f5065eaf99 Fix Logger.warn deprecation error on OTP25 2024-05-30 11:09:42 -04:00
Mark Felder
5f6e477eca Missing FKs changelog 2024-05-30 10:53:05 -04:00
Mark Felder
c20ac6d1ad Add missing foreign key indexes 2024-05-30 10:53:00 -04:00
Mark Felder
b5fcb82bff Test for missing FK indexes 2024-05-30 10:49:45 -04:00
lain
bc4d6adbec Merge branch 'bandit-update' into 'develop'
Update Bandit to 1.5.2

See merge request pleroma/pleroma!4133
2024-05-30 09:35:42 +00:00
Mark Felder
36b440d9be Update Bandit to 1.5.2
Lots of fixes, also requires Websock Adapter update due to internal module changes in Bandit 1.4.0.
2024-05-29 21:59:50 -04:00
feld
b4332b47d5 Merge branch 'mix-indexer' into 'develop'
Add additional flags to the Pleroma.Search.Indexer Mix task

See merge request pleroma/pleroma!4131
2024-05-29 15:04:58 +00:00
Mark Felder
14b4bd69a8 Add additional flags to the Pleroma.Search.Indexer Mix task 2024-05-29 10:44:40 -04:00
Haelwenn (lanodan) Monnier
65c8763907
RichMedia: Add extra checks on configuration 2024-05-29 08:02:06 +02:00
Haelwenn (lanodan) Monnier
c16ef40f13
RichMedia: Respect configuration on status previews 2024-05-29 08:02:04 +02:00
feld
3b639b467e Merge branch 'dialyzer-fixes' into 'develop'
Dialyzer fixes

See merge request pleroma/pleroma!4128
2024-05-28 17:26:58 +00:00
lain
41d3c14ba5 Merge branch 'feature/akkoma-prune-old-posts' into 'develop'
add options to mix prune_objects to delete more things

See merge request pleroma/pleroma!3952
2024-05-28 15:19:38 +00:00
Mark Felder
79c418bcb7 Dialyzer: fix invalid @spec 2024-05-28 11:07:28 -04:00
Lain Soykaf
f663135724 DatabaseTest: Fix test. 2024-05-28 18:54:36 +04:00
Mark Felder
6b6a2adb07 Dialyzer: The function call will not succeed.
:idna.encode/1 expects a charlist even though it will accept a binary string. That functionality is undocumented / not part of its typespec, so we should turn it into a charlist first. Also switch to using match?/2

lib/pleroma/user.ex:2056:call
The function call will not succeed.

:idna.encode(_host :: binary())

will never return since the success typing is:
(string()) :: string()

and the contract is
(string()) :: string()
2024-05-28 10:49:43 -04:00
Mark Felder
6551ca2db7 Dialyzer: overlapping_contract
Wrong @spec name for remove_from_block/2

lib/pleroma/user.ex:2721:overlapping_contract
Overloaded contract for Pleroma.User.add_to_block/2 has
overlapping domains; such contracts are currently unsupported and
are simply ignored.
2024-05-28 10:40:54 -04:00
Mark Felder
8743c6c640 Dialyzer: The pattern can never match the type
We will never pass :plain to query_with/4, so remove that match and change it to query_with/3

lib/pleroma/search/database_search.ex:127:pattern_match
The pattern can never match the type.

Pattern:
_q, :rum, _search_query, :plain

Type:

  %Ecto.Query{
    :aliases => _,
    :assocs => _,
    :combinations => _,
    :distinct => _,
    :from => _,
    :group_bys => _,
    :havings => _,
    :joins => _,
    :limit => _,
    :lock => _,
    :offset => _,
    :order_bys => _,
    :prefix => _,
    :preloads => _,
    :select => _,
    :sources => _,
    :updates => _,
    :wheres => _,
    :windows => _,
    :with_ctes => _
  },
  :rum,
  _,
  :websearch
2024-05-28 10:36:00 -04:00
Lain Soykaf
a041879eaa Linting 2024-05-28 18:26:30 +04:00
Mark Felder
1b3c84e241 Dialyzer: no_local_return
WebPushEncryption.send_web_push/4 was written to raise on erroroneus input, so we must guard against that.

lib/pleroma/web/push/impl.ex:65:no_return Function push_message/4 has no local return.
2024-05-28 10:19:35 -04:00
Mark Felder
17ebb2df84 Dialyzer: fix pattern matches preventing video thumbnailing from working
lib/pleroma/web/media_proxy/media_proxy_controller.ex:154:pattern_match
The pattern can never match the type.

Pattern:
{:ok, _thumbnail_binary}

Type:
{:error, boolean() | {:ffmpeg, :command_not_found}}
2024-05-28 10:19:22 -04:00
Mark Felder
18835bf701 Use the configured http client options for mediaproxy 2024-05-28 09:38:36 -04:00
Mark Felder
f8ce639e3f Dialyzer: guard clause can never succeed
lib/pleroma/web/activity_pub/mrf/dnsrbl_policy.ex:106:guard_fail
The guard clause:

when _ ::
  [
    binary()
    | [string() | char()]
    | {string() | integer(), string()}
    | {{byte(), byte(), byte(), byte()}, integer(), binary()}
    | {integer(), integer(), integer(), string() | byte()}
    | {integer(), integer(), string(), string(), string(), string()}
    | {string(), string(), integer(), integer(), integer(), integer(), integer()}
    | {char(), char(), char(), char(), char(), char(), char(), char()}
  ] === nil

can never succeed.
2024-05-28 09:30:19 -04:00
Mark Felder
42c5f7c74e Dialyzer: fix invalid @spec
The callback already defines the @spec and these do not match it.

lib/pleroma/upload/filter/exiftool/strip_location.ex:12:callback_spec_type_mismatch
The @spec return type does not match the expected return type
for filter/1 callback in Pleroma.Upload.Filter behaviour.

Actual:
@spec filter(...) :: {:ok, _}

Expected:
@spec filter(...) :: {:error, _} | {:ok, :filtered | :noop} | {:ok, :filtered, struct()}
2024-05-28 08:55:18 -04:00
Lain Soykaf
cc42b50c5b Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-feature/akkoma-prune-old-posts 2024-05-28 16:51:19 +04:00
Mark Felder
0b864c3696 Dialyzer: fix invalid @spec
lib/pleroma/notification.ex:492:invalid_contract
The @spec for the function does not match the success typing of the function.

Function:
Pleroma.Notification.get_notified_from_activity/2

Success typing:
@spec get_notified_from_activity(_, _) :: [any()]
2024-05-28 08:49:34 -04:00
lain
bef15cde61 Merge branch 'secure-mode' into 'develop'
Reject requests from specified instances if `authorized_fetch_mode` is enabled

See merge request pleroma/pleroma!3711
2024-05-28 11:22:34 +00:00
Lain Soykaf
335691bae1 Add changelog 2024-05-28 14:38:44 +04:00
Lain Soykaf
8066645f71 Linting 2024-05-28 14:20:48 +04:00
Lain Soykaf
f5978da676 HTTPSignaturePlugTest: Rewrite to use mox. 2024-05-28 14:00:25 +04:00
Lain Soykaf
3b4be5daa2 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-secure-mode 2024-05-28 12:31:12 +04:00
lain
25903a4996 Merge branch 'auth-fetch-exception' into 'develop'
HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions

See merge request pleroma/pleroma!4007
2024-05-28 04:42:35 +00:00
lain
8ff0c32903 Merge branch 'httpfixes' into 'develop'
Some HTTP and connection pool improvements

See merge request pleroma/pleroma!4124
2024-05-28 04:38:01 +00:00
Lain Soykaf
73d58c22d4 Linting 2024-05-28 08:09:19 +04:00
feld
cdde3afb57 Merge branch 'credo' into 'develop'
Credo

See merge request pleroma/pleroma!4126
2024-05-27 19:21:14 +00:00
Mark Felder
bb86a01b9b Credo 2024-05-27 15:20:47 -04:00
Lain Soykaf
687ac4a850 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into auth-fetch-exception 2024-05-27 23:09:17 +04:00
feld
38db406ce4 Merge branch 'simpler-oban-queues' into 'develop'
Oban queue simplification

See merge request pleroma/pleroma!4123
2024-05-27 19:02:53 +00:00
lain
121791882f Merge branch 'explicitly-allow-unsafe-2' into 'develop'
Explicitly allow unsafe 2

See merge request pleroma/pleroma!4125
2024-05-27 18:43:05 +00:00
lain
3316a7ab70 Merge branch 'qdrant-search-2' into 'develop'
Search: Basic Qdrant/Ollama search

See merge request pleroma/pleroma!4109
2024-05-27 18:41:20 +00:00
Lain Soykaf
81e44ced0c HTTPSecurityPlug: Fix tests 2024-05-27 22:13:20 +04:00
Mark Felder
ba511a30b9 RichMedia use of ConcurrentLimiter was removed in the refactor 2024-05-27 14:12:38 -04:00
Mark Felder
6b8c15a4a1 Remove MediaProxyWarmingPolicy config for ConcurrentLimiter as we are not using it 2024-05-27 14:11:42 -04:00
feld
42150d5581 Merge branch 'logger-metadata' into 'develop'
Logger metadata

See merge request pleroma/pleroma!3990
2024-05-27 17:53:33 +00:00
Mark Felder
29eac86dc0 Logger metadata changelog 2024-05-27 13:53:22 -04:00
Mark Felder
f63e44b8bc Fix Oban related tests 2024-05-27 13:48:24 -04:00
Mark Felder
0847d9ebaf Oban queue simplification 2024-05-27 13:48:17 -04:00
lain
b1fec8594d Merge branch 'tusooa/extract-fix' into 'develop'
OAuth scopes translations: write out which operations are processed

See merge request pleroma/pleroma!3907
2024-05-27 17:41:33 +00:00
Lain Soykaf
c67b41415b Changelog: Add changelog entry. 2024-05-27 21:28:46 +04:00
Lain Soykaf
fc7ce339ed Cheatsheet: Add allow_unsafe_eval 2024-05-27 21:28:20 +04:00
Lain Soykaf
1c699144d2 HttpSecurityPlug: Don't allow unsafe-eval by default 2024-05-27 21:26:40 +04:00
lain
07b7a8d697 Merge branch 'image-description-summary' into 'develop'
Add support for Honk "summary" + "name"

See merge request pleroma/pleroma!3854
2024-05-27 16:51:07 +00:00
feld
10b7efa98c Merge branch 'anti-mention-spam-mrf' into 'develop'
Anti-mention Spam MRF

See merge request pleroma/pleroma!4072
2024-05-27 16:46:31 +00:00
feld
10713fa913 Merge branch 'feat/mrf-dnsrbl' into 'develop'
Anti-spam using an MRF DNSRBL

See merge request pleroma/pleroma!3278
2024-05-27 16:42:38 +00:00
Mark Felder
cab6372d7a Make user age limit configurable
Switch to milliseconds for consistency with other configuration options in codebase
2024-05-27 12:31:29 -04:00
Mark Felder
0d092a3d4f Changelog 2024-05-27 12:26:55 -04:00
Alex Gleason
02d8ce8f0b AntiMentionSpamPolicy: remove followers check 2024-05-27 12:25:09 -04:00
Alex Gleason
64cacc3694 AntiMentionSpamPolicy: fix user age check 2024-05-27 12:25:09 -04:00
Alex Gleason
5e963736ce Add AntiMentionSpamPolicy 2024-05-27 12:25:09 -04:00
Mark Felder
0bddca361d DNSRBL in an MRF 2024-05-27 12:23:36 -04:00
feld
6291bf22bd Merge branch 'prometheus-docs' into 'develop'
Update Prometheus docs

See merge request pleroma/pleroma!4018
2024-05-27 16:20:15 +00:00
Mark Felder
7258ab1aed Changelog 2024-05-27 12:20:00 -04:00
Mark Felder
f4693dc671 Update Prometheus/Grafana docs for PromEx 2024-05-27 12:18:51 -04:00
Lain Soykaf
284cd0abe5 Add changelog 2024-05-27 20:04:12 +04:00
Lain Soykaf
f4c0a01f09 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into image-description-summary 2024-05-27 20:03:14 +04:00
Lain Soykaf
e4f1325f78 InetHelper: Don't use deprecated function. 2024-05-27 19:44:41 +04:00
lain
7798fdc711 Merge branch 'show-reposted-replies' into 'develop'
Display reposted replies with exclude_replies: true

See merge request pleroma/pleroma!3961
2024-05-27 15:33:50 +00:00
Mark Felder
8b61d4e3e1 Changelogs 2024-05-27 11:28:31 -04:00
Lain Soykaf
d3e85da0fd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into auth-fetch-exception 2024-05-27 19:27:02 +04:00
Mark Felder
37d79b76bb Use the configured http client options for mediaproxy 2024-05-27 11:26:21 -04:00
Mark Felder
d272eb62cd Trust the connection pools to enforce the concurrency limitations 2024-05-27 11:25:19 -04:00
Lain Soykaf
03d0c5abfb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into tusooa/extract-fix 2024-05-27 19:21:20 +04:00
lain
e93ae96e13 Merge branch 'nsfw-api-mrf' into 'develop'
NSFW API Policy

See merge request pleroma/pleroma!3471
2024-05-27 15:20:43 +00:00
Mark Felder
6708f154a4 Rework Gun connection pool sizes to make better use of the default 250 connections 2024-05-27 11:18:58 -04:00
Mark Felder
a50c657427 Add a dedicated connection pool for Rich Media
Sharing this pool with regular Media is problematic as Rich Media will connect to many different
domains and thrash the pool, but regular Media will have predictable connections to the webservers
hosting media for the fediverse servers you peer with.
2024-05-27 11:17:02 -04:00
lain
d11ba9e85b Merge branch 'ipfs_uploader' into 'develop'
feat: simple, but not stupid, uploader for IPFS

See merge request pleroma/pleroma!3654
2024-05-27 15:06:12 +00:00
Lain Soykaf
ed93af64e1 Add changelog 2024-05-27 17:50:34 +04:00
Lain Soykaf
4325b1aec3 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into nsfw-api-mrf 2024-05-27 17:49:31 +04:00
Lain Soykaf
3055c1598b IPFSTest: Fix configuration mocking 2024-05-27 17:22:18 +04:00
Lain Soykaf
825b4122a5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-ipfs_uploader 2024-05-27 16:23:40 +04:00
lain
6757382abe Merge branch 'reject-replies-to-deleted' into 'develop'
Return a 422 when trying to reply to a deleted status

See merge request pleroma/pleroma!4122
2024-05-27 11:41:46 +00:00
Lain Soykaf
f214c2cdac NotificationTest: Remove impossible case. 2024-05-27 15:23:33 +04:00
Lain Soykaf
4d6316b488 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into reject-replies-to-deleted 2024-05-27 15:19:53 +04:00
Lain Soykaf
ddf103eca0 QdrantSearch: Fetch a post in search if possible. 2024-05-27 14:35:08 +04:00
Lain Soykaf
f4c04e6b2d QdrantSearch: Add health checks. 2024-05-27 14:21:55 +04:00
Lain Soykaf
ec3f3fef77 Fastembed Server: Add health check endpoint 2024-05-27 14:15:04 +04:00
Lain Soykaf
8b76f56050 QdrantSearch: Add healthcheck for qdrant 2024-05-27 14:01:17 +04:00
Lain Soykaf
08e9d995f8 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into qdrant-search-2 2024-05-27 13:50:22 +04:00
lain
5e43060128 Merge branch 'search-healthcheck' into 'develop'
Search backend healthcheck process

See merge request pleroma/pleroma!4120
2024-05-27 09:46:57 +00:00
Lain Soykaf
d35b69d268 Pleroma.Search: Remove wrong (but irrelevant) results 2024-05-27 13:18:02 +04:00
Mark Felder
d9b82255b9 Add an HTTP timeout for the healthcheck 2024-05-26 15:23:12 -04:00
Mark Felder
d4769b076a Return a 422 when trying to reply to a deleted status 2024-05-26 15:14:48 -04:00
feld
c3c804b71f Merge branch 'fix/rich-media-ttl' into 'develop'
Fix rich media parsing some Amazon URLs

See merge request pleroma/pleroma!4121
2024-05-26 18:29:46 +00:00
Mark Felder
03f4b46189 Test that healthchecks behave correctly for the expected HTTP responses 2024-05-26 14:21:24 -04:00
Mark Felder
f2b0d5f1d0 Make it easier to read the state for debugging purposes and expose functions for testing 2024-05-26 14:11:41 -04:00
Mark Felder
807782b7f9 Fix rich media parsing some Amazon URLs 2024-05-26 14:02:20 -04:00
Mark Felder
354b700bed Assert that AWS URLs without query parameters do not crash 2024-05-26 14:01:12 -04:00
Mark Felder
3474b42ce3 Drop TTL to 5 seconds 2024-05-25 16:55:29 -04:00
Mark Felder
61a3b79316 Search backend healthcheck process 2024-05-25 16:07:47 -04:00
lain
895eea5c75 Merge branch 'api-docs' into 'develop'
Update pleroma_api.md

See merge request pleroma/pleroma!4119
2024-05-25 07:17:05 +00:00
marcin mikołajczak
618b77071a Update pleroma_api.md
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-25 09:12:37 +02:00
tusooa
19b2637c51 Merge branch 'bugfix/realpath-over-readlink' into 'develop'
pleroma_ctl: Use realpath(1) instead of readlink(1)

See merge request pleroma/pleroma!4118
2024-05-25 00:54:17 +00:00
lain
134f3bff67 Merge branch 'bump-elixir' into 'develop'
Bump minimum Elixir to 1.13

See merge request pleroma/pleroma!4014
2024-05-24 09:20:06 +00:00
Lain Soykaf
a566ad56e1 QdrantSearch: Fix actor / author restriction 2024-05-23 18:55:16 +04:00
Lain Soykaf
94e4f21589 QdrantSearch: Deal with actor restrictions 2024-05-23 14:38:30 +04:00
Haelwenn (lanodan) Monnier
818712f99f
pleroma_ctl: Use realpath(1) instead of readlink(1)
From realpath(1) in POSIX 202x Draft 4.1:
> If file does not name a symbolic link, readlink shall write a diagnostic
> message to standard error and exit with non-zero status.

Which also doesn't includes `-f`, in preference of `realpath`.
2024-05-23 00:39:53 +02:00
Lain Soykaf
f726e5fbbd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into qdrant-search-2 2024-05-22 20:07:43 +04:00
lain
05b9805bf9 Merge branch 'mergeback-2.6.3' into 'develop'
Mergeback 2.6.3

Closes #3245

See merge request pleroma/pleroma!4117
2024-05-22 15:48:42 +00:00
Lain Soykaf
3f0e9fd474 Merge branch 'stable' into develop 2024-05-22 19:47:15 +04:00
lain
7566b4a348 Merge branch 'release-2.6.3' into 'stable'
Release 2.6.3

See merge request pleroma/pleroma!4115
2024-05-22 15:17:36 +00:00
Lain Soykaf
53a3176d24 WebFingerControllerTest: Restore host after test. 2024-05-22 19:09:26 +04:00
marcin mikołajczak
c42527dc2e changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-22 19:09:16 +04:00
marcin mikołajczak
45b5e6ecd8 Fix tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-22 19:09:07 +04:00
marcin mikołajczak
b245a5c8c2 Fix validate_webfinger when running a different domain for Webfinger
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-22 18:59:14 +04:00
marcin mikołajczak
50ffbd980e Revert "Webfinger: Allow managing account for subdomain"
This reverts commit 84bb854056.
2024-05-22 18:59:07 +04:00
lain
a8e1fc0f6a Merge branch 'webfinger-validation' into 'develop'
Fix validate_webfinger when running a different domain for Webfinger

See merge request pleroma/pleroma!4116
2024-05-22 14:58:48 +00:00
Lain Soykaf
5f1f574f01 WebFingerControllerTest: Restore host after test. 2024-05-22 18:45:34 +04:00
marcin mikołajczak
d536d58080 changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-22 15:54:17 +02:00
marcin mikołajczak
70cabbf6dc Fix tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-22 15:53:16 +02:00
marcin mikołajczak
d0b18e338b Fix validate_webfinger when running a different domain for Webfinger
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-22 15:52:35 +02:00
marcin mikołajczak
1f2f7e044d Revert "Webfinger: Allow managing account for subdomain"
This reverts commit 84bb854056.
2024-05-22 15:52:10 +02:00
Lain Soykaf
7b4e6d4c16 Collect changelog 2024-05-22 17:44:10 +04:00
Lain Soykaf
239c9c3f1c Mix: Update version 2024-05-22 17:40:20 +04:00
Lain Soykaf
20fa400082 Webfinger: Allow managing account for subdomain 2024-05-22 17:38:23 +04:00
Lain Soykaf
2212287b00 Changelog: Adjust changelog type 2024-05-22 17:38:16 +04:00
Lain Soykaf
275fdb26c1 Add changelog 2024-05-22 17:38:08 +04:00
Lain Soykaf
eafcb7b4ec Webfinger: Fix test 2024-05-22 17:38:03 +04:00
Alex Gleason
364f6e1620 Prevent webfinger spoofing 2024-05-22 17:37:57 +04:00
Lain Soykaf
29b968ce20 Webfinger: Add test showing wrong webfinger behavior 2024-05-22 17:37:49 +04:00
lain
c8e5a1f6b0 Merge branch 'fix-webfinger-spoofing' into 'develop'
Fix webfinger spoofing

See merge request pleroma/pleroma!4114
2024-05-22 12:45:24 +00:00
Lain Soykaf
84bb854056 Webfinger: Allow managing account for subdomain 2024-05-22 15:12:29 +04:00
Lain Soykaf
91c93ce3cd Changelog: Adjust changelog type 2024-05-22 13:14:59 +04:00
Lain Soykaf
4491e8c9a3 Add changelog 2024-05-22 13:01:23 +04:00
Lain Soykaf
206ea92837 Webfinger: Fix test 2024-05-22 12:59:10 +04:00
Alex Gleason
b15f8b0642 Prevent webfinger spoofing 2024-05-22 12:57:45 +04:00
Lain Soykaf
d1b053f3ba Webfinger: Add test showing wrong webfinger behavior 2024-05-22 12:57:30 +04:00
lain
7fca598268 Merge branch 'status-notification-type' into 'develop'
Add "status" notification type

See merge request pleroma/pleroma!3659
2024-05-21 05:01:45 +00:00
marcin mikołajczak
36fa0debfe Fix get_notified_from
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-20 23:25:50 +02:00
Lain Soykaf
c67506ba68 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into auth-fetch-exception 2024-05-20 18:21:46 +04:00
Lain Soykaf
f5c0295247 CI: Specify correct image name. 2024-05-20 13:43:18 +04:00
Lain Soykaf
f8411a351d CI: Specify version fully in base image tag 2024-05-20 13:30:31 +04:00
Lain Soykaf
226874c9d6 CI: Add new builders for base images 2024-05-20 13:12:12 +04:00
Lain Soykaf
ad26b6d593 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into bump-elixir 2024-05-20 12:30:15 +04:00
lain
e8cd6662eb Merge branch 'familiar-followers' into 'develop'
Implement `/api/v1/accounts/familiar_followers`

See merge request pleroma/pleroma!4098
2024-05-19 12:05:55 +00:00
Lain Soykaf
1b4f1db9b2 QdrantSearch: Support pagination. 2024-05-19 14:41:05 +04:00
Lain Soykaf
dbaab6f54e Docs: Mention running the Qdrant server 2024-05-19 13:38:31 +04:00
Lain Soykaf
6ec306d068 Docs: Add more information about index memory consumption. 2024-05-19 13:24:24 +04:00
Lain Soykaf
6a3a0cc0f5 Docs: Write docs for the QdrantSearch 2024-05-19 13:20:37 +04:00
Lain Soykaf
23881842ae B FastembedAPI: Add readme 2024-05-19 13:04:27 +04:00
Lain Soykaf
8329ad5214 B FastembedAPI: Add requirements.txt 2024-05-19 12:59:03 +04:00
Lain Soykaf
dd48810186 B FastembedAPI: Move to more appropriate folder 2024-05-19 12:47:08 +04:00
Lain Soykaf
e142ea400a Docs: Switch docs from Ollama to OpenAI. 2024-05-19 12:42:08 +04:00
Lain Soykaf
c139a9f38c B Config: Set default Qdrant embedder to our fastembed-api server 2024-05-19 12:39:54 +04:00
Lain Soykaf
b9af017a4c B FastembedServer: Switch to OpenAI api, support changing models 2024-05-19 12:33:49 +04:00
Lain Soykaf
72ec261a69 B QdrantSearch: Switch to OpenAI api 2024-05-19 12:17:46 +04:00
Lain Soykaf
cc1321ea2e Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into qdrant-search-2 2024-05-19 11:51:33 +04:00
lain
401aca2548 Merge branch 'mark-read' into 'develop'
PleromaAPI: Simplify marking notifications as read

See merge request pleroma/pleroma!4111
2024-05-19 07:48:32 +00:00
Mark Felder
d07d49227f PleromaAPI: marking notifications as read no longer returns notifications 2024-05-18 18:17:35 +00:00
Lain Soykaf
3345ddd2d4 Linting 2024-05-18 15:02:22 +04:00
Lain Soykaf
7923ede8ba Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into qdrant-search-2 2024-05-18 14:45:26 +04:00
Lain Soykaf
39525bcec7 Add qdrant changelog 2024-05-18 14:07:47 +04:00
Lain Soykaf
e3933a067f QdrantSearch: Implement post deletion 2024-05-18 14:04:32 +04:00
Lain Soykaf
933117785f QdrantSearch: Add basic test 2024-05-18 13:43:47 +04:00
marcin mikołajczak
2e76ceb5b4 Merge remote-tracking branch 'origin/develop' into status-notification-type
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-18 11:30:25 +02:00
marcin mikołajczak
7620b520c1 Merge remote-tracking branch 'origin/develop' into post-languages
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-18 11:16:33 +02:00
marcin mikołajczak
d667049ca9 Merge remote-tracking branch 'origin/develop' into translate-posts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-18 11:15:03 +02:00
marcin mikołajczak
799dc1773d Merge remote-tracking branch 'origin/develop' into language-detection
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-18 11:13:09 +02:00
Lain Soykaf
61e9027131 Add docker compose file for fastembed server 2024-05-18 12:19:42 +04:00
Lain Soykaf
769773a500 Add dockerfile 2024-05-18 12:08:42 +04:00
Lain Soykaf
069ce4448c Add basic fastembed server 2024-05-18 11:55:17 +04:00
feld
99eab1fa2a Merge branch 'revert-e944b152' into 'develop'
Revert "Merge branch 'strip-object-actor' into 'develop'"

See merge request pleroma/pleroma!4112
2024-05-16 23:34:00 +00:00
feld
9988dc2227 Revert "Merge branch 'strip-object-actor' into 'develop'"
This reverts merge request !4105
2024-05-16 23:33:48 +00:00
feld
7de657ac45 Merge branch 'bad-mrf' into 'develop'
Startup detection for configured MRF modules that are missing or incorrectly defined

See merge request pleroma/pleroma!4110
2024-05-16 20:37:37 +00:00
Mark Felder
7f8a9329e5 Startup detection for configured MRF modules that are missing or incorrectly defined 2024-05-16 16:13:29 -04:00
Lain Soykaf
a9be4907c0 SearchBackend: Add drop_index 2024-05-16 10:47:24 +04:00
feld
e944b15298 Merge branch 'strip-object-actor' into 'develop'
Strip actor from objects before federating

Closes #3269

See merge request pleroma/pleroma!4105
2024-05-15 20:51:47 +00:00
Mark Felder
2965ed47bd Changelog for stripping actor from objects 2024-05-15 16:40:31 -04:00
feld
53ef576739 Merge branch 'instance_rules' into 'develop'
Instance rules

See merge request pleroma/pleroma!3669
2024-05-15 20:29:04 +00:00
feld
8da103da57 Merge branch 'fix-muted-web-push' into 'develop'
Fix processing of Web Push and streaming notifications

See merge request pleroma/pleroma!4032
2024-05-15 20:12:41 +00:00
Lain Soykaf
1261c43a7a SearchBackend: Add create_index 2024-05-14 17:19:36 +04:00
Lain Soykaf
c50f0f31f4 Docs/Search: Add basic documentation of the qdrant search 2024-05-14 16:56:58 +04:00
Lain Soykaf
1490ff30af QdrantSearch: Add query prefix. 2024-05-14 15:09:38 +04:00
Lain Soykaf
bb08a766f4 QdrantSearch: Remove debugging stuff 2024-05-14 14:26:41 +04:00
Lain Soykaf
cd7e2138d1 Search: Basic Qdrant/Ollama search 2024-05-14 14:13:37 +04:00
feld
c954437cc0 Merge branch 'mastodon-instance-v2' into 'develop'
Add new values to /api/v2/instance

Closes #3250 and #3251

See merge request pleroma/pleroma!4106
2024-05-11 12:11:00 +00:00
Mark Felder
16c72d0701 Merge branch 'develop' into fix-muted-web-push 2024-05-11 08:06:04 -04:00
faried nawaz
fdc3cbb8cb
add documentation for the prune_objects mix task options 2024-05-09 10:43:41 +05:00
faried nawaz
1bf3ae07b6
add options to mix pleroma.database prune_objects to delete more activities 2024-05-09 10:43:34 +05:00
feld
6cfb0d7ddb Merge branch 'restore/card-img-alt' into 'develop'
Include image description in status media cards

See merge request pleroma/pleroma!4108
2024-05-08 17:55:32 +00:00
Mark Felder
ccceb41bf3 Add test for StatusView rendering of Cards when missing descriptions 2024-05-08 13:54:57 -04:00
Mark Felder
5e7f4f687e Improve StatusView tests for Cards 2024-05-08 13:52:25 -04:00
marcin mikołajczak
818d9f7b63 Include image description in status media cards
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-05-08 13:40:26 -04:00
feld
8eea4f58c7 Merge branch 'rich-media-db' into 'develop'
RichMedia refactor

See merge request pleroma/pleroma!4057
2024-05-08 03:12:09 +00:00
Mark Felder
54c2bab25f Fix module struct matching 2024-05-07 22:27:18 -04:00
Mark Felder
9a83301ff8 Credo 2024-05-07 22:11:19 -04:00
Mark Felder
37c35daba6 Credo 2024-05-07 22:10:49 -04:00
Mark Felder
9b9a32bf74 Fix compile warning
warning: "else" clauses will never match because all patterns in "with" will always match
  lib/pleroma/web/rich_media/parser/ttl/opengraph.ex:10
2024-05-07 21:56:27 -04:00
Mark Felder
19002fd6c1 Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint
Removed back in 2019

https://github.com/mastodon/mastodon/pull/11213
2024-05-08 01:44:58 +00:00
Mark Felder
37de58823f Remove test validating missing descriptions are returned as an empty string 2024-05-08 00:49:29 +00:00
Mark Felder
5bbcf5b8b7 Improve test description 2024-05-08 00:36:16 +00:00
Mark Felder
c16c023ebf Rich Media Cards are fetched asynchonously and not guaranteed to be available on first post render 2024-05-08 00:26:32 +00:00
Mark Felder
fa66bd95dc Rich Media Cards are cached by URL not per status 2024-05-08 00:23:59 +00:00
Mark Felder
5a5a193877 Fix broken Rich Media parsing when the image URL is a relative path 2024-05-07 19:54:56 -04:00
Mark Felder
d21aa1a77c Respect the TTL returned in OpenGraph tags 2024-05-07 19:54:56 -04:00
Mark Felder
f40084e019 Fix broken tests 2024-05-07 19:54:56 -04:00
Mark Felder
df0734fcbf Increase the :max_body for Rich Media to 5MB
Websites are increasingly getting more bloated with tricks like inlining content (e.g., CNN.com) which puts pages at or above 5MB. This value may still be too low.
2024-05-07 19:54:56 -04:00
Mark Felder
ede414094f RichMedia refactor
Rich Media parsing was previously handled on-demand with a 2 second HTTP request timeout and retained only in Cachex. Every time a Pleroma instance is restarted it will have to request and parse the data for each status with a URL detected. When fetching a batch of statuses they were processed in parallel to attempt to keep the maximum latency at 2 seconds, but often resulted in a timeline appearing to hang during loading due to a URL that could not be successfully reached. URLs which had images links that expire (Amazon AWS) were parsed and inserted with a TTL to ensure the image link would not break.

Rich Media data is now cached in the database and fetched asynchronously. Cachex is used as a read-through cache. When the data becomes available we stream an update to the clients. If the result is returned quickly the experience is almost seamless. Activities were already processed for their Rich Media data during ingestion to warm the cache, so users should not normally encounter the asynchronous loading of the Rich Media data.

Implementation notes:

- The async worker is a Task with a globally unique process name to prevent duplicate processing of the same URL
- The Task will attempt to fetch the data 3 times with increasing sleep time between attempts
- The HTTP request obeys the default HTTP request timeout value instead of 2 seconds
- URLs that cannot be successfully parsed due to an unexpected error receives a negative cache entry for 15 minutes
- URLs that fail with an expected error will receive a negative cache with no TTL
- Activities that have no detected URLs insert a nil value in the Cachex :scrubber_cache so we do not repeat parsing the object content with Floki every time the activity is rendered
- Expiring image URLs are handled with an Oban job
- There is no automatic cleanup of the Rich Media data in the database, but it is safe to delete at any time
- The post draft/preview feature makes the URL processing synchronous so the rendered post preview will have an accurate rendering

Overall performance of timelines and creating new posts which contain URLs is greatly improved.
2024-05-07 19:54:56 -04:00
feld
b42963a52c Merge branch 'revert-50af909c' into 'develop'
Revert "Merge branch 'pleroma-card-image-description' into 'develop'"

See merge request pleroma/pleroma!4107
2024-05-07 23:21:37 +00:00
feld
750fb25f48 Revert "Merge branch 'pleroma-card-image-description' into 'develop'"
This reverts merge request !4101
2024-05-07 23:20:38 +00:00
Mark Felder
acf73f7e13 Update changelog entry 2024-05-07 17:48:40 -04:00
Mark Felder
06c26bf9c9 Add the absent max_featured_tags to the api spec for /api/v1/instance 2024-05-07 17:46:05 -04:00
Mark Felder
b979389958 Add configuration[accounts][max_pinned_statuses] to /api/v2/instance
Also add the absent max_featured_tags to the api spec for /api/v2/instance
2024-05-07 17:45:02 -04:00
Mark Felder
3cad57bf48 Add configuration[statuses][characters_reserved_per_url] to /api/v2/instance
Fixes #3250
2024-05-07 17:25:30 -04:00
Mark Felder
dd03184811 Strip actor from objects before federating 2024-05-07 11:54:45 -04:00
lain
ffa6805c09 Merge branch 'description-type' into 'develop'
Fix type in config description

See merge request pleroma/pleroma!4104
2024-05-07 11:39:48 +00:00
marcin mikołajczak
637f5bc431 Fix type in description
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-27 20:29:23 +02:00
marcin mikołajczak
3893311bd2 Merge remote-tracking branch 'origin/develop' into translate-posts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-27 13:48:10 +02:00
marcin mikołajczak
b53abd9d79 changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-26 17:58:28 +02:00
marcin mikołajczak
f954f98fb7 Implement /api/v1/instance/translation_languages
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:57:01 +02:00
marcin mikołajczak
010c23e729 Include unspecified variants in target languages list for DeepL
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:55:41 +02:00
marcin mikołajczak
7fca35f4fd InstanceView: Move supported languages to pleroma.metadata
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:55:24 +02:00
marcin mikołajczak
4696487f1f Fix instance view
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:54:12 +02:00
marcin mikołajczak
28f8bb00d8 Add supported languages list to /api/v2/instance
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:54:01 +02:00
marcin mikołajczak
f0eb8e0b0c Add tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:50:11 +02:00
marcin mikołajczak
fedae008c8 Deepl: use :base_url
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:47:40 +02:00
marcin mikołajczak
2b739faa7e Rename
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:45:33 +02:00
marcin mikołajczak
066ec8fe95 Update description.exs
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:44:50 +02:00
marcin mikołajczak
aa429f6e6a Do not translate non-public statuses
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:44:34 +02:00
marcin mikołajczak
90f590788c Add tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:44:18 +02:00
marcin mikołajczak
90f91168f7 Expose translation service availability
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:43:37 +02:00
marcin mikołajczak
557a7d736a WIP Translation backends support
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:42:57 +02:00
marcin mikołajczak
fa24e0ff22 changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:37:22 +02:00
Alex Gleason
df0d84833d mix format 2024-04-25 23:17:03 +02:00
Alex Gleason
91f42781d3 ActivityDraft: detect language from content_html so it can strip links 2024-04-25 23:17:02 +02:00
Alex Gleason
8bec926beb LanguageDetector: strip non-language text to (hopefully) improve accuracy 2024-04-25 23:15:55 +02:00
marcin mikołajczak
17d885fed8 Fix fasttext for multiline posts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:12:32 +02:00
marcin mikołajczak
80dbbd5501 Detect language for incoming posts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 23:11:12 +02:00
marcin mikołajczak
9932aeffc5 Add test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 21:22:45 +02:00
Haelwenn
88412daf11 Apply @lanodan's suggestion
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 12:34:12 +02:00
marcin mikołajczak
32994bb9c3 Language detection
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-25 12:33:40 +02:00
lain
50af909c01 Merge branch 'pleroma-card-image-description' into 'develop'
Include image description in status media cards

See merge request pleroma/pleroma!4101
2024-04-19 07:39:05 +00:00
marcin mikołajczak
6f6bede900 Include image description in status media cards
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-19 10:20:31 +04:00
lain
87b8ac3ce6 Merge branch 'receiverworker-error-handling' into 'develop'
ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …}

See merge request pleroma/pleroma!4100
2024-04-19 06:04:44 +00:00
Haelwenn
71a0373232 Merge branch 'ffmpeg-limiter' into 'develop'
Prevent Media Helper from respawning ffmpeg for bad media

See merge request pleroma/pleroma!4086
2024-04-17 05:47:54 +00:00
Haelwenn (lanodan) Monnier
a299ddb10e
ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …}
Otherwise an error like `{:signature, {:error, {:error, :not_found}}}` ends up considered a success.
2024-04-17 07:43:47 +02:00
tusooa
d80e0d6873 Merge branch 'user-actor-webfinger' into 'develop'
FEP-2c59, add "webfinger" to user actor

See merge request pleroma/pleroma!4099
2024-04-12 03:09:37 +00:00
marcin mikołajczak
4f5c4d79c4 FEP-2c59, add "webfinger" to user actor
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-11 17:50:11 +02:00
marcin mikołajczak
ccc3ac241f Add hint to rules
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-06 11:45:19 +02:00
marcin mikołajczak
9e6cf45906 /api/v1/accounts/familiar_followers
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-04-06 11:43:56 +02:00
marcin mikołajczak
01a5f839c5 Merge remote-tracking branch 'origin/develop' into instance_rules 2024-04-06 10:42:23 +02:00
lain
987f44d811 Merge branch 'bookmark-folders' into 'develop'
Fix BookmarkFolderView, add test

See merge request pleroma/pleroma!4096
2024-03-20 13:26:47 +00:00
marcin mikołajczak
37ec645ff2 Fix BookmarkFolderView, add test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-20 13:24:43 +01:00
Mark Felder
462d5aa5cb logger: remove request_id metadata which is not useful 2024-03-19 20:53:40 -04:00
Mark Felder
99cee755d8 Show Logger metadata in dev 2024-03-19 12:15:10 -04:00
Mark Felder
40823462e7 Logger metadata for request path and authenticated user 2024-03-19 12:15:10 -04:00
Mark Felder
7dfd148ff8 Logger metadata for inbound federation requests 2024-03-19 12:15:10 -04:00
Mark Felder
741f22bfe0 MediaHelper: cache failed URLs for 15 minutes to prevent excessive retries 2024-03-19 12:14:03 -04:00
Mark Felder
c25fda34e7 Skip generating notifications for internal users 2024-03-19 12:11:30 -04:00
Mark Felder
291d531e4c Unify notification push and streaming events for both local and federated activities
This also removes generation of notifications for blocked/filtered/muted users and threads.
2024-03-19 12:11:30 -04:00
lain
f775a1931b Merge branch 'transient-validators-defaults' into 'develop'
Set defaults values on transient objects (attachment, poll options) validators

See merge request pleroma/pleroma!4090
2024-03-19 12:44:13 +00:00
Lain Soykaf
4e8a1b40cb Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into transient-validators-defaults 2024-03-19 16:26:02 +04:00
lain
8a14fdbe47 Update transient-validators-defaults.change 2024-03-19 12:03:43 +00:00
lain
4e37cd85ef Merge branch 'fix-bookmark-test' into 'develop'
CI: Move changelog check to later in the pipeline

See merge request pleroma/pleroma!4095
2024-03-19 12:02:10 +00:00
Lain Soykaf
040a980277 Add changelog 2024-03-19 15:03:16 +04:00
Lain Soykaf
afae3a94a4 CI: Move changelog check to later in the pipeline
No reason to not run tests.
2024-03-19 13:54:35 +04:00
Lain Soykaf
9617189e96 Tests: Actually run the bookmark folder tests. 2024-03-19 13:51:04 +04:00
lain
8e37f19883 Merge branch 'test-improvements' into 'develop'
Tests: Explicitly set db pool size and max cases to the same value.

See merge request pleroma/pleroma!4094
2024-03-19 07:44:05 +00:00
Lain Soykaf
665947ab2a Tests: Reduced the max case number to make tests more stable. 2024-03-19 11:03:05 +04:00
Lain Soykaf
3cc8414c2e Add changelog 2024-03-19 10:38:29 +04:00
Lain Soykaf
923803a533 Tests: Explicitly set db pool size and max cases to the same value. 2024-03-19 10:34:37 +04:00
lain
ca5766c0a7 Merge branch 'postgres-bump' into 'develop'
Update minimum Postgres version to 11.0; disable JIT

See merge request pleroma/pleroma!4093
2024-03-19 04:46:40 +00:00
Mark Felder
357553a64a Remove usage of :persistent_term for Postgres version storage, fix test
This test should not have been passing. The search result's activity id should not be the same id as the local post.

capture_log was not being used. Removed.
2024-03-18 16:27:52 -04:00
Mark Felder
b822a912ad Remove test for postgres < 11 2024-03-18 16:15:40 -04:00
Mark Felder
1413d2e517 Remove vestiges of old Postgres support 2024-03-18 15:42:15 -04:00
Mark Felder
7f97fbc1ae Update minimum Postgres version to 11.0; disable JIT
This release is where JIT was introduced and it should be disabled. Pleroma's queries do not benefit from JIT, but it can increase latency of queries.
2024-03-18 15:36:26 -04:00
lain
0e4e20315b Merge branch 'bookmark-folders' into 'develop'
Bookmark folders

See merge request pleroma/pleroma!4080
2024-03-18 14:26:19 +00:00
marcin mikołajczak
60c4cb21ea InstanceView: Update features
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-18 14:02:29 +01:00
marcin mikołajczak
918c406a91 Merge remote-tracking branch 'origin/develop' into instance_rules
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-18 13:50:25 +01:00
lain
2b71f4897f Merge branch 'develop' into 'bookmark-folders'
# Conflicts:
#   docs/development/API/differences_in_mastoapi_responses.md
2024-03-18 10:35:02 +00:00
lain
cf0aa1238c Merge branch 'public-polls' into 'develop'
Expose nonAnonymous field from Smithereen polls

See merge request pleroma/pleroma!3962
2024-03-18 06:26:22 +00:00
lain
4f7f44ced1 Merge branch 'develop' into 'develop'
Notifications: filter on users rather than activities

See merge request pleroma/pleroma!4089
2024-03-17 20:17:04 +00:00
Matthieu Rakotojaona
a48f5f860e Notifications: filter on users rather than activities 2024-03-17 20:58:59 +01:00
lain
d5b64846ed Merge branch 'remove-rum-tests' into 'develop'
CI: Remove RUM tests.

See merge request pleroma/pleroma!4092
2024-03-17 16:33:26 +00:00
lain
56e456fb5b Merge branch 'fix-3241' into 'develop'
Consider a case when users.inbox is nil (Fix 3241)

Closes #3241

See merge request pleroma/pleroma!4083
2024-03-17 13:38:59 +00:00
Lain Soykaf
caf855cf9c ActivityPub.Publisher: Don't try federating if a user doesn't have an inbox. 2024-03-17 16:57:45 +04:00
Lain Soykaf
0450da88b6 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-fix-3241 2024-03-17 16:42:17 +04:00
lain
95bcd5d28f Merge branch 'force-mention' into 'develop'
Add ForceMention mrf

See merge request pleroma/pleroma!4082
2024-03-17 12:32:14 +00:00
Lain Soykaf
f0cca36e07 CI: Remove RUM tests. 2024-03-17 15:39:24 +04:00
feld
0b5bba23ce Merge branch 'backups' into 'develop'
Include following/followers in backups

See merge request pleroma/pleroma!4085
2024-03-15 19:32:35 +00:00
Haelwenn (lanodan) Monnier
4ad1d02d7e
changelog.d/transient-validators-defaults.change: insert 2024-03-15 16:25:02 +01:00
Haelwenn (lanodan) Monnier
48c22a67de
QuestionOptionsValidator: set default AS types 2024-03-15 16:22:18 +01:00
Haelwenn (lanodan) Monnier
8b651fab1d
AttachmentValidator: Set "Link" as default type 2024-03-15 16:22:18 +01:00
marcin mikołajczak
bb0b17f4d9 Include following/followers in backups
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-10 23:53:12 +01:00
tusooa
df7a8d4efe Merge branch 'instance-contact-account' into 'develop'
Add contact account to InstanceView

See merge request pleroma/pleroma!3960
2024-03-10 13:14:19 +00:00
feld
72daf522c9 Merge branch 'fix-framegrabs' into 'develop'
Fix ffmpeg framegrabs with Exile

See merge request pleroma/pleroma!4087
2024-03-08 14:48:26 +00:00
marcin mikołajczak
c0c4a9ed0d Merge remote-tracking branch 'origin/develop' into instance-contact-account
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-08 12:12:55 +01:00
tusooa
139057f346 Merge branch 'link-verification' into 'develop'
Verify profile link ownership with rel="me"

Closes #2733

See merge request pleroma/pleroma!3959
2024-03-08 00:52:09 +00:00
Mark Felder
54ff7234b9 Fix ffmpeg framegrabs with Exile 2024-03-07 17:38:21 -05:00
marcin mikołajczak
961a5dd4cd Add test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-07 16:42:22 +01:00
marcin mikołajczak
03d4e7eecc Merge remote-tracking branch 'origin/develop' into post-languages
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-07 16:03:40 +01:00
marcin mikołajczak
a6e066a77d Fix adding language to json ld header, add transmogrifier test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-07 14:05:45 +01:00
marcin mikołajczak
b7c625db0f Merge remote-tracking branch 'origin/develop' into link-verification 2024-03-07 13:13:49 +01:00
tusooa
47ce33a90d Apply tusooa's suggestion 2024-03-07 11:55:31 +00:00
tusooa
1422082bf2 Apply ledyba's suggestion(s) to 1 file(s) 2024-03-07 04:43:56 +00:00
tusooa
8298b326a7 Merge branch 'instance-v2' into 'develop'
Add some missing fields to instanceV2

See merge request pleroma/pleroma!4081
2024-03-07 01:31:27 +00:00
Kaede Fujisaki
0242c1f691 fmt 2024-03-02 18:34:12 +09:00
Kaede Fujisaki
1311f8314e add changelog.d 2024-03-02 18:24:39 +09:00
Kaede Fujisaki
fb1873b6ec add changelog.d 2024-03-02 18:23:56 +09:00
Kaede Fujisaki
2e548c31d4 Add changelog 2024-03-02 18:13:36 +09:00
Kaede Fujisaki
6ad4acea50 Consider a case when inbox is nil 2024-03-02 18:09:08 +09:00
marcin mikołajczak
9cfa4e67b1 Add ForceMention mrf
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-01 18:16:09 +01:00
marcin mikołajczak
d415686bb9 Allow to group bookmarks in folders
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-03-01 11:04:01 +01:00
marcin mikołajczak
acb9e46074 Add some missing fields to instanceV2
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-02-27 13:25:26 +01:00
Haelwenn
03e54aaba9 Merge branch 'remote-fetcher-error' into 'develop'
RemoteFetcherWorker: Make sure {:error, _} is returned on failure

See merge request pleroma/pleroma!4077
2024-02-24 11:37:34 +00:00
feld
bd4d2e1d83 Merge branch 'exile-freebsd' into 'develop'
Exile: change to upstream pre-release commit that fixes build on FreeBSD

See merge request pleroma/pleroma!4079
2024-02-23 20:52:04 +00:00
Mark Felder
267e20dbcd Exile: change to upstream pre-release commit that fixes build on FreeBSD 2024-02-23 15:36:37 -05:00
feld
6144cb43a8 Merge branch 'gun-pool-retry' into 'develop'
Gun connection pooling: rename variable for clarity

See merge request pleroma/pleroma!4078
2024-02-23 16:44:53 +00:00
Mark Felder
f4e48bc53e Rename variable to make the worker retry logic easier to read
The boolean value matches the intent of the "last_attempt" variable name now
2024-02-23 11:12:10 -05:00
Haelwenn
00e828b1a0 Merge branch 'gun-pool-retry' into 'develop'
Gun connection pool retry fix

See merge request pleroma/pleroma!4076
2024-02-23 06:47:56 +00:00
Haelwenn (lanodan) Monnier
6af6a9704d
RemoteFetcherWorker: Make sure {:error, _} is returned on failure
Otherwise jobs are considered a success.
2024-02-23 01:59:30 +01:00
marcin mikołajczak
c592a0e58d Merge remote-tracking branch 'origin/develop' into HEAD
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-02-22 21:05:20 +01:00
Mark Felder
72fc41d891 Prevent publisher jobs from erroring if the connection pool is full
A full pool is a soft-error. Snooze the job for 30 seconds and try again.
2024-02-22 14:14:40 -05:00
Mark Felder
ac55764599 Gun Connection Pool was not attempting to free a connection and retry once if the pool was full. 2024-02-22 14:07:46 -05:00
marcin mikołajczak
05cb931e4d Merge remote-tracking branch 'origin/develop' into post-languages
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-02-22 12:03:06 +01:00
Haelwenn
f0468697cd Merge branch 'mergeback/2.6.2' into 'develop'
Mergeback: Security Release 2.6.2

Closes #3245

See merge request pleroma/pleroma!4075
2024-02-20 10:52:46 +00:00
Haelwenn
fb4aa9f725 Merge branch 'release/2.6.2' into 'stable'
Security Release 2.6.2

See merge request pleroma/pleroma!4074
2024-02-20 08:43:07 +00:00
Haelwenn (lanodan) Monnier
e149ee6e22
Mergeback of security release 2.6.2 2024-02-20 09:34:11 +01:00
Haelwenn (lanodan) Monnier
be075a4336
Security release 2.6.2 2024-02-20 09:16:36 +01:00
Haelwenn (lanodan) Monnier
ac977bdb1c
StealEmojiPolicy: Sanitize shortcodes
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3245
2024-02-20 09:14:02 +01:00
Haelwenn (lanodan) Monnier
7d624c4750
StealEmojiPolicy: Sanitize shortcodes
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3245
2024-02-20 09:09:54 +01:00
feld
0b9bc4a0d0 Merge branch 'memleak' into 'develop'
Force more frequent full_sweep GC runs on the Websocket processes

See merge request pleroma/pleroma!4060
2024-02-17 16:21:55 +00:00
Mark Felder
7e99d0619d Force more frequent full_sweep GC runs on the Websocket processes
Websocket processes seem to be the primary culprit for Binary memory allocation bloat.
2024-02-17 09:53:52 -05:00
Haelwenn
a145d909b5 Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!4070
2024-02-16 18:28:55 +00:00
SyoBoN
2c9fed9b73 Translated using Weblate (Japanese)
Currently translated at 63.1% (60 of 95 strings)

Translation: Pleroma/Pleroma Backend (domain errors)
Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-backend-domain-errors/ja/
2024-02-16 17:54:01 +00:00
feld
0fbec6b532 Merge branch 'deps-changelog-revert' into 'develop'
Revert "Support a new changelog entry type: deps"

See merge request pleroma/pleroma!4071
2024-02-16 17:53:52 +00:00
Mark Felder
1951d56ed9 Revert "Add support for a "deps" changelog type and document deps changes since 2.6.1 release"
This reverts commit 2a4fa4c408.
2024-02-16 12:53:18 -05:00
Mark Felder
c9cd449bba Revert "Support a new changelog entry type: deps"
This reverts commit 4648997a10.
2024-02-16 12:52:56 -05:00
feld
03834454d9 Merge branch 'tesla' into 'develop'
Update Tesla, document some deps changes

See merge request pleroma/pleroma!4069
2024-02-15 15:27:34 +00:00
Mark Felder
2a4fa4c408 Add support for a "deps" changelog type and document deps changes since 2.6.1 release 2024-02-15 10:27:13 -05:00
Mark Felder
772f8d08cf Tesla changelog 2024-02-15 10:24:32 -05:00
Mark Felder
4648997a10 Support a new changelog entry type: deps 2024-02-15 10:24:31 -05:00
feld
b91317b9bf Merge branch 'bandit' into 'develop'
Support Bandit as a Phoenix HTTP adapter

See merge request pleroma/pleroma!4068
2024-02-15 15:23:41 +00:00
Mark Felder
202721e80c Remove Cowboy-specific HTTP options
These were only used in dev and served no specific purpose. The equivalent settings for Bandit are under a key called :http1_options and the default values are set to 10_000.
2024-02-15 09:55:03 -05:00
Mark Felder
0c5bec0493 Support Bandit as an alternate HTTP backend to Cowboy. This is currently considered experimental, but may improve performance and resource usage. 2024-02-15 09:54:52 -05:00
feld
4dd8a1a1ca Merge branch 'websocket-refactor' into 'develop'
Websocket refactor to use Phoenix.Socket.Transport

See merge request pleroma/pleroma!4064
2024-02-15 14:36:54 +00:00
lain
d3208d2250 Merge branch 'oauth-nickname' into 'develop'
Use User.full_nickname/1 in oauth html template

See merge request pleroma/pleroma!4054
2024-02-15 09:35:39 +00:00
lain
f2f455f283 Merge branch 'frontend-caching' into 'develop'
FrontendStatic should have reasonable caching

See merge request pleroma/pleroma!3685
2024-02-15 09:23:47 +00:00
Haelwenn
f28dcc9cb7 Merge branch 'config-stat-symlink' into 'develop'
Config: Check the permissions of the linked file instead of the symlink

See merge request pleroma/pleroma!4061
2024-02-15 01:48:03 +00:00
Haelwenn
d19642d7eb Merge branch 'bugfix-ccworks' into 'develop'
Bugfix for ccworks AP bridge

Closes #3234

See merge request pleroma/pleroma!4043
2024-02-15 01:30:22 +00:00
feld
802c618885 Merge branch 'atom-leaks' into 'develop'
Fix minor atom leaks

See merge request pleroma/pleroma!4065
2024-02-14 23:28:00 +00:00
Mark Felder
9138754b0a Changelog 2024-02-14 18:04:39 -05:00
Mark Felder
91c83a82a0 Fix atom leak in background worker
The only permitted values are "blocks_import", "follow_import", "mutes_import" of which we already have the equivalent atoms defined.
2024-02-14 18:03:54 -05:00
Mark Felder
86e6d395d9 Fix atom leak in password digest functionality
The value here gets passesd to :crypto.pbkdf2_hmac and it expects one of these atoms: :sha | :sha224 | :sha256 | :sha384 | :sha512 so it will always exist
2024-02-14 17:54:56 -05:00
Mark Felder
6be129ead2 Websocket refactor changelog 2024-02-14 15:27:12 -05:00
Mark Felder
d0f4b2b02f Remove invalid test
It is not allowed to use the Sec-WebSocket-Protocol header for arbitrary values. This was possible due to the raw websocket handling we were doing with Cowboy, but Phoenix.Socket.Transport does not allow this as the value of this header is compared against a static list of subprotocols.

https://hexdocs.pm/phoenix/Phoenix.Endpoint.html#socket/3-websocket-configuration

Additionally I cannot find anywhere that we depended on this behavior. Setting the Sec-WebSocket-Protocol header does not appear to be a part of PleromaFE.
2024-02-14 15:27:12 -05:00
Mark Felder
64ad451a7b Websocket refactor to use Phoenix.Socket.Transport
This will make us compatible with Cowboy and Bandit
2024-02-14 15:27:07 -05:00
feld
af9bb77cad Merge branch 'gun-logs' into 'develop'
Gun connection pool logs

See merge request pleroma/pleroma!4063
2024-02-14 18:57:11 +00:00
feld
1b2f9d4a6d Merge branch 'proxy-headers' into 'develop'
MediaProxy RFC compliance

See merge request pleroma/pleroma!4062
2024-02-14 18:56:54 +00:00
Mark Felder
9a4c8e2316 Change some Gun connection pool logs to debug level 2024-02-14 13:28:32 -05:00
Mark Felder
60ba6fd244 MediaProxy RFC compliance 2024-02-14 13:25:52 -05:00
Haelwenn (lanodan) Monnier
3b82864bcc
Config: Check the permissions of the linked file instead of the symlink↵ 2024-02-14 18:19:50 +01:00
feld
79d69ce72a Merge branch 'gitignore' into 'develop'
Update .gitignore

See merge request pleroma/pleroma!4059
2024-02-12 22:23:31 +00:00
Mark Felder
67c3acde34 Update .gitignore 2024-02-12 17:22:57 -05:00
feld
769e02d0de Merge branch 'notifications-query' into 'develop'
Fix notifications query to use the index

See merge request pleroma/pleroma!4058
2024-02-12 19:37:17 +00:00
Mark Felder
cb4d3db8c6 Changelog for notifications fix pulled in from Rebased 2024-02-12 14:14:38 -05:00
Alex Gleason
8daf19ec0f Fix notifications index 2024-02-12 14:13:11 -05:00
feld
991807080b Merge branch 'gun-fix' into 'develop'
Fix Gun connection supervisor logic error

See merge request pleroma/pleroma!4056
2024-02-09 16:48:05 +00:00
Mark Felder
0eca3e38eb Fix Gun connection supervisor logic error
This was recently changed to solve a Dialyzer error, but the replacement logic was faulty as "retry" would only be compared to :error and not have its truthiness evaluated.

The original logic was also faulty as it returned {:error, :pool_full} even retry was true. It never retried when the pool was full.
2024-02-09 10:48:40 -05:00
marcin mikołajczak
0fcdcc2300 Use User.full_nickname/1 in oauth html template
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-02-09 16:46:45 +01:00
feld
72480e7b2f Merge branch 'rich-media-tests' into 'develop'
Pleroma.Web.RichMedia.Parser: Remove test-specific codepaths

See merge request pleroma/pleroma!4053
2024-02-07 05:47:38 +00:00
Mark Felder
9f2319e50d RichMedia.Helpers: move the validate_page_url/1 function to the Parser module
This will ensure that the page validation happens in Parser.parse/1 so it can be called from anywhere and still filter invalid URLs.
2024-02-06 18:34:02 -05:00
Mark Felder
6b7b443ff9 Pleroma.Web.RichMedia.Parser: Remove test-specific codepaths
Also consolidate Tesla mocks into the HttpRequestMock module.

Tests were not exercising the real codepaths. The Rich Media Preview only works with https, but most of these tests were only mocking http.
2024-02-06 18:33:54 -05:00
feld
e957362779 Merge branch 'rich-media-cache' into 'develop'
Fix Rich Media Previews for updated activities

See merge request pleroma/pleroma!4052
2024-02-05 05:58:07 +00:00
Mark Felder
0cc038b67c Ensure URLs with IP addresses for the host do not generate previews 2024-02-05 00:09:37 -05:00
Mark Felder
579561e97b URI.authority is deprecated 2024-02-04 23:49:07 -05:00
Mark Felder
04fc4eddaa Fix Rich Media Previews for updated activities
The Rich Media Previews were not regenerated when a post was updated due to a cache invalidation issue. They are now cached by the activity id so they can be evicted with the other activity cache objects in the :scrubber_cache.
2024-02-04 23:47:04 -05:00
feld
0b9990a7e5 Merge branch 'dialyzer-fixes' into 'develop'
Dialyzer and gradient fixes

See merge request pleroma/pleroma!4051
2024-02-04 17:56:14 +00:00
marcin mikołajczak
e798be90ac Merge branch 'develop' into 'post-languages'
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-02-02 18:55:37 +01:00
Mark Felder
0ffeb84f0c Changelog 2024-02-02 12:14:21 -05:00
Mark Felder
a2c686e16c Pleroma.Filter: fix gradient error
lib/pleroma/filter.ex: The clause on line 220 cannot be reached
2024-02-02 12:14:21 -05:00
Mark Felder
d42b0eb29b Pleroma.Config.DeprecationWarnings: fix gradient errors
lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 292 is expected to have type :ok | nil but it has type :error

lib/pleroma/config/deprecation_warnings.ex: The function call move_namespace_and_warn(
  [
    {Pleroma.ActivityExpiration, Pleroma.Workers.PurgeExpiredActivity,
     "
* `config :pleroma, Pleroma.ActivityExpiration` is now `config :pleroma, Pleroma.Workers.PurgeExpiredActivity`"}
  ],
  warning_preface
) on line 350 is expected to have type :ok | nil but it has type :ok | nil | :error

lib/pleroma/config/deprecation_warnings.ex: The function call move_namespace_and_warn(
  [
    {Pleroma.Plugs.RemoteIp, Pleroma.Web.Plugs.RemoteIp, "
* `config :pleroma, Pleroma.Plugs.RemoteIp` is now `config :pleroma, Pleroma.Web.Plugs.RemoteIp`"}
  ],
  warning_preface
) on line 366 is expected to have type :ok | nil but it has type :ok | nil | :error

lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 390 is expected to have type :ok | nil but it has type :error

lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 413 is expected to have type :ok | nil but it has type :error
2024-02-02 12:14:21 -05:00
Mark Felder
bff04da0f3 Pleroma.Emoji.Pack: fix gradient error
lib/pleroma/emoji/pack.ex: The tuple {:cwd, tmp_dir} on line 103 is expected to have type :cooked
| :keep_old_files
| :memory
| :verbose
| {:cwd, list(char())}
| {:file_filter, (record(:zip_file) -> boolean())}
| {:file_list, list(:file.name())} but it has type {:cwd, binary()}
2024-02-02 12:14:21 -05:00
Mark Felder
ac7f2cf105 Pleroma Emoji mix task: fix gradient error
lib/mix/tasks/pleroma/emoji.ex: The tuple {:cwd, pack_path} on line 114 is expected to have type :cooked
| :keep_old_files
| :memory
| :verbose
| {:cwd, list(char())}
| {:file_filter, (record(:zip_file) -> boolean())}
| {:file_list, list(:file.name())} but it has type {:cwd, binary()}
2024-02-02 12:14:21 -05:00
Mark Felder
15621b7284 Pleroma.HTTP.RequestBuilder: fix gradient error
lib/pleroma/http/request_builder.ex: The variable key on line 69 is expected to have type String.t() but it has type atom()
2024-02-02 12:14:21 -05:00
Mark Felder
cccfdde14c Pleroma.MFA: fix gradient error
lib/pleroma/mfa.ex: The map %{error: msg} on line 80 is expected to have type {:ok, list(binary())} | {:error, String.t()} but it has type %{required(:error) => any()}
2024-02-02 12:14:15 -05:00
Mark Felder
7745ee27bc Pleroma.MFA.Totp.provisioning_uri/3: add @spec 2024-02-02 12:13:31 -05:00
marcin mikołajczak
1ed8ae2d8e Add changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-01-31 22:55:58 +01:00
marcin mikołajczak
226e53fdd7 Merge remote-tracking branch 'origin/develop' into status-notification-type
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-01-31 22:19:33 +01:00
Mark Felder
f933d24b02 Pleroma.Config.DeprecationWarnings: fix type errors detected by gradient
lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 278 is expected to have type :ok | nil but it has type :error

lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 292 is expected to have type :ok | nil but it has type :error

lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 390 is expected to have type :ok | nil but it has type :error

lib/pleroma/config/deprecation_warnings.ex: The atom :error on line 413 is expected to have type :ok | nil but it has type :error
2024-01-31 14:55:14 -05:00
Mark Felder
518a38577b Fix dialyzer errors due to deprecated usage of put_layout/2 2024-01-31 14:55:11 -05:00
Mark Felder
97c4d3bcc9 Pleroma.Web.Plugs.RateLimiter.Supervisor: dialyzer error
lib/pleroma/web/plugs/rate_limiter/supervisor.ex:12:no_return
Function init/1 has no local return.
2024-01-31 13:12:56 -05:00
Mark Felder
92992c022d Pleroma.Web.OAuth.OAuthController: dialyzer error
validate_scopes/2 can never receive a map as it is only called in one place with a guard requiring a list

lib/pleroma/web/o_auth/o_auth_controller.ex:615:guard_fail
The guard test:

is_map(_params :: maybe_improper_list())

can never succeed.
2024-01-31 11:29:06 -05:00
Mark Felder
5e8bedcca0 Pleroma.Web.PleromaAPI.MascotController: fix dialyzer error due to bad error match
lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:37:pattern_match
The pattern can never match the type.

Pattern:
{:content_type, _}

Type:
{:error, _}

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:40:pattern_match
The pattern can never match the type.

Pattern:
{:upload, {:error, _}}

Type:
{:error, _}
2024-01-31 11:15:48 -05:00
Mark Felder
ed2f8e45e9 Pleroma.Web.MastodonAPI.SearchController: fix dialyzer errors
Add a separate Pagination.paginate_list/2 function instead of overloading paginate/4 and complicating its matching and @spec
2024-01-31 11:12:41 -05:00
Mark Felder
c6f783c551 Pleroma.Web.ControllerHelper: fix @spec to resolve dialyzer errors
lib/pleroma/web/admin_api/controllers/user_controller.ex:333:no_return
Function index/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:357:unused_fun
Function maybe_parse_filters/1 will never be called.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:366:no_return
Function page_params/1 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:368:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.fetch_integer_param(_params :: any(), :page, 1)

breaks the contract
(map(), String.t(), integer() | nil) :: integer() | nil
2024-01-31 11:01:37 -05:00
feld
3b9d991514 Merge branch 'dialyzer-fixes' into 'develop'
More dialyzer fixes

See merge request pleroma/pleroma!4050
2024-01-31 15:37:44 +00:00
Mark Felder
e17441b0ed Changelog 2024-01-31 10:13:02 -05:00
Mark Felder
225afe05b3 Pleroma.Web.TwitterAPI.UtilController: fix dialyzer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
b8db67dafa Pleroma.Web.MastodonAPI.StatusController: fix dialzyer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
fb7535ff9a MascotController dialyzer error
lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:31:call
The function call will not succeed.

Pleroma.Web.ActivityPub.ActivityPub.upload(_file :: atom() | %{:content_type => _, _ => _}, [{:actor, <<_::56, _::size(8)>>}, ...]) ::
  :ok
def a() do
  :ok
end

will never return since the 2nd arguments differ
from the success typing arguments:

(any(), [
  {:activity_type | :description | :filters | :size_limit | :type | :uploader,
   atom() | binary() | [atom()] | non_neg_integer()}
])
2024-01-31 10:13:02 -05:00
Mark Felder
9760149886 Pleroma.Web.PleromaAPI.UserImportController: fix dialyzer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
c39e4dd214 Pleroma.Web.PleromaAPI.NotificationController: fix dialyzer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
e157fd60ee Pleroma.Web.PleromaAPI.MascotController: fix dialyzer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
9d16393d8b Pleroma.Web.PleromaAPI.EmojiPackController: fix dialyzer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
f1aeb80518 Pleroma.Web.PleromaAPI.EmojiFileController: fix dialyzer errors with replace_params: false 2024-01-31 10:13:02 -05:00
Mark Felder
4d20fbc6d9 Pleroma.Web.PleromaAPI.ChatController: fix dialyzer errors with replace_params: false 2024-01-31 10:12:59 -05:00
Mark Felder
fdddba100e Pleroma.Web.MastodonAPI.SearchController: fix dialyzer errors with replace_params: false 2024-01-30 18:40:46 -05:00
Mark Felder
324fd08455 Pleroma.Web.MastodonAPI.ScheduledActivityController: fix dialyzer errors with replace_params: false 2024-01-30 18:33:23 -05:00
Mark Felder
d3c6acd2f2 Pleroma.Web.MastodonAPI.PollController: fix dialyzer errors with replace_params: false 2024-01-30 18:31:13 -05:00
Mark Felder
0a6b2c9587 Pleroma.Web.MastodonAPI.NotificationController: fix dialyzer errors with replace_params: false 2024-01-30 18:27:31 -05:00
Mark Felder
90c9f38f40 Pleroma.Web.MastodonAPI.MediaController: fix dialyzer errors with replace_params: false 2024-01-30 18:09:11 -05:00
Mark Felder
9741f045e4 Pleroma.Web.MastodonAPI.ListController: fix dialyzer errors with replace_params: false 2024-01-30 18:05:28 -05:00
Mark Felder
14de8376ad Pleroma.Web.MastodonAPI.FollowRequestController: fix dialyzer errors with replace_params: false 2024-01-30 17:56:43 -05:00
Mark Felder
f400224a00 Pleroma.Web.AdminAPI.UserController: fix dialyzer errors with replace_params: false 2024-01-30 17:51:40 -05:00
Mark Felder
dd916e0b4c Pleroma.Web.AdminAPI.ReportController: fix dialyzer errors with replace_params: false 2024-01-30 17:24:26 -05:00
Mark Felder
b84a33a101 Pleroma.Web.AdminAPI.RelayController: fix dialyzer errors with replace_params: false 2024-01-30 17:13:14 -05:00
Mark Felder
fb6f53fc12 Pleroma.Web.AdminAPI.MediaProxyCacheController: fix dialyzer errors with replace_params: false 2024-01-30 17:11:43 -05:00
Mark Felder
ea26dcd800 Pleroma.Web.AdminAPI.InviteController: fix dialyzer errors with replace_params: false 2024-01-30 17:06:37 -05:00
Mark Felder
85c9397ec7 Pleroma.Web.AdminAPI.InstanceDocumentController: fix dialyzer errors with replace_params: false 2024-01-30 17:04:12 -05:00
Mark Felder
ef1f301756 Pleroma.Web.AdminAPI.ConfigController: fix dialyzer errors with replace_params: false 2024-01-30 16:59:28 -05:00
Mark Felder
dec82a6a36 Phoenix.Endpoint.Cowboy2Handler does not exist
This should have always failed as it would not be an existing atom. Unclear how it worked since the upgrade to Phoenix 1.6.
2024-01-30 16:58:19 -05:00
Mark Felder
81c8592d69 Pleroma.Web.MastodonAPI.AccountController: fix dialyzer errors with replace_params: false 2024-01-30 16:50:00 -05:00
feld
1bba02863d Merge branch 'dialyzer-fixes' into 'develop'
Dialyzer fixes, some reverts

See merge request pleroma/pleroma!4049
2024-01-30 20:32:32 +00:00
Mark Felder
cfe7438b2f Pleroma.Web.MastodonAPI.DomainBlockController: dialyzer fixes via :replace_params 2024-01-30 14:52:15 -05:00
Mark Felder
608466d098 Modify our CastAndValidate plug to include the new functionality provided by the :replace_params config option
This allows us to configure Open API Spex to not overwrite the params with the casted versions which violates the Plug.Conn.t() contract

https://github.com/open-api-spex/open_api_spex/issues/92
https://github.com/open-api-spex/open_api_spex/pull/425
2024-01-30 14:49:55 -05:00
Mark Felder
91a70ba552 Bump open_api_spex 2024-01-30 14:48:45 -05:00
Mark Felder
8476eb1842 Revert "Pleroma.Web.AdminAPI.MediaProxyCacheController: dialyzer errors"
This reverts commit 8b02c85810.
2024-01-30 14:20:02 -05:00
Mark Felder
88a35b2865 Revert "Pleroma.Web.TwitterAPI.UtilController: dialyzer fixes"
This reverts commit 17f4251b19.
2024-01-30 14:19:54 -05:00
Mark Felder
674ae51d6a Revert "Pleroma.Web.PleromaAPI.UserImportController: Dialyzer errors"
This reverts commit 52e18a6249.
2024-01-30 14:19:41 -05:00
Mark Felder
4a80a285d1 Revert "Pleroma.Web.PleromaAPI.NotificationController: dialyzer errors"
This reverts commit 26a95e5787.
2024-01-30 14:19:32 -05:00
Mark Felder
1e76ceacd5 Revert "Pleroma.Web.AdminAPI.ConfigController: dialyzer error"
This reverts commit 60d89cb404.
2024-01-30 14:19:13 -05:00
Mark Felder
2c8e4f32c6 Revert "Pleroma.Web.PleromaAPI.MascotController: dialyzer errors"
This reverts commit 9c8055d4b3.
2024-01-30 14:18:36 -05:00
Mark Felder
b1a6102a85 Revert "Pleroma.Web.PleromaAPI.EmojiPackController: dialyzer errors"
This reverts commit 77bf617c4b.
2024-01-30 14:15:40 -05:00
Mark Felder
4a9ed4682a Revert "Pleroma.Web.PleromaAPI.EmojiFileController: dialyzer errors"
This reverts commit dc912dc590.
2024-01-30 14:15:17 -05:00
Mark Felder
b709fc4dfe Revert "Pleroma.Web.PleromaAPI.ChatController: Dialyzer error"
This reverts commit 8d64eedbec.
2024-01-30 14:15:05 -05:00
Mark Felder
589456f0ba Revert "Pleroma.Web.AdminAPI.InviteController: dialyzer errors"
This reverts commit db87be126e.
2024-01-30 14:14:56 -05:00
Mark Felder
4227db0871 Revert "Pleroma.Web.AdminAPI.UserController: dialyzer errors"
This reverts commit d92c3d927d.
2024-01-30 14:14:39 -05:00
Mark Felder
ac06a47689 Revert "Pleroma.Web.AdminAPI.RelayController: dialyzer errors"
This reverts commit 94838ed941.
2024-01-30 14:14:22 -05:00
Mark Felder
da5e0fca4f Revert "Pleroma.Web.AdminAPI.ReportController: dialyzer errors"
This reverts commit bfe626d578.
2024-01-30 14:14:07 -05:00
Mark Felder
39241107d9 Revert "Pleroma.Web.AdminAPI.InstanceDocumentController: fix dialyzer error"
This reverts commit a3024dd5ac.
2024-01-30 14:13:56 -05:00
Mark Felder
1fa1a93cd6 Revert "Pleroma.Web.MastodonAPI.AccountController: dialyzer errors"
This reverts commit e53c20b03c.
2024-01-30 14:13:46 -05:00
Mark Felder
41493bd642 Revert "Pleroma.Web.MastodonAPI.DomainBlockController: dialyzer errors"
This reverts commit 378edeaf15.
2024-01-30 14:13:23 -05:00
Mark Felder
a3426fcaf3 Revert "Pleroma.Web.MastodonAPI.MediaController: dialyzer errors"
This reverts commit 8cd5279857.
2024-01-30 14:13:13 -05:00
Mark Felder
b666710574 Pleroma.Web.MediaProxy.MediaProxyController: dialyzer errors
lib/pleroma/web/media_proxy/media_proxy_controller.ex:55:no_return
Function handle_preview/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:59:call
The function call will not succeed.

Pleroma.HTTP.request(<<72, 69, 65, 68>>, _media_proxy_url :: any(), [], [], [{:pool, :media}])

will never return since the success typing is:
(
  :delete | :get | :head | :options | :patch | :post | :put | :trace,
  binary(),
  any(),
  [{binary(), binary()}],
  Keyword.t()
) :: any()

and the contract is
(
  method(),
  Pleroma.HTTP.Request.url(),
  String.t(),
  Pleroma.HTTP.Request.headers(),
  :elixir.keyword()
) :: {:ok, Tesla.Env.t()} | {:error, any()}

________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:95:unused_fun
Function handle_preview/3 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:111:unused_fun
Function handle_png_preview/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:134:unused_fun
Function handle_jpeg_preview/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:152:unused_fun
Function handle_video_preview/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:164:unused_fun
Function drop_static_param_and_redirect/1 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:173:unused_fun
Function fallback_on_preview_error/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:177:unused_fun
Function put_preview_response_headers/1 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:177:unused_fun
Function put_preview_response_headers/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:187:unused_fun
Function thumbnail_max_dimensions/0 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:196:unused_fun
Function min_content_length_for_preview/0 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:200:unused_fun
Function media_preview_proxy_config/0 will never be called.
2024-01-29 18:50:50 -05:00
Mark Felder
8cd5279857 Pleroma.Web.MastodonAPI.MediaController: dialyzer errors
lib/pleroma/web/mastodon_api/controllers/media_controller.ex:32:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:file => _, _ => _},
    _ => _
  },
  <<97, 116, 116, 97, 99, 104, 109, 101, 110, 116, 46, 106, 115, 111, 110>>,
  %{:attachment => map()}
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/mastodon_api/controllers/media_controller.ex:48:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:file => _, _ => _},
    _ => _
  },
  202
)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/mastodon_api/controllers/media_controller.ex:63:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:description => _, _ => _},
    _ => _
  },
  <<97, 116, 116, 97, 99, 104, 109, 101, 110, 116, 46, 106, 115, 111, 110>>,
  %{:attachment => map()}
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()
2024-01-29 18:36:46 -05:00
Mark Felder
378edeaf15 Pleroma.Web.MastodonAPI.DomainBlockController: dialyzer errors
lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:32:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:domain => _, _ => _},
    _ => _
  },
  %{}
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:43:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:domain => _, _ => _},
    _ => _
  },
  %{}
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()
2024-01-29 18:36:34 -05:00
Mark Felder
3cb2807244 Pleroma.Web.MastodonAPI.StatusView: dialyzer error
lib/pleroma/web/mastodon_api/views/status_view.ex:799:pattern_match_cov
The pattern
_, _

can never match, because previous clauses completely cover the type

  %URI{
    :authority => URI.authority(),
    :fragment => nil | binary(),
    :host => nil | binary(),
    :path => nil | binary(),
    :port => nil | char(),
    :query => nil | binary(),
    :scheme => nil | binary(),
    :userinfo => nil | binary()
  },
  %URI{
    :authority => URI.authority(),
    :fragment => nil | binary(),
    :host => nil | binary(),
    :path => nil | binary(),
    :port => nil | char(),
    :query => nil | binary(),
    :scheme => nil | binary(),
    :userinfo => nil | binary()
  }
.
2024-01-29 18:28:49 -05:00
Mark Felder
a266492776 Pleroma.User: dialyzer errors
lib/pleroma/user.ex:757:no_return
Function register_changeset/1 has no local return.
________________________________________________________________________________
lib/pleroma/user.ex:757:no_return
Function register_changeset/2 has no local return.
________________________________________________________________________________
lib/pleroma/user.ex:757:no_return
Function register_changeset/3 has no local return.
________________________________________________________________________________
lib/pleroma/user.ex:778:call
The function call will not succeed.

Pleroma.User.approval_changeset(
  %Ecto.Changeset{
    :action => atom(),
    :changes => %{atom() => _},
    :constraints => [
      %{
        :constraint =>
          binary()
          | %Regex{
              :opts => binary() | [any()],
              :re_pattern => _,
              :re_version => _,
              :source => binary()
            },
        :error_message => binary(),
        :error_type => atom(),
        :field => atom(),
        :match => :exact | :prefix | :suffix,
        :type => :check | :exclusion | :foreign_key | :unique
      }
    ],
    :data => nil | map(),
    :empty_values => _,
    :errors => Keyword.t({binary(), Keyword.t()}),
    :filters => %{atom() => _},
    :params => nil | %{binary() => _},
    :prepare => [(_ -> any())],
    :repo => atom(),
    :repo_opts => Keyword.t(),
    :required => [atom()],
    :types =>
      nil
      | %{
          atom() =>
            atom()
            | {:array | :assoc | :embed | :in | :map | :maybe | :param, _}
            | {:parameterized, atom(), _}
        },
    :valid? => boolean(),
    :validations => Keyword.t()
  },
  [{:set_approval, _}, ...]
)

breaks the contract
(t(), :elixir.keyword()) :: Ecto.Changeset.t()

________________________________________________________________________________
lib/pleroma/user.ex:854:unused_fun
Function maybe_validate_required_birthday/1 will never be called.
2024-01-29 17:37:52 -05:00
Mark Felder
2de84e2e3b API Specs: many dialyzer errors
Too many to include in a commit log

Module instead of schema was being passed
2024-01-29 17:10:28 -05:00
Mark Felder
4fc177eb46 Pleroma.Web.ControllerHelper: dialyzer error
lib/pleroma/web/controller_helper.ex:97:pattern_match
The pattern can never match the type.

Pattern:
nil

Type:
%Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{
    binary() =>
      binary()
      | [binary() | [any()] | %{binary() => _}]
      | %{binary() => binary() | [any()] | %{binary() => _}}
  },
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() =>
      binary()
      | [binary() | [any()] | %{binary() => _}]
      | %{binary() => binary() | [any()] | %{binary() => _}}
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{binary(), binary()}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{binary(), binary()}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}
2024-01-29 16:42:48 -05:00
Haelwenn
251c455b91 Merge branch 'deps-bump' into 'develop'
Bump dependencies

See merge request pleroma/pleroma!4044
2024-01-29 17:43:00 +00:00
feld
c9dc881747 Merge branch 'dialyzer-fixes' into 'develop'
More dialyzer fixes

See merge request pleroma/pleroma!4048
2024-01-28 23:20:25 +00:00
Mark Felder
6a22a80f9f Pleroma.Web.MastodonAPI.DirectoryController: dialyzer errors
lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6:unused_fun
Function skip_auth/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6:unused_fun
Function skip_plug/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:18:guard_fail
The guard clause:

when _action :: atom() == <<105, 110, 100, 101, 120>>

can never succeed.
2024-01-28 17:41:07 -05:00
Mark Felder
e53c20b03c Pleroma.Web.MastodonAPI.AccountController: dialyzer errors
lib/pleroma/web/mastodon_api/controllers/account_controller.ex:479:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:account => _, :user => _, _ => _},
    :body_params => %{:comment => _, _ => _},
    _ => _
  },
  <<114, 101, 108, 97, 116, 105, 111, 110, 115, 104, 105, 112, 46, 106, 115, 111, 110>>,
  [
    {:target, %Pleroma.User{:id => _, _ => _}} | {:user, %Pleroma.User{:id => _, _ => _}},
    ...
  ]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/mastodon_api/controllers/account_controller.ex:519:call
The function call will not succeed.

Plug.Conn.assign(
  _conn :: %{:body_params => %{:uri => _, _ => _}, _ => _},
  :account,
  _user :: %Pleroma.User{_ => _}
)

breaks the contract
(t(), atom(), term()) :: t()
2024-01-28 17:41:07 -05:00
Mark Felder
e2fc03ec72 Pleroma.Web.ActivityPub.Utils: dialyzer error
lib/pleroma/web/activity_pub/utils.ex:779:guard_fail
The guard clause:

when _ :: %Pleroma.Object{_ => _} === nil

can never succeed.
2024-01-28 17:14:41 -05:00
Mark Felder
082d665160 Pleroma.Web.AdminAPI.UserController: dialyzer errors
lib/pleroma/web/admin_api/controllers/user_controller.ex:205:no_return
Function activate/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:215:call
The function call will not succeed.

Keyword.values(
  _updated_users :: %Pleroma.User{
    :__meta__ => _,
    :accepts_chat_messages => _,
    :actor_type => _,
    :allow_following_move => _,
    :also_known_as => _,
    :ap_id => _,
    :avatar => _,
    :background => _,
    :banner => _,
    :bio => _,
    :birthday => _,
    :blocked_users => _,
    :blockee_blocks => _,
    :blocker_blocks => _,
    :blocker_users => _,
    :blocks => _,
    :confirmation_token => _,
    :default_scope => _,
    :deliveries => _,
    :disclose_client => _,
    :domain_blocks => _,
    :email => _,
    :email_notifications => _,
    :emoji => _,
    :endorsed_users => _,
    :endorsee_endorsements => _,
    :endorser_endorsements => _,
    :endorser_users => _,
    :featured_address => _,
    :fields => _,
    :follower_address => _,
    :follower_count => _,
    :following_address => _,
    :following_count => _,
    :hide_favorites => _,
    :hide_followers => _,
    :hide_followers_count => _,
    :hide_follows => _,
    :hide_follows_count => _,
    :id => _,
    :inbox => _,
    :incoming_relationships => _,
    :inserted_at => _,
    :invisible => _,
    :is_active => _,
    :is_admin => _,
    :is_approved => _,
    :is_confirmed => _,
    :is_discoverable => _,
    :is_locked => _,
    :is_moderator => _,
    :is_suggested => _,
    :keys => _,
    :language => _,
    :last_active_at => _,
    :last_digest_emailed_at => _,
    :last_refreshed_at => _,
    :last_status_at => _,
    :local => _,
    :mascot => _,
    :multi_factor_authentication_settings => _,
    :muted_notifications => _,
    :muted_reblogs => _,
    :muted_users => _,
    :mutee_mutes => _,
    :muter_mutes => _,
    :muter_users => _,
    :mutes => _,
    :name => _,
    :nickname => _,
    :no_rich_text => _,
    :note_count => _,
    :notification_muted_users => _,
    :notification_mutee_mutes => _,
    :notification_muter_mutes => _,
    :notification_muter_users => _,
    :notification_settings => _,
    :notifications => _,
    :outgoing_relationships => _,
    :password => _,
    :password_confirmation => _,
    :password_hash => _,
    :password_reset_pending => _,
    :pinned_objects => _,
    :pleroma_settings_store => _,
    :public_key => _,
    :raw_bio => _,
    :raw_fields => _,
    :reblog_muted_users => _,
    :reblog_mutee_mutes => _,
    :reblog_muter_mutes => _,
    :reblog_muter_users => _,
    :registration_reason => _,
    :registrations => _,
    :search_rank => _,
    :search_type => _,
    :shared_inbox => _,
    :show_birthday => _,
    :show_role => _,
    :skip_thread_containment => _,
    :subscribee_subscriptions => _,
    :subscribee_users => _,
    :subscriber_subscriptions => _,
    :subscriber_users => _,
    :subscribers => _,
    :tags => _,
    :updated_at => _,
    :uri => _
  }
)

will never return since the success typing is:
([any()]) :: [any()]

and the contract is
(t()) :: [value()]

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:218:no_return
Function deactivate/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:228:call
The function call will not succeed.

Keyword.values(
  _updated_users :: %Pleroma.User{
    :__meta__ => _,
    :accepts_chat_messages => _,
    :actor_type => _,
    :allow_following_move => _,
    :also_known_as => _,
    :ap_id => _,
    :avatar => _,
    :background => _,
    :banner => _,
    :bio => _,
    :birthday => _,
    :blocked_users => _,
    :blockee_blocks => _,
    :blocker_blocks => _,
    :blocker_users => _,
    :blocks => _,
    :confirmation_token => _,
    :default_scope => _,
    :deliveries => _,
    :disclose_client => _,
    :domain_blocks => _,
    :email => _,
    :email_notifications => _,
    :emoji => _,
    :endorsed_users => _,
    :endorsee_endorsements => _,
    :endorser_endorsements => _,
    :endorser_users => _,
    :featured_address => _,
    :fields => _,
    :follower_address => _,
    :follower_count => _,
    :following_address => _,
    :following_count => _,
    :hide_favorites => _,
    :hide_followers => _,
    :hide_followers_count => _,
    :hide_follows => _,
    :hide_follows_count => _,
    :id => _,
    :inbox => _,
    :incoming_relationships => _,
    :inserted_at => _,
    :invisible => _,
    :is_active => _,
    :is_admin => _,
    :is_approved => _,
    :is_confirmed => _,
    :is_discoverable => _,
    :is_locked => _,
    :is_moderator => _,
    :is_suggested => _,
    :keys => _,
    :language => _,
    :last_active_at => _,
    :last_digest_emailed_at => _,
    :last_refreshed_at => _,
    :last_status_at => _,
    :local => _,
    :mascot => _,
    :multi_factor_authentication_settings => _,
    :muted_notifications => _,
    :muted_reblogs => _,
    :muted_users => _,
    :mutee_mutes => _,
    :muter_mutes => _,
    :muter_users => _,
    :mutes => _,
    :name => _,
    :nickname => _,
    :no_rich_text => _,
    :note_count => _,
    :notification_muted_users => _,
    :notification_mutee_mutes => _,
    :notification_muter_mutes => _,
    :notification_muter_users => _,
    :notification_settings => _,
    :notifications => _,
    :outgoing_relationships => _,
    :password => _,
    :password_confirmation => _,
    :password_hash => _,
    :password_reset_pending => _,
    :pinned_objects => _,
    :pleroma_settings_store => _,
    :public_key => _,
    :raw_bio => _,
    :raw_fields => _,
    :reblog_muted_users => _,
    :reblog_mutee_mutes => _,
    :reblog_muter_mutes => _,
    :reblog_muter_users => _,
    :registration_reason => _,
    :registrations => _,
    :search_rank => _,
    :search_type => _,
    :shared_inbox => _,
    :show_birthday => _,
    :show_role => _,
    :skip_thread_containment => _,
    :subscribee_subscriptions => _,
    :subscribee_users => _,
    :subscriber_subscriptions => _,
    :subscriber_users => _,
    :subscribers => _,
    :tags => _,
    :updated_at => _,
    :uri => _
  }
)

will never return since the success typing is:
([any()]) :: [any()]

and the contract is
(t()) :: [value()]
2024-01-28 17:14:37 -05:00
Mark Felder
a3024dd5ac Pleroma.Web.AdminAPI.InstanceDocumentController: fix dialyzer error
lib/pleroma/web/admin_api/controllers/instance_document_controller.ex:32:call
The function call will not succeed.

Phoenix.Controller.json(_conn :: %{:body_params => %{:file => _, _ => _}, _ => _}, %{<<_::24>> => binary()}) ::
  :ok
def a() do
  :ok
end

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()
2024-01-28 16:35:30 -05:00
Mark Felder
bfe626d578 Pleroma.Web.AdminAPI.ReportController: dialyzer errors
lib/pleroma/web/admin_api/controllers/report_controller.ex:48:no_return
Function update/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/report_controller.ex:70:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.json_response(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:reports => _, _ => _},
    _ => _
  },
  :bad_request,
  _result :: [any()]
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | 1..1_114_111,
  any()
)

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/report_controller.ex:72:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.json_response(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:reports => _, _ => _},
    _ => _
  },
  :no_content,
  <<>>
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | 1..1_114_111,
  any()
)

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/report_controller.ex:76:no_return
Function notes_create/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/report_controller.ex:89:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.json_response(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:content => _, _ => _},
    _ => _
  },
  :no_content,
  <<>>
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | 1..1_114_111,
  any()
)

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/report_controller.ex:91:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.json_response(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:content => _, _ => _},
    _ => _
  },
  :bad_request,
  <<>>
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | 1..1_114_111,
  any()
)
2024-01-28 16:32:50 -05:00
Mark Felder
94838ed941 Pleroma.Web.AdminAPI.RelayController: dialyzer errors
lib/pleroma/web/admin_api/controllers/relay_controller.ex:34:no_return
Function follow/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/relay_controller.ex:38:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:relay_url => _, _ => _},
    _ => _
  },
  %{:actor => binary(), :followed_back => boolean()}
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/relay_controller.ex:41:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:relay_url => _, _ => _},
    _ => _
  },
  500
)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/relay_controller.ex:47:no_return
Function unfollow/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/relay_controller.ex:51:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:relay_url => _, _ => _},
    _ => _
  },
  _target :: binary()
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/relay_controller.ex:54:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:relay_url => _, _ => _},
    _ => _
  },
  500
)

breaks the contract
(t(), status()) :: t()
2024-01-28 16:09:55 -05:00
Mark Felder
d92c3d927d Pleroma.Web.AdminAPI.UserController: dialyzer errors
lib/pleroma/web/admin_api/controllers/user_controller.ex:54:no_return
Function delete/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:74:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:nicknames => _, _ => _},
    _ => _
  },
  _nicknames :: any()
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:77:no_return
Function follow/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:99:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:followed => _, :follower => _, _ => _},
    _ => _
  },
  <<111, 107>>
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:102:no_return
Function unfollow/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:124:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:followed => _, :follower => _, _ => _},
    _ => _
  },
  <<111, 107>>
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:127:no_return
Function create/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:130:no_return
The created anonymous function has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:163:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:users => _, _ => _},
    _ => _
  },
  <<99, 114, 101, 97, 116, 101, 100, 95, 109, 97, 110, 121, 46, 106, 115, 111, 110>>,
  [{:users, [any()]}, ...]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:175:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:users => _, _ => _},
    _ => _
  },
  :conflict
)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:205:no_return
Function activate/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:215:call
The function call will not succeed.

Keyword.values(
  _updated_users :: %Pleroma.User{
    :__meta__ => _,
    :accepts_chat_messages => _,
    :actor_type => _,
    :allow_following_move => _,
    :also_known_as => _,
    :ap_id => _,
    :avatar => _,
    :background => _,
    :banner => _,
    :bio => _,
    :birthday => _,
    :blocked_users => _,
    :blockee_blocks => _,
    :blocker_blocks => _,
    :blocker_users => _,
    :blocks => _,
    :confirmation_token => _,
    :default_scope => _,
    :deliveries => _,
    :disclose_client => _,
    :domain_blocks => _,
    :email => _,
    :email_notifications => _,
    :emoji => _,
    :endorsed_users => _,
    :endorsee_endorsements => _,
    :endorser_endorsements => _,
    :endorser_users => _,
    :featured_address => _,
    :fields => _,
    :follower_address => _,
    :follower_count => _,
    :following_address => _,
    :following_count => _,
    :hide_favorites => _,
    :hide_followers => _,
    :hide_followers_count => _,
    :hide_follows => _,
    :hide_follows_count => _,
    :id => _,
    :inbox => _,
    :incoming_relationships => _,
    :inserted_at => _,
    :invisible => _,
    :is_active => _,
    :is_admin => _,
    :is_approved => _,
    :is_confirmed => _,
    :is_discoverable => _,
    :is_locked => _,
    :is_moderator => _,
    :is_suggested => _,
    :keys => _,
    :language => _,
    :last_active_at => _,
    :last_digest_emailed_at => _,
    :last_refreshed_at => _,
    :last_status_at => _,
    :local => _,
    :mascot => _,
    :multi_factor_authentication_settings => _,
    :muted_notifications => _,
    :muted_reblogs => _,
    :muted_users => _,
    :mutee_mutes => _,
    :muter_mutes => _,
    :muter_users => _,
    :mutes => _,
    :name => _,
    :nickname => _,
    :no_rich_text => _,
    :note_count => _,
    :notification_muted_users => _,
    :notification_mutee_mutes => _,
    :notification_muter_mutes => _,
    :notification_muter_users => _,
    :notification_settings => _,
    :notifications => _,
    :outgoing_relationships => _,
    :password => _,
    :password_confirmation => _,
    :password_hash => _,
    :password_reset_pending => _,
    :pinned_objects => _,
    :pleroma_settings_store => _,
    :public_key => _,
    :raw_bio => _,
    :raw_fields => _,
    :reblog_muted_users => _,
    :reblog_mutee_mutes => _,
    :reblog_muter_mutes => _,
    :reblog_muter_users => _,
    :registration_reason => _,
    :registrations => _,
    :search_rank => _,
    :search_type => _,
    :shared_inbox => _,
    :show_birthday => _,
    :show_role => _,
    :skip_thread_containment => _,
    :subscribee_subscriptions => _,
    :subscribee_users => _,
    :subscriber_subscriptions => _,
    :subscriber_users => _,
    :subscribers => _,
    :tags => _,
    :updated_at => _,
    :uri => _
  }
)

will never return since the success typing is:
([any()]) :: [any()]

and the contract is
(t()) :: [value()]

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:218:no_return
Function deactivate/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:228:call
The function call will not succeed.

Keyword.values(
  _updated_users :: %Pleroma.User{
    :__meta__ => _,
    :accepts_chat_messages => _,
    :actor_type => _,
    :allow_following_move => _,
    :also_known_as => _,
    :ap_id => _,
    :avatar => _,
    :background => _,
    :banner => _,
    :bio => _,
    :birthday => _,
    :blocked_users => _,
    :blockee_blocks => _,
    :blocker_blocks => _,
    :blocker_users => _,
    :blocks => _,
    :confirmation_token => _,
    :default_scope => _,
    :deliveries => _,
    :disclose_client => _,
    :domain_blocks => _,
    :email => _,
    :email_notifications => _,
    :emoji => _,
    :endorsed_users => _,
    :endorsee_endorsements => _,
    :endorser_endorsements => _,
    :endorser_users => _,
    :featured_address => _,
    :fields => _,
    :follower_address => _,
    :follower_count => _,
    :following_address => _,
    :following_count => _,
    :hide_favorites => _,
    :hide_followers => _,
    :hide_followers_count => _,
    :hide_follows => _,
    :hide_follows_count => _,
    :id => _,
    :inbox => _,
    :incoming_relationships => _,
    :inserted_at => _,
    :invisible => _,
    :is_active => _,
    :is_admin => _,
    :is_approved => _,
    :is_confirmed => _,
    :is_discoverable => _,
    :is_locked => _,
    :is_moderator => _,
    :is_suggested => _,
    :keys => _,
    :language => _,
    :last_active_at => _,
    :last_digest_emailed_at => _,
    :last_refreshed_at => _,
    :last_status_at => _,
    :local => _,
    :mascot => _,
    :multi_factor_authentication_settings => _,
    :muted_notifications => _,
    :muted_reblogs => _,
    :muted_users => _,
    :mutee_mutes => _,
    :muter_mutes => _,
    :muter_users => _,
    :mutes => _,
    :name => _,
    :nickname => _,
    :no_rich_text => _,
    :note_count => _,
    :notification_muted_users => _,
    :notification_mutee_mutes => _,
    :notification_muter_mutes => _,
    :notification_muter_users => _,
    :notification_settings => _,
    :notifications => _,
    :outgoing_relationships => _,
    :password => _,
    :password_confirmation => _,
    :password_hash => _,
    :password_reset_pending => _,
    :pinned_objects => _,
    :pleroma_settings_store => _,
    :public_key => _,
    :raw_bio => _,
    :raw_fields => _,
    :reblog_muted_users => _,
    :reblog_mutee_mutes => _,
    :reblog_muter_mutes => _,
    :reblog_muter_users => _,
    :registration_reason => _,
    :registrations => _,
    :search_rank => _,
    :search_type => _,
    :shared_inbox => _,
    :show_birthday => _,
    :show_role => _,
    :skip_thread_containment => _,
    :subscribee_subscriptions => _,
    :subscribee_users => _,
    :subscriber_subscriptions => _,
    :subscriber_users => _,
    :subscribers => _,
    :tags => _,
    :updated_at => _,
    :uri => _
  }
)

will never return since the success typing is:
([any()]) :: [any()]

and the contract is
(t()) :: [value()]

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:231:no_return
Function approve/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:241:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:nicknames => _, _ => _},
    _ => _
  },
  <<105, 110, 100, 101, 120, 46, 106, 115, 111, 110>>,
  [{:users, _}, ...]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:244:no_return
Function suggest/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:254:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:nicknames => _, _ => _},
    _ => _
  },
  <<105, 110, 100, 101, 120, 46, 106, 115, 111, 110>>,
  [{:users, _}, ...]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:257:no_return
Function unsuggest/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:267:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:nicknames => _, _ => _},
    _ => _
  },
  <<105, 110, 100, 101, 120, 46, 106, 115, 111, 110>>,
  [{:users, _}, ...]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:270:no_return
Function index/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:294:unused_fun
Function maybe_parse_filters/1 will never be called.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:303:no_return
Function page_params/1 has no local return.
________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/user_controller.ex:305:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.fetch_integer_param(_params :: any(), :page, 1)

breaks the contract
(map(), String.t(), integer() | nil) :: integer() | nil
2024-01-28 16:05:25 -05:00
Mark Felder
db87be126e Pleroma.Web.AdminAPI.InviteController: dialyzer errors
lib/pleroma/web/admin_api/controllers/invite_controller.ex:46:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{:body_params => %{:token => _, _ => _}, _ => _},
  <<115, 104, 111, 119, 46, 106, 115, 111, 110>>,
  [
    {:invite,
     %Pleroma.UserInviteToken{
       :__meta__ => _,
       :expires_at => _,
       :id => _,
       :inserted_at => _,
       :invite_type => _,
       :max_use => _,
       :token => _,
       :updated_at => _,
       :used => _,
       :uses => _
     }},
    ...
  ]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/admin_api/controllers/invite_controller.ex:66:call
The function call will not succeed.

Pleroma.Web.ControllerHelper.json_response(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:email => _, _ => _},
    _ => _
  },
  :no_content,
  <<>>
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | 1..1_114_111,
  any()
)
2024-01-28 15:53:47 -05:00
Mark Felder
8d64eedbec Pleroma.Web.PleromaAPI.ChatController: Dialyzer error
lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:128:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:last_read_id => _, _ => _},
    _ => _
  },
  <<115, 104, 111, 119, 46, 106, 115, 111, 110>>,
  [
    {:chat,
     %Pleroma.Chat{
       :__meta__ => _,
       :id => _,
       :inserted_at => _,
       :recipient => _,
       :updated_at => _,
       :user => _,
       :user_id => _
     }},
    ...
  ]
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()
2024-01-28 15:52:09 -05:00
Mark Felder
456f7cab3e Pleroma.Web.PleromaAPI.ChatController: Dialyzer errors
lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:91:pattern_match
The pattern can never match the type.

Pattern:
{:reject, _message}

Type:
nil

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:96:pattern_match
The pattern can never match the type.

Pattern:
{:error, _message}

Type:
nil
2024-01-28 15:52:09 -05:00
Mark Felder
dc912dc590 Pleroma.Web.PleromaAPI.EmojiFileController: dialyzer errors
lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:52:no_return
Function update/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:59:call
The function call will not succeed.

Phoenix.Controller.json(_conn :: %{:body_params => %{:shortcode => _, _ => _}, _ => _}, %{
  binary() =>
    binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | char(),
        binary() | []
      )
})

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:62:call
The function call will not succeed.

Plug.Conn.put_status(_conn :: %{:body_params => %{:shortcode => _, _ => _}, _ => _}, :conflict)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:70:call
The function call will not succeed.

Plug.Conn.put_status(_conn :: %{:body_params => %{:shortcode => _, _ => _}, _ => _}, :unprocessable_entity) ::
  :ok
def a() do
  :ok
end

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:75:call
The function call will not succeed.

Pleroma.Web.PleromaAPI.EmojiFileController.handle_error(
  _conn :: %{:body_params => %{:shortcode => _, _ => _}, _ => _},
  _error :: {:error, atom()},
  %{:code => _, :message => <<_::328>>, :pack_name => binary()}
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  {:error, atom()},
  %{:message => <<_::328, _::size(88)>>, :pack_name => binary(), :code => _}
)

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:75:call
The function call will not succeed.

Pleroma.Web.PleromaAPI.EmojiFileController.handle_error(
  _conn :: %{:body_params => %{:shortcode => _, _ => _}, _ => _},
  _error :: {:error, atom()},
  %{:code => binary(), :message => <<_::328>>, :pack_name => binary()}
)

will never return since the 1st arguments differ
from the success typing arguments:

(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() =>
        binary() | [binary() | [any()] | map()] | %{binary() => binary() | [any()] | map()}
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{binary(), binary()}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{binary(), binary()}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  {:error, atom()},
  %{:message => <<_::328, _::size(88)>>, :pack_name => binary(), :code => _}
)
2024-01-28 15:52:09 -05:00
Mark Felder
77bf617c4b Pleroma.Web.PleromaAPI.EmojiPackController: dialyzer errors
________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:112:no_return
Function download/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:114:call
The function call will not succeed.

Phoenix.Controller.json(_conn :: %{:body_params => %{:name => _, :url => _, _ => _}, _ => _}, <<111, 107>>)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:117:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{:body_params => %{:name => _, :url => _, _ => _}, _ => _},
  :internal_server_error
)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:122:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{:body_params => %{:name => _, :url => _, _ => _}, _ => _},
  :internal_server_error
)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:127:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{:body_params => %{:name => _, :url => _, _ => _}, _ => _},
  :internal_server_error
)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:187:no_return
Function update/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:189:call
The function call will not succeed.

Phoenix.Controller.json(_conn :: %{:body_params => %{:metadata => _, _ => _}, _ => _}, map())

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:192:call
The function call will not succeed.

Plug.Conn.put_status(_conn :: %{:body_params => %{:metadata => _, _ => _}, _ => _}, :bad_request)

breaks the contract
(t(), status()) :: t()

________________________________________________________________________________
lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:203:call
The function call will not succeed.

Plug.Conn.put_status(_conn :: %{:body_params => %{:metadata => _, _ => _}, _ => _}, :internal_server_error) ::
  :ok
def a() do
  :ok
end

breaks the contract
(t(), status()) :: t()
2024-01-28 15:52:09 -05:00
Mark Felder
a32d6b3aa4 Pleroma.Web.PleromaAPI.MascotController: dialyzer error
lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:33:pattern_match
The pattern can never match the type.

Pattern:
{:content_type, _}

Type:
{:error, _}
2024-01-28 15:52:09 -05:00
Mark Felder
9c8055d4b3 Pleroma.Web.PleromaAPI.MascotController: dialyzer errors
lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:25:no_return
Function update/2 has no local return.

lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:27:call
The function call will not succeed.

Pleroma.Web.ActivityPub.ActivityPub.upload(_file :: atom() | %{:content_type => _, _ => _}, [{:actor, <<_::56, _::size(8)>>}, ...]) ::
  :ok
def a() do
  :ok
end

will never return since the 2nd arguments differ
from the success typing arguments:

(any(), [
  {:activity_type | :description | :filters | :size_limit | :type | :uploader,
   atom() | binary() | [atom()] | non_neg_integer()}
])

lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:31:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:file => _, _ => _},
    _ => _
  },
  _attachment :: any()
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()

lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:file => _, _ => _},
    _ => _
  },
  :unsupported_media_type
)

breaks the contract
(t(), status()) :: t()

lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34:call
The function call will not succeed.

Plug.Conn.put_status(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:file => _, _ => _},
    _ => _
  },
  :unsupported_media_type
)

breaks the contract
(t(), status()) :: t()

lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:38:unused_fun
Function render_attachment/1 will never be called.
2024-01-28 15:52:09 -05:00
Mark Felder
563aebd5ce Pleroma.Web.Plugs.UploadedMedia: dialyzer error
lib/pleroma/web/plugs/uploaded_media.ex:98:call
The function call will not succeed.

Pleroma.ReverseProxy.call(
  _conn :: %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  _url :: any(),
  _proxy_opts :: [{:http, [{:follow_redirect, true} | {:pool, :upload}, ...]}, ...]
)

breaks the contract
(Plug.Conn.t(), url :: String.t(), [option()]) :: Plug.Conn.t()
2024-01-28 14:22:35 -05:00
Mark Felder
60d89cb404 Pleroma.Web.AdminAPI.ConfigController: dialyzer error
lib/pleroma/web/admin_api/controllers/config_controller.ex:162:call
The function call will not succeed.

Phoenix.Controller.render(
  _conn :: %{:body_params => %{:configs => _, _ => _}, _ => _},
  <<105, 110, 100, 101, 120, 46, 106, 115, 111, 110>>,
  %{:configs => [any()], :need_reboot => _}
)

will never return since the success typing is:
(
  %Plug.Conn{
    :adapter => {atom(), _},
    :assigns => %{atom() => _},
    :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :halted => boolean(),
    :host => binary(),
    :method => binary(),
    :owner => pid(),
    :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
    :path_info => [binary()],
    :path_params => %{binary() => binary() | [any()] | map()},
    :port => char(),
    :private => %{atom() => _},
    :query_params => %Plug.Conn.Unfetched{
      :aspect => atom(),
      binary() => binary() | [any()] | map()
    },
    :query_string => binary(),
    :remote_ip =>
      {byte(), byte(), byte(), byte()}
      | {char(), char(), char(), char(), char(), char(), char(), char()},
    :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
    :req_headers => [{_, _}],
    :request_path => binary(),
    :resp_body =>
      nil
      | binary()
      | maybe_improper_list(
          binary() | maybe_improper_list(any(), binary() | []) | byte(),
          binary() | []
        ),
    :resp_cookies => %{binary() => map()},
    :resp_headers => [{_, _}],
    :scheme => :http | :https,
    :script_name => [binary()],
    :secret_key_base => nil | binary(),
    :state =>
      :chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
    :status => nil | non_neg_integer()
  },
  atom() | binary(),
  atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
  :adapter => {atom(), _},
  :assigns => %{atom() => _},
  :body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :halted => boolean(),
  :host => binary(),
  :method => binary(),
  :owner => pid(),
  :params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
  :path_info => [binary()],
  :path_params => %{binary() => binary() | [any()] | map()},
  :port => char(),
  :private => %{atom() => _},
  :query_params => %Plug.Conn.Unfetched{
    :aspect => atom(),
    binary() => binary() | [any()] | map()
  },
  :query_string => binary(),
  :remote_ip =>
    {byte(), byte(), byte(), byte()}
    | {char(), char(), char(), char(), char(), char(), char(), char()},
  :req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
  :req_headers => [{_, _}],
  :request_path => binary(),
  :resp_body =>
    nil
    | binary()
    | maybe_improper_list(
        binary() | maybe_improper_list(any(), binary() | []) | byte(),
        binary() | []
      ),
  :resp_cookies => %{binary() => map()},
  :resp_headers => [{_, _}],
  :scheme => :http | :https,
  :script_name => [binary()],
  :secret_key_base => nil | binary(),
  :state => :sent,
  :status => nil | non_neg_integer()
}

and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()
2024-01-27 16:42:30 -05:00
Mark Felder
26a95e5787 Pleroma.Web.PleromaAPI.NotificationController: dialyzer errors
lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:53:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:list => _, _ => _},
    _ => _
  },
  <<106, 111, 98, 32, 115, 116, 97, 114, 116, 101, 100>>
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()
2024-01-27 16:15:03 -05:00
Mark Felder
52e18a6249 Pleroma.Web.PleromaAPI.UserImportController: Dialyzer errors
lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:53:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:list => _, _ => _},
    _ => _
  },
  <<106, 111, 98, 32, 115, 116, 97, 114, 116, 101, 100>>
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()
2024-01-27 15:57:21 -05:00
Mark Felder
17f4251b19 Pleroma.Web.TwitterAPI.UtilController: dialyzer fixes
lib/pleroma/web/twitter_api/controllers/util_controller.ex:158:call
The function call will not succeed.

Phoenix.Controller.json(_conn :: %{:body_params => %{:ap_id => _, :profile => _, _ => _}, _ => _}, %{
  :error =>
    <<67, 111, 117, 108, 100, 110, 39, 116, 32, 102, 105, 110, 100, 32, 117, 115, 101, 114>>
})

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()
2024-01-27 15:47:07 -05:00
Mark Felder
8b02c85810 Pleroma.Web.AdminAPI.MediaProxyCacheController: dialyzer errors
lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:64:call
The function call will not succeed.

Phoenix.Controller.json(
  _conn :: %{
    :assigns => %{:user => _, _ => _},
    :body_params => %{:urls => _, _ => _},
    _ => _
  },
  %{}
)

breaks the contract
(Plug.Conn.t(), term()) :: Plug.Conn.t()
2024-01-27 15:41:14 -05:00
Mark Felder
861c8ebfe4 These are all due to Cachex typespec bugs 2024-01-27 15:14:40 -05:00
Mark Felder
5c193a34a2 Pleroma.Web.ActivityPub.SideEffects: dialyzer errors
lib/pleroma/web/activity_pub/side_effects.ex:544:call
The function call will not succeed.

Pleroma.Web.ActivityPub.SideEffects.delete_object(
  _object :: %Pleroma.Activity{
    :__meta__ => _,
    :actor => _,
    :bookmark => _,
    :data => map(),
    :id => _,
    :inserted_at => _,
    :local => _,
    :notifications => _,
    :object => _,
    :pagination_id => _,
    :recipients => _,
    :report_notes => _,
    :thread_muted? => _,
    :updated_at => _,
    :user_actor => _
  }
)

breaks the contract
(Pleroma.Object.t()) :: :ok | {:error, Ecto.Changeset.t()}
2024-01-27 15:05:12 -05:00
Mark Felder
b6a1e7fb31 Pleroma.Web.ActivityPub.SideEffects: dialyzer errors
lib/pleroma/web/activity_pub/side_effects.ex:622:callback_type_mismatch
Type mismatch for @callback handle_after_transaction/1 in Pleroma.Web.ActivityPub.SideEffects.Handling behaviour.

Expected type:
map()

Actual type:
Keyword.t()

lib/pleroma/web/activity_pub/side_effects.ex:622:callback_arg_type_mismatch
The inferred type for the 1st argument is not a
supertype of the expected type for the handle_after_transaction/1 callback
in the Pleroma.Web.ActivityPub.SideEffects.Handling behaviour.

Success type:
Keyword.t()

Behaviour callback type:
map()
2024-01-27 15:02:20 -05:00
Mark Felder
5f5bd64b83 Pleroma.Web.ActivityPub.SideEffects: dialyzer errors
lib/pleroma/web/activity_pub/side_effects.ex:328:pattern_match
The pattern can never match the type.

Pattern:
{:actor, _}

Type:
{:error, boolean()}

lib/pleroma/web/activity_pub/side_effects.ex:328:pattern_match
The pattern can never match the type.

Pattern:
{:actor, _}

Type:
nil
2024-01-27 14:55:29 -05:00
Mark Felder
94d7e28cbe Pleroma.Web.ActivityPub.ObjectValidator: dialyzer error
lib/pleroma/web/activity_pub/object_validator.ex:165:pattern_match
The pattern can never match the type.

Pattern:
{:local, _}

Type:

  {:error,
   %Ecto.Changeset{
     :action => atom(),
     :changes => %{atom() => _},
     :constraints => [
       %{
         :constraint =>
           binary()
           | %Regex{
               :opts => binary() | [any()],
               :re_pattern => _,
               :re_version => _,
               :source => binary()
             },
         :error_message => binary(),
         :error_type => atom(),
         :field => atom(),
         :match => :exact | :prefix | :suffix,
         :type => :check | :exclusion | :foreign_key | :unique
       }
     ],
     :data => nil | map(),
     :empty_values => _,
     :errors => Keyword.t({binary(), Keyword.t()}),
     :filters => %{atom() => _},
     :params => nil | %{binary() => _},
     :prepare => [(_ -> any())],
     :repo => atom(),
     :repo_opts => Keyword.t(),
     :required => [atom()],
     :types =>
       nil
       | %{
           atom() =>
             atom()
             | {:array | :assoc | :embed | :in | :map | :maybe | :param, _}
             | {:parameterized, atom(), _}
         },
     :valid? => boolean(),
     :validations => Keyword.t()
   }}
2024-01-27 14:29:48 -05:00
Mark Felder
5c08153fc5 Pleroma.Gun.ConnectionPool.Reclaimer: dialyzer error
lib/pleroma/gun/connection_pool/reclaimer.ex:12:call
The function call will not succeed.

:gen_server.start(Pleroma.Gun.ConnectionPool.Reclaimer, [], [
  {:name, {:via, Registry, {Pleroma.Gun.ConnectionPool, <<_::72>>}}},
  ...
])

will never return since the success typing is:
(atom(), any(), [
  {:debug, [:log | :statistics | :trace | {_, _}]}
  | {:hibernate_after, timeout()}
  | {:spawn_opt, [:link | :monitor | {_, _}]}
  | {:timeout, timeout()}
]) :: :ignore | {:error, _} | {:ok, pid() | {pid(), reference()}}

and the contract is
(Module :: module(), Args :: term(), Options :: [start_opt()]) :: start_ret()
2024-01-27 14:25:16 -05:00
Mark Felder
9f357d88c2 Pleroma.Emoji: dialyzer error
lib/pleroma/emoji.ex:54:unknown_type
Unknown type: Emoji.t/0.
2024-01-27 14:00:17 -05:00
Mark Felder
948d5a93a0 Pleroma.Object: dialyzer error
lib/pleroma/object.ex:245:call
The function call will not succeed.

Pleroma.Object.cleanup_attachments(any(), %{<<_::48>> => %Pleroma.Object{:data => map(), atom() => _}})

breaks the contract
(boolean(), %{:object => map()}) :: {:ok, Oban.Job.t() | nil}
2024-01-27 13:58:50 -05:00
Mark Felder
2062e126f1 Pleroma.Web.ActivityPub.Builder: fix dialyzer error
lib/pleroma/web/activity_pub/builder.ex:115:pattern_match
The pattern can never match the type.

Pattern:
_emojo = %{:file => _path}

Type:
nil | binary()
2024-01-27 10:41:09 -05:00
Mark Felder
3fbe8ada93 Pleroma.ReverseProxy: dialyzer errors
lib/pleroma/reverse_proxy.ex:225:pattern_match
The pattern can never match the type.

Pattern:
:done

Type:
{:ok, :no_duration_limit, :no_duration_limit}

lib/pleroma/reverse_proxy.ex:226:pattern_match
The pattern can never match the type.

Pattern:
{:error, _error}

Type:
{:ok, :no_duration_limit, :no_duration_limit}

lib/pleroma/reverse_proxy.ex:391:pattern_match
The pattern can never match the type.

Pattern:
__duration = nil, _max

Type:
integer(), _
2024-01-27 10:28:49 -05:00
feld
b1659b7755 Merge branch 'dialyzer-fixes' into 'develop'
Dialyzer fixes

See merge request pleroma/pleroma!4047
2024-01-27 15:09:54 +00:00
Mark Felder
6fcecbd48b Formatting 2024-01-27 10:09:20 -05:00
Mark Felder
7d7662277c Changelog 2024-01-26 21:05:43 -05:00
Mark Felder
b2ab479488 Pleroma.Helpers.QtFastStart: Dialzyer error
lib/pleroma/helpers/qt_fast_start.ex:129:improper_list_constr
List construction (cons) will produce an improper list, because its second argument is <<_::32>>.

lib/pleroma/helpers/qt_fast_start.ex:129:improper_list_constr
List construction (cons) will produce an improper list, because its second argument is <<_::64>>.
2024-01-26 21:03:41 -05:00
Mark Felder
6e0945354d Pleroma.ModerationLog: fix invalid type 2024-01-26 21:03:41 -05:00
Mark Felder
e834343496 Pleroma.Search.SearchBackend: dialyzer error
Incorrect spec. Both search backends return :ok so that is what should be the spec.

lib/pleroma/search/database_search.ex:56:callback_type_mismatch
Type mismatch for @callback remove_from_index/1 in Pleroma.Search.SearchBackend behaviour.

Expected type:
{:error, _} | {:ok, _}

Actual type:
:ok
2024-01-26 21:03:41 -05:00
Mark Felder
1b40ebfa20 Pleroma.Signature: dialyzer error
lib/pleroma/signature.ex:30:pattern_match
The pattern can never match the type.

Pattern:
%{<<97, 112, 95, 105, 100>> => _ap_id}

Type:
{:error, _} | {:ok, map()}
2024-01-26 21:03:41 -05:00
Mark Felder
87cf7010fc Pleroma.Upload: dialyzer error
I have opted to set this to :upper as this retains the same behavior but clears up the error.

lib/pleroma/upload.ex:178:call
The function call will not succeed.

Base.encode16(binary(), [{:lower, true}])

breaks the contract
(binary(), [{:case, encode_case()}]) :: binary()
2024-01-26 21:03:23 -05:00
Mark Felder
06b8923d42 RichMedia.Parser.TTL.AwsSignedUrl: dialyzer fix
lib/pleroma/web/rich_media/parser/ttl/aws_signed_url.ex:9:callback_type_mismatch
Type mismatch for @callback ttl/2 in Pleroma.Web.RichMedia.Parser.TTL behaviour.

Expected type:
nil | integer()

Actual type:
{:error, <<_::64, _::size(8)>>} | {:ok, integer()}
2024-01-26 17:37:32 -05:00
Mark Felder
28af5e3bd7 TwitterAPI.UtilController: fix dialyzer errors
lib/pleroma/web/twitter_api/controllers/util_controller.ex:300:pattern_match
The pattern can never match the type.

Pattern:
{:error, :no_such_alias}

Type:
{:not_found, nil}

lib/pleroma/web/twitter_api/controllers/util_controller.ex:304:pattern_match
The pattern can never match the type.

Pattern:
{:error, _error}

Type:
{:not_found, nil}
2024-01-26 17:22:27 -05:00
Mark Felder
5b95abaeea Credo.Check.Readability.PredicateFunctionNames
This check was recently improved in Credo and it does make sense for readability.

The offending functions in Pleroma have been renamed and a couple missing the ? suffix have been fixed as well.
2024-01-26 16:59:58 -05:00
Mark Felder
18d38486a5 InetCidr.parse/2 is deprecated 2024-01-26 15:57:50 -05:00
Haelwenn (lanodan) Monnier
5c5d9d9b9d Bump dependencies 2024-01-26 15:50:45 -05:00
feld
a24322fcce Merge branch 'elixir-1.15-base' into 'develop'
CI: pin 1.15 to otp25

See merge request pleroma/pleroma!4046
2024-01-26 17:40:38 +00:00
Mark Felder
a658cf70b9 Pin to otp25
The 1.15.7 image by default uses OTP26 now, but we really want otp25
2024-01-26 17:38:40 +00:00
feld
6bd29956f5 Merge branch 'elixir-1.15-base' into 'develop'
CI: set correct image version for Elixir 1.15

See merge request pleroma/pleroma!4045
2024-01-26 17:35:49 +00:00
Mark Felder
f23c07f43a Set correct image version 2024-01-26 12:35:18 -05:00
Haelwenn (lanodan) Monnier
799891d359
Transmogrifier: Cleanup obsolete handling of "contentMap": null 2024-01-26 17:10:10 +01:00
Haelwenn (lanodan) Monnier
558b421079
Test incoming federation from Convergence AP Bridge 2024-01-26 17:05:18 +01:00
Haelwenn (lanodan) Monnier
acef2a4a40
CommonFixes: Use Maps.filter_empty_values on fix_object_defaults 2024-01-26 16:19:25 +01:00
Haelwenn (lanodan) Monnier
0de1a7629c
Maps: Add filter_empty_values/1 2024-01-26 16:18:29 +01:00
feld
626c22961f Merge branch 'dialyzer-fixes' into 'develop'
More dialyzer fixes

See merge request pleroma/pleroma!4042
2024-01-23 00:16:55 +00:00
Mark Felder
3a8594e927 MastodonAPI.Controller.StatusController: fix dialyzer error
lib/pleroma/web/mastodon_api/controllers/status_controller.ex:333:pattern_match
The pattern can never match the type.

Pattern:
{:ok, _activity}

Type:
{:error, _}
2024-01-22 18:37:29 -05:00
Mark Felder
138b3cb608 Clear up missing function dialyzer errors for :eldap 2024-01-22 18:37:29 -05:00
Mark Felder
115b2ad638 MRF.KeywordPolicy: fix dialyzer error
lib/pleroma/web/activity_pub/mrf/keyword_policy.ex:13:neg_guard_fail
Guard test:
not is_binary(_string :: binary())

can never succeed.
2024-01-22 18:37:29 -05:00
Mark Felder
0dd65246ea MRF.HashtagPolicy: fix dialyzer error
lib/pleroma/web/activity_pub/mrf/hashtag_policy.ex:87:exact_eq
The test <<_::32>> == <<_::48>> can never evaluate to 'true'.
2024-01-22 18:37:19 -05:00
Mark Felder
5f71928f6b MRF.InlineQuotePolicy: fix dialyzer error
lib/pleroma/web/activity_pub/mrf/inline_quote_policy.ex:60:callback_type_mismatch
Type mismatch for @callback config_description/0 in Pleroma.Web.ActivityPub.MRF.Policy behaviour.

Expected type:
%{
  :description => binary(),
  :key => atom(),
  :label => binary(),
  :related_policy => binary(),
  :children => [map()]
}

Actual type:
%{
  :children => [
    %{
      :description => <<_::808>>,
      :key => :template,
      :suggestions => [any(), ...],
      :type => :string
    },
    ...
  ],
  :description => <<_::336>>,
  :key => :mrf_inline_quote,
  :label => <<_::184>>,
  :related_policy => <<_::360>>,
  :type => :group
}
2024-01-22 18:37:13 -05:00
Mark Felder
a7fa6f18dc Pleroma.Migrators.Support.BaseMigrator: Fix dialyzer errors
lib/pleroma/migrators/context_objects_deletion_migrator.ex:13:exact_eq
The test :error | float() == 0 can never evaluate to 'true'.

lib/pleroma/migrators/hashtags_table_migrator.ex:13:exact_eq
The test :error | float() == 0 can never evaluate to 'true'.
2024-01-22 18:37:13 -05:00
Mark Felder
6ce7011a2e Pleroma.Gun.ConnectionPool.WorkerSupervisor: fix dialyzer error
lib/pleroma/gun/connection_pool/worker_supervisor.ex:24:guard_fail
The guard clause:

when _ :: true === nil

can never succeed.
2024-01-22 18:37:13 -05:00
Mark Felder
65d49ac090 Pleroma.HTTP.AdapterHelper: fix dialyzer errors
lib/pleroma/http/adapter_helper.ex:18:unknown_type
Unknown type: Connection.host/0.

lib/pleroma/http/adapter_helper.ex:19:unknown_type
Unknown type: Connection.host/0.

lib/pleroma/http/adapter_helper.ex:19:unknown_type
Unknown type: Connection.proxy_type/0.
2024-01-22 18:37:13 -05:00
Mark Felder
c74c5f479a Pleroma.Migrators.Support.BaseMigratorState: fix dialyzer error
lib/pleroma/migrators/support/base_migrator_state.ex:10:unknown_type
Unknown type: Pleroma.DataMigration.t/0.
2024-01-22 18:37:13 -05:00
Mark Felder
36355d3ed9 Pleroma.Web.ActivityPub.Builder: fix dialyzer error
lib/pleroma/web/activity_pub/builder.ex:205:unknown_type
Unknown type: Pleroma.Web.CommonAPI.ActivityDraft.t/0.
2024-01-22 18:37:13 -05:00
Mark Felder
39da451b6d Pleroma.Web.ActivityPub.Builder: fix dialyzer errors
lib/pleroma/web/activity_pub/builder.ex:35:unknown_type
Unknown type: Activity.t/0.

lib/pleroma/web/activity_pub/builder.ex:40:unknown_type
Unknown type: Activity.t/0.

lib/pleroma/web/activity_pub/builder.ex:144:unknown_type
Unknown type: Activity.t/0.
________________________________________________________________________________
lib/pleroma/web/activity_pub/builder.ex:204:unknown_type
Unknown type: Pleroma.Web.CommonAPI.ActivityDraft.t/0.
2024-01-22 18:37:13 -05:00
Mark Felder
10f3a2833f Pleroma.User.Query: fix dialyzer error
lib/pleroma/user/query.ex:74:unknown_type
Unknown type: Query.t/0.
2024-01-22 18:37:13 -05:00
Mark Felder
40feac086f Pleroma.User: fix dialyzer errors
lib/pleroma/user.ex:1514:unknown_type
Unknown type: Pleroma.UserRelationship.t/0.

lib/pleroma/user.ex:2629:unknown_type
Unknown type: Pleroma.UserRelationship.t/0.

lib/pleroma/user.ex:2638:unknown_type
Unknown type: Pleroma.UserRelationship.t/0.
2024-01-22 18:37:13 -05:00
Mark Felder
1361856213 Pleroma.User.Backup: fix some dialyzer errors
lib/pleroma/user/backup.ex:207:call
The function call will not succeed.

:zip.create(
  string(),
  [:"\"actor.json\"", :"\"outbox.json\"", :"\"likes.json\"", :"\"bookmarks.json\""],
  [{:cwd, binary()}, ...]
)

will never return since the success typing is:
(
  atom() | [atom() | [any()] | char()],
  [
    atom()
    | [atom() | [any()] | char()]
    | {atom() | [atom() | [any()] | char()], binary()}
    | {atom() | [atom() | [any()] | char()], binary(),
       {:file_info, :undefined | non_neg_integer(),
        :device | :directory | :other | :regular | :symlink | :undefined,
        :none | :read | :read_write | :undefined | :write,
        :undefined | non_neg_integer() | {_, _}, :undefined | non_neg_integer() | {_, _},
        :undefined | non_neg_integer() | {_, _}, :undefined | non_neg_integer(),
        :undefined | non_neg_integer(), :undefined | non_neg_integer(),
        :undefined | non_neg_integer(), :undefined | non_neg_integer(),
        :undefined | non_neg_integer(), :undefined | non_neg_integer()}}
  ],
  [
    :cooked
    | :memory
    | :verbose
    | {:comment, string()}
    | {:compress, :all | [[any()]] | {:add, [any()]} | {:del, [any()]}}
    | {:cwd, string()}
    | {:uncompress, :all | [[any()]] | {:add, [any()]} | {:del, [any()]}}
  ]
) ::
  {:error, _}
  | {:ok,
     atom() | [atom() | [any()] | char()] | {atom() | [atom() | [any()] | char()], binary()}}

and the contract is
(name, fileList, options) :: retValue
when name: :file.name(),
     fileList: [:FileSpec],
     fileSpec:
       :file.name() | {:file.name(), binary()} | {:file.name(), binary(), :file.file_info()},
     options: [:Option],
     option: create_option(),
     retValue:
       {:ok, FileName :: filename()}
       | {:ok, {FileName :: filename(), binary()}}
       | {:error, Reason :: term()}
2024-01-22 18:37:13 -05:00
Mark Felder
bff47479a7 Exile: fix for MacOS dev environments 2024-01-22 18:37:13 -05:00
Mark Felder
38ebefce9c Announcement: fix dialyzer errors and add typespec for the changeset
It was possible for this to raise (no_local_return) because the data key could be missing from the params
2024-01-22 18:37:13 -05:00
Mark Felder
eb4dd50f53 Use config to control inclusion of test emoji 2024-01-22 18:37:13 -05:00
Mark Felder
6df93e61c4 Use config to determine sending to the streamer registry instead of MIX_ENV compile time function definition 2024-01-22 18:37:13 -05:00
Mark Felder
653b14e1c7 Use config to control Uploader callback timeout 2024-01-22 18:37:13 -05:00
Mark Felder
8efae57d67 Dialyzer: suppress Mix.Task errors
Callback info about the 'Elixir.Mix.Task' behaviour is not available.
2024-01-22 18:37:13 -05:00
feld
f7b3681eb0 Merge branch 'exile-macos' into 'develop'
Exile: fix for MacOS dev environments

See merge request pleroma/pleroma!4041
2024-01-22 21:11:38 +00:00
Mark Felder
1632a3fec9 Exile: fix for MacOS dev environments 2024-01-22 15:35:12 -05:00
feld
d802e65cd3 Merge branch 'exile-bsds' into 'develop'
Exile: switch to fork with BSD compile fix

See merge request pleroma/pleroma!4040
2024-01-22 18:59:59 +00:00
Mark Felder
fff235433e Exile: switch to fork with BSD compile fix 2024-01-22 13:44:20 -05:00
lain
52aadc09e9 Merge branch 'exile' into 'develop'
Replace custom fifo implementation with Exile

See merge request pleroma/pleroma!4039
2024-01-22 16:49:30 +00:00
Mark Felder
0ac010ba3f Replace custom fifo implementation with Exile
This is for streaming media to ffmpeg thumbnailer. The existing implementation relies on undocumented behavior.

Erlang open_port/2 does not officially support passing a string of a file path for opening. The specs clearly state you are to provide one of the following for open_port/2:

    {spawn, Command :: string() | binary()} |
    {spawn_driver, Command :: string() | binary()} |
    {spawn_executable, FileName :: file:name_all()} |
    {fd, In :: integer() >= 0, Out :: integer() >= 0}

Our method technically works but is strongly discouraged as it can block the scheduler and dialyzer throws errors as it recognizes we're breaking the contract and some of the functions we wrote may never return.

This is indirectly covered by the Erlang FAQ section "9.12 Why can't I open devices (e.g. a serial port) like normal files?"
https://www.erlang.org/faq/problems#idm1127
2024-01-22 10:13:17 -05:00
marcin mikołajczak
def088ce52 format
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-01-21 18:23:24 +01:00
Haelwenn
ab3f03a04a Merge branch 'develop' into 'public-polls'
# Conflicts:
#   docs/development/API/differences_in_mastoapi_responses.md
2024-01-21 12:03:29 +00:00
feld
548434f85c Merge branch 'new-pipelines' into 'develop'
Fix testing cache policy, really.

See merge request pleroma/pleroma!4038
2024-01-21 04:36:24 +00:00
Mark Felder
951a82f2d7 Fix testing cache policy 2024-01-21 04:35:31 +00:00
feld
12b689a81e Merge branch 'new-pipelines' into 'develop'
Fix testing cache policy

See merge request pleroma/pleroma!4037
2024-01-21 04:34:06 +00:00
Mark Felder
badd7654fd Fix testing cache policy 2024-01-21 04:29:13 +00:00
feld
931fa4cb78 Merge branch 'new-pipelines' into 'develop'
New CI pipelines

See merge request pleroma/pleroma!4036
2024-01-21 04:17:51 +00:00
Mark Felder
518ddd458c Clarify formatting and cycles versions 2024-01-21 04:14:41 +00:00
Mark Felder
8f0051d739 Rename 1.15 image to include otp25, clarify test names 2024-01-21 04:10:20 +00:00
Mark Felder
058fa5471a Fix the image name 2024-01-21 04:06:17 +00:00
Mark Felder
aee971bd26 Only need amd64 for now 2024-01-21 03:59:26 +00:00
Mark Felder
06813d4a0e Reorganize ci scripts 2024-01-21 03:58:53 +00:00
Mark Felder
68f421c203 Use our own 1.15 ci-base image 2024-01-20 22:53:07 -05:00
Mark Felder
1790400313 Add Dialyxir with manual job execution 2024-01-20 22:49:37 -05:00
Mark Felder
06ac829eb4 Spec building should be in build stage 2024-01-20 22:45:29 -05:00
Mark Felder
df31ec0d52 Linting as a separate stage 2024-01-20 22:43:41 -05:00
Mark Felder
a0518a4ee1 Add a build and test pipeline for elixir 1.15 with a new naming convention 2024-01-20 22:37:38 -05:00
feld
1edfce4322 Merge branch 'dialyzer-fixes' into 'develop'
Dialyzer fixes

See merge request pleroma/pleroma!4035
2024-01-21 00:54:25 +00:00
Mark Felder
dcd0102800 Credo 2024-01-20 19:39:13 -05:00
Mark Felder
cca9d6aeaa Dialyzer fixes 2024-01-20 19:29:29 -05:00
Mark Felder
2330100371 Use config to control starting all HTTP pools in test env 2024-01-20 19:10:57 -05:00
Mark Felder
17877f612e Use config to control streamer registry 2024-01-20 18:51:20 -05:00
Mark Felder
4bb57d4f25 Use config to control background migrators 2024-01-20 18:47:25 -05:00
Mark Felder
c7eda0b24a Use config to control loading of custom modules 2024-01-20 18:43:53 -05:00
Mark Felder
029aaf3d74 Use config to control max_restarts 2024-01-20 18:41:04 -05:00
Mark Felder
65ac513776 Dialyzer: fix pattern match coverage 2024-01-20 17:58:47 -05:00
Mark Felder
88042109a3 Dialyzer: fix pattern match coverage 2024-01-20 17:56:32 -05:00
Mark Felder
7f649a7a19 Dialyzer: remove function that will never match 2024-01-20 17:50:21 -05:00
Mark Felder
2fbb67add7 Fix typo in typespec 2024-01-20 17:48:12 -05:00
Mark Felder
ea26add540 Fix incorrect type definition for maybe_direct_follow/2 2024-01-20 17:43:34 -05:00
Mark Felder
38d01ff511 Fix invalid types 2024-01-20 17:37:27 -05:00
Mark Felder
83eece7764 Fix invalid type
lib/pleroma/web/auth/authenticator.ex:8:unknown_type
Unknown type: User.t/0.
2024-01-20 17:33:37 -05:00
Mark Felder
4f07116108 Fix invalid type
lib/pleroma/web/activity_pub/publisher.ex:31:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:32:19 -05:00
Mark Felder
ec5ae83da6 Fix invalid types
lib/pleroma/web/activity_pub/mrf/policy.ex:6:unknown_type
Unknown type: Map.t/0.

lib/pleroma/web/activity_pub/mrf/policy.ex:7:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:31:07 -05:00
Mark Felder
2061a1d917 Fix invalid type
lib/pleroma/uploaders/uploader.ex:43:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:29:27 -05:00
Mark Felder
551e90cd52 Fix invalid type
lib/pleroma/upload.ex:89:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:28:54 -05:00
Mark Felder
f050a75b92 Fix invalid types due to typos
lib/pleroma/web/feed/feed_view.ex:135:unknown_type
Unknown type: NativeDateTime.t/0.

lib/pleroma/web/feed/feed_view.ex:148:unknown_type
Unknown type: NativeDateTime.t/0.
2024-01-20 17:22:40 -05:00
Mark Felder
e5120a2703 Fix invalid type due to typos
lib/pleroma/web/o_auth/authorization.ex:61:unknown_type
Unknown type: Authtorizatiton.t/0.
2024-01-20 17:21:12 -05:00
Mark Felder
65dfaa6cb9 Fix invalid type due to late aliasing
lib/pleroma/web/o_auth/token/query.ex:12:unknown_type
Unknown type: Token.t/0.
2024-01-20 17:18:16 -05:00
Mark Felder
09ae0ab24a Fix invalid type
lib/pleroma/web/rich_media/parser.ex:105:unknown_type
Unknown type: Integer.t/0.
2024-01-20 17:16:10 -05:00
Mark Felder
467a65af90 Fix invalid types
lib/pleroma/web/rich_media/parser/ttl.ex:6:unknown_type
Unknown type: Integer.t/0.

lib/pleroma/web/rich_media/parser/ttl.ex:6:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:14:56 -05:00
Mark Felder
e3f52ee13f Fix invalid types
lib/pleroma/web/streamer.ex:37:unknown_type
Unknown type: Map.t/0.
________________________________________________________________________________
lib/pleroma/web/streamer.ex:63:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:14:10 -05:00
Mark Felder
593c7e26d4 Fix invalid type
lib/pleroma/migrators/hashtags_table_migrator.ex:103:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:13:27 -05:00
Mark Felder
559aeb5dd0 Add missing type Pleroma.Emoji.t()
lib/pleroma/emoji/loader.ex:23:unknown_type
Unknown type: Pleroma.Emoji.t/0.
2024-01-20 17:08:18 -05:00
Mark Felder
8ed506a370 Fix invalid type
lib/pleroma/docs/json.ex:21:unknown_type
Unknown type: Map.t/0.
2024-01-20 17:05:55 -05:00
Mark Felder
0b7d214211 Fix invalid typespec references to Ecto.Changeset.t() 2024-01-20 16:47:50 -05:00
Mark Felder
dc8045d766 FlakeId.Ecto.CompatType.t() does not exist
This type is not exported and usable. FlakeId intends to return the type as :uuid, so we replace it in the typespecs with Ecto.UUID.t() which assuages the dialyzer errors

e.g.,

lib/pleroma/bookmark.ex:25:unknown_type
Unknown type: FlakeId.Ecto.CompatType.t/0.
2024-01-20 16:36:01 -05:00
Mark Felder
b16a01ba9d Pleroma.ApplicationRequirements: fix dialyzer errors
lib/pleroma/application_requirements.ex:19:unknown_type
Unknown type: Pleroma.ApplicationRequirements.VerifyError.t/0.

lib/pleroma/application_requirements.ex:199:pattern_match_cov
The pattern
variable_result

can never match, because previous clauses completely cover the type
:ok.
2024-01-20 16:10:11 -05:00
Mark Felder
df1d390a49 Pleroma.Activity.Queries: fix dialyzer error
lib/pleroma/activity/queries.ex:12:unknown_type
Unknown type: Activity.t/0.
2024-01-20 16:01:32 -05:00
Mark Felder
2a28377be0 Fix mix task pleroma.instance dialyzer error
lib/mix/tasks/pleroma/instance.ex:356:pattern_match_cov
The pattern
:variable_

can never match, because previous clauses completely cover the type
%{
  :anonymize => boolean(),
  :dedupe => boolean(),
  :read_description => boolean(),
  :strip_location => boolean()
}.
2024-01-20 15:55:33 -05:00
Haelwenn
a5f64ffd0c Apply lanodan’s suggestion to 1 file 2024-01-19 21:28:15 +00:00
Haelwenn
3c65a2899d Merge branch 'handle_object_fetch_failures' into 'develop'
Handle object fetch failures gracefully

See merge request pleroma/pleroma!4015
2024-01-19 18:43:00 +00:00
marcin mikołajczak
fa02a1e634 Update MastoAPI responses docs
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-01-19 18:05:50 +01:00
marcin mikołajczak
90b442727e Update Admin API docs
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-01-19 17:53:37 +01:00
marcin mikołajczak
250a4873a6 Merge branch 'develop' into 'post-languages'
# Conflicts:
#   lib/pleroma/web/activity_pub/transmogrifier.ex
#   test/pleroma/web/activity_pub/transmogrifier/note_handling_test.exs
2024-01-19 16:36:37 +00:00
Haelwenn
81a13b4b9e Merge branch 'api-docs' into 'develop'
Update API docs for my changes

See merge request pleroma/pleroma!4033
2024-01-18 02:19:58 +00:00
marcin mikołajczak
b39403a48f Update API docs for my changes
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-01-17 17:13:21 +01:00
Haelwenn
4c20713ecd Merge branch 'otp26' into 'develop'
OTP26 support

See merge request pleroma/pleroma!4025
2024-01-17 09:51:56 +00:00
Haelwenn
355487041a We are unsure if OTP27 will bring more breaking changes 2024-01-16 11:22:34 -05:00
Mark Felder
e44f6a2ab3 Skip tests on MacOS/Darwin that have always failed 2024-01-15 20:18:43 -05:00
Mark Felder
012ab87605 Pleroma.Web.MastodonAPI.SubscriptionControllerTest: disable async and use on_exit/1 to ensure web push config gets restored 2024-01-16 00:59:44 +00:00
Mark Felder
ad363c62c3 Fix StatusController test by using the get_query_parameter/2 helper to reliably retrieve the max_id value 2024-01-15 17:32:57 -05:00
Mark Felder
8bd8ee03c2 Add Pleroma.Test.Helpers.get_query_parameter/2 to retrieve specific query parameter values 2024-01-15 17:32:15 -05:00
Mark Felder
4cbf11d32c Fix ChatController tests validating prev/next URLs by sorting the query parameters before comparison 2024-01-15 17:12:06 -05:00
Mark Felder
e7c6410192 Add Pleroma.Support.Helpers.uri_query_sort/1 for easy sorting of a URL's query parameters 2024-01-15 17:08:24 -05:00
Haelwenn
9b39bc6aa8 Merge branch 'mrf-regex-error' into 'develop'
MRF: Log sensible regex error for subdomain_match

See merge request pleroma/pleroma!4026
2024-01-15 08:24:54 +00:00
Haelwenn
c29430b018 Merge branch 'mrf-steal-emoji-extname' into 'develop'
MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one

See merge request pleroma/pleroma!4029
2024-01-15 08:24:24 +00:00
Mark Felder
12c052551b Allow the Remote Fetcher to attempt fetching an unreachable instance 2024-01-14 14:05:43 -05:00
tusooa
d3a4f5b7d7 Merge branch 'nil-contentMap' into 'develop'
Support objects with a nil contentMap (firefish)

Closes #3231

See merge request pleroma/pleroma!4030
2024-01-13 22:23:21 +00:00
feld
9cc46c5538 Merge branch 'qtfaststart-fix' into 'develop'
Fix MediaProxy crashing on some videos

See merge request pleroma/pleroma!4024
2024-01-13 04:35:32 +00:00
feld
d4b889783c Merge branch 'fix-duplicate-inbox-deliveries' into 'develop'
Fix duplicate inbox deliveries

See merge request pleroma/pleroma!4031
2024-01-11 20:21:57 +00:00
Mint
379d7fafd5 Merge branch 'use-shared-inbox-test' of pleromergit:pleroma/pleroma into fix-duplicate-inbox-deliveries 2024-01-11 23:10:40 +03:00
Mark Felder
dcb2b1413b Add test to validate shared inboxes are used when multiple recipients from the same instance are recipients 2024-01-11 15:05:15 -05:00
Mint
3c30eadd5e Fix duplicate inbox deliveries 2024-01-11 20:48:35 +03:00
Haelwenn (lanodan) Monnier
7651198508 Support objects with a nil contentMap (firefish)
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3231
2024-01-11 07:16:45 +01:00
tusooa
8bc59e9743 Merge branch 'emoji-use-v1-api' into 'develop'
Make remote emoji packs API use specifically the V1 URL

See merge request pleroma/pleroma!4028
2024-01-10 01:26:46 +00:00
Haelwenn (lanodan) Monnier
4ca65c6182 MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one 2024-01-07 19:37:35 +01:00
Ekaterina Vaartis
6a55b680a3 Fix tests 2024-01-07 17:49:08 +03:00
Ekaterina Vaartis
29158681f9 Fetch count before downloading the pack and use that as page size 2024-01-07 17:07:50 +03:00
Ekaterina Vaartis
69e4ebbb8e Make remote emoji packs API use specifically the V1 URL
Akkoma does not understand it without V1, and it works either way with
normal pleroma, so no reason to not do this
2024-01-07 15:30:52 +03:00
Haelwenn
67a5542a73 Merge branch 'fix-account-auth-check' into 'develop'
Fix authentication check on account rendering when bio is defined

See merge request pleroma/pleroma!4027
2024-01-05 00:45:29 +00:00
Alexander Tumin
32d8e0d496 Fix authentication check on account rendering when bio is defined 2024-01-04 16:57:48 +03:00
Haelwenn (lanodan) Monnier
6af49270a9 MRF: Log sensible error for subdomains_regex 2024-01-02 15:37:41 +01:00
Lain Soykaf
fc910f9bb9 Linting 2023-12-30 11:45:16 +04:00
Lain Soykaf
8883fa326a Mix: Update http_signatures version 2023-12-30 11:44:23 +04:00
Mark Felder
c6acd2abb3 Revert grammar leak from bad merge 2023-12-29 23:31:48 -05:00
Mark Felder
63a74f7b6d Support for Erlang OTP 26 2023-12-29 23:22:31 -05:00
Mark Felder
04366492b2 ConfigDB export to file does not have a consistent order.
Just test a few values to prove it was written
2023-12-29 23:18:45 -05:00
Mark Felder
1b5168ae02 Phoenix detects the webfinger requests with content-type application/jrd+json as "jrd" now 2023-12-29 23:18:45 -05:00
Mark Felder
347e5f33c7 Fix regex string match due to OTP26 key order change
OTP25:
"<http://localhost:4001/api/v1/favourites?limit=1&max_id=Ad1FhzPIS7gcHjUcoC&offset=0>; rel=\"next\""

OTP26:
"<http://localhost:4001/api/v1/favourites?offset=0&limit=1&max_id=Ad1FmOIAXiSNgygflA>; rel=\"next\""
2023-12-29 23:18:45 -05:00
Mark Felder
0820c23988 Fix Chat controller tests failing due to OTP26 key order change 2023-12-29 23:18:45 -05:00
Mark Felder
d4dd21303a Remove call to Pleroma.Web.Endpoint.config_change/2
This is not necessary for the tests to pass and breaks other tests as this change doesn't get cleanly reverted causing the hostname to stay set this way and leak into other test causing failures with "sub.example.com" not matching "localhost"
2023-12-29 22:51:40 -05:00
Mark Felder
36b3867787 Fix test "transforms config to tuples"
This should have never worked. The default empty values for the other MRF Simple options will always be there.
2023-12-29 22:50:26 -05:00
Mark Felder
b51ba39dd1 Update Floki to get the :attributes_as_maps feature to allow us to compare equality of parsed documents without issues of key ordering 2023-12-29 22:50:26 -05:00
Mark Felder
e121e06214 Implement a custom uri_equal?/2 to fix comparisons of URLs with unordered query parameters 2023-12-29 22:50:26 -05:00
Mark Felder
e7d6b835ae Fix tests by leveraging Keyword.equal?/2 2023-12-29 22:50:26 -05:00
Haelwenn
f74f5e0a56 Merge branch 'publisher' into 'develop'
Discard some failed publisher jobs

See merge request pleroma/pleroma!4022
2023-12-29 23:18:34 +00:00
Mark Felder
50edef5bc1 Change QTFastStart to recover gracefully if it encounters an error during bitstring matching
This fixes issues with internal errors when trying to serve the video
2023-12-29 14:12:44 -05:00
Mark Felder
833117f573 Fix tests
Need to handle the edge case of no valid HTTP response which has no status code
2023-12-29 13:04:06 -05:00
feld
8ac4458630 Merge branch 'finch-redirects' into 'develop'
Fix following redirects with Finch

See merge request pleroma/pleroma!4023
2023-12-29 17:00:58 +00:00
lain
a6fc97ffec Merge branch 'bugfix/chat-attachment-empty-array' into 'develop'
ChatMessage: Tolerate attachment field set to an empty array

Closes #3224

See merge request pleroma/pleroma!4020
2023-12-29 08:12:27 +00:00
Mark Felder
4afe211e50 Return the full tuple from Tesla 2023-12-29 01:04:05 -05:00
Mark Felder
2950397d47 Fix following redirects with Finch 2023-12-29 00:50:50 -05:00
Mark Felder
141702538b Discard on a 404 as well 2023-12-29 00:31:05 -05:00
Mark Felder
7ebca7ecfa Activity publishing failures will prevent the job from retrying if the publishing request returns a 403 or 410 2023-12-29 00:25:33 -05:00
Mark Felder
77949d4590 Make the Publisher log error less noisy 2023-12-29 00:25:11 -05:00
Mark Felder
f17f92105b Oban jobs should be discarded on permanent errors 2023-12-28 23:52:59 -05:00
feld
3954dfd4f1 Merge branch 'remove-multiple-federator-modules' into 'develop'
Fix the Federator perform/2 Oban callback

See merge request pleroma/pleroma!4021
2023-12-29 04:33:45 +00:00
Haelwenn (lanodan) Monnier
39dc6c65ef ChatMessage: Tolerate attachment field set to an empty array
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3224
2023-12-29 05:32:47 +01:00
Mark Felder
d519a535e1 Changelog 2023-12-28 23:32:21 -05:00
Mark Felder
aa070c7daf Handle 401s as I have observed it in the wild 2023-12-28 23:09:33 -05:00
Mark Felder
efd50759d5 Log errors when publishing activities 2023-12-28 22:59:27 -05:00
Mark Felder
08ba9a15b2 Fix the Federator perform/2 Oban callback 2023-12-28 22:51:47 -05:00
Haelwenn
7f3a83d3ed Merge branch 'remove-multiple-federator-modules' into 'develop'
Remove support for multiple federation publisher modules

See merge request pleroma/pleroma!4019
2023-12-29 03:35:24 +00:00
Mark Felder
ddb9e90c40 Update minimum elixir version found in various docs 2023-12-28 15:59:25 -05:00
Mark Felder
013f7c4f8f Changelog 2023-12-28 14:55:26 -05:00
Mark Felder
e35fa60d8a Remove reference to the :federation_publisher_modules setting in our config test 2023-12-28 14:53:40 -05:00
Mark Felder
3acfdb6f8a Retire the Pleroma.Web.Federator.Publisher module 2023-12-28 14:53:09 -05:00
Mark Felder
1d816222e0 Remove support for multiple federation publisher modules
This also unravels some needless indirection.
2023-12-28 11:55:19 -05:00
marcin mikołajczak
51aef6b78d Add language from activity context in ObjectValidator
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-28 15:54:16 +01:00
Haelwenn
ddc321a094 Merge branch 'tusooa/3205-group-actor' into 'develop'
Implement group actors

See merge request pleroma/pleroma!3969
2023-12-28 10:46:53 +00:00
Haelwenn
81ce04990e Merge branch 'typo' into 'develop'
Fix some typos

See merge request pleroma/pleroma!4017
2023-12-28 10:02:17 +00:00
Mark Felder
a6fd251e44 Improve test descriptions 2023-12-27 22:37:06 -05:00
Mark Felder
ad0a5deb67 Prevent requeuing Remote Fetcher jobs that exceed thread depth 2023-12-27 22:28:41 -05:00
Mark Felder
a2708f7fe3 Leverage existing atoms as return errors for the object fetcher 2023-12-27 22:01:59 -05:00
Mark Felder
287f2c9719 Formatting 2023-12-27 21:55:07 -05:00
Mark Felder
882267e3ec Remove duplicate log messages from Transmogrifier
Object fetch errors are logged in the fetcher module
2023-12-27 21:39:29 -05:00
Mark Felder
becb070603 Conslidate log messages for object fetcher failures and leverage Logger.metadata 2023-12-27 21:22:51 -05:00
Mark Felder
6c9929b809 Set Logger level to error 2023-12-27 20:18:14 -05:00
marcin mikołajczak
017e35fbf1 Fix some more typos
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-28 00:17:04 +01:00
marcin mikołajczak
f53197c82a Fix operation name typo
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-27 23:52:46 +01:00
Mark Felder
be0cca9afd RemoteFetcherWorker Oban job tests 2023-12-27 16:08:57 -05:00
Mark Felder
53db65678d Separate files for each distinct sentence in the changelog 2023-12-27 15:44:31 -05:00
Mark Felder
d4c77103d1 Fix detection of user follower collection being private
We were overzealous with matching on a raw error from the object fetch that should have never been relied on like this. If we can't fetch successfully we should assume that the collection is private.

Building a more expressive and universal error struct to match on may be something to consider.
2023-12-27 15:27:39 -05:00
marcin mikołajczak
f6fee39e42 Add changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-27 21:24:20 +01:00
feld
47e00524f7 Merge branch 'instance-defdelegates' into 'develop'
defdelegates for Pleroma.Instances

See merge request pleroma/pleroma!4016
2023-12-27 17:51:52 +00:00
Mark Felder
1a337dcc18 These functions in Pleroma.Instances should be defdelegates to Pleroma.Instances.Instance 2023-12-27 12:44:16 -05:00
tusooa
b273025fd7
Add pleroma:group_actors to instance features 2023-12-27 12:28:11 -05:00
tusooa
e9d2fadd8e
Add changelog for group actors 2023-12-27 12:28:11 -05:00
tusooa
e34a975dd9
Do not boost if group is blocking poster 2023-12-27 12:28:10 -05:00
tusooa
5f5533b88a
Test group actor behaviour in SideEffects 2023-12-27 12:28:10 -05:00
tusooa
5459bbc1ef
Allow group actors to boost posts 2023-12-27 12:28:04 -05:00
tusooa
7a58ddfa48
Allow local user to have group actor type
https://git.pleroma.social/pleroma/pleroma/-/issues/3205
2023-12-27 12:27:37 -05:00
tusooa
40f170f0a7 Merge branch 'webfinger-fix' into 'develop'
Use correct domain for fqn and InstanceView

See merge request pleroma/pleroma!3958
2023-12-27 17:10:32 +00:00
Mark Felder
5f51094138 Update changelog 2023-12-27 11:09:42 -05:00
Mark Felder
73c4c6d7de Revert "Mark instances as unreachable when returning a 403 from an object fetch"
This reverts commit d472bafec1.
2023-12-26 17:20:36 -05:00
Mark Felder
9c0040124a Skip remote fetch jobs for unreachable instances 2023-12-26 16:28:05 -05:00
Mark Felder
5f6966cd9f Remove mistaken duplicate fetch 2023-12-26 16:23:41 -05:00
Mark Felder
c4f0a3b570 Changelogs 2023-12-26 16:08:36 -05:00
Mark Felder
c6b38441f1 Cancel remote fetch jobs for deleted objects 2023-12-26 16:05:44 -05:00
Mark Felder
67dd81e825 Consolidate the HTTP status code checking into the private get_object/1 2023-12-26 16:05:28 -05:00
Mark Felder
d472bafec1 Mark instances as unreachable when returning a 403 from an object fetch
This is a definite sign the instance is blocked and they are enforcing authorized_fetch
2023-12-26 15:54:21 -05:00
Mark Felder
603e9f6a92 Fix Transmogrifier tests
These tests relied on the removed Fetcher.fetch_object_from_id!/2 function injecting the error tuple into a log message with the exact words "Object containment failed."

We will keep this behavior by generating a similar log message, but perhaps this should do a better job of matching on the error tuple returned by Transmogrifier.handle_incoming/1
2023-12-26 14:22:06 -05:00
Mark Felder
ea0ec5fbcf Remove Fetcher.fetch_object_from_id!/2
It was only being called once and can be replaced with a case statement.
2023-12-26 14:20:35 -05:00
marcin mikołajczak
6051715a99 Merge remote-tracking branch 'origin/develop' into instance_rules
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-22 14:34:30 +01:00
marcin mikołajczak
b6bae2d319 Merge remote-tracking branch 'origin/develop' into post-languages
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-22 13:57:22 +01:00
marcin mikołajczak
9fc6676d8c Merge remote-tracking branch 'origin/develop' into instance-contact-account
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-22 13:54:44 +01:00
marcin mikołajczak
28e5e65676 Merge remote-tracking branch 'origin/develop' into webfinger-fix
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-22 13:29:56 +01:00
lain
5f1d707367 Merge branch 'bad_inbox_request' into 'develop'
Return a 400 from a bad delivery attempt to the inbox

Closes #2884

See merge request pleroma/pleroma!4009
2023-12-22 11:04:25 +00:00
Haelwenn
bd50892c25 Merge branch 'instance-v2' into 'develop'
Implement api/v2/instance route

See merge request pleroma/pleroma!3939
2023-12-21 21:14:46 +00:00
Mark Felder
7e3bbdded5 Elixir 1.13 is the minimum required version 2023-12-20 23:39:12 +00:00
feld
344c798b4c Merge branch 'fix-otp-comparison' into 'develop'
Fix invalid string comparison for OTP versions and replace with config

See merge request pleroma/pleroma!4013
2023-12-20 23:26:59 +00:00
Mark Felder
928bda2e43 Fix invalid string comparison for OTP versions and replace with config
Old way was wrong for multiple reasons. If we do this as a config value it fixes :slave.start/3 being picked up as a compile warning on OTP26.

Also if we want to do any real clustering we'll need something like this to support OTP25 and older.
2023-12-20 23:13:33 +00:00
marcin mikołajczak
4f2fb8dc5e Use consistent terminology
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-21 00:13:13 +01:00
marcin mikołajczak
39d3df86c8 Use consistent terminology
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-12-21 00:10:30 +01:00
feld
56618873af Merge branch 'deprecations' into 'develop'
More deprecation fixes/cleanup

See merge request pleroma/pleroma!4012
2023-12-20 22:11:35 +00:00
Mark Felder
d9fe41a301 More deprecation fixes 2023-12-20 16:47:58 -05:00
Haelwenn (lanodan) Monnier
1fc53c3077 config/description.exs: Remove quack
Was already removed in f40ccce7e9
2023-12-20 16:24:42 -05:00
Mark Felder
fb3eb6e0a4 Fix more Logger warn -> warning 2023-12-20 16:24:27 -05:00
Mark Felder
2207fafa91 Fix more Logger warn -> warning 2023-12-20 16:24:19 -05:00
Mark Felder
cd3abe0b4c Fix more Logger warn -> warning 2023-12-20 16:23:57 -05:00
feld
cbdd134174 Merge branch 'deprecations' into 'develop'
Deprecations

See merge request pleroma/pleroma!4011
2023-12-20 21:13:35 +00:00
Mark Felder
45150848fb Backwards compatibility for OTP 2023-12-20 15:56:56 -05:00
Mark Felder
3c80c86437 Chase deprecations/warnings for Elixir 1.15 2023-12-20 20:17:25 +00:00
Mark Felder
107f00d93f OTP26: Chase the :slave.start/3 deprecation 2023-12-20 20:16:39 +00:00
Mark Felder
9896b64f54 Elixir 1.15: Chase the Logger.warn deprecation 2023-12-20 20:16:26 +00:00
feld
d72d42f9ce Merge branch 'testsecrets' into 'develop'
Clarify location of test.secret.exs file

See merge request pleroma/pleroma!4010
2023-12-20 19:13:03 +00:00
Mark Felder
bf57fd82bb Clarify location of test.secret.exs file 2023-12-20 14:12:06 -05:00
Mark Felder
f43f33e307 Return a 400 from a bad delivery attempt to the inbox
This stops the backend from generating 500 errors from these events.
2023-12-19 13:56:17 -05:00
feld
99b07c817e Merge branch 'web_push' into 'develop'
Fix Web Push notification delivery

See merge request pleroma/pleroma!4008
2023-12-19 16:19:35 +00:00
Mark Felder
e2066994b1 Fix Web Push notification delivery
Finch does not automatically append header content-type: octet-stream for binary payloads.
2023-12-19 10:56:55 -05:00
Haelwenn
8893a044b3 Merge branch 'priority_activities' into 'develop'
Priority activities

See merge request pleroma/pleroma!4004
2023-12-18 00:49:09 +00:00
Lain Soykaf
c1423ddca3 ActivityPub.Publisher: Filter inboxes 2023-12-17 11:15:58 +04:00
Haelwenn (lanodan) Monnier
086ba59d03 HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions 2023-12-16 19:25:51 +01:00
Lain Soykaf
77bb1bb6c8 Actually write changelog 2023-12-16 21:41:28 +04:00
Haelwenn (lanodan) Monnier
f271ea6e43 Move Plugs.RemoteIP.maybe_add_cidr/1 to InetHelper.parse_cidr/1 2023-12-16 18:23:26 +01:00
Lain Soykaf
a0f70cf7d0 Add changelog 2023-12-16 20:40:51 +04:00
Lain Soykaf
c212fc1dcf User: Ignore non-local users when setting 'last active at' 2023-12-16 20:32:13 +04:00
Lain Soykaf
3fbc80eb58 B ActivityPub.Publisher: Prioritize direct mentions 2023-12-16 20:26:08 +04:00
Haelwenn
147b37b893 Merge branch 'mergeback/2.6.1' into 'develop'
mergeback: 2.6.1

Closes #3194

See merge request pleroma/pleroma!4003
2023-12-16 01:03:37 +00:00
tusooa
f5559f3aff
Skip changelog for 2.6.1 mergeback 2023-12-15 19:45:23 -05:00
tusooa
453cb6a388
Merge remote-tracking branch 'upstream/stable' into mergeback/2.6.1 2023-12-15 19:43:07 -05:00
tusooa
6722b7f395 Merge branch 'release/2.6.1' into 'stable'
Release: 2.6.1

See merge request pleroma/pleroma!3999
2023-12-16 00:36:08 +00:00
Haelwenn
f07b134add Fix formatting of changelog 2023-12-15 23:52:37 +00:00
lain
7622a83973 Merge branch 'service-actor-outbox' into 'develop'
ap userview: add outbox field.

See merge request pleroma/pleroma!4002
2023-12-15 06:22:55 +00:00
Lain Soykaf
766011544a UserViewTest: Add basice service actor test. 2023-12-15 10:01:31 +04:00
Yonle
cb1b52d980 ap userview: add outbox field.
Signed-off-by: Yonle <yonle@lecturify.net>
2023-12-15 09:55:06 +04:00
tusooa
948f01f19a
Bundle 2.6.1 frontend 2023-12-14 20:32:49 -05:00
tusooa
ad6a6aa07b
Bump version to 2.6.1 2023-12-14 20:14:41 -05:00
Haelwenn (lanodan) Monnier
b1ea63b4c6
changelog.d/system-cflags.fix: New entry 2023-12-14 20:13:25 -05:00
Haelwenn (lanodan) Monnier
41f6e8f7f4
mix: Bump elixir-captcha for system-CFLAGS 2023-12-14 20:13:20 -05:00
Haelwenn (lanodan) Monnier
08839602bd
mix: cherry-pick eblurhash latest git for system-CFLAGS 2023-12-14 20:13:00 -05:00
Haelwenn (lanodan) Monnier
35090f6eac
TwitterAPI: Return proper error when healthcheck is disabled 2023-12-14 20:11:01 -05:00
Haelwenn (lanodan) Monnier
272271d939
docs: clang is also supported 2023-12-14 07:29:54 -05:00
Haelwenn (lanodan) Monnier
1b22f13488
docs: Put a max version on erlang and elixir
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3194
2023-12-14 07:29:54 -05:00
Henry Jameson
e635ee8b39
changelog 2023-12-14 07:28:52 -05:00
Henry Jameson
57445e65cb
update, add images 2023-12-14 07:28:52 -05:00
Henry Jameson
476fd01f8d
Initial draft on frontends management 2023-12-14 07:28:43 -05:00
lain
02acf7c0b3 Merge branch 'fix-develop-tests' into 'develop'
StatusViewTest: Fix tests.

See merge request pleroma/pleroma!3998
2023-12-13 10:05:18 +00:00
Lain Soykaf
1458de92f0 Gitlab CI: Switch to our own docker hub 2023-12-13 13:08:00 +04:00
Lain Soykaf
935dce9a0b Gitlab CI: Update postgres for rum tests. 2023-12-13 12:45:52 +04:00
Lain Soykaf
40fa1099bf StatusViewTest: Fix tests. 2023-12-13 11:19:08 +04:00
lain
29d202e1df Merge branch 'add-opengraph-rich-media-proxy' into 'develop'
Add media proxy to opengraph rich media cards

See merge request pleroma/pleroma!3997
2023-12-13 06:23:16 +00:00
lain
2c560266e9 Merge branch 'no-async-clear-config' into 'develop'
Various test improvements and refactors

See merge request pleroma/pleroma!3991
2023-12-12 15:54:55 +00:00
Lain Soykaf
cca6c20eb6 Revert "EmailTest: use config mock"
This reverts commit dca41cc4a3.
2023-12-12 19:35:19 +04:00
Lain Soykaf
a989b793de Revert "Tests: fix more tests"
This reverts commit 05352330bb.
2023-12-12 19:35:08 +04:00
Alexander Tumin
e7af2addd8 Add media proxy to opengraph rich media cards 2023-12-12 18:32:02 +03:00
Lain Soykaf
877552c6f8 Linting 2023-12-12 19:11:15 +04:00
Lain Soykaf
05352330bb Tests: fix more tests 2023-12-12 19:08:57 +04:00
Lain Soykaf
dca41cc4a3 EmailTest: use config mock 2023-12-12 15:25:52 +04:00
Lain Soykaf
b13820dcd0 Tests: Remove skip_on_mac tag 2023-12-12 14:09:22 +04:00
Lain Soykaf
190120fd79 Tests: More test fixes 2023-12-12 14:03:46 +04:00
Lain Soykaf
00def0875b RichMediaTest: Use mocked config 2023-12-12 13:28:11 +04:00
lain
31a524fb52 Merge branch 'docker-fix-22' into 'develop'
Fix dockerfile compilation.

See merge request pleroma/pleroma!3996
2023-12-12 09:06:11 +00:00
Lain Soykaf
da3d1157e5 Fix dockerfile compilation. 2023-12-12 13:04:53 +04:00
Lain Soykaf
650edb60dc ScheduledActivityControllerTest: Fix tests, make async. 2023-12-12 12:56:07 +04:00
Lain Soykaf
4ba03aa29b MastodonAPITest: Fix tests 2023-12-12 12:55:53 +04:00
Lain Soykaf
22c4d89dbb ScheduledActivity: Use config mocking 2023-12-12 12:48:55 +04:00
Lain Soykaf
8da1fd329d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into no-async-clear-config 2023-12-12 12:29:22 +04:00
lain
e9d9caa77c Merge branch 'fix-dockerfile' into 'develop'
Dockerfile: Use platform libvips.

See merge request pleroma/pleroma!3995
2023-12-12 08:11:33 +00:00
Lain Soykaf
7371e72e6c Dockerfile: Use platform libvips. 2023-12-12 11:36:34 +04:00
Lain Soykaf
228966e6dd Exiftool.ReadDescription: Remove wrong spec. 2023-12-12 11:09:54 +04:00
Lain Soykaf
18ab36d70c Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into no-async-clear-config 2023-12-12 10:55:19 +04:00
lain
3c89f3cf15 Merge branch 'build-releases-with-provided-libvips-2' into 'develop'
Mix: Update vix.

See merge request pleroma/pleroma!3994
2023-12-12 05:23:24 +00:00
Lain Soykaf
6c5ebcded5 Mix: Update vix. 2023-12-12 08:59:47 +04:00
lain
1d51ae7570 Merge branch 'build-releases-with-provided-libvips-2' into 'develop'
Use version of vix that compiles correctly under arm32

See merge request pleroma/pleroma!3993
2023-12-11 14:40:01 +00:00
Lain Soykaf
8b4a786266 Use version of vix that compiles correctly under arm32 2023-12-11 18:38:27 +04:00
lain
41c02b3d16 Merge branch 'authorize-interaction' into 'develop'
Support /authorize-interaction route used by Mastodon

See merge request pleroma/pleroma!3957
2023-12-11 09:31:18 +00:00
lain
8d4a47bf9e Merge branch 'build-releases-with-provided-libvips-2' into 'develop'
Build releases with provided libvips 2

See merge request pleroma/pleroma!3992
2023-12-11 09:09:25 +00:00
Lain Soykaf
7cf65cfeea Changelog 2023-12-11 12:48:53 +04:00
Lain Soykaf
600364f4fd Gitlab CI: Build using system provided libvips 2023-12-11 12:47:59 +04:00
lain
e7974afd37 Merge branch 'optimistic-inbox' into 'develop'
Optimistic Inbox

See merge request pleroma/pleroma!3989
2023-12-11 07:32:42 +00:00
Lain Soykaf
6be3704bc4 Linting 2023-12-11 11:28:39 +04:00
Lain Soykaf
e4292c94d8 BackupTest: Fix tests 2023-12-11 11:12:02 +04:00
Lain Soykaf
d62b17eb60 UploadMediaPlugTest: Fix tests 2023-12-11 11:06:07 +04:00
Lain Soykaf
dd0cf0371a AttachmentValidatorTest: Fix tests 2023-12-11 11:02:33 +04:00
Lain Soykaf
54c0510d1f Push.ImplTest: Fix tests 2023-12-11 11:01:07 +04:00
Lain Soykaf
dec524e7da BackupViewTest: Fix Tests 2023-12-11 10:54:11 +04:00
Lain Soykaf
82beb4987a MascotControllerTest: Fix tests 2023-12-11 10:49:22 +04:00
Lain Soykaf
f5a2337b37 CommonAPITest: Fix tests 2023-12-11 10:46:26 +04:00
Lain Soykaf
6e448ef239 ActivityPubTest: Fix tests 2023-12-11 10:44:31 +04:00
Lain Soykaf
d19f5d18e9 UpdateCredentialsTest: Fix tests 2023-12-11 10:41:27 +04:00
Lain Soykaf
6a738720ec ChatControllerTest: Fix tests 2023-12-11 10:39:03 +04:00
Lain Soykaf
d3822269ca ObjectTest: Fix tests 2023-12-11 10:37:39 +04:00
Lain Soykaf
e8e74146e8 MastodonAPI.AccountViewTest: Fix tests 2023-12-11 10:33:33 +04:00
Lain Soykaf
50c31cb31b RemoteFollowControllerTest: Fix test 2023-12-11 10:24:44 +04:00
Lain Soykaf
844d0d3147 UploadTest: Fix test 2023-12-11 10:22:35 +04:00
Lain Soykaf
8c0b1fd1d9 MediaProxyControllerTest: Fix tests 2023-12-11 10:16:29 +04:00
Lain Soykaf
b9f135eaf3 FrontendStaticPlugTest: Fix test 2023-12-11 10:07:39 +04:00
Lain Soykaf
60800c0b2b ChatMessageReferenceView: Fix test 2023-12-11 10:05:47 +04:00
Lain Soykaf
42c11466cc MediaProxyWarmingPolicyTest: Fix tests 2023-12-11 10:04:01 +04:00
Lain Soykaf
305c76470f OpenGraphTest: Fix test 2023-12-11 10:01:55 +04:00
Lain Soykaf
5530c7dca4 MediaProxyTest: Fix test 2023-12-11 10:00:15 +04:00
Lain Soykaf
5a95847c5d MediaProxyCacheControllerTest: Fix tests. 2023-12-11 09:54:31 +04:00
Lain Soykaf
2c10843bc4 MediaControllerTest: Fix test. 2023-12-11 09:51:59 +04:00
Lain Soykaf
3cce929eec ChatValidationTest: Fix tests. 2023-12-11 09:43:49 +04:00
Lain Soykaf
90a47ca050 S3 Test: Remove global state dependencies 2023-12-11 09:25:05 +04:00
Mark Felder
c0a50b7c3e User.get_or_fetch_public_key_for_ap_id/1 is no longer required. 2023-12-10 13:24:25 -05:00
Mark Felder
18deea59b4 ActivityPub.make_user_from_ap_id/1 fetches the whole actor object including updating the public key for us 2023-12-10 13:22:55 -05:00
Mark Felder
223c1bac8d Cancel the job if the signature is still invalid after a refetch of the public key 2023-12-10 12:55:41 -05:00
Lain Soykaf
0e005acd44 CI: Use Elixir 1.13 for linting. 2023-12-10 21:00:11 +04:00
Lain Soykaf
0d83b6d177 Linting 2023-12-10 19:59:02 +04:00
Lain Soykaf
06fc196772 Backup: Fix config 2023-12-10 19:46:25 +04:00
Lain Soykaf
6e3267d1bd Tests: Fix all the tests. 2023-12-10 19:19:56 +04:00
Lain Soykaf
c068a218ea Backup Tests: Split out async tests, use mox. 2023-12-10 18:57:46 +04:00
Lain Soykaf
20b76acc08 ActivityPubTest: Swallow log 2023-12-10 17:20:39 +04:00
Lain Soykaf
e5beab7f16 Config/Test: Don't start promex during testing. 2023-12-10 17:18:18 +04:00
Lain Soykaf
68f7a79f28 Tests: Remove async from cases that use Mock 2023-12-10 17:10:18 +04:00
Lain Soykaf
b7ce2cf6a8 Add .rgignore for easier grepping 2023-12-10 17:06:28 +04:00
Lain Soykaf
075222525c TransmogrifierTest: Capture the log 2023-12-10 17:06:13 +04:00
Lain Soykaf
221f18dc33 Tests: Don't run tests that use clear_config asynchronously. 2023-12-10 16:27:23 +04:00
lain
a7f82ff82e Merge branch 'scrubbers-html4-GtS' into 'develop'
scrubbers/default: Add more formatting elements from HTML4 / GoToSocial

See merge request pleroma/pleroma!3979
2023-12-10 12:18:22 +00:00
Mark Felder
d417f73218 Process inbound Delete activities at lowest priority 2023-12-09 18:47:54 -05:00
Mark Felder
94daa3e8c1 Revert "Remove unnecessary forced refresh of user"
This reverts commit 97cf78f63d.
2023-12-09 18:21:00 -05:00
Mark Felder
82724f6664 Do not retry fetching deleted objects 2023-12-09 17:48:33 -05:00
feld
a67fc30d81 Merge branch 'kphrx-develop-patch-87655' into 'develop'
Remove checking ImageMagick's commands for AnalyzeMetadata filter

See merge request pleroma/pleroma!3987
2023-12-09 14:08:13 +00:00
lain
0e75315368 Merge branch 'migration-fix' into 'develop'
Permit the quoteUrl index creation to run concurrently

See merge request pleroma/pleroma!3988
2023-12-09 06:07:28 +00:00
lain
ee15939d33 Skip transaction to generate the index concurrently 2023-12-09 05:54:02 +00:00
Mark Felder
4039106500 Fix the req_headers formatting 2023-12-08 21:51:36 -05:00
Mark Felder
1d417d2a36 Our version of Oban only supports priorities 0-3 2023-12-08 21:49:25 -05:00
Mark Felder
97cf78f63d Remove unnecessary forced refresh of user 2023-12-08 18:24:30 -05:00
Mark Felder
1b5964979f Optimistic Inbox 2023-12-08 18:13:43 -05:00
Mark Felder
ce5acd4158 get_cached_by_ap_id/1 returns a single result, not a tuple 2023-12-08 18:10:22 -05:00
Mark Felder
0d3f1be230 Fix test; log message no longer emitted here 2023-12-08 17:46:10 -05:00
Mark Felder
074b31d9ab Optimistic Inbox
Rework inbound federation to accept requests optimistically. The HTTP Signatures Plug will not attempt to fetch the actor or key and will fail early.

If the signature cannot be validated we pass the required data into the Oban job with a reduced priority and increase the timeout to 20 seconds. The Oban job will handle the actor and key fetching before attempting to validate the activity again. This job will be retried 5 times by default.

Another welcome side effect is that actors who change their keys can federate to Pleroma instances immediately instead of needing to wait the default value of 86400s / 24 hours before the key will be fetched again.
2023-12-08 17:45:20 -05:00
Mark Felder
003d3312fd Permit the index creation to run concurrently 2023-12-08 15:48:00 -05:00
kPherox
0818a9136d
add changelog 2023-12-07 20:33:23 +09:00
kPherox
b70ca7d54e fix: AnalyzeMetadata filter no longer depends on ImageMagick's commands 2023-12-07 09:53:24 +00:00
lain
5f74aadaaf Merge branch 'last_status_at' into 'develop'
MastoAPI AccountView: Change last_status_at to be a date

See merge request pleroma/pleroma!3978
2023-12-07 08:08:27 +00:00
Lain Soykaf
ef8a2134bc AccountView: Add test, refactor 2023-12-07 11:25:18 +04:00
Lain Soykaf
6a191a91ab Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into last_status_at 2023-12-07 11:18:39 +04:00
lain
2656199dc7 Merge branch 'more-test-fixes' into 'develop'
More test fixes

See merge request pleroma/pleroma!3984
2023-12-07 05:26:06 +00:00
lain
6c10fd22a3 Merge branch 'reachable-upsert' into 'develop'
Change set_reachable/1 to an upsert

See merge request pleroma/pleroma!3986
2023-12-07 04:20:54 +00:00
Mark Felder
1ad0d94d6f Change set_reachable/1 to an upsert 2023-12-06 15:50:00 -05:00
Lain Soykaf
5dce39d17f Revert "CI: Remove test coverage"
This reverts commit d99e139c6b.
2023-12-03 10:17:24 +04:00
Lain Soykaf
d99e139c6b CI: Remove test coverage 2023-11-30 13:54:07 +04:00
Lain Soykaf
eb6be30602 Linting 2023-11-30 10:05:00 +04:00
Lain Soykaf
30084b7332 Add changelog. 2023-11-30 09:55:04 +04:00
Lain Soykaf
265d8749b1 Gitlab CI: Make it work for a local runner 2023-11-30 09:40:29 +04:00
Lain Soykaf
15a8acbd6c MRF, Docs.Generator: Ensure code is loaded before checking it 2023-11-30 09:40:17 +04:00
HJ
6a6a631c81 Merge branch 'neetzsche/add_url_to_scrobbles' into 'develop'
Add optional URL value for scrobbles

See merge request pleroma/pleroma!3977
2023-11-29 15:59:19 +00:00
lain
bc7fcc2dba Merge branch 'vips' into 'develop'
Docs: Remove rust references

See merge request pleroma/pleroma!3983
2023-11-29 15:43:09 +00:00
Lain Soykaf
cd6adef471 Add changelog 2023-11-29 19:42:40 +04:00
NEETzsche
e216603477 Change url to externalLink as requested by hj here: https://shigusegubu.club/notice/AcIjZjackKAt6e522a 2023-11-29 07:55:44 -07:00
lain
1955b3c557 Merge branch 'vips' into 'develop'
Replace ImageMagick with Vips

See merge request pleroma/pleroma!3771
2023-11-29 06:03:37 +00:00
lain
35774d44b2 Merge branch 'generate-unset-user-keys-migration' into 'develop'
Fix GenerateUnsetUserKeys migration

See merge request pleroma/pleroma!3976
2023-11-28 12:34:32 +00:00
Lain Soykaf
10525ac7f8 Docs: Remove rust references 2023-11-28 15:21:34 +04:00
Lain Soykaf
ccc2adee41 Linting 2023-11-28 13:13:43 +04:00
Lain Soykaf
da26964d2b Changelog: Adjust blurhash change 2023-11-28 12:39:22 +04:00
Lain Soykaf
b3214be32f AnayzeMetadata: Fix error case that would never match 2023-11-28 12:33:54 +04:00
Lain Soykaf
03db495e1d AnalyzeMetadata: Switch to rinpatch_blurhash 2023-11-28 12:23:41 +04:00
lain
ef7bda61ad Merge branch 'promex' into 'develop'
Switch to PromEx for prometheus metrics

See merge request pleroma/pleroma!3967
2023-11-28 07:50:16 +00:00
lain
2b839197a9 Merge branch 'strip-fix' into 'develop'
Strip fix

See merge request pleroma/pleroma!3981
2023-11-27 15:30:13 +00:00
Lain Soykaf
4ef56c5b65 ActivityPub.Utils: Only treat object ids as valid while stripping 2023-11-27 18:44:11 +04:00
HJ
9c57f17af3 Merge branch 'frontends-docs' into 'develop'
Front-ends management docs

See merge request pleroma/pleroma!3974
2023-11-27 14:00:12 +00:00
NEETzsche
27df2c0ce6 Fix #strip_report_status_data 2023-11-27 17:56:43 +04:00
Lain Soykaf
5a3b81d92e ActivityPub.UtilsTest: Add failing test for strip_report_status_data 2023-11-27 17:55:16 +04:00
Mark Felder
299c548b12 Prevent a blurhash failure from breaking all metadata collection 2023-11-23 16:15:53 -05:00
NEETzsche
510a7b64f1 Add optional URL value for scrobbles 2023-11-23 04:51:51 -07:00
HJ
4ebfc011fc Merge branch 'favicon' into 'develop'
Make favicon configurable, embed favicon and manifest in server-generated meta

See merge request pleroma/pleroma!3963
2023-11-19 08:52:37 +00:00
Henry Jameson
6513f54f73 changelog 2023-11-19 10:32:39 +02:00
Henry Jameson
2112e8b5e4 update, add images 2023-11-19 10:30:49 +02:00
feld
906b121a10 Merge branch 'develop' into 'vips'
# Conflicts:
#   mix.exs
2023-11-17 16:50:36 +00:00
Mark Felder
be39146ecc Update docs to include dependencies on rust and vips where appropriate 2023-11-17 11:44:33 -05:00
Mark Felder
cf5ef1d75f Vix has pre-built NIFs for the following triples:
aarch64-apple-darwin
aarch64-linux-gnu
aarch64-linux-musl
armv7l-linux-gnueabihf
x86_64-apple-darwin
x86_64-linux-gnu
x86_64-linux-musl
aarch64-apple-darwin
aarch64-linux-gnu
aarch64-linux-musl
armv7l-linux-gnueabihf
x86_64-apple-darwin
x86_64-linux-gnu
x86_64-linux-musl
2023-11-17 11:37:51 -05:00
Mark Felder
8208777b06 Rust is required for blurhash 2023-11-17 11:32:56 -05:00
Mark Felder
7988c62f6d Update changelogs 2023-11-17 11:21:46 -05:00
Mark Felder
9511212e32 Fetch the library from the Pleroma repository 2023-11-17 11:18:42 -05:00
Mark Felder
88cc7e6a04 Resize images to 100 pixels before hashing 2023-11-17 11:06:31 -05:00
Mark Felder
0c6a54b37c Upload.Filter.AnalyzeMetadata: Blurhash with a Rust NIF, and use Vix to retrieve image metadata 2023-11-17 10:26:00 -05:00
Haelwenn (lanodan) Monnier
06c58bce00 scrubbers/default: Add more formatting elements from HTML4 / GoToSocial
Added: acronym, bdo, big, cite, dfn, ins, kbd, q, samp, s, tt, var, wbr
2023-11-16 18:27:32 +01:00
Haelwenn (lanodan) Monnier
8ac7cc98c1 MastoAPI AccountView: Change last_status_at to be a date
Changed in Mastodon 3.1.0 with: https://github.com/tootsuite/mastodon/pull/12966
2023-11-16 15:52:01 +01:00
Haelwenn
ca1b18ba2d Merge branch 'federation_status-access' into 'develop'
router: Make /federation_status publicly available

See merge request pleroma/pleroma!3937
2023-11-15 08:20:37 +00:00
Haelwenn
50c896169c Merge branch 'cflags' into 'develop'
Make eblurhash and elixir-captcha use system CFLAGS

See merge request pleroma/pleroma!3943
2023-11-15 08:19:29 +00:00
Haelwenn (lanodan) Monnier
2a58596aef Fix tests for Add support for configuring a favicon and embed PWA manifest in server-generated-meta 2023-11-15 09:12:25 +01:00
Haelwenn (lanodan) Monnier
5d3e145dc4 RedirectController: Unify server-generated-meta insertion code 2023-11-14 11:06:36 +01:00
Henry Jameson
a5aa8ea796 Add support for configuring a favicon and embed PWA manifest in server-generated-meta 2023-11-14 11:05:23 +01:00
Haelwenn
6d708664b5 Merge branch 'docs/max-elixir-erlang' into 'develop'
docs: Put a max version on erlang and elixir

Closes #3194

See merge request pleroma/pleroma!3945
2023-11-14 09:49:49 +00:00
Haelwenn (lanodan) Monnier
66f5ae0c5a router: Make /federation_status publicly available 2023-11-14 10:48:30 +01:00
Haelwenn (lanodan) Monnier
19519d6c96 docs: clang is also supported 2023-11-14 10:47:34 +01:00
Haelwenn (lanodan) Monnier
3831d31009 docs: Put a max version on erlang and elixir
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3194
2023-11-14 10:47:33 +01:00
Haelwenn (lanodan) Monnier
4472ab1fe9 changelog.d/system-cflags.fix: New entry 2023-11-14 10:45:00 +01:00
Haelwenn (lanodan) Monnier
5f85067a95 mix: Bump elixir-captcha for system-CFLAGS 2023-11-14 10:44:59 +01:00
Haelwenn (lanodan) Monnier
2b6ae571bb mix: cherry-pick eblurhash latest git for system-CFLAGS 2023-11-14 10:44:57 +01:00
Haelwenn
bf2d6abaf2 Merge branch 'healthcheck-disabled-error' into 'develop'
TwitterAPI: Return proper error when healthcheck is disabled

See merge request pleroma/pleroma!3953
2023-11-14 09:41:26 +00:00
Mark Felder
ce42dac331 Change mediaproxy previews to use vips to generate thumbnails instead of ImageMagick 2023-11-13 15:41:39 -05:00
Mark Felder
a4b6e5613f Revert "Add Pleroma.Upload.Filter.HeifToJpeg based on vips"
This reverts commit 31d4448ee6.

This functionality is not reliably working with vips/vix due to codec patent junk
2023-11-13 15:41:39 -05:00
Mark Felder
577ade75cf Override elixir_make version 2023-11-13 15:41:39 -05:00
Mark Felder
481b6ac0d5 Add Pleroma.Upload.Filter.HeifToJpeg based on vips 2023-11-13 15:41:39 -05:00
Mark Felder
13baba90f6 Replace ImageMagick with Vips for Media Preview Proxy 2023-11-13 15:41:39 -05:00
Mark Felder
1db10744f7 Use the "change" type 2023-11-13 15:35:00 -05:00
Mark Felder
66cb3294ed Switch to PromEx for prometheus metrics
Recommending use of the separate HTTP server for exposing the metrics
and securing it externally on your firewall or reverse proxy. It will
listen on port 4021 by default.
2023-11-13 15:34:59 -05:00
marcin mikołajczak
fe776d8b33 Fix GenerateUnsetUserKeys migration
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-11-13 14:18:22 +01:00
lain
752bc168f6 Merge branch 'quotes-count' into 'develop'
Count and display post quotes

See merge request pleroma/pleroma!3956
2023-11-12 13:38:09 +00:00
marcin mikołajczak
9a063deacc Count and display post quotes 2023-11-12 13:38:08 +00:00
lain
5f19fbc5a9 Merge branch 'phoenix1.7' into 'develop'
Update to Phoenix 1.7

See merge request pleroma/pleroma!3900
2023-11-12 13:34:27 +00:00
lain
e902c7168d Merge branch 'meilisearch' into 'develop'
Different search backends, in particular meilisearch as an additional one

See merge request pleroma/pleroma!3529
2023-11-12 13:29:27 +00:00
Lain Soykaf
3d62c71edf Credo fixes. 2023-11-12 17:13:27 +04:00
Lain Soykaf
59018d73c3 B Meilisearch: Update to current API responses. 2023-11-12 16:43:50 +04:00
Lain Soykaf
a1a25029da B DatabaseSearch: Fix local-only search. 2023-11-12 16:19:54 +04:00
Lain Soykaf
5996bef7cd Fix most tests that call SearchIndexWorker. 2023-11-12 15:54:16 +04:00
Lain Soykaf
5208bd8a95 Add changelog. 2023-11-12 15:00:51 +04:00
Lain Soykaf
d3f8950588 B MeiliSearch, SearchIndexingWorker: Use Config.Getting, make tests async. 2023-11-12 14:49:50 +04:00
Lain Soykaf
c1402af293 B Getting: Add default implementation, delegate, prepare test support. 2023-11-12 14:49:15 +04:00
Lain Soykaf
0c5cc51983 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-meilisearch 2023-11-12 13:53:18 +04:00
Henry Jameson
637926dcbb Initial draft on frontends management 2023-11-10 13:58:25 +02:00
Marcin Mikołajczak
1e9333a9aa Merge remote-tracking branch 'origin/develop' into instance-v2 2023-11-08 20:46:57 +01:00
feld
a51f3937ee Merge branch 'benchee' into 'develop'
Ensure benchee doesn't run unless we are executing benchmarks

See merge request pleroma/pleroma!3972
2023-11-08 18:27:08 +00:00
Mark Felder
e23672d82f Ensure benchee doesn't run unless we are executing benchmarks 2023-11-08 12:44:57 -05:00
Mark Felder
ef6d3dddd4 Fix changelogd grep syntax error 2023-11-08 12:28:23 -05:00
feld
aef1a88dc6 Merge branch 'changelogd-fix' into 'develop'
Fix changelogd grep syntax error

See merge request pleroma/pleroma!3973
2023-11-08 17:28:14 +00:00
Mark Felder
addc5408ff Fix changelogd grep syntax error 2023-11-08 12:27:46 -05:00
feld
17524865e5 Merge branch 'update_mr_template' into 'develop'
Update MR template to include the type 'change'

See merge request pleroma/pleroma!3971
2023-11-08 14:39:00 +00:00
Mark Felder
1810b2f477 Update MR template to include the type 'change' 2023-11-08 09:37:08 -05:00
Mark Felder
0ab853cab8 Merge branch 'develop' into phoenix1.7 2023-11-08 09:18:08 -05:00
feld
0f56304f09 Merge branch 'bare_uri_test' into 'develop'
Activate test for object validator that has not been running

See merge request pleroma/pleroma!3968
2023-11-08 14:13:37 +00:00
feld
cfc01a660a Merge branch 'changelogd-change' into 'develop'
changelogd: Support a type called "change"

See merge request pleroma/pleroma!3970
2023-11-08 14:12:33 +00:00
Mark Felder
e1bc95ae6e Support a type called "change" 2023-11-08 09:11:41 -05:00
Haelwenn (lanodan) Monnier
76c070fe86 ObjectValidators.BareUriTest: Replace calls of SafeText to BareUri 2023-11-08 02:17:50 +01:00
Mark Felder
9fa6531109 Phoenix is no longer required in extra_applications 2023-11-07 16:14:05 -05:00
Mark Felder
a0e08c6ec2 Merge branch 'develop' into phoenix1.7 2023-11-07 16:05:04 -05:00
Mark Felder
8076deeeb4 Activate test for object validator that has not been running 2023-11-07 16:00:13 -05:00
feld
11c520607f Merge branch 'mailer-queue' into 'develop'
Fix digest email processing, consolidate Oban queues

See merge request pleroma/pleroma!3966
2023-11-07 20:45:48 +00:00
Mark Felder
bf426c53b4 Fix digest email processing, consolidate Oban queues
The email related jobs can all share a single Oban queue
2023-11-07 15:14:36 -05:00
marcin mikołajczak
c62696c8e7 Support /authorize-interaction route used by Mastodon
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-11-02 13:47:23 +01:00
marcin mikołajczak
6b9a347353 update changelog
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-11-02 13:31:59 +01:00
marcin mikołajczak
50e7706b26 Verify link ownership with rel="me"
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-11-02 13:30:46 +01:00
tusooa
4c5b45ed73 Merge branch 'mergeback/2.6.0' into 'develop'
mergeback: 2.6.0

Closes #3135

See merge request pleroma/pleroma!3964
2023-11-01 03:19:05 +00:00
tusooa
aaf53d9d77
Bump package version for mergeback 2023-10-31 20:49:31 -04:00
tusooa
6f654d534a Merge branch 'release/2.6.0' into 'stable'
Release/2.6.0

See merge request pleroma/pleroma!3924
2023-11-01 00:43:35 +00:00
tusooa
ad45b06b3f Merge branch 'stable' into 'release/2.6.0'
# Conflicts:
#   .gitlab-ci.yml
#   lib/pleroma/web/common_api/utils.ex
#   lib/pleroma/web/xml.ex
#   mix.exs
#   test/pleroma/web/activity_pub/transmogrifier/emoji_react_handling_test.exs
#   test/pleroma/web/common_api/utils_test.exs
#   test/pleroma/web/mastodon_api/update_credentials_test.exs
#   test/pleroma/web/xml_test.exs
2023-10-31 01:07:43 +00:00
tusooa
ab894d98f4
Bundle 2.6.0 frontend 2023-10-29 12:59:03 -04:00
marcin mikołajczak
e5bd1ee801 Add entry to @context, tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-29 00:02:17 +02:00
marcin mikołajczak
93370b870a Expose nonAnonymous field from Smithereen polls
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-28 23:58:39 +02:00
marcin mikołajczak
b6a9d87f16 Display reposted replies with exclude_replies: true
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-28 00:10:13 +02:00
marcin mikołajczak
c6cedbb810 InstanceV2: skip auth
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-28 00:07:18 +02:00
marcin mikołajczak
6b8c5e12df Add contact account to InstanceView
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-26 23:32:08 +02:00
tusooa
6a13c2d180
Add collect-changelog script 2023-10-25 20:45:23 -04:00
tusooa
a2a69709b5
Bump version to 2.6.0 2023-10-24 19:57:31 -04:00
marcin mikołajczak
c03852fbc7 update tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-25 00:38:52 +02:00
marcin mikołajczak
5ff3783d01 Use correct domain for fqn and InstanceView
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-25 00:38:10 +02:00
Haelwenn
e3ea311cd5 Merge branch 'tusooa/2810-punycode-mention' into 'develop'
Fix mentioning punycode domains when using Markdown

Closes #2810

See merge request pleroma/pleroma!3925
2023-10-18 01:20:00 +00:00
tusooa
df0b56576a
Fix other quotation mark conversion tests 2023-10-16 21:35:37 -04:00
tusooa
b748efe66a
Fix mentioning punycode domains when using Markdown 2023-10-16 21:35:25 -04:00
tusooa
340c881296 Merge branch 'tusooa/3018-unified-stream' into 'develop'
Unified streaming endpoint

Closes #3018

See merge request pleroma/pleroma!3864
2023-10-15 21:35:30 +00:00
tusooa
eb33a03d0a
Explain the encode-decode roundtrip 2023-10-15 17:20:26 -04:00
tusooa
3e7d2e29b3
Add changelog 2023-10-15 17:20:26 -04:00
tusooa
840dd01035
Fix duplicated schema names 2023-10-15 17:20:26 -04:00
tusooa
32de0683c4
Fix unsubscribe event type in streaming doc 2023-10-15 17:20:26 -04:00
tusooa
c13f0a8460
Add meta-info and query strings to streaming doc 2023-10-15 17:20:26 -04:00
tusooa
f393a15dd1
Fix some specs about server-sent events in streaming 2023-10-15 17:20:26 -04:00
tusooa
8829dcaee4
Document client-sent events in streaming 2023-10-15 17:20:25 -04:00
tusooa
dcef33f5f0
Document server-sent events of streaming 2023-10-15 17:20:25 -04:00
tusooa
844d1a14e0
Start writing api docs for streaming endpoint 2023-10-15 17:20:25 -04:00
tusooa
314360e5e3
Add test to cover edit streaming 2023-10-15 17:20:25 -04:00
tusooa
26f5caebae
Add test to cover notifications streaming 2023-10-15 17:20:25 -04:00
tusooa
4cf109d3c4
Add test to cover rendering update with user 2023-10-15 17:20:25 -04:00
tusooa
050227f118
Add test to cover error: bad_topic 2023-10-15 17:20:25 -04:00
tusooa
eebc605bc2
Clear up debug statement 2023-10-15 17:20:25 -04:00
tusooa
949c4f01c6
Fix NotificationTest 2023-10-15 17:20:25 -04:00
tusooa
7f12ad6dcc
Fix docs wording 2023-10-15 17:20:25 -04:00
tusooa
9572be1e5f
Add tests for list streams 2023-10-15 17:20:25 -04:00
tusooa
2d43067946
Document the streaming endpoint 2023-10-15 17:20:25 -04:00
tusooa
a348c2e4dd
Use pleroma: instead of pleroma. for ws events 2023-10-15 17:20:25 -04:00
tusooa
7d005e8c93
Return stream attribute in server-sent events 2023-10-15 17:20:23 -04:00
tusooa
21395aa509
Allow authenticating via client-sent events 2023-10-15 17:19:49 -04:00
tusooa
273cda63ad
Allow subscribing to streams 2023-10-15 17:19:49 -04:00
tusooa
2b5636bf12
Allow unified streaming endpoint 2023-10-15 17:19:40 -04:00
tusooa
14b1b9c9b0 Merge branch 'tusooa/quote' into 'develop'
Quoting

See merge request pleroma/pleroma!3921
2023-10-15 20:48:16 +00:00
Haelwenn (lanodan) Monnier
2f6fc6a7ab TwitterAPI: Return proper error when healthcheck is disabled 2023-09-24 23:32:17 +02:00
tusooa
08608afca5
Fix quote_visible attribute 2023-09-13 19:20:33 -04:00
tusooa
a8b2f9205d
Expose quote_id parameter on the api 2023-09-13 19:20:32 -04:00
tusooa
875b46d97d
Do not mention original poster when quoting 2023-09-13 19:20:32 -04:00
tusooa
87353e5ad1
Fix config descriptions for mrf inline quote 2023-09-13 19:20:32 -04:00
tusooa
8596f92654
Fix TransmogrifierTest 2023-09-13 19:20:32 -04:00
tusooa
8b98a98dfb
Make InlineQuotePolicy history aware 2023-09-13 19:20:32 -04:00
tusooa
e349e92a44
Add mrf to force link tag of quoting posts 2023-09-13 19:20:30 -04:00
tusooa
479a6f11db
Keep incoming Link tag 2023-09-13 19:19:44 -04:00
tusooa
e9cd004ba1
Parse object link as quoteUrl 2023-09-13 19:19:42 -04:00
tusooa
163e563733
Allow more flexibility in InlineQuotePolicy 2023-09-13 19:19:05 -04:00
tusooa
762794eed9
Fix CommonAPITest 2023-09-13 19:19:05 -04:00
tusooa
d244c9d298
Add changelog 2023-09-13 19:19:05 -04:00
tusooa
9bcec87aba
Allow local quote and private self-quote 2023-09-13 19:19:05 -04:00
tusooa
b0a7e795e7
Unify logic for normalizing quoteUri 2023-09-13 19:19:05 -04:00
Alex Gleason
f9697e68c2
InlineQuotePolicy: skip objects which already have an .inline-quote span 2023-09-13 19:19:05 -04:00
Alex Gleason
79fca39faf
Actually, don't send _misskey_quote anymore 2023-09-13 19:19:05 -04:00
Alex Gleason
4075eecca0
InlineQuotePolicy: improve the way Markdown quotes are displayed by other software 2023-09-13 19:19:05 -04:00
Alex Gleason
817e308c0d
Handle Fedibird's new quoteUri field 2023-09-13 19:19:05 -04:00
Alex Gleason
3c8319fe9f
Transmogrifier: federate quotes with _misskey_quote field 2023-09-13 19:19:04 -04:00
Alex Gleason
cf8e425883
StatusView: return quote post inside a reblog 2023-09-13 19:19:04 -04:00
Alex Gleason
93e4972b50
Add InlineQuotePolicy as a default MRF 2023-09-13 19:19:04 -04:00
Alex Gleason
bee7e41959
InlineQuotePolicy: don't add line breaks to markdown posts 2023-09-13 19:19:04 -04:00
Alex Gleason
74e0a4555f
StatusView: add quote_visible param 2023-09-13 19:19:04 -04:00
Alex Gleason
6f11f11519
StatusView: fix quote visibility 2023-09-13 19:19:04 -04:00
Alex Gleason
59326247aa
CommonAPI: disallow quoting private posts through the API 2023-09-13 19:19:04 -04:00
Alex Gleason
57ef1d1211
Add InlineQuotePolicy to force quote URLs inline 2023-09-13 19:19:04 -04:00
Alex Gleason
36a5578d2b
Scrubber.Default: allow span.quote-inline for quote post compatibility 2023-09-13 19:19:04 -04:00
Alex Gleason
1f19dd76f6
ActivityDraft: mix format, defensive actor ID 2023-09-13 19:19:04 -04:00
Alex Gleason
54a9897938
ActivityDraft: mention the OP of a quoted post 2023-09-13 19:19:04 -04:00
Alex Gleason
80ab2572a4
Return quote_url through the API, don't render quotes more than 1 level deep 2023-09-13 19:19:04 -04:00
Alex Gleason
db46abce47
@context: add quoteUrl 2023-09-13 19:19:04 -04:00
Alex Gleason
5716f88a1d
InstanceView: add "quote_posting" feature 2023-09-13 19:19:03 -04:00
Alex Gleason
f4ccdfd503
Fix typos 2023-09-13 19:19:03 -04:00
Alex Gleason
9600973917
mix format 2023-09-13 19:19:03 -04:00
Alex Gleason
cbd1760efa
TransmogrifierTest: prepare an outgoing quote post 2023-09-13 19:19:03 -04:00
Alex Gleason
3a8b5d90df
StatusControllerTest: test creating a quote post 2023-09-13 19:19:03 -04:00
Alex Gleason
c20e90e898
BuilderTest: build quote post 2023-09-13 19:19:03 -04:00
Alex Gleason
d4fea8b559
ActivityDraft: allow quoting 2023-09-13 19:19:03 -04:00
Alex Gleason
6ac19c3999
ActivityDraft: create quote posts 2023-09-13 19:19:03 -04:00
Alex Gleason
0d9c443e51
StatusView: render the whole quoted status 2023-09-13 19:19:03 -04:00
Alex Gleason
ce5eb31723
StatusView: show quoted posts through the API, probably 2023-09-13 19:19:03 -04:00
Alex Gleason
cc4badaf60
Transmogrifier: fix quoteUrl here too 2023-09-13 19:19:03 -04:00
Alex Gleason
b022d6635d
Transmogrifier: fetch quoted post 2023-09-13 19:19:03 -04:00
Alex Gleason
795736af16
ObjectValidators: improve quoteUrl compatibility 2023-09-13 19:19:03 -04:00
Alex Gleason
7deda1fa18
Quote post: add fixtures 2023-09-13 19:19:02 -04:00
Alex Gleason
31eb3dc245
ObjectValidators: accept "quoteUrl" field 2023-09-13 19:19:02 -04:00
marcin mikołajczak
a3b17dac0b Rename test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-09-11 00:33:53 +02:00
marcin mikołajczak
c5ed684273 Rename MapOfString to ContentLanguageMap
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-09-07 15:12:15 +02:00
marcin mikołajczak
28ef5ebd3c Update InstanceView.features
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-09-07 15:00:24 +02:00
Haelwenn
f966abe4fb Merge branch 'release/2.5.5' into 'stable'
Release 2.5.5

See merge request pleroma/pleroma!3949
2023-09-03 12:12:44 +00:00
Haelwenn (lanodan) Monnier
385492577d mix: version 2.5.5 2023-09-03 11:19:26 +02:00
Mint
535a5ecad0 CommonAPI: Prevent users from accessing media of other users
commit 1afde067b1 upstream.
2023-09-03 11:19:13 +02:00
Haelwenn
a94cf2ad4f Merge branch 'check-attachment-attribution' into 'develop'
Prevent users from attaching other users' attachments

See merge request pleroma/pleroma!3947
2023-09-03 09:09:27 +00:00
Mint
1afde067b1 CommonAPI: Prevent users from accessing media of other users 2023-09-03 10:41:37 +02:00
Haelwenn
9da4f89b7b Merge branch 'tusooa/lint' into 'develop'
Make lint happy

See merge request pleroma/pleroma!3944
2023-08-31 22:24:30 +00:00
marcin mikołajczak
b52d189fcc Move is_good_locale_code? to object validator
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-31 11:35:09 +02:00
tusooa
3c5ecca377
Skip changelog 2023-08-30 20:37:45 -04:00
tusooa
3d09bc320e
Make lint happy 2023-08-30 20:36:52 -04:00
marcin mikołajczak
c160ef7b6a Remove test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-20 13:00:13 +02:00
marcin mikołajczak
62340b50b5 Move maybe_add_content_map out of Transmogrifier, use code from tusooa's branch for MapOfString
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-19 19:03:48 +02:00
marcin mikołajczak
edc8689d91 Move maybe_add_language to CommonFixes
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-19 15:28:19 +02:00
Haelwenn
1e685c8302 Merge branch 'csp-flash' into 'develop'
allow https: so that flash works across instances without need for media proxy

See merge request pleroma/pleroma!3879
2023-08-16 13:37:49 +00:00
Haelwenn
d838d1990b Apply lanodan's suggestion(s) to 1 file(s) 2023-08-16 13:34:32 +00:00
marcin mikołajczak
47ba7d346f Remove test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 18:10:58 +02:00
marcin mikołajczak
69d53a6238 Rename test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 16:45:26 +02:00
marcin mikołajczak
b430b805c4 Lint
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 16:44:19 +02:00
marcin mikołajczak
366559c5a3 Make status.language == nil for 'und' value
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 14:59:58 +02:00
marcin mikołajczak
79e46ce73f InstanceView: Add common_information function
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 13:57:22 +02:00
marcin mikołajczak
04c8f6b4d1 Add ObjectValidators.LanguageCode type
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 13:44:30 +02:00
Haelwenn
049045cf2a Apply lanodan's suggestion 2023-08-11 11:44:13 +00:00
marcin mikołajczak
9effa24f30 Implement api/v2/instance route
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 00:08:05 +02:00
marcin mikołajczak
4745a41393 Allow to specify post language
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-08-11 00:07:03 +02:00
tusooa
b729a8b140 Merge branch 'fix-dockerfile-perms' into 'develop'
Fix config ownership in dockerfile to pass restriction test

See merge request pleroma/pleroma!3931
2023-08-10 00:42:29 +00:00
Cat pony Black
c298e0165c Fix config ownership in dockerfile to pass restriction test 2023-08-08 19:07:48 +02:00
Haelwenn
4e355b8595 Merge branch 'disable-xml-entities-completely' into 'develop'
Completely disable xml entity resolution

See merge request pleroma/pleroma!3932
2023-08-06 08:27:27 +00:00
mae
48b1e9bdc7 Completely disable xml entity resolution 2023-08-05 14:17:04 +02:00
Haelwenn
17c336de66 Merge branch 'docs/gentoo-otp-intro' into 'develop'
gentoo_otp_en.md: Indicate which install method it covers

See merge request pleroma/pleroma!3928
2023-08-05 11:04:32 +00:00
Haelwenn
d0f7a5c4f5 Merge branch 'mergeback/2.5.4' into 'develop'
Mergeback: 2.5.4

See merge request pleroma/pleroma!3930
2023-08-05 08:13:03 +00:00
Haelwenn
1f4be2b349 Merge branch 'releases/2.5.4' into 'stable'
Release 2.5.4

See merge request pleroma/pleroma!3929
2023-08-05 08:12:25 +00:00
Haelwenn (lanodan) Monnier
4099ddb3dc Mergeback release 2.5.4 2023-08-05 08:58:05 +02:00
Haelwenn (lanodan) Monnier
b631180b38 Release 2.5.4 2023-08-05 08:27:42 +02:00
Mark Felder
cc848b78dc Document and test that XXE processing is disabled
https://vuln.be/post/xxe-in-erlang-and-elixir/
2023-08-05 08:23:04 +02:00
FloatingGhost
77d57c974a Add unit test for external entity loading 2023-08-05 08:23:04 +02:00
Mae
fc10e07ffb Prevent XML parser from loading external entities 2023-08-05 08:23:04 +02:00
Mark Felder
6d48b0f1a9 Document and test that XXE processing is disabled
https://vuln.be/post/xxe-in-erlang-and-elixir/
2023-08-05 08:14:27 +02:00
FloatingGhost
307692cee8 Add unit test for external entity loading 2023-08-05 08:14:27 +02:00
Mae
ca0859b90f Prevent XML parser from loading external entities 2023-08-04 22:35:13 -04:00
Haelwenn (lanodan) Monnier
0e321698d2 gentoo_otp_en.md: Indicate which install method it covers 2023-08-04 17:11:20 +02:00
Haelwenn
ff2f3862ab Merge branch 'release/2.5.3' into 'stable'
Release 2.5.3

See merge request pleroma/pleroma!3926
2023-08-04 09:45:48 +00:00
Haelwenn
1062185ba0 Merge branch 'mergeback/2.5.3' into 'develop'
Mergeback: 2.5.3

Closes #3135

See merge request pleroma/pleroma!3927
2023-08-04 09:38:01 +00:00
Haelwenn (lanodan) Monnier
6a0fd77c48 Release 2.5.53 2023-08-04 09:50:28 +02:00
Haelwenn (lanodan) Monnier
65ef8f19c5 release_runtime_provider_test: chmod config for hardened permissions
Git doesn't manages file permissions precisely enough for us.
2023-08-04 09:50:28 +02:00
Haelwenn (lanodan) Monnier
9f0ad901ed changelog: Entry for config permissions restrictions
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3135
2023-08-04 09:50:28 +02:00
Haelwenn (lanodan) Monnier
69caedc591 instance gen: Reduce permissions of pleroma directories and config files 2023-08-04 09:50:28 +02:00
Haelwenn (lanodan) Monnier
8cc8100120 Config: Restrict permissions of OTP config file 2023-08-04 09:50:28 +02:00
Haelwenn (lanodan) Monnier
57f7453748 Release 2.5.3 2023-08-04 09:49:53 +02:00
Haelwenn (lanodan) Monnier
5ac2b7417d test: Fix warnings 2023-08-04 09:49:53 +02:00
Haelwenn (lanodan) Monnier
c37561214a Force the use of amd64 runners for jobs using ci-base 2023-08-04 09:49:53 +02:00
Haelwenn (lanodan) Monnier
76e408e42d release_runtime_provider_test: chmod config for hardened permissions
Git doesn't manages file permissions precisely enough for us.
2023-08-04 09:49:53 +02:00
Haelwenn (lanodan) Monnier
22df32b3f5 changelog: Entry for config permissions restrictions
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3135
2023-08-04 09:49:53 +02:00
Haelwenn (lanodan) Monnier
bd7381f2f4 instance gen: Reduce permissions of pleroma directories and config files 2023-08-04 09:49:53 +02:00
Haelwenn (lanodan) Monnier
4befb3b1d0 Config: Restrict permissions of OTP config file 2023-08-04 09:49:53 +02:00
Mark Felder
2c79509453 Resolve information disclosure vulnerability through emoji pack archive download endpoint
The pack name has been sanitized so an attacker cannot upload a media
file called pack.json with their own handcrafted list of emoji files as
arbitrary files on the filesystem and then call the emoji pack archive
download endpoint with a pack name crafted to the location of the media
file they uploaded which tricks Pleroma into generating a zip file of
the target files the attacker wants to download.

The attack only works if the Pleroma instance does not have the
AnonymizeFilename upload filter enabled, which is currently the default.

Reported by: graf@poast.org
2023-08-04 08:40:27 +02:00
Mark Felder
18a0c923d0 Resolve information disclosure vulnerability through emoji pack archive download endpoint
The pack name has been sanitized so an attacker cannot upload a media
file called pack.json with their own handcrafted list of emoji files as
arbitrary files on the filesystem and then call the emoji pack archive
download endpoint with a pack name crafted to the location of the media
file they uploaded which tricks Pleroma into generating a zip file of
the target files the attacker wants to download.

The attack only works if the Pleroma instance does not have the
AnonymizeFilename upload filter enabled, which is currently the default.

Reported by: graf@poast.org
2023-08-04 08:39:55 +02:00
Haelwenn
819fccb7d1 Merge branch 'tusooa/3154-attachment-type-check' into 'develop'
Restrict attachments to only uploaded files only

Closes #3154

See merge request pleroma/pleroma!3923
2023-08-03 10:01:32 +00:00
tusooa
b08cbe76f1 Merge branch 'fix/2927-disallow-unauthenticated-access' into 'develop'
/api/v1/statuses/:id/context: filter context activities using Visibility.visible_for_user?/2

See merge request pleroma/pleroma!3801
2023-07-28 15:05:46 +00:00
faried nawaz
11ce81d4af add changelog entry 2023-07-28 18:49:05 +05:00
Faried Nawaz
e5e76ec445 cleaner ecto query to handle restrict_unauthenticated for activities
This fix is for this case:

  config :pleroma, :restrict_unauthenticated,
    activities: %{local: true, remote: true}
2023-07-28 18:45:59 +05:00
faried nawaz
dc4de79d43 status context: perform visibility check on activities around a status
issue #2927
2023-07-28 18:45:59 +05:00
tusooa
ea4225a646
Restrict attachments to only uploaded files only 2023-07-18 18:39:59 -04:00
tusooa
1ab4ab8d38
Extract translatable strings 2023-07-18 18:24:30 -04:00
Haelwenn
93ad16cca0 Merge branch '2023-06-deps-update' into 'develop'
2023-06 deps update + de-override plug

See merge request pleroma/pleroma!3911
2023-07-17 20:37:47 +00:00
Haelwenn
e38207162b Merge branch 'tusooa/2775-emoji-policy' into 'develop'
EmojiPolicy

Closes #2775

See merge request pleroma/pleroma!3842
2023-07-07 16:27:30 +00:00
tusooa
1459d64508
Make regex-to-string descriptor reusable 2023-07-07 07:09:35 -04:00
tusooa
ba3aa4f86d
Fix edge cases 2023-07-07 06:58:32 -04:00
tusooa
0d914e17be
Add changelog 2023-07-07 06:58:32 -04:00
tusooa
d670dbdbd3
Test that unicode emoji reactions are not affected 2023-07-07 06:58:32 -04:00
tusooa
ef8a6c539a
Make EmojiPolicy aware of custom emoji reactions 2023-07-07 06:58:31 -04:00
tusooa
20d193c91d
Improve config examples for EmojiPolicy 2023-07-07 06:58:31 -04:00
tusooa
18a8378beb
Update config cheatsheet 2023-07-07 06:58:31 -04:00
tusooa
f50422c380
Move emoji_policy.ex to the right place 2023-07-07 06:58:31 -04:00
tusooa
7eb8abf7bb
EmojiPolicy: Implement delist 2023-07-07 06:58:31 -04:00
tusooa
80ce6482f6
EmojiPolicy: implement remove by shortcode 2023-07-07 06:58:31 -04:00
tusooa
28ff828caa
Add emoji policy to remove emojis matching certain urls
https://git.pleroma.social/pleroma/pleroma/-/issues/2775
2023-07-07 06:58:22 -04:00
tusooa
7da6a82dbd Merge branch 'deprecate-scrobbles' into 'develop'
Deprecate audio scrobbling

See merge request pleroma/pleroma!3919
2023-07-04 02:46:10 +00:00
Haelwenn
624a5ccb2e Merge branch 'hotfix/docs-broken-links' into 'develop'
docs: Fix broken links

See merge request pleroma/pleroma!3920
2023-07-04 02:26:19 +00:00
Haelwenn (lanodan) Monnier
0c3709173f docs: Fix broken links 2023-07-04 04:23:48 +02:00
Haelwenn
53f4d6f238 Merge branch 'fix/pipeline-triggers' into 'develop'
CI: Fix pipeline tokens & exit status

See merge request pleroma/pleroma!3918
2023-07-04 02:04:24 +00:00
Haelwenn (lanodan) Monnier
3d79ceb23a Deprecate audio scrobbling 2023-07-04 03:40:11 +02:00
Haelwenn (lanodan) Monnier
8c3363a5e7 CI: Use CI_JOB_TOKEN for cross-repo pipeline triggers 2023-07-04 03:25:37 +02:00
Haelwenn (lanodan) Monnier
10249d1e42 CI: Let curl return non-0 on http failure code
Otherwise it silently fails
2023-07-04 03:24:13 +02:00
Haelwenn
6fbbf80800 Merge branch 'gentoo_otp' into 'develop'
Packaged installation guide for gentoo

See merge request pleroma/pleroma!3906
2023-07-03 21:04:23 +00:00
Haelwenn
2b9cd25cf4 Merge branch 'tusooa/media-altdomain' into 'develop'
Add instructions to serve media on another domain

See merge request pleroma/pleroma!3892
2023-07-02 21:30:16 +00:00
Haelwenn
0262916978 Merge branch 'testfix/system-config-use' into 'develop'
release_runtime_provider_test: Explicitely use non-existant config file

See merge request pleroma/pleroma!3910
2023-07-02 21:28:15 +00:00
Haelwenn
a31a4c522f Merge branch 'tusooa/3131-handle-report-from-deactivated-user' into 'develop'
Fix handling report from a deactivated user

Closes #3131

See merge request pleroma/pleroma!3915
2023-07-02 21:27:15 +00:00
Haelwenn
379590d438 Merge branch 'tusooa/3142-featured-collection-shouldnt-break-user-fetch' into 'develop'
Fix user fetch completely broken if featured collection is not in a supported form

See merge request pleroma/pleroma!3914
2023-07-02 21:25:45 +00:00
Haelwenn
8cf231c0d1 Merge branch 'tusooa/3151-amd64-runner' into 'develop'
Force the use of amd64 runners for jobs using ci-base

Closes #3151

See merge request pleroma/pleroma!3913
2023-07-02 20:20:49 +00:00
tusooa
6e4de2383f
Fix handling report from a deactivated user 2023-07-02 11:15:34 -04:00
tusooa
a1621839cc
Fix user fetch completely broken if featured collection is not in a supported form 2023-07-02 11:03:09 -04:00
tusooa
63b9f76782
Force the use of amd64 runners for jobs using ci-base 2023-07-01 23:25:04 -04:00
tusooa
48e490cd58 Merge branch 'bugfix/full-revert-media-host-validation' into 'develop'
Merge Revert "Merge branch 'validate-host' into 'develop'"

Closes #3136

See merge request pleroma/pleroma!3909
2023-07-01 21:54:18 +00:00
Haelwenn (lanodan) Monnier
bf2b4b9400 README.md: Update packaging state (GURU, AUR) 2023-06-27 21:13:02 +02:00
Haelwenn
043a00991d Merge branch 'instance-nodeinfo-metadata' into 'develop'
instances: Store some metadata based on NodeInfo

See merge request pleroma/pleroma!3853
2023-06-27 18:58:04 +00:00
Haelwenn
ae0ca49451 Merge branch 'tusooa/3119-bio-update' into 'develop'
Show more informative errors when profile exceeds char limits

Closes #3119

See merge request pleroma/pleroma!3886
2023-06-27 18:49:43 +00:00
Haelwenn
41f2ee69a8 Merge branch 'from/upstream-develop/tusooa/backup-status' into 'develop'
Detail backup states

Closes #3024

See merge request pleroma/pleroma!3809
2023-06-27 12:08:11 +00:00
Haelwenn (lanodan) Monnier
d7e049d5e8 router: Fix usage of globs
warning: doing a prefix match with globs is deprecated, invalid segment "pleroma*path".
    You can either replace by a single segment match:
        /foo/bar-:var
    Or by mixing single segment match with globs:
        /foo/bar-:var/*rest
2023-06-27 10:42:10 +02:00
Haelwenn (lanodan) Monnier
3a67b8f287 endpoint: Use custom Multipart module for dynamic configuration 2023-06-27 10:41:25 +02:00
Haelwenn (lanodan) Monnier
9e69adf76f mix: Remove override on plug 2023-06-27 02:38:31 +02:00
Haelwenn (lanodan) Monnier
aa4c4ab2a0 mix: 2023-06 deps update
this fixes compatibility with Erlang OTP 26

Related: https://git.pleroma.social/pleroma/pleroma/-/issues/2913
2023-06-27 02:38:31 +02:00
Haelwenn (lanodan) Monnier
8bc51288be release_runtime_provider_test: Explicitely use non-existant config file 2023-06-27 00:20:29 +02:00
Haelwenn
4e26fbda08 Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3871
2023-06-22 19:40:18 +00:00
Haelwenn (lanodan) Monnier
dd9f8150fc Merge Revert "Merge branch 'validate-host' into 'develop'"
This reverts commit d998a114e2, reversing
changes made to da6b4003ac.
2023-06-22 21:28:25 +02:00
Haelwenn
4367579949 Merge branch 'fix/bypass-authorized-fetch-mode-json' into 'develop'
Prevent using a .json format to bypass authorized fetch mode

See merge request pleroma/pleroma!3908
2023-06-22 10:35:56 +00:00
weblate-extractor
8bf8906045 Extract translatable strings 2023-06-22 06:09:47 +00:00
Sean King
994bfc4c09
Add changelog entry 2023-06-21 23:13:16 -06:00
Sean King
a5a354a36e
Prevent bypassing authorized fetch mode with a json file 2023-06-21 23:10:56 -06:00
tusooa
8fa435f370 Add "potentially outdated" notice in non-English versions 2023-06-14 21:48:10 +00:00
Haelwenn (lanodan) Monnier
937fa36ec4 changelog.d/gentoo_otp.skip: Doc-only MR 2023-06-13 16:05:37 +02:00
Haelwenn (lanodan) Monnier
eddfd41c1f gentoo_en: Reference packaged installation 2023-06-13 16:05:37 +02:00
Haelwenn (lanodan) Monnier
fb19f0d844 gentoo_otp_en: Add packaged installation documentation 2023-06-13 16:05:37 +02:00
Haelwenn (lanodan) Monnier
4392fff212 otp_vs_from_source*: Acknowledge distro packages 2023-06-13 16:05:37 +02:00
Haelwenn (lanodan) Monnier
d5a7079f42 media_graphics_packages.md: Fix markdown syntax 2023-06-13 15:44:29 +02:00
lain
589301ce06 Merge branch 'no_new_privs' into 'develop'
Add no_new_privs to OpenRC service files

See merge request pleroma/pleroma!3905
2023-06-13 13:34:21 +00:00
Haelwenn (lanodan) Monnier
a663b73634 Add no_new_privs to OpenRC service files 2023-06-13 12:47:02 +02:00
lain
fdb5bec431 Merge branch 'unused_indexes' into 'develop'
Remove unused indexes

See merge request pleroma/pleroma!3874
2023-06-11 19:48:23 +00:00
lain
d65a8bcd2d Merge branch 'fix-otp-documentation' into 'develop'
fix OTP install documentation

See merge request pleroma/pleroma!3869
2023-06-11 16:45:53 +00:00
lain
4e6ea7cc91 Merge branch 'tusooa/3054-banned-delete' into 'develop'
Fix deleting banned users' statuses

See merge request pleroma/pleroma!3889
2023-06-11 13:17:12 +00:00
lain
d93b47cf2c Merge branch 'pleroma-double_mentions' into 'develop'
ForceMentionsInContent: fix double mentions for Mastodon/Misskey posts

See merge request pleroma/pleroma!3903
2023-06-11 13:04:59 +00:00
Lain Soykaf
6611c6ce4e B ForceMentionsInContent: Fix test, refactor. 2023-06-11 16:45:31 +04:00
Lain Soykaf
55dd8ef1c7 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-double_mentions 2023-06-11 16:31:20 +04:00
Lain Soykaf
22878cf84a B Migrations: Don't remove activity_visibility_index for now. 2023-06-11 16:22:16 +04:00
Lain Soykaf
10dfa107d5 Update changelog 2023-06-11 16:22:03 +04:00
Lain Soykaf
175ee9e6fe Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into unused_indexes 2023-06-11 16:20:30 +04:00
lain
16313af7eb Merge branch 'fix/metadata-tags' into 'develop'
static frontend: fix meta tags

See merge request pleroma/pleroma!3885
2023-06-11 11:57:16 +00:00
lain
1f4618d64b Merge branch 'cleanup/ostatus-user-upgrade' into 'develop'
Cleanup OStatus-era user upgrades and ap_enabled indicator

See merge request pleroma/pleroma!3880
2023-06-11 11:13:57 +00:00
feld
75900f21f0 Merge branch 'revert-mediaproxy-host-validation' into 'develop'
Revert MediaProxy Host header validation

See merge request pleroma/pleroma!3902
2023-06-11 11:10:51 +00:00
lain
1db29f734f Merge branch 'fep-fffd-url' into 'develop'
CommonFields: Use BareUri for :url

Closes #3121

See merge request pleroma/pleroma!3884
2023-06-11 11:02:39 +00:00
lain
b762a7503c Merge branch 'distro-docs-elixir-1.11' into 'develop'
installation/debian_based_*: Elixir 1.11 means Debian 12+ and Ubuntu 22.04+

See merge request pleroma/pleroma!3898
2023-06-11 10:42:22 +00:00
Mark Felder
1ca1b4b32f changelog.d 2023-06-07 09:25:57 -04:00
Mark Felder
fadcd7f1a9 Revert MediaProxy Host header validation
Something is going wrong here even though the tests are correct.
2023-06-07 09:19:22 -04:00
lain
43458cb7a1 Merge branch 'preload-escaping' into 'develop'
B Preload: Make sure that the preloaded json is html safe

See merge request pleroma/pleroma!3901
2023-06-06 13:31:08 +00:00
Mark Felder
63ef1dcedc Phoenix.Router.routes/1 is the public function we are meant to be using here 2023-06-03 14:17:49 -04:00
Mark Felder
c665d53295 Update to Phoenix 1.7 2023-06-03 14:06:28 -04:00
Mark Felder
bcd7ccac11 Support a type called "change" 2023-06-03 14:06:28 -04:00
feld
86b38dd14b Merge branch 'develop' into 'phoenix1.7'
# Conflicts:
#   mix.exs
2023-06-02 15:41:40 +00:00
Mark Felder
2e45be2653 Add :phoenix to extra_applications to suppress a warning
Related to use of Phoenix.Flash.get/2
2023-06-02 11:34:04 -04:00
Lain Soykaf
40d40d67a3 Add changelog. 2023-06-02 17:09:58 +04:00
Lain Soykaf
cbc5b8cebd B Preload: Make sure that the preloaded json is html safe 2023-06-02 17:03:21 +04:00
Haelwenn
e8d3525665 Merge branch 'bump-gettext' into 'develop'
mix: bump gettext to 0.22

See merge request pleroma/pleroma!3831
2023-06-02 01:38:41 +00:00
Haelwenn (lanodan) Monnier
313e68c180 mix: bump gettext to ~0.20
Includes https://github.com/elixir-gettext/gettext/pull/304 in 0.20.0+
Includes https://github.com/elixir-gettext/expo/issues/91 in 0.22+ via expo 0.2.0+
2023-06-02 03:06:32 +02:00
Haelwenn
e2a63dadd1 Merge branch 'test_improvement' into 'develop'
Use Phoenix.ConnTest.redirected_to/2

See merge request pleroma/pleroma!3899
2023-06-01 09:40:25 +00:00
Sean King
c9cb90ff4f
Media proxy base URL doesn't need /proxy 2023-05-31 17:49:06 -06:00
Mark Felder
f0e5f0e837 Fix compile warning
warning: doing a prefix match with globs is deprecated, invalid segment "pleroma*path"
2023-05-31 22:23:36 +00:00
Mark Felder
2b8bbb288c Phoenix.Socket.Transport.force_ssl/4 no longer exists 2023-05-31 22:11:17 +00:00
Mark Felder
d9f031c9da Bump minimum Elixir to 1.12 2023-05-31 21:12:13 +00:00
Mark Felder
ba988a9abc Fix test warnings
warning: the URI path used in plug tests must start with "/"
2023-05-31 16:30:31 -04:00
Mark Felder
62322f71e2 Clean up Plug.Parsers.MULTIPART deprecation warnings
There is no need to the length setting to :multipart. The length setting is global for all of the parsers.
2023-05-31 16:22:40 -04:00
Mark Felder
ffee478ed0 Move websocket config for Shoutbox to the Endpoint
This is the modern way of configuring it
2023-05-31 15:30:58 -04:00
Mark Felder
4dc2d4bf7b Remove locked version of plug
Required for Phoenix 1.7 websocket changes
2023-05-31 15:30:31 -04:00
Sean King
a2bbd7c9da
Fix base media and proxy URL in instructions to serve media on another domain 2023-05-31 12:22:13 -06:00
Mark Felder
a7e7db4a29 Phoenix.Endpoint.Cowboy2Handler -> Plug.Cowboy.Handler 2023-05-31 13:48:16 -04:00
Mark Felder
f622f82c0e No user facing changes 2023-05-31 13:38:46 -04:00
Mark Felder
e3110cb34e Fix deprecated calls to get_flash/2 2023-05-31 13:36:21 -04:00
Mark Felder
6e1ea2eafc Remove unnecessary compilers as of Phoenix 1.7 2023-05-31 13:36:07 -04:00
Mark Felder
bed44f9f62 Update to Phoenix 1.7
Chase the other deps to match versions you get from a current "mix phx.new" project creation
2023-05-31 13:10:18 -04:00
Mark Felder
46c799f528 Use Phoenix.ConnTest.redirected_to/2 2023-05-31 09:54:37 -04:00
Haelwenn (lanodan) Monnier
737e45c102 installation/debian_based_jp: Elixir 1.11 means Debian 12+ and Ubuntu 22.04+
I checked for what each part of the debian&ubuntu sentences meant with the
help of Jisho.org, should be safe but it did make me notice that this guide
hasn't been updated in years
2023-05-31 08:32:58 +02:00
Haelwenn (lanodan) Monnier
8336519f30 installation/debian_based_en: Elixir 1.11 means Debian 12+ and Ubuntu 22.04+ 2023-05-31 08:32:58 +02:00
Haelwenn
d998a114e2 Merge branch 'validate-host' into 'develop'
Validate Host header for MediaProxy and Uploads

See merge request pleroma/pleroma!3896
2023-05-31 00:50:01 +00:00
Mark Felder
b3c3bd99c3 Switch from serving a 400 to a 302 2023-05-30 16:56:09 -04:00
lain
da6b4003ac Merge branch 'only_media_filter' into 'develop'
Add OnlyMedia Upload Filter

See merge request pleroma/pleroma!3897
2023-05-30 08:04:23 +00:00
Mark Felder
50a20f3bbd Esacpe the asterisks in Markdown 2023-05-29 15:53:16 -04:00
Mark Felder
9caa0b0be1 Add OnlyMedia Upload Filter to simplify restricting uploads to audio, image, and video types 2023-05-29 15:49:04 -04:00
Mark Felder
da7394f33b Fix unused assignment 2023-05-29 15:09:31 -04:00
Mark Felder
43bb2f39db Remove unwanted parameter 2023-05-29 15:05:37 -04:00
Mark Felder
84974efe4c Host header validation is now required for MediaProxy and Uploads 2023-05-29 14:17:27 -04:00
Mark Felder
a60dd0d92d Validate Host header matches expected value before allowing access to Uploads 2023-05-29 14:16:03 -04:00
Mark Felder
843fcca5b4 Validate Host header matches expected value before allowing access to MediaProxy 2023-05-29 13:59:51 -04:00
Mark Felder
506a1c98e7 ConnCase: Make sure the host we use in tests is the actual Endpoint host 2023-05-29 13:55:48 -04:00
faried nawaz
4c91c0d1ba
oops, forgot the test cases 2023-05-29 02:52:50 +05:00
faried nawaz
8b390d27dc
twitter card: handle case where image has no alt text 2023-05-29 02:52:49 +05:00
faried nawaz
a1af122499
changelog entry 2023-05-29 02:52:49 +05:00
faried nawaz
52368e6702
fix meta tag for twitter cards and image attachments
The name of the tag should be twitter:image, not twitter:player.

Also, add twitter:image:alt meta tags.
2023-05-29 02:52:49 +05:00
faried nawaz
b6b7de2010
add url to Metadata.build_tags call
If static_fe is enabled, going to https://pleroma/notice/some-id
results in

<meta content="https://pleroma/users/someuser" property="og:url">

With this fix, it is

<meta content="https://pleroma/notice/some-id" property="og:url">

Additionally, Pleroma.Web.Metadata.Providers.OpenGraph now
generates meta tags for attachments in the post.
2023-05-29 02:52:41 +05:00
tusooa
e92eb5f482 Add instructions to other distro's guides 2023-05-27 00:57:22 +00:00
Haelwenn
31ec5cd35e Merge branch 'mergeback/2.5.2' into 'develop'
Mergeback: 2.5.2

Closes #3030, #3062, and #3045

See merge request pleroma/pleroma!3893
2023-05-26 22:16:18 +00:00
Haelwenn (lanodan) Monnier
869f0d24a6 Merge branch 'release/2.5.2' into mergeback/2.5.2 2023-05-26 23:47:50 +02:00
tusooa
408ea697aa
Add changelog 2023-05-26 17:28:41 -04:00
tusooa
85902ad1ae
Recommend users to serve media on another domain in guide 2023-05-26 17:27:35 -04:00
tusooa
f970091c6a
Add instructions to serve media on another domain 2023-05-26 17:17:13 -04:00
Haelwenn
2d193861db Merge branch 'release/2.5.2' into 'stable'
Security release 2.5.2

See merge request pleroma/pleroma!3863
2023-05-26 19:35:31 +00:00
Haelwenn
cd9d6a12ab Merge branch 'issue/3126' into 'develop'
Filter OEmbed HTML tags

See merge request pleroma/pleroma!3891
2023-05-26 18:26:40 +00:00
Haelwenn (lanodan) Monnier
7618e562b3 Version 2.5.2 2023-05-26 19:57:00 +02:00
Mark Felder
4505bc1e58 Filter OEmbed HTML tags 2023-05-26 19:56:36 +02:00
Mark Felder
0d68804aa7 Filter OEmbed HTML tags 2023-05-26 19:54:24 +02:00
tusooa
d0c2e0830b Enforce unauth restrictions for public streaming endpoints 2023-05-26 19:24:08 +02:00
Haelwenn
b36263e5ff Merge branch 'issue/3126' into 'develop'
MediaProxyController: Apply CSP sandbox

See merge request pleroma/pleroma!3890
2023-05-26 19:24:08 +02:00
Haelwenn
4339230f64 Merge branch 'tusooa/fix-object-test' into 'develop'
Fix ObjectTest

See merge request pleroma/pleroma!3887
2023-05-26 19:24:08 +02:00
Haelwenn
72833c84b5 Merge branch 'tusooa/rework-refetch' into 'develop'
Make sure object refetching follows update rules

See merge request pleroma/pleroma!3883
2023-05-26 19:24:08 +02:00
Haelwenn
47e66c9500 Merge branch 'issue/3126' into 'develop'
MediaProxyController: Apply CSP sandbox

See merge request pleroma/pleroma!3890
2023-05-26 17:12:18 +00:00
Mark Felder
38bcf6b19e MediaProxyController: Apply CSP sandbox 2023-05-26 12:34:01 -04:00
Zero
279fd47b48 ForceMentionsInContent: fix double mentions for Mastodon/Misskey posts
The code checked for duplicates using "ap_id", but in Mastodon and Misskey the look like that:
Mastodon: https://mastodon.example.com/users/roger
Misskey: https:///misskey.example.com/users/104ab42f11

The fix is to also check for "uri", which is what will be in the "explicitly_mentioned_uris" list:
Mastodon: https://mastodon.example.com/@roger
Misskey: https://misskey.example.com/@roger
2023-05-26 12:30:19 -04:00
tusooa
1fa196d8f7
Fix deleting banned users' statuses 2023-05-25 19:00:38 -04:00
tusooa
2c66f584b5
Show more informative errors when profile exceeds char limits 2023-05-25 08:22:33 -04:00
Haelwenn
5433742faf Merge branch 'tusooa/fix-object-test' into 'develop'
Fix ObjectTest

See merge request pleroma/pleroma!3887
2023-05-23 01:57:07 +00:00
tusooa
819a82da99
Fix unused variable 2023-05-22 08:19:58 -04:00
tusooa
6aafa7fe76
Add changelog 2023-05-22 08:16:14 -04:00
tusooa
505e58d4eb
Fix ObjectTest 2023-05-22 08:14:20 -04:00
Haelwenn
0524e66a05 Merge branch 'accept-tags-2.5' into 'develop'
TagValidator: Drop unrecognized Tag types

Closes #2952

See merge request pleroma/pleroma!3823
2023-05-17 19:04:51 +00:00
Haelwenn
ce1c0f75cd Merge branch 'tusooa/3065-scopes' into 'develop'
OAuth scopes descriptions

Closes #3065

See merge request pleroma/pleroma!3848
2023-05-17 18:51:26 +00:00
Haelwenn
66327b56e9 Merge branch 'tusooa/rework-refetch' into 'develop'
Make sure object refetching follows update rules

See merge request pleroma/pleroma!3883
2023-05-17 18:50:35 +00:00
Haelwenn
b8b15cec9e Merge branch 'tusooa/changelog-improve' into 'develop'
Use git diff to search for changelog entry

See merge request pleroma/pleroma!3875
2023-05-17 15:49:54 +00:00
Haelwenn
143676f58c Merge branch 'tusooa/allow-lang' into 'develop'
Allow lang attribute

See merge request pleroma/pleroma!3882
2023-05-17 15:28:32 +00:00
Haelwenn (lanodan) Monnier
a5066bb078 CommonFields: Use BareUri for :url
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3121
2023-05-17 17:25:46 +02:00
Haelwenn (lanodan) Monnier
fb3335ffe2 EctoType: Add BareUri 2023-05-17 17:14:38 +02:00
marcin mikołajczak
9363ef53a3 Add test for 'status' notification type for NotificationView
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-05-14 15:02:58 +02:00
tusooa
e170fc40dd
Fix build warning 2023-05-09 21:38:28 -04:00
tusooa
be5c5118cb
Make sure object refetching follows update rules 2023-05-09 21:04:27 -04:00
tusooa
163e82bab1
Allow lang attribute 2023-05-09 19:27:32 -04:00
Henry Jameson
2a07411b0c keep the websocket url for all modes 2023-05-07 15:34:17 +03:00
Henry Jameson
f50fd9278f reduce redundant reduntancy reduction 2023-05-07 15:29:19 +03:00
Henry Jameson
f8ef4924ec fix whitespace 2023-05-07 15:24:09 +03:00
Henry Jameson
c0d11da2d8 conditionally set csp depnding on media-proxy state 2023-05-07 15:16:30 +03:00
Haelwenn (lanodan) Monnier
c63bf6a040 Add changelog for !3880 2023-05-05 11:13:50 +02:00
Haelwenn (lanodan) Monnier
fcd49e3985 User: Remove ap_enabled field 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
238edc30de User: Remove ap_enabled?/1 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
9dfa1c4be0 ActivityPub: Mark fetch_and_prepare_user_from_ap_id/1 as private 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
8181be89a2 Federator: Stop using ap_enabled?/1 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
e17265a7a2 TransmogrifierWorker: Remove obsolete worker 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
2ee483ba41 Transmogrifier: Remove upgrade_user_from_ap_id 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
3962253cf1 Publisher: Stop filtering via ap_enabled?/1 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
606f78f5e5 ActivityPub: Stop relying on ap_enabled and upgrade_user_from_ap_id 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
0903c41645 User: Stop relying on ap_enabled 2023-05-05 11:11:26 +02:00
Haelwenn (lanodan) Monnier
4fd96b24ae AddRemoveValidator: Use User.fetch_by_ap_id instead of upgrade_user_from_ap_id 2023-05-05 11:11:26 +02:00
tusooa
6a3fd8e014
Do not count for renames when diffing 2023-05-02 22:16:00 -04:00
tusooa
99f157e280
Fix MR pipelines not having build and test jobs 2023-05-02 22:12:15 -04:00
tusooa
9283c784a3
Add English translation for oauth scopes 2023-05-02 17:03:09 -04:00
tusooa
b6dd194000
Add changelog 2023-05-02 16:33:53 -04:00
tusooa
6d0ebccdb0
Make webui use translated scope descriptions 2023-05-02 16:32:33 -04:00
tusooa
530284e1b9
Add extracted pot 2023-05-02 16:32:33 -04:00
tusooa
85bdbb102e
Add extraction process for oauth scopes 2023-05-02 16:32:10 -04:00
HJ
cd20d15bb8 changelog 2023-04-28 11:19:14 +00:00
HJ
675639225a allow https: so that flash works across instances without need for media proxy 2023-04-28 11:13:42 +00:00
tusooa
248f914e6e Merge branch 'list-installed-frontends' into 'develop'
List installed frontend refs in admin API

See merge request pleroma/pleroma!3862
2023-04-27 02:56:19 +00:00
tusooa
ddf57596be Merge branch 'bugfix/content-disposition' into 'develop'
UploadedMedia: Add missing disposition_type to Content-Disposition

Closes #3114

See merge request pleroma/pleroma!3873
2023-04-26 15:39:20 +00:00
Haelwenn
286b9bb66c Merge branch 'tusooa/no-more-needs' into 'develop'
Do not use needs: in pipeline yaml

See merge request pleroma/pleroma!3878
2023-04-26 14:23:47 +00:00
tusooa
d5e8345946
Do not use needs: in pipeline yaml 2023-04-26 09:14:49 -04:00
lain
d97425d49e Merge branch 'duponin/remove-ssh' into 'develop'
Remove SSH/BBS feature from core

Closes #932, #2389, and #2931

See merge request pleroma/pleroma!3872
2023-04-26 12:19:46 +00:00
Haelwenn
18913c4cd8 Merge branch 'tusooa/combine-login' into 'develop'
Work around docker login needing daemon

See merge request pleroma/pleroma!3877
2023-04-26 11:43:46 +00:00
tusooa
1a50db36d3
Skip changelog entry for 3877 2023-04-26 07:20:35 -04:00
tusooa
a946917206
Work around docker login needing daemon 2023-04-26 07:19:30 -04:00
Haelwenn
3b2d7cc67f Merge branch 'tusooa/kaniko' into 'develop'
Add ELIXIR_IMG arg to latest

See merge request pleroma/pleroma!3876
2023-04-26 02:59:13 +00:00
tusooa
47e95fe9f5
Add changelog for 3876 2023-04-25 21:40:28 -04:00
tusooa
9c7b036401
Add ELIXIR_IMG arg to latest 2023-04-25 21:39:15 -04:00
Haelwenn
6bd0df1357 Merge branch 'tusooa/kaniko' into 'develop'
Use kaniko to build docker images

See merge request pleroma/pleroma!3870
2023-04-25 23:14:21 +00:00
tusooa
c5ffdd0609
Use self-built elixir image for arm 2023-04-24 20:03:59 -04:00
tusooa
2736c3f294
Use --custom-platform to replace the deprecated one 2023-04-24 19:57:32 -04:00
tusooa
66d23713e9
Do not use nested levels for arch 2023-04-24 19:56:54 -04:00
duponin
af38c6104e add changelog entry for BBS/SSH feature remove 2023-04-23 10:58:50 +02:00
duponin
b2dc9ad9d8 fix test after removing esshd/SSH feature 2023-04-23 10:47:17 +02:00
duponin
0231a09310 Remove SSH/BBS feature from core
And link to sshocial, the replacement client for this removed feature
2023-04-23 10:47:07 +02:00
tusooa
ae8f359f22
Skip changelog check for automated MRs 2023-04-22 21:07:18 -04:00
tusooa
30bc37c3ca
Explain changelog.d in merge request templates 2023-04-22 21:02:13 -04:00
tusooa
c1aa83069d
Skip changelog 2023-04-22 20:45:27 -04:00
tusooa
e13b331762
Fetch upstream in the repo 2023-04-22 20:42:59 -04:00
tusooa
50e237759a
Use git diff to search for changelog entry 2023-04-22 20:31:48 -04:00
Mark Felder
d91a823836 Remove unused indexes
These indexes were always listed as unused and several grow quite large.
The most significant impact is the activities_visibility_index which takes many hours to rebuild when restoring the server from backup even on fast hardware.
2023-04-22 16:43:33 +00:00
Haelwenn (lanodan) Monnier
2148ef5e2f UploadedMedia: Increase readability via ~s sigil 2023-04-18 00:12:42 +02:00
Haelwenn (lanodan) Monnier
8f0f58e28b UploadedMedia: Add missing disposition_type to Content-Disposition
Set it to `inline` because the vast majority of what's sent is multimedia
content while `attachment` would have the side-effect of triggering a
download dialog.

Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3114
2023-04-18 00:09:19 +02:00
Duponin
7944271c1b Unify install guides using sudo to use sudo -Hu 2023-04-15 19:03:51 +00:00
Haelwenn
3867b52aef Merge branch 'tusooa/3027-dedupe-poll' into 'develop'
Dedupe poll options

Closes #3027

See merge request pleroma/pleroma!3860
2023-04-13 08:40:04 +00:00
Haelwenn
cf1ba77b9e Merge branch '2023-04-mix-deps-update' into 'develop'
mix: Update all dependencies

See merge request pleroma/pleroma!3867
2023-04-13 08:36:35 +00:00
tusooa
23bca0c4b3
Skip changelog entry 2023-04-12 12:40:26 -04:00
tusooa
b37a90caa3
Combine images of different platforms into one 2023-04-12 12:38:47 -04:00
tusooa
7997ba0abe
Build images with kaniko 2023-04-12 11:49:33 -04:00
Duponin
e444832bb5 fix OTP install documentation
'su pleroma' will never work if 'pleroma' user has no password, which is
better for security purpose.

If admin has no 'sudo' binary, I'm expecting them to be skilled enough 
to make their way on their own.
2023-04-10 20:17:30 +00:00
Haelwenn
b7a831ca55 Merge branch 'from/upstream-develop/tusooa/require-changelog' into 'develop'
require changelog

See merge request pleroma/pleroma!3739
2023-04-05 07:53:11 +00:00
tusooa
686c3e03bd
Fix counting 2023-04-04 12:24:45 -04:00
Haelwenn
89a40b867d Allow more than 1 changelog entry 2023-04-04 16:20:46 +00:00
Haelwenn (lanodan) Monnier
ce16ff7ae8 mix: Update all dependencies 2023-04-04 11:19:38 +02:00
tusooa
78a6f56295 Merge branch 'doc/add-fedistar' into 'develop'
Add Fedistar as a desktop client in docs

See merge request pleroma/pleroma!3866
2023-04-01 17:46:30 +00:00
AkiraFukushima
e5f36f9f8d
Update contact information for Whalebird and Fedistar 2023-04-02 01:07:07 +09:00
AkiraFukushima
17f1b8d133
Remove Roma from docs
Because this app is no longer maintained
2023-04-02 01:03:15 +09:00
AkiraFukushima
81e1d6d9d0
Add Fedistar as a desktop client in docs 2023-04-02 01:02:22 +09:00
Ekaterina Vaartis
6a63dced4a Fix tests for frontend installation 2023-03-30 19:25:35 +03:00
Haelwenn
e4288df502 Merge branch 'background-timeout' into 'develop'
Set background worker timeout to 15 minutes

See merge request pleroma/pleroma!3857
2023-03-30 12:48:35 +02:00
tusooa
ad38cc3b0c Merge branch 'docs-otp-support' into 'develop'
docs: Be more explicit about the level of compatibility of OTP releases

See merge request pleroma/pleroma!3849
2023-03-30 12:48:12 +02:00
tusooa
40f14fd31c Merge branch 'remove-crypt' into 'develop'
Remove crypt(3) support

Closes #3030 and #3062

See merge request pleroma/pleroma!3847
2023-03-30 12:47:36 +02:00
Haelwenn
937df7e465 Merge branch 'fix/tag-feed-crashes' into 'develop'
fix: atom/rss feed issues

Closes #3045

See merge request pleroma/pleroma!3851
2023-03-30 12:46:35 +02:00
Haelwenn
d640df3927 Merge branch 'fix/static-fe-feed-500' into 'develop'
fix: remove static_fe pipeline for /users/:nickname/feed

See merge request pleroma/pleroma!3852
2023-03-30 12:45:39 +02:00
Haelwenn
22b72cd6b8 Merge branch 'tusooa/oban-common-pipeline' into 'develop'
Stop oban from retrying if validating errors occur when processing incoming data

See merge request pleroma/pleroma!3844
2023-03-30 12:43:58 +02:00
Ekaterina Vaartis
3037d2780c Also list frontends that are not in the config file 2023-03-30 11:16:40 +03:00
Ekaterina Vaartis
d3b27d45a9 List installed frontend refs in admin API 2023-03-29 23:23:06 +03:00
Haelwenn
4f7c11b281 Merge branch 'tusooa/3073-react-legacy' into 'develop'
Fix emoji reactions for legacy 2-tuple formats

Closes #3073

See merge request pleroma/pleroma!3861
2023-03-27 10:05:47 +00:00
tusooa
c5d946bc92
Fix emoji reactions for legacy 2-tuple formats 2023-03-26 15:12:40 -04:00
tusooa
67d1897c6e
Fix existing tests 2023-03-26 11:19:44 -04:00
tusooa
10930f7507
Dedupe poll options 2023-03-25 23:20:07 -04:00
Haelwenn
6d0cc8fa2a Merge branch 'features/image-object' into 'develop'
Add support for Image objects

Closes #1581

See merge request pleroma/pleroma!3145
2023-03-25 06:35:55 +00:00
Haelwenn
9c53d1fe19 Merge branch 'background-timeout' into 'develop'
Set background worker timeout to 15 minutes

See merge request pleroma/pleroma!3857
2023-03-25 05:40:35 +00:00
anemone
f463b7570e Set background worker timeout to 15 minutes 2023-03-23 23:14:52 -07:00
tusooa
bf9db78426 Merge branch 'docs-otp-support' into 'develop'
docs: Be more explicit about the level of compatibility of OTP releases

See merge request pleroma/pleroma!3849
2023-03-16 08:11:44 +00:00
Haelwenn (lanodan) Monnier
9a2523a09a instances: Store some metadata based on NodeInfo 2023-03-16 09:02:20 +01:00
Haelwenn
353538d16c Merge branch 'pleroma-akkoma-emoji-port' into 'develop'
Custom emoji reactions support

See merge request pleroma/pleroma!3845
2023-03-16 08:00:00 +00:00
Haelwenn
c3600b6104 Merge branch 'feat/fields-rel-me-tag' into 'develop'
feat: build rel me tags with profile fields

See merge request pleroma/pleroma!3850
2023-03-16 07:53:27 +00:00
kPherox
83c7415803
fix: append field values to bio before parsing 2023-03-15 23:55:24 +09:00
tusooa
9145fd04f2 Merge branch 'remove-crypt' into 'develop'
Remove crypt(3) support

Closes #3030 and #3062

See merge request pleroma/pleroma!3847
2023-03-12 16:06:00 +00:00
tusooa
d18441e9c4 Indicate in changelog that removal of crypt is breaking 2023-03-12 16:04:43 +00:00
Alexander Tumin
2c2ea16b50 Allow custom emoji reactions: Add pleroma_custom_emoji_reactions feature, review changes 2023-03-12 11:39:17 +03:00
Haelwenn (lanodan) Monnier
ea07ec51ef Add support for Image objects 2023-03-09 14:21:12 +01:00
Haelwenn
f5c6e44731 Merge branch 'tusooa/block-rel' into 'develop'
Allow with_relationships param for blocks

See merge request pleroma/pleroma!3843
2023-03-09 13:13:14 +00:00
Haelwenn (lanodan) Monnier
197647a04e MastoAPI Attachment: Use "summary" for descriptions if present 2023-03-09 11:10:02 +01:00
Haelwenn (lanodan) Monnier
2ae1b802f2 AttachmentValidator: Add support for Honk "summary" + "name"
As used by Honk and supported by Mastodon
2023-03-09 10:26:33 +01:00
Haelwenn
5cc23dc382 Merge branch 'fix/tag-feed-crashes' into 'develop'
fix: atom/rss feed issues

Closes #3045

See merge request pleroma/pleroma!3851
2023-03-06 22:55:24 +00:00
Haelwenn
0a042979b8 Merge branch 'fix/static-fe-feed-500' into 'develop'
fix: remove static_fe pipeline for /users/:nickname/feed

See merge request pleroma/pleroma!3852
2023-03-06 21:08:27 +00:00
faried nawaz
8241eff05b remove static_fe pipeline for /users/:nickname/feed 2023-03-06 23:34:00 +05:00
faried nawaz
7b42ec5633 oops, remove unused import 2023-03-06 02:44:36 +05:00
faried nawaz
141146d1f1 use scrub_html_and_truncate instead of scrub_html for feed item title
Sometimes this truncated properly encoded HTML entities in the
wrong place.  The new flow calls scrub_html, removes emojis,
decodes entities (a second time), truncates, and then re-encodes.

Fixes #3045.
2023-03-06 02:38:02 +05:00
faried nawaz
86ee4b72f3 modify Utils.scrub_html_and_truncate to take omission parameter 2023-03-06 02:30:52 +05:00
faried nawaz
117a53b88e format feed_view.ex 2023-03-06 01:16:24 +05:00
faried nawaz
d3f22d24f6 feed eex templates: use published field from @data, not @activity.data 2023-03-06 00:23:31 +05:00
faried nawaz
f33e89765a fix tag feeds: remote activities might not have a summary field 2023-03-06 00:20:57 +05:00
Haelwenn (lanodan) Monnier
8e072baed0 docs: Be more explicit about the level of compatibility of OTP releases 2023-03-05 08:55:18 +01:00
Haelwenn
c00a19f371 Merge branch 'tusooa/oban-common-pipeline' into 'develop'
Stop oban from retrying if validating errors occur when processing incoming data

See merge request pleroma/pleroma!3844
2023-03-05 06:37:59 +00:00
Haelwenn (lanodan) Monnier
5716654d12 Remove crypt(3) support
This was used to support migration from GNU Social, which was used by at least
shitposter.club, should be entirely irrelevant now.

Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3030
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3062
2023-03-05 01:37:57 +01:00
Alexander Tumin
8d3b29aaba Allow custom emoji reactions: add test for mixed emoji react, fix credo errors 2023-03-02 11:18:16 +03:00
Alexander Tumin
4b85d1c617 Allow custom emoji reactions: Fix tests, mixed custom and unicode reactions 2023-03-02 11:18:16 +03:00
floatingghost
787e30c5fd Allow reacting with remote emoji when they exist on the post (#200)
Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/200
2023-03-02 11:18:16 +03:00
tusooa
714bf0cb23 Merge branch 'mergeback/2.5.1' into 'develop'
mergeback: 2.5.1

See merge request pleroma/pleroma!3846
2023-03-02 02:25:11 +00:00
tusooa
a0ec66ce7e
Make clear the test names 2023-03-01 21:14:52 -05:00
tusooa
bec4e5ac31
Fix FederatorTest 2023-03-01 21:04:19 -05:00
tusooa
1babd0798f
Stop oban from retrying if validating errors occur when processing incoming data 2023-03-01 21:03:30 -05:00
tusooa
f33401f54b
Merge remote-tracking branch 'upstream/stable' into mergeback/2.5.1 2023-03-01 20:09:50 -05:00
tusooa
fd46f83d2d Merge branch 'release/2.5.1' into 'stable'
release: 2.5.1

See merge request pleroma/pleroma!3841
2023-03-02 00:50:02 +00:00
tusooa
938e238ea1
Add the security fix to the changelog 2023-03-01 18:44:29 -05:00
tusooa
e4925f813a
Sanitize filenames when uploading 2023-03-01 18:40:02 -05:00
tusooa
d83f16fe44
Allow with_relationships param for blocks 2023-02-28 22:16:01 -05:00
silverpill
98b9c1bcb1 Merge branch 'develop' into accept-tags-2.5 2023-02-27 23:10:36 +00:00
silverpill
5cfb0578a6 TagValidator: Drop unrecognized tags 2023-02-27 23:09:46 +00:00
tusooa
5d34fe1868
Bundle frontend 2023-02-20 12:37:44 -05:00
tusooa
75b76a0666
Bump version in mix project to 2.5.1 2023-02-20 12:32:45 -05:00
tusooa
db06e445f1
Compose changelog for 2.5.1 2023-02-20 12:32:18 -05:00
tusooa
410d50afe5
Ignores in exiftool read descriptions 2023-02-20 12:30:36 -05:00
Sean King
c69ae5f7c7
Bump crypt to v1.0.1 2023-02-20 12:29:38 -05:00
lain
bb9ed51da7
Update mix.exs 2023-02-20 12:28:52 -05:00
tusooa
002159fc1c
Bump linkify 2023-02-20 12:28:52 -05:00
tusooa
f2ed05191c
Test double dot link 2023-02-20 12:28:42 -05:00
tusooa
0e89a9ad15
Test that zwnj is treated as word char in hashtags 2023-02-20 12:28:41 -05:00
Alexander Tumin
c3a0703564
Require related object for notifications to filter on content 2023-02-20 12:27:50 -05:00
tusooa
8e8a0f005c
Fix inproper content being cached in report content 2023-02-20 12:26:16 -05:00
tusooa
772d99c582
Use versioned image from hexpm 2023-02-20 12:25:31 -05:00
tusooa
1c225bfd6e
Allow customizing instance languages 2023-02-20 12:25:00 -05:00
Mark Felder
1b82fd95d4
Remove unwanted code specific to MIX_ENV=test 2023-02-20 12:24:38 -05:00
Mark Felder
88ce0e8b24
Fix rel="me"
Cachex for this was not started
2023-02-20 12:24:32 -05:00
tusooa
3ab3404817
Fix block_from_stranger setting 2023-02-20 12:21:27 -05:00
Lain Soykaf
d5125e6ce7
B StripLocation: Add test, work for all svgs. 2023-02-20 12:21:04 -05:00
Dmytro Poltavchenko
e8fca8882a
Added SVG to formats not compatible with exiftool 2023-02-20 12:21:04 -05:00
tusooa
259905a893
Bump earmark to 1.4.22 2023-02-20 12:20:29 -05:00
marcin mikołajczak
78d1105bff Fix down migration
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-02-19 22:02:38 +01:00
marcin mikołajczak
92592c25c2 Merge remote-tracking branch 'pleroma/develop' into status-notification-type
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-02-19 22:02:03 +01:00
tusooa
8a0162cd96 Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3839
2023-02-19 00:21:24 +00:00
kPherox
d5d7648789
feat: build rel me tags with profile fields 2023-02-18 17:57:41 +09:00
weblate-extractor
274b3a0d26 Extract translatable strings 2023-02-18 06:06:52 +00:00
lain
19933a06bf Merge branch 'tusooa/exiftool' into 'develop'
Ignores in exiftool read descriptions

See merge request pleroma/pleroma!3840
2023-02-13 17:10:58 +00:00
lain
a5509de389 Merge branch 'upgrade/crypt' into 'develop'
Bump crypt to v1.0.1

See merge request pleroma/pleroma!3838
2023-02-13 17:10:17 +00:00
tusooa
024bb27fc7
Ignores in exiftool read descriptions 2023-02-11 00:30:52 -05:00
Sean King
bf346cf07c
Bump crypt to v1.0.1 2023-02-09 23:06:04 -07:00
lain
d0b781ab69 Merge branch 'from/upstream-develop/tusooa/2974-zwnj' into 'develop'
Bump linkify - Fix zwnj in tags and double-dot links

Closes #2974 and #3022

See merge request pleroma/pleroma!3830
2023-02-09 21:25:15 +00:00
lain
7abb248ceb Merge branch 'notification-content-filtering-noobj' into 'develop'
Require related object for content-filtering on notification

See merge request pleroma/pleroma!3837
2023-02-09 19:54:59 +00:00
lain
00b39dea5d Merge branch 'tusooa/3059-report-fake-create-render' into 'develop'
Fix inproper content being cached in report content

Closes #3059

See merge request pleroma/pleroma!3836
2023-02-09 19:52:01 +00:00
lain
755279e253 Merge branch 'tusooa/api-spec-property-map' into 'develop'
OpenApiSpex: overhaul

See merge request pleroma/pleroma!3832
2023-02-09 19:50:59 +00:00
lain
a7079057a9 Merge branch 'tusooa/docker-hexpm' into 'develop'
Use versioned image from hexpm for docker images

See merge request pleroma/pleroma!3834
2023-02-09 19:47:00 +00:00
lain
7138910f30 Update mix.exs 2023-02-09 14:37:34 -05:00
lain
724bf7c647 Merge branch 'tusooa/3055-instance-languages' into 'develop'
Allow customizing instance languages

Closes #3055

See merge request pleroma/pleroma!3835
2023-02-09 19:23:29 +00:00
lain
50abb54d15 Merge branch 'fix-relme' into 'develop'
Fix rel="me"

See merge request pleroma/pleroma!3824
2023-02-09 19:09:54 +00:00
lain
4d3c2fb21b Merge branch 'tusooa/notif-setting' into 'develop'
Fix block_from_stranger setting

See merge request pleroma/pleroma!3833
2023-02-09 19:09:23 +00:00
lain
16276c8f87 Merge branch 'test-warnings' into 'develop'
Fix warnings in tests, treat warnings as errors in CI.

See merge request pleroma/pleroma!3827
2023-02-09 19:05:50 +00:00
Lain Soykaf
8583b3721d B TestHelper, CI: Work with older elixir version. 2023-02-09 12:36:02 -05:00
Lain Soykaf
e412363ff8 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into test-warnings 2023-02-09 12:28:02 -05:00
Alexander Tumin
55a8aa9787 Require related object for notifications to filter on content 2023-02-08 13:07:34 +03:00
tusooa
08132002d2
Fix inproper content being cached in report content 2023-02-03 16:00:39 -05:00
tusooa
bc7ec43179
Allow customizing instance languages 2023-01-26 20:17:13 -05:00
tusooa
1cf20184ff
Use versioned image from hexpm 2023-01-18 19:01:10 -05:00
tusooa
7467b24730
Fix block_from_stranger setting 2023-01-18 18:36:52 -05:00
tusooa
97f947deaf
Fix tests 2023-01-15 21:39:05 -05:00
tusooa
5af9ce4a01
Fix type of admin_account.is_confirmed 2023-01-15 18:41:36 -05:00
tusooa
3b4b84b74c
Force spec for every operation to have a listed tag 2023-01-15 18:31:37 -05:00
tusooa
bddcb3ed68
Add names to additionalProperties 2023-01-15 17:28:32 -05:00
tusooa
a2766f310c
Bump linkify 2023-01-06 14:12:07 -05:00
tusooa
09ed8f4f8a
Test double dot link 2023-01-06 14:11:56 -05:00
tusooa
686fef59db
Test that zwnj is treated as word char in hashtags 2023-01-06 14:01:42 -05:00
lain
2a244b391d Merge branch '2768-strip-location' into 'develop'
Resolve "Exiftool may conflict with SVG files"

Closes #2768

See merge request pleroma/pleroma!3829
2023-01-05 16:50:02 +00:00
Lain Soykaf
fe00fbfd54 B StripLocation: Add test, work for all svgs. 2023-01-05 11:29:06 -05:00
Dmytro Poltavchenko
5b4962165e Added SVG to formats not compatible with exiftool 2023-01-05 11:26:57 -05:00
lain
51b4513258 Merge branch 'tusooa/earmark' into 'develop'
Bump earmark to 1.4.~34~22

Closes #3033

See merge request pleroma/pleroma!3820
2023-01-03 22:10:28 +00:00
Lain Soykaf
2eec3f8207 B TestHelper: Remove warnings-as-errors
It's already set in mix.exs
2023-01-03 17:01:56 -05:00
Lain Soykaf
b3a1cfaa7a Tests: Capture logs to clean up the test output. 2023-01-03 15:39:14 -05:00
Lain Soykaf
72b3ec35f8 Fix warnings in tests, treat warnings as errors in CI.
The warnings revealed two bad tests, the code still worked but the test
didn't actually test for it. Activating this for CI to prevent issues
like these in the future.
2023-01-03 14:59:14 -05:00
lain
a0cdc4cf9e Merge branch 'revert-0fe3f749' into 'develop'
Revert "Merge branch 'copyright-bump' into 'develop'"

See merge request pleroma/pleroma!3826
2023-01-02 21:06:52 +00:00
lain
e853cfe7c3 Revert "Merge branch 'copyright-bump' into 'develop'"
This reverts merge request !3825
2023-01-02 20:38:50 +00:00
Haelwenn
0fe3f749ea Merge branch 'copyright-bump' into 'develop'
Bump copyright year

See merge request pleroma/pleroma!3825
2023-01-02 16:38:34 +00:00
marcin mikołajczak
10886eeaa2 Bump copyright year
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-01-01 12:13:06 +01:00
silverpill
45646ff52c TagValidator: Add test for Link tag 2022-12-30 20:55:02 +00:00
Mark Felder
39e4b788ad Remove unwanted code specific to MIX_ENV=test 2022-12-30 15:36:21 -05:00
Mark Felder
bea43aba33 Fix rel="me"
Cachex for this was not started
2022-12-29 19:42:14 +00:00
silverpill
c7dc5ce85c TagValidator: Allow unrecognized Tag types 2022-12-29 14:21:20 +00:00
tusooa
4b66f2b7f1
Bump earmark to 1.4.22 2022-12-28 11:57:29 -05:00
marcin mikołajczak
6e51845d44 Merge remote-tracking branch 'pleroma/develop' into secure-mode
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-12-27 16:41:16 +01:00
Haelwenn
2bc6911139 Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3818
2022-12-24 11:01:22 +00:00
weblate-extractor
64eef1eae4 Extract translatable strings 2022-12-24 06:06:39 +00:00
tusooa
179efd9467
Make backup parameters configurable 2022-12-24 00:20:25 -05:00
tusooa
7d3e4eaeb9
Log errors more extensively 2022-12-24 00:04:51 -05:00
tusooa
070fbb89e1
Lint 2022-12-24 00:04:51 -05:00
tusooa
a1b95922c5
Fix compile error 2022-12-24 00:04:50 -05:00
tusooa
46ab97d721
Simplify backup update clause 2022-12-24 00:04:50 -05:00
tusooa
bdd63d2a3a
Expose backup status via Pleroma API 2022-12-24 00:04:50 -05:00
tusooa
e4ac2a7cd6
Detail backup states 2022-12-24 00:04:32 -05:00
Haelwenn
b367f22256 Merge branch 'mergeback/2.5.0' into 'develop'
Mergeback: 2.5.0

See merge request pleroma/pleroma!3817
2022-12-23 18:15:52 +00:00
Haelwenn (lanodan) Monnier
6126f203d3 mix: version 2.5.50 2022-12-23 18:46:14 +01:00
Haelwenn
f76c1d4f70 Merge branch 'release/2.5.0' into 'stable'
Release 2.5.0

See merge request pleroma/pleroma!3816
2022-12-23 17:43:21 +00:00
Haelwenn (lanodan) Monnier
91c22637de mix: Release 2.5.0 2022-12-23 17:10:02 +01:00
Haelwenn (lanodan) Monnier
ee7694fa91 CHANGELOG: Set 2.5.0 2022-12-23 17:09:57 +01:00
Haelwenn (lanodan) Monnier
5ce7db455c Git merge is not my favorite tool 2022-12-23 17:07:26 +01:00
Haelwenn (lanodan) Monnier
3fbd42061c Revert "Delete report notifs when demoting from superuser"
This reverts commit 4504c81080.
2022-12-23 17:06:09 +01:00
Haelwenn (lanodan) Monnier
7d68d64d63 Merge back 2.4.5 2022-12-23 17:05:05 +01:00
Haelwenn
6bce88b9e7 Merge branch 'pleromafe-2.5.0' into 'develop'
Update PleromaFE bundle to 2.5.0

See merge request pleroma/pleroma!3815
2022-12-23 14:32:10 +00:00
Haelwenn (lanodan) Monnier
2c5bc9cffd Update PleromaFE bundle to 2.5.0 2022-12-23 15:01:49 +01:00
Haelwenn
99ff91584d Merge branch 'adminfe-2.5.0' into 'develop'
Update AdminFE bundle to version 2.5.0

See merge request pleroma/pleroma!3814
2022-12-23 13:48:35 +00:00
Haelwenn
718ff64c3b Merge branch 'fine_grained_moderation_privileges' into 'develop'
fine grained moderation privileges (continued)

See merge request pleroma/pleroma!3812
2022-12-23 13:48:07 +00:00
Sean King
90681c720d
Make lint happy 2022-12-21 23:40:39 -07:00
Sean King
351b5a9df4
Use crazy hack to finally get pleroma:report notifications not visible after revoking privileges 2022-12-21 23:35:39 -07:00
Sean King
3bb78ac152 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fine_grained_moderation_privileges 2022-12-21 22:36:54 -07:00
Haelwenn (lanodan) Monnier
cf1d91c718 Update AdminFE bundle to version 2.5.0 2022-12-21 13:03:32 +01:00
Ekaterina Vaartis
398141da68 Merge remote-tracking branch 'upstream/develop' into meilisearch 2022-12-20 21:00:07 +03:00
lain
5910d58cf7 Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3813
2022-12-20 15:05:21 +00:00
weblate-extractor
b3d250a70a Extract translatable strings 2022-12-20 06:11:50 +00:00
Sean King
e07fb6e7dc Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fine_grained_moderation_privileges 2022-12-19 22:02:44 -07:00
lain
0840ce5671 Merge branch 'deletion-resilience' into 'develop'
Deletion resilience

See merge request pleroma/pleroma!3237
2022-12-20 03:07:59 +00:00
Sean King
d5d4c7c11d Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fine_grained_moderation_privileges 2022-12-19 18:48:26 -07:00
lain
7aa17cd651 Merge branch 'doc_readme_nixos' into 'develop'
add nixos to supported distros

See merge request pleroma/pleroma!3600
2022-12-20 01:13:03 +00:00
lain
c6dff687c0 Merge branch 'from/upstream/develop/tusooa/mrf-updates' into 'develop'
MRFs with Updates

See merge request pleroma/pleroma!3808
2022-12-20 00:51:41 +00:00
Sean King
1d95012758 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fine_grained_moderation_privileges 2022-12-19 17:48:11 -07:00
lain
3311e0efed Merge branch 'fix/2980-rss-feed-generation' into 'develop'
fix atom and rss feeds for users and tags

See merge request pleroma/pleroma!3783
2022-12-20 00:19:27 +00:00
lain
3dfa009ec3 Merge branch 'develop' into 'fix/2980-rss-feed-generation'
# Conflicts:
#   CHANGELOG.md
2022-12-19 23:43:23 +00:00
feld
1946b49ebe Merge branch 'fix-twittercard-tags' into 'develop'
Fix TwitterCard meta tags

See merge request pleroma/pleroma!3811
2022-12-19 23:13:53 +00:00
Mark Felder
72d4d1b392 Fix TwitterCard meta tags
TwitterCard meta tags are supposed to use the attributes "name" and "content".
OpenGraph tags use the attributes "property" and "content".

Twitter itself is smart enough to detect broken meta tags and discover the TwitterCard
using "property" and "content", but other platforms that only implement parsing of TwitterCards
and not OpenGraph may fail to correctly detect the tags as they're under the wrong attributes.

> "Open Graph protocol also specifies the use of property and content attributes for markup while
> Twitter cards use name and content. Twitter’s parser will fall back to using property and content,
> so there is no need to modify existing Open Graph protocol markup if it already exists." [0]

[0] https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started
2022-12-19 17:23:12 -05:00
Sean King
c58eb873dd
Fix CommonAPI delete function to use User.privileged? instead of User.superuser? 2022-12-18 22:05:07 -07:00
Sean King
60df2d8a97
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fine_grained_moderation_privileges 2022-12-18 22:03:48 -07:00
faried nawaz
fce2998481
use to_rfc2822 instead of pub_date in tests, too 2022-12-19 01:44:47 +05:00
faried nawaz
96cfc9575c
document rss/atom fix in changelog 2022-12-19 01:44:47 +05:00
faried nawaz
c49316faee
modify user feed controller test to expect summary for title 2022-12-19 01:44:47 +05:00
faried nawaz
0f67eab384
remove pub_date() -- use to_rfc2822 instead
_tag_activity.xml.eex used activity_content() instead
of activity_description(), and did not escape html properly.
2022-12-19 01:44:46 +05:00
faried nawaz
f597b1b3e6
remove ap_id test -- the element makes the feed break 2022-12-19 01:44:46 +05:00
faried nawaz
3f63caee2a
fix: add xmlns:thr for in-reply-to refs 2022-12-19 01:44:46 +05:00
faried nawaz
8d500977a6
fix: feed item title was escaped twice 2022-12-19 01:44:46 +05:00
Mark Felder
f3253c0c6a
Implement RFC2822 timestamp formatting 2022-12-19 01:44:46 +05:00
faried nawaz
3f0783c0a5
fix atom and rss feeds for users and tags
Changes:
  - make the XML closer to spec (RSS does not pass w3c's validator, but works)
  - fix dates (RFC3339 for Atom, doc says RFC822 for RSS but RFC1123 is closer)
  - fix attachment/enclosure links (but see below)
  - set feed item title to post's "summary" if present
  - pruned several elements that validators did not like
    - examples: ap_enabled, user banner urls.

Specs:
  - https://www.rssboard.org/rss-specification
  - https://validator.w3.org/feed/docs/atom.html
  - https://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared

Validators:
  - https://validator.w3.org/feed/
  - https://rssatom.com/feedvalidator.php

Attachment/enclosure links should have a "length" field (mandatory
according to the spec).  This is not present in the object's data
map.
2022-12-19 01:44:41 +05:00
lain
8db82932a7 Merge branch 'fix-amd64-musl' into 'develop'
CI: Fix image for amd64-musl

See merge request pleroma/pleroma!3810
2022-12-16 20:29:48 +00:00
Lain Soykaf
8e6f2624a8 CI: Fix image for amd64-musl 2022-12-16 14:32:30 -05:00
tusooa
59eaab3e7d Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3764
2022-12-16 17:20:16 +00:00
weblate-extractor
cfca9544e8 Extract translatable strings 2022-12-16 16:59:26 +00:00
tusooa
a3985aac91 Merge branch 'fix-2856' into 'develop'
Uploading an avatar media exceeding max size returns a 413

Closes #2856

See merge request pleroma/pleroma!3804
2022-12-16 16:15:36 +00:00
lain
301eb86b35 Merge branch 'update-deps' into 'develop'
Update to Phoenix 1.6, Elixir 1.11, and chase dependencies

See merge request pleroma/pleroma!3766
2022-12-16 00:36:59 +00:00
lain
c0cfc454ba Merge branch 'from/upstream-develop/tusooa/register-approval' into 'develop'
Fix failure when registering a user with no email when approval required

Closes #3021

See merge request pleroma/pleroma!3807
2022-12-15 23:07:49 +00:00
Lain Soykaf
bb27e4134b AudioVideoValidator: Fix embedded attachment requirements 2022-12-15 18:06:28 -05:00
Lain Soykaf
4a32b584e1 StatusView: Fix warning 2022-12-15 18:02:33 -05:00
Lain Soykaf
9838790a7d AttachmentValidator: Actually require url 2022-12-15 17:46:20 -05:00
Lain Soykaf
63d00f8123 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into update-deps 2022-12-15 17:19:36 -05:00
tusooa
2554028097
Make SimplePolicy Update-aware
This is inspired by d5828f1c5e
2022-12-15 11:57:45 -05:00
tusooa
dc7efcd08b
Make TagPolicy Update-aware
This is inspired by d5828f1c5e
2022-12-15 11:08:24 -05:00
tusooa
62c27e0164
Fix failure when registering a user with no email when approval required 2022-12-14 01:04:42 -05:00
duponin
9876742358 Return 413 when an actor's banner or background exceeds the size limit 2022-12-11 23:15:08 +01:00
duponin
452595baed Uploading an avatar media exceeding max size returns a 413
Until now it was returning a 500 because the upload plug were going
through the changeset and ending in the JSON encoder, which raised
because struct has to @derive the encoder.
2022-12-11 22:54:47 +01:00
Haelwenn
204fd6faae Merge branch 'from/upstream-develop/tusooa/report-fake' into 'develop'
Report an Object, not a Create Activity

Closes #2986

See merge request pleroma/pleroma!3788
2022-12-09 14:25:24 +00:00
tusooa
da0c684344
Add tests for flagging non-Create activities 2022-12-08 20:51:08 -05:00
tusooa
1036acb6ae Merge branch 'release-template' into 'develop'
Add Gitlab Release™ into Release MR template

See merge request pleroma/pleroma!3797
2022-12-06 20:41:22 +00:00
lain
633a76b5b3 Merge branch 'jrabbit-develop-patch-67125' into 'develop'
Upgrade docs improvement: reccomend tagged releases over pulling stable branch

See merge request pleroma/pleroma!3800
2022-12-06 20:13:55 +00:00
jrabbit
8afad1e46e reccomend tagged releases over pulling stable 2022-12-06 17:24:04 +00:00
Haelwenn
f60cb0f771 Merge branch 'ci/amd64-build-tags' into 'develop'
CI: Tag amd64 releases for amd64 runners

See merge request pleroma/pleroma!3799
2022-12-05 23:33:46 +00:00
Haelwenn
eb7f4bc51b Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!3798
2022-12-05 23:15:44 +00:00
Haelwenn (lanodan) Monnier
b6e96f63b4 CI: Tag amd64 releases for amd64 runners 2022-12-06 00:08:55 +01:00
Xnuk Shuman
3e8f49be67 Added translation using Weblate (Korean) 2022-12-01 17:17:03 +00:00
Haelwenn (lanodan) Monnier
1eb3ce956b Add Gitlab Release™ into Release MR template 2022-11-28 22:08:47 +01:00
Haelwenn
d8e326467c Merge branch 'fix/2.4.5-release-date' into 'stable'
Fix changelog date

See merge request pleroma/pleroma!3796
2022-11-28 04:35:51 +00:00
Sean King
75c9f7770f
Fix changelog date 2022-11-27 20:17:48 -07:00
Haelwenn
20790c1dd3 Merge branch 'mergeback/2.4.5' into 'develop'
CHANGELOG.md: Fix date for 2.4.5

See merge request pleroma/pleroma!3795
2022-11-28 02:31:18 +00:00
Haelwenn
3394394e0f Merge branch 'develop' into 'develop'
Change follow_operation schema to use type BooleanLike

Closes #2999

See merge request pleroma/pleroma!3787
2022-11-28 00:13:35 +00:00
ave
0f88c2bca4 Change follow_operation schema to use type BooleanLike 2022-11-28 00:13:34 +00:00
Haelwenn (lanodan) Monnier
d6cd447cfa CHANGELOG.md: Fix date for 2.4.5 2022-11-27 22:28:48 +01:00
Haelwenn
36789986c0 Merge branch 'mergeback/2.4.5' into 'develop'
Mergeback: 2.4.5

See merge request pleroma/pleroma!3794
2022-11-27 21:24:44 +00:00
Haelwenn
76bdb01c18 Merge branch 'release/2.4.5' into 'stable'
Release 2.4.5

See merge request pleroma/pleroma!3793
2022-11-27 21:24:19 +00:00
Haelwenn (lanodan) Monnier
f6d55e1e77 Mergeback of release 2.4.5 2022-11-27 13:20:42 +01:00
Haelwenn (lanodan) Monnier
2614f431b9 Release 2.4.5 2022-11-27 13:17:21 +01:00
Hélène
542bb17258 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-11-27 04:54:19 +01:00
FloatingGhost
747311f623 fix resolution of GTS user keys 2022-11-27 04:54:18 +01:00
Tusooa Zhu
11d5ad24c5 Make local-only posts stream in local timeline 2022-11-27 04:39:32 +01:00
Tusooa Zhu
e46c3a0595 Do not stream out Create of ChatMessage 2022-11-27 04:39:32 +01:00
Sean King
9b68778887 Fix fedi-fe build URL 2022-11-27 04:34:33 +01:00
Haelwenn (lanodan) Monnier
f2221d539c script_test: Fix %ErlangError for Elixir 1.14 2022-11-27 04:25:48 +01:00
Haelwenn (lanodan) Monnier
915c7319c6 mix: Switch prometheus_ex to fix/elixir-1.14 branch 2022-11-27 04:25:48 +01:00
Haelwenn (lanodan) Monnier
f12ddcd697 timeline_controller_test: Fix test name for elixir 1.14 2022-11-27 04:25:48 +01:00
Tusooa Zhu
09ab51eebb Make mutes and blocks behave the same as other lists 2022-11-27 04:21:58 +01:00
Haelwenn (lanodan) Monnier
7ec3469bea Transmogrifier: Use validating regex for "mediaType" 2022-11-27 04:21:31 +01:00
Haelwenn (lanodan) Monnier
8640d217b1 AttachmentValidator: Use custom ecto type and regex for "mediaType" 2022-11-27 04:21:31 +01:00
Haelwenn (lanodan) Monnier
da71092003 EctoType: Add MIME validator 2022-11-27 04:21:31 +01:00
Ilja
4504c81080 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-11-27 04:20:11 +01:00
Haelwenn
3b289a1643 Merge branch 'skip-kanji-mac' into 'develop'
Skip two unicode/kanji tests that can't pass on Mac.

See merge request pleroma/pleroma!3791
2022-11-27 03:12:34 +00:00
Jeremy Huffman
f531099d2d Skip two unicode/kanji tests that can't pass on Mac. 2022-11-27 03:12:34 +00:00
Haelwenn (lanodan) Monnier
508b438b53 scrubbers: Scrub img class attribute
Closes: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3790
2022-11-27 04:04:17 +01:00
Haelwenn (lanodan) Monnier
8f3e750530 scrubbers: Scrub img class attribute
Closes: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3790
2022-11-27 03:40:21 +01:00
Haelwenn
7f0b3161ea Merge branch 'akoma/deactivated-users' into 'develop'
Timeline query performance improvements

See merge request pleroma/pleroma!3779
2022-11-20 23:40:58 +00:00
tusooa
afe4bb2307
Fix UtilsTest 2022-11-20 01:06:21 -05:00
tusooa
9d99e76a3a
Fix unit tests 2022-11-20 00:57:04 -05:00
tusooa
0e0c316c76
Fix report api 2022-11-20 00:35:52 -05:00
tusooa
a69e9ae2ef
Flag an Object, not an Activity 2022-11-19 23:51:43 -05:00
feld
f40ccce7e9 Merge branch 'quack-docs' into 'develop'
Remove Quack from docs and cheatsheet

See merge request pleroma/pleroma!3786
2022-11-18 16:38:08 +00:00
Mark Felder
c7a0df8006 Remove Quack from docs and cheatsheet 2022-11-18 10:09:52 -05:00
feld
bb63f72c11 Merge branch 'flash-support-csp' into 'develop'
Reduce CSP policy to make Ruffle work on chrome

See merge request pleroma/pleroma!3389
2022-11-17 17:29:36 +00:00
Mark Felder
cddcafee7f Document inclusion of wasm-unsafe-eval 2022-11-17 12:03:29 -05:00
HJ
a31d3589ed Update http_security_plug.ex 2022-11-17 12:03:01 -05:00
HJ
79bd363a68 Update lib/pleroma/web/plugs/http_security_plug.ex 2022-11-17 12:03:01 -05:00
Henry Jameson
db76ea578a try to fix ruffle on chrome 2022-11-17 12:03:01 -05:00
feld
a9d991d31e Merge branch 'develop' into 'akoma/deactivated-users'
# Conflicts:
#   CHANGELOG.md
2022-11-14 14:03:11 +00:00
lain
0e1356ef9c Merge branch 'akkoma/delete-improvements' into 'develop'
Alter priority of Delete activities to be lowest

See merge request pleroma/pleroma!3782
2022-11-14 07:24:46 +00:00
lain
76ed0da09f Merge branch 'bugfix/reset-unreachable-on-fetch' into 'develop'
Object.Fetcher: Set reachable on successful fetch

See merge request pleroma/pleroma!3780
2022-11-14 07:22:33 +00:00
Mark Felder
2186e9b62b Tell newer Credo it's OK to exit 0 on single with clauses and piping into anonymous functions for now 2022-11-13 18:46:02 -05:00
Mark Felder
e9c3be262c Bump credo
Old credo is throwing errors on my Elixir 1.13 / OTP 25
2022-11-13 14:17:41 -05:00
Mark Felder
2e0089dd5c Alter priority of Delete activities to be lowest
This will prevent a user with a large number of posts from negatively affecting performance of the outgoing federation queue if they delete their account.
2022-11-13 14:11:48 -05:00
Haelwenn
a2db64b12b Merge branch 'fix-typo-in-csp-report-to-header-name' into 'develop'
Fix typo in CSP Report-To header name

See merge request pleroma/pleroma!3768
2022-11-13 18:53:59 +00:00
Haelwenn
e86ca8a436 Merge branch 'weblate' into 'develop'
Translations update from Pleroma Weblate

See merge request pleroma/pleroma!3772
2022-11-13 18:53:12 +00:00
Mark Felder
47b9847edd Deletes do not generate notifications of any kind, so skip trying 2022-11-13 12:25:52 -05:00
Haelwenn (lanodan) Monnier
b2713357b9 Object.Fetcher: Set reachable on successful fetch 2022-11-13 16:51:12 +01:00
Mark Felder
39b24cdce6 Document query performance improvement 2022-11-12 18:32:49 -05:00
Mark Felder
edaf0a05f8 Add same optimized join for excluding invisible users 2022-11-12 18:06:28 -05:00
Mark Felder
749445dd50 Fix reports which do not have a user
The check for deactivated users was being applied to report activities.
2022-11-12 17:54:11 -05:00
FloatingGhost
4d321be05c Extract deactivated users query to a join 2022-11-12 17:52:28 -05:00
Dmytro Poltavchenko
451c415fca Translated using Weblate (Ukrainian)
Currently translated at 100.0% (95 of 95 strings)

Translation: Pleroma/Pleroma Backend (domain errors)
Translate-URL: http://weblate.pleroma-dev.ebin.club/projects/pleroma/pleroma-backend-domain-errors/uk/
2022-11-12 22:13:38 +00:00
Dmytro Poltavchenko
1c97a86b8d Added translation using Weblate (Ukrainian) 2022-11-12 22:13:38 +00:00
Dmytro Poltavchenko
3979eaf14a Added translation using Weblate (Ukrainian) 2022-11-12 22:13:38 +00:00
feld
3d1828f43b Merge branch 'oban-timeouts' into 'develop'
Define sane Oban Worker timeouts

See merge request pleroma/pleroma!3777
2022-11-12 22:13:28 +00:00
tusooa
f38cb4ccac Merge branch 'from/upstream-develop/tusooa/no-strip-report' into 'develop'
Lint

See merge request pleroma/pleroma!3778
2022-11-12 19:48:26 +00:00
tusooa
14871fecd4
Lint 2022-11-12 14:16:52 -05:00
tusooa
1b0e47b79b Merge branch 'from/upstream-develop/tusooa/no-strip-report' into 'develop'
Give admin the choice to not strip reported statuses

Closes #2887

See merge request pleroma/pleroma!3773
2022-11-12 17:55:50 +00:00
tusooa
e3e68b9377
Update config cheatsheet 2022-11-12 12:55:02 -05:00
Haelwenn
c2cfe0c690 Clarify config description 2022-11-12 17:44:31 +00:00
Mark Felder
a977e1ef96 Document Oban workers getting timeouts defined 2022-11-12 11:12:00 -05:00
Haelwenn
7c8618dc9a Merge branch 'no-ducks' into 'develop'
Remove Quack logging backend

See merge request pleroma/pleroma!3776
2022-11-12 05:40:07 +00:00
tusooa
7991364380
Lint 2022-11-11 18:32:08 -05:00
Mark Felder
8be7f87e1f Define sane Oban Worker timeouts 2022-11-11 13:46:27 -05:00
Mark Felder
572751bec7 Clean up stale entries in mix.lock
mix deps.clean --unlock --unused
2022-11-11 12:48:13 -05:00
feld
ceb07772d0 Merge branch 'custom-db-port' into 'develop'
allow custom db port

Closes #2981

See merge request pleroma/pleroma!3775
2022-11-11 17:38:51 +00:00
Mark Felder
7d0175dc3a Document removal of Quack 2022-11-11 12:36:38 -05:00
Mark Felder
8a3b450397 Add migration to remove Quack from ConfigDB 2022-11-11 12:36:34 -05:00
Mark Felder
6b87b3f2ea Remove Quack logging backend 2022-11-11 12:36:29 -05:00
lain
e7c40c2509 fix envvar 2022-11-11 15:40:32 +00:00
Iván Raskovsky
36519bdbee allow custom db port 2022-11-11 12:22:21 -03:00
lain
39a96876ef Merge branch 'soapbox-ref' into 'develop'
Update links to Soapbox

See merge request pleroma/pleroma!3774
2022-11-11 12:04:47 +00:00
marcin mikołajczak
eb70676931 Update links to Soapbox
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-11-11 12:13:30 +01:00
tusooa
717c5901f8
Render a generated reported activity properly 2022-11-09 23:02:27 -05:00
tusooa
6f047cc308
Do not strip reported statuses when configured not to 2022-11-09 22:36:57 -05:00
tusooa
481f50bcfd Merge branch 'docs/object_age-strip_followers' into 'develop'
ObjectAgePolicy: Make strip_followers behavior for followers-only explicit

See merge request pleroma/pleroma!3770
2022-11-07 14:07:30 +00:00
Haelwenn (lanodan) Monnier
648e012022 ObjectAgePolicy: Make strip_followers behavior for followers-only explicit 2022-11-07 14:58:47 +01:00
tusooa
8d704d384d Merge branch 'ci-coverage' into 'develop'
Test coverage: Switch to covertool to get cobertura output

See merge request pleroma/pleroma!3745
2022-11-06 02:19:27 +00:00
Thomas Citharel
bdedc41cbc
Fix typo in CSP Report-To header name
The header name was Report-To, not Reply-To.

In any case, that's now being changed to the Reporting-Endpoints HTTP
Response Header.
https://w3c.github.io/reporting/#header
https://github.com/w3c/reporting/issues/177

CanIUse says the Report-To header is still supported by current Chrome
and friends.
https://caniuse.com/mdn-http_headers_report-to

It doesn't have any data for the Reporting-Endpoints HTTP header, but
this article says Chrome 96 supports it.
https://web.dev/reporting-api/

(Even though that's come out one year ago, that's not compatible with
Network Error Logging which's still using the Report-To version of the
API)

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 09:43:13 +01:00
feld
9f708037d7 Merge branch 'tusooa/caveats-webfinger' into 'develop'
Document some caveats of webfinger domain setting

See merge request pleroma/pleroma!3767
2022-11-03 22:24:38 +00:00
tusooa
f2e4b425e1 Document some caveats of webfinger domain setting 2022-11-03 21:13:00 +00:00
Mark Felder
7c64f705f6 Update to Phoenix 1.6 and chase dependencies
Also bump minimum Elixir to 1.11
2022-11-03 16:13:07 +00:00
Haelwenn
127e7b8ff9 Merge branch 'feature/1469-webfinger-expanding' into 'develop'
Feature/1469 webfinger expanding

Closes #1469 and #2517

See merge request pleroma/pleroma!3361
2022-11-03 15:03:50 +00:00
Alexander Strizhakov
8407e26b0c rebase fix 2022-11-03 10:06:36 -04:00
Alexander Strizhakov
a57c025594 docs update 2022-11-03 09:48:59 -04:00
Alexander Strizhakov
5a9ea98baf XML WebFinger user representation correct domain 2022-11-03 09:48:59 -04:00
Alexander Strizhakov
30ded8876a docs & changelog 2022-11-03 09:48:57 -04:00
Alexander Strizhakov
4121bca895 expanding WebFinger 2022-11-03 09:48:24 -04:00
Haelwenn
da0ef154a6 Merge branch 'from/upstream-develop/tusooa/2930-get-or-fetch' into 'develop'
Fix User.get_or_fetch/1 with usernames starting with http

Closes #2930

See merge request pleroma/pleroma!3751
2022-10-30 00:38:21 +00:00
tusooa
9fbf01f7a9 Merge branch 'push-updates' into 'develop'
Push.Impl: support edits

See merge request pleroma/pleroma!3760
2022-10-27 12:51:29 +00:00
feld
7a519b6a66 Merge branch 'fix-deprecation-text' into 'develop'
Fix deprecation warning for Gun timeout

See merge request pleroma/pleroma!3759
2022-10-24 14:22:49 +00:00
Haelwenn
705ba6d615 Merge branch 'security/PleromaAPI-delete' into 'develop'
CommonAPI: generate ModerationLog for all admin/moderator deletes

See merge request pleroma/pleroma!3765
2022-10-15 12:54:20 +00:00
Haelwenn (lanodan) Monnier
16b06160ac CommonAPI: generate ModerationLog for all admin/moderator deletes
As a side-effect it also changes the ChatMessage delete ID to an
Activity.id rather than MessageReference.id

Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/2958
2022-10-14 18:51:08 +02:00
tusooa
c830282628 Merge branch 'weblate-extract' into 'develop'
Extract translatable strings

See merge request pleroma/pleroma!3752
2022-10-11 21:21:36 +00:00
weblate-extractor
1ac9bd0b4c Extract translatable strings 2022-10-11 06:13:00 +00:00
Ekaterina Vaartis
5a39866388 Specifically strip mentions for search indexing 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
6256822afd Check for updateId, not uid 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
5ac6763238 Make add_to_index and remove_from_index report errors 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
102ebb42bd Make search a callback 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
119b2b847b Instead of checking string length, explicitly check for "" and "." 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
e20f74c71b Remove duplicate function call 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
b150e6f15e Update meilisearch docs 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
84608be87e Change updateId to uid because apparently that's the new name 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
1e23f527e3 Change the meilisearch key auth to conform to 0.25.0 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
79225d9b0a Actually, unlisted posts are indexed 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
fd2cfc80d2 Change search_indexing = 10 and retries for indexing = 2 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
3387935e83 Don't try removing deleted users and such from index as posts 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
d89dc5518b Fix meilisearch tests and jobs for oban 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
2bc21c6f18 Use oban for search indexing 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
6f2f457751 Add a search backend behaviour 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
4f2637acc6 Add description for initial_indexing_chunk_size 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
571533ae26 Don't support meilisearch < 0.24.0, since it breaks things 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
3179ed0921 Make chunk size configurable 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
3412713c5b Update search.md documentation with meilisearch indexing steps 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
3a11e79de0 Add config description for meilisearch 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
a12f63bc81 Implement suggestions from the Meilisearch MR
- Index unlisted posts
- Move version check outside of the streaming and only do it once
- Use a PUT request instead of checking manually if there is need to insert
- Add error handling, sort of
2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
a6946048fb Rename Activity.Search to Search.DatabaseSearch 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
0fae71f88d Rename search.ex to database_search.ex and add search/2 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
39e596a5b5 Style fixes 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
7009ef5672 Move the search.ex file so credo doesn't complain 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
8898b5e927 Fix a typo in search docs 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
9c1a930707 Support reindexing meilisearch >=0.24.0
It has has a different error code key
2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
e928e307f3 Add a reindex option
Signed-off-by: Ekaterina Vaartis <vaartis@kotobank.ch>
2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
4445421297 Only add local posts to index in activity_pub
Remote ones are already added in another place
2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
0b4fd0d342 Set content-type to application/json 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
e4b7a3f51f Modify some meilisearch variables 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
cf558208c2 Use proper deleted object for removing from index 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
95cb2bb694 Don't try removing from index again in common_api
It's already removed in the side effects of the pipeline
2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
c569ad05b3 Add more documentation about rum to meilisearch docs 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
6beef2d117 Move add_to_index / remove_from_index to Pleroma.Actitivy.Search 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
40280cc273 Reorder ranking rules for (maybe) better results 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
a5bb7f9345 Add private_key: nil to default meilisearch options 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
005947e9f7 Add tests for local post indexing for meilisearch 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
d9ef7e0758 Fix activity being passed to objec_to_search_data 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
07ccab9766 Add search/meilisearch documentation 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
09a1ae1b6e Add the meilisearch.stats command 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
a67f9da5cc Add a message with a count of posts to index 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
2c7d973af7 Implement meilisearch auth 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
410c8cb765 Make indexing logs rewrite themselves 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
35e9192ced Rework task indexing to share code with the main module
The code in the main module now scrubs new posts too
2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
3dedadf192 Adjust content indexing to skip more unneeded stuff 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
9f16ca80e0 Mark only content as searchable for meilisearch 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
2b2e409ad7 Also index incoming federated posts 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
e35d87ea54 Make the chunk size smaller 2022-10-10 20:19:09 +03:00
Ekaterina Vaartis
00c48a33ac Use content instead of source and scrub it 2022-10-10 20:19:08 +03:00
Ekaterina Vaartis
9beaebd97e Tweak search ordering to hopefully return newer results 2022-10-10 20:19:08 +03:00
Ekaterina Vaartis
38996f551a Make meilisearch sort on publish date converted to unix time 2022-10-10 20:19:08 +03:00
Ekaterina Vaartis
ea6a6a1287 Make the indexing batch differently and more, show number indexed 2022-10-10 20:19:08 +03:00
Ekaterina Vaartis
365024abec Ensure only indexing public posts and implement clearing and delete 2022-10-10 20:19:08 +03:00
Ekaterina Vaartis
0318e9a599 Add logging to milisiearch index and make it use desc(id) 2022-10-10 20:19:08 +03:00
Ekaterina Vaartis
e154ebbf79 Initial meilisearch implementation, doesn't delete posts yet 2022-10-10 20:19:08 +03:00
tusooa
8042e0ebe1 Merge branch 'mergeback/2.4.4' into 'develop'
mergeback: 2.4.4

See merge request pleroma/pleroma!3762
2022-10-09 04:29:09 +00:00
Tusooa Zhu
dd82fd234f
Merge branch 'release/2.4.4' into mergeback/2.4.4 2022-10-08 22:15:09 -04:00
tusooa
59b8c920f6 Merge branch 'release/2.4.4' into 'stable'
Release/2.4.4

See merge request pleroma/pleroma!3761
2022-10-09 02:05:27 +00:00
marcin mikołajczak
1b238a4fad Push.Impl: support edits
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-10-01 23:28:02 +02:00
Mark Felder
1958f23fe7 Fix deprecation warning for Gun timeout 2022-09-30 12:22:06 -04:00
Haelwenn
3f1c31b7cd Merge branch 'fix/exclude-deactivated-in-search' into 'develop'
User: search: exclude inactive users from user search

See merge request pleroma/pleroma!3755
2022-09-27 23:58:45 +00:00
Haelwenn
d43d02bf41 Merge branch 'from/upstream-develop/tusooa/fix-static-tests' into 'develop'
Make instance document controller test sync

Closes #2940

See merge request pleroma/pleroma!3757
2022-09-27 21:50:43 +00:00
Haelwenn
757a21554f Merge branch 'from/upstream-develop/tusooa/2169-queue-limit' into 'develop'
Reduce incoming and outgoing federation queue sizes to 5

Closes #2169

See merge request pleroma/pleroma!3756
2022-09-27 21:50:06 +00:00
Haelwenn
5d7d623390 Merge branch 'bugfix/elixir-1.14' into 'develop'
Bugfix: Elixir 1.14

See merge request pleroma/pleroma!3740
2022-09-27 21:46:03 +00:00
Ilja
2d7ea263a1 Add extra routes to :users_manage_credentials privilege 2022-09-24 13:52:28 +02:00
Tusooa Zhu
e66c02b775
Make instance document controller test sync 2022-09-20 12:34:10 -04:00
tusooa
ac95b8b4f3 Merge branch 'websocketex' into 'develop'
Use Websockex to replace websocket_client

See merge request pleroma/pleroma!3743
2022-09-18 17:09:12 +00:00
Tusooa Zhu
467b6cad6f
Reduce incoming and outgoing federation queue sizes to 5 2022-09-17 16:34:33 -04:00
tusooa
1a7107f4a5 Merge branch 'remove_from_followers' into 'develop'
MastoAPI: POST /api/v1/accounts/:id/remove_from_followers

See merge request pleroma/pleroma!3647
2022-09-16 23:24:13 +00:00
a1batross
7f63b4c315 User: search: exclude deactivated users from user search
This way we don't pollute search results with deactivated and deleted users
2022-09-16 00:49:16 +03:00
Tusooa Zhu
ea60c4e709
Fix wrong relationship direction 2022-09-14 20:24:04 -04: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
Tusooa Zhu
50923f5438
Fix User.get_or_fetch/1 with usernames starting with http 2022-09-08 11:58:17 -04: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
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
Haelwenn (lanodan) Monnier
be411ad3bc Test coverage: Switch to covertool to get cobertura output
This allows to have coverage information integrated into Gitlab
2022-09-03 05:03:50 +02: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 (lanodan) Monnier
ec80a1e405 Bump minimum Elixir version to 1.10
1.9 being end-of-life
2022-09-03 03:58:22 +02:00
Haelwenn (lanodan) Monnier
24af2e1c58 script_test: Fix %ErlangError for Elixir 1.14 2022-09-03 03:58:22 +02:00
Haelwenn (lanodan) Monnier
e124776d14 Elixir 1.14 formatting 2022-09-03 03:58:22 +02:00
Haelwenn (lanodan) Monnier
93ed6da4a3 mix: Switch prometheus_ex to fix/elixir-1.14 branch 2022-09-03 03:58:22 +02:00
Haelwenn (lanodan) Monnier
2f301bbb87 timeline_controller_test: Fix test name for elixir 1.14 2022-09-03 03:58:22 +02:00
Tusooa Zhu
6d148b6637 Use Websockex to replace websocket_client 2022-09-03 02:13:00 +02: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
Tusooa Zhu
6aa9b023f0
Use dedicated script 2022-08-28 11:13:36 -04:00
Tusooa Zhu
f8566e91a6
Fix {} not working with alpine sh 2022-08-28 11:10:25 -04:00
Tusooa Zhu
a26fb6ab48
Display error info 2022-08-28 10:24:01 -04:00
Tusooa Zhu
d3871fa360
Allow to explicitly skip changelog 2022-08-28 09:57:32 -04:00
Tusooa Zhu
27a8f6a8d9
Prevent duplicate pipelines 2022-08-28 09:54:28 -04:00
Tusooa Zhu
50d3209ce8
Check for changelog in ci 2022-08-28 09:48:01 -04: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
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
Tusooa Zhu
31fd41de0c
Release 2.4.4 2022-08-19 20:29:06 -04:00
Tusooa Zhu
5a2c8ef4cc
Refactor streamer test 2022-08-19 20:24:24 -04:00
Tusooa Zhu
a31d6bb52c
Execute session disconnect in background 2022-08-19 20:24:24 -04:00
Tusooa Zhu
f459c1260b
Lint 2022-08-19 20:24:24 -04:00
Tusooa Zhu
3522852c61
Test that server will disconnect websocket upon token revocation 2022-08-19 20:24:24 -04:00
Tusooa Zhu
eb42e90c4f
Use Websockex to replace websocket_client 2022-08-19 20:24:21 -04:00
Tusooa Zhu
c62a4f1c17
Disconnect streaming sessions when token is revoked 2022-08-19 20:22:45 -04: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
Ilja
b53cf7d4b3 Change default moderator privileges to better match what we previously had
Moderators were able to delete statusses via pleroma-fe. For that reason I now gave them :messages_delete by default.

They are also able to recieve reports through the notifications. For that reason I now gave them :reports_manage_reports by default.

They were also able to see deactivated accounts through pleroma-fe. However
* they were unable to tell if the account is deactivated or not (which was a bug and fixed by thes privileges MR this commit is part of)
* they were not able to actually change the activation state.
Because of this, I decided to *not* give them the privilege :users_manage_activation_state as this would give significantly more
privileges, while not giving it will actually improve the current experience as it works around the existing bug of not showing activation state.
2022-08-07 07:22:33 +02: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
marcin mikołajczak
c899af1d6a Reject requests from specified instances if authorized_fetch_mode is enabled
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-08-05 11:06:30 +02: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
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
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
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
Sean King
3da1b2548d
Actually fix with forward slashes being restricted inside nickname 2022-07-18 21:30:57 -06:00
Hélène
1a67a20364 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:40:24 +00:00
Hélène
f9fc3a153d Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:40:10 +00:00
Hélène
ce0a6737e7 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:40:02 +00:00
Hélène
97e8c8a10a Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:39:26 +00:00
Hélène
d24d74b1a7 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:39:21 +00:00
Hélène
db789acf1e Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:39:11 +00:00
Hélène
d622fe8d48 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:39:03 +00:00
Hélène
02b4b4da47 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:38:45 +00:00
Hélène
02947bafeb Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:38:30 +00:00
Hélène
ad730c2135 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:38:23 +00:00
Hélène
2baf3084a1 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:38:01 +00:00
Hélène
92da9c4a47 Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:37:41 +00:00
Hélène
275c60208b Apply ilja's suggestion(s) to 1 file(s) 2022-07-18 05:37:27 +00: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
Ilja
c045a49909 Add privilege for announcements 2022-07-14 08:40:26 +02:00
Ilja
44d14e8a9c Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into fine_grained_moderation_privileges 2022-07-14 07:07:19 +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
marcin mikołajczak
9022d855cd Check refute User.following?
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-13 22:57:42 +02: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
marcin mikołajczak
3ed39e3109 Add test
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-07-08 21:28:23 +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
Claudio Maradonna
21d9091f5e
ipfs: replacing single quotes with double quotes 2022-07-08 10:06:46 +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
Claudio Maradonna
5e097eb91d
ipfs: better tests with @ilja suggestions 2022-07-07 06:29:17 +02:00
Claudio Maradonna
254f2ea854
ipfs: remove unused alias
fix analysis job
2022-07-07 06:29:15 +02:00
Claudio Maradonna
98f268e5ec
ipfs: small refactor and more tests 2022-07-07 06:29:15 +02:00
Claudio Maradonna
7c1af86f97
ipfs: refactor final_url generation. add tests for final_url
fix lint
2022-07-07 06:29:13 +02:00
Claudio Maradonna
44659ecd65
ipfs: revert to String.replace for cid placeholder
ipfs: fix lint
2022-07-07 06:29:12 +02:00
Claudio Maradonna
43dfa58ebd
added tests for ipfs uploader. adapted changelog.md accordingly. improved ipfs uploader with external suggestions
fix lint description.exs
2022-07-07 06:29:10 +02:00
Claudio Maradonna
fa2a6d5d6b
feat: simple, but not stupid, uploader for IPFS
fix: format fix with credo
2022-07-07 06:29:01 +02: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
Ilja
f88ed1df75 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into fine_grained_moderation_privileges 2022-07-05 12:05:19 +02:00
Ilja
6ef38c6523 Improve tests after code review 2022-07-05 08:57:50 +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
42d4bd3a5d Rename pipelines and add forgotten tags
I renamed some tags before, but forgot to rename the pipelines
I also had some tags which I forgot to add to the config, description, etc.

These have now been done/added
2022-07-02 08:55:14 +02:00
Ilja
15748fd301 Add better explanation in the Cheatsheet about what each tag does 2022-07-02 08:17:22 +02:00
Ilja
51f87ba30c Change order of privilege tags to make more sense
The tags were listed in different places
They were listed in a rather randomly order
I reordered them in a way I think makes more sense
2022-07-02 07:59:46 +02:00
Ilja
c0e4b1b3e2 Fix typo's
priviledge |-> privilege
2022-07-02 07:52:39 +02:00
Mark Felder
6b74a55274 InstanceStatic should have reasonable caching
While here fix the naming convention of the old module attribute restricting caching and add a new one for the default cache value

All frontends should be shipped with versioned assets. There be dragons if you don't.
2022-07-01 15:40:40 -05: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
Ilja
0d697bc15a Add docs and CHANGELOG entries 2022-07-01 10:50:32 +02:00
Ilja
37fdf148b0 Rename privilege tags
I first focussed on getting things working
Now that they do and we know what tags there are, I put some thought in providing better names

I use the form <what_it_controls>_<what_it_allows_you_to_do>

:statuses_read    => :messages_read
:status_delete    => :messages_delete

:user_read        => :users_read
:user_deletion    => :users_delete
:user_activation  => :users_manage_activation_state
:user_invite      => :users_manage_invites
:user_tag         => :users_manage_tags
:user_credentials => :users_manage_credentials

:report_handle    => :reports_manage_reports

:emoji_management => :emoji_manage_emoji
2022-07-01 10:28:09 +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
Tusooa Zhu
01321c88b5
Convert incoming Updated object into Pleroma format 2022-06-24 10:25:22 -04:00
Tusooa Zhu
06da000c5d
Add editing to features 2022-06-21 12:32:44 -04:00
Ilja
4e4eb81749 Add nodes and privileges to nodeinfo
I didn't add it to /api/v1/instance
I was wondering if I should, but since it e.g. also didn't show staff, it felt better not to
2022-06-21 12:10:27 +02:00
Ilja
211e561e2a Show privileges to FE
I added an extra key
We already had is_admin and is_moderator, now we have an extra privileges key
2022-06-21 12:10:27 +02:00
Ilja
143ea7b80a Add deactivated status for privileged users
Deactivated users are only visible to users privileged with :user_activation since fc317f3b17
Here we also make sure the users who are deactivated get the status deactivated for users who are allowed to see these users
2022-06-21 12:10:27 +02:00
Ilja
e21ef5aef3 report notifications for privileged users
Instead of `Pleroma.User.all_superusers()` we now use `Pleroma.User.all_superusers(:report_handle)`

I also changed it for sending emails, but there were no tests.
2022-06-21 12:10:27 +02:00
Ilja
34adea8d28 Add Pleroma.User.all_users_with_privilege/1
This should eventually replace the Pleroma.User.all_superusers/0 function

* I added a new param `is_privileged` in User.query
* Now we can fetch all users with a specified privilege
2022-06-21 12:10:27 +02:00
Ilja
a1c8aa4721 Remove function superuser?
Everything now happens with privileged?/2
2022-06-21 12:10:27 +02:00
Ilja
eab13fed3e Hide pleroma:report for non-privileged users
Before we deleted the notifications, but that was a side effect and didn't always trigger any more.
Now we just hide them when an unprivileged user asks them.
2022-06-21 12:10:27 +02:00
Ilja
e45faddb38 Revert "Delete report notifs when demoting from superuser"
This reverts commit 89667189b8 and cdc5bbe836.

This is a side effect when changing user role.
The goal was to not have report notifications when someone isn't admin or moderator any more.
But this won't be triggered when we change the privilege tags for a role, so we can't use this sollution any more.
There was another solution to filter out report notifications during fetch.
It wasn't merged because this seemed 'cleaner' at the time, but now it seems the better sollution.
I'll add it in the next commit.
2022-06-21 12:10:27 +02:00
Ilja
edf0013ff3 User.visible_for/2
According to the tests, this was only used for unconfirmed accounts.
So this just needed to be restricted to users with privilege :user_activation
2022-06-21 12:10:27 +02:00
Ilja
bb61cfee8d Validator for deleting statusses is now done with priviledge instead of superuser 2022-06-21 12:10:27 +02:00
Ilja
7cf473c500 delete statusses is now privileged by :status_delete
Instead of superusers, you now need a role with privilige :status_delete to delete other users statusses
I also cleaned up some other stuff I saw
2022-06-21 12:10:27 +02:00
Ilja
7adfc2e0f4 Add Pleroma.User.privileged?/2
This should eventually replace Pleroma.User.superuser?/1
2022-06-21 12:10:27 +02:00
Ilja
9da81f41c6 Fix warning during test user_test.exs
Fixed the warning
    [warning] Please change `clear_config([section], key: value)` to `clear_config([section, key], value)`
2022-06-21 12:10:27 +02:00
Ilja
c842e62675 Add last priviliges
I still had three endpoints I didn't really know what to do with them. I added them under separate tags
* :instance_delete
* :moderation_log_read
* :stats_read

I also checked and these are the last changes done by MR https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3480/diffs this is trying to fix
2022-06-21 12:10:27 +02:00
Ilja
ecd42a2ce1 Add privilige :emoji_management 2022-06-21 12:10:27 +02:00
Ilja
0ee8f33250 Add privilige :status_delete
It also allows to update a message, so it's not just deleting. I need a better name...
2022-06-21 12:10:27 +02:00
Ilja
34a98990db last off :statuses_read
From the endpoints left to do, I believe these should be under :statuses_read.
These should be the last for that privilege for this MR
2022-06-21 12:10:27 +02:00
Ilja
4cb0dbb5dc Mark relevant tests synchronous
One of the things we do during the tests is change the config. But that's global state and different tests were interfering.
E.g. one test would set `clear_config([:instance, :admin_privileges], [:statuses_read])`, but while that runs, another test may
do `clear_config([:instance, :admin_privileges], [:user_invite])`. Now the code for the first test checks the setting, and it
finds `:user_invite` instead of `:statuses_read`.

Now the modules where this happens are marked to run synchronously, so they don't interfere with each other.
2022-06-21 12:10:27 +02:00
Ilja
cbb26262a5 Add privileges for :user_read 2022-06-21 12:10:27 +02:00
Ilja
3f26f1b30f Add privileges for :report_handle 2022-06-21 12:10:27 +02:00
Ilja
14e697a64f Add privileges for :user_invite 2022-06-21 12:10:27 +02:00
Ilja
e102d25d23 Add privileges for :user_activation 2022-06-21 12:10:27 +02:00
Ilja
cb60cc4e02 Add privileges for :user_tag 2022-06-21 12:10:27 +02:00
Ilja
5a65e2dac5 Remove privileged_staff
Everything that was done through this setting, can now be set by giving the proper privileges to the roles.
2022-06-21 12:10:27 +02:00
Ilja
b1ff5241c2 Add priviledges for :statuses_read
This was the last in :require_privileged_staff. I'll remove that in the next commit
2022-06-21 12:10:27 +02:00
Ilja
8a9144ca8b Add priviledges for :user_credentials
I only moved the ones from the :require_privileged_staff block for now
2022-06-21 12:10:27 +02:00
Ilja
9f6c364759 Add privilege :user_deletion 2022-06-21 12:10:27 +02:00
Ilja
5b19543f0a Add new setting and Plug to allow for privilege settings for staff 2022-06-21 12:10:26 +02: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
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
marcin mikołajczak
5846e7d5f6 Use Repo.exists?
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-06-01 16:03:22 +02: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
marcin mikołajczak
0ecd6ba35e AdminAPI: Allow filtering reports by rule_id
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-30 13:24:39 +02:00
marcin mikołajczak
b354d70e85 Apply, suggestions, use strings for actual Mastodon API compatibility
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-30 12:30:03 +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
marcin mikołajczak
5c383ada8a Correctly order rules by id/creation date
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:08:02 +02:00
marcin mikołajczak
d26aadb743 Add tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:06:53 +02:00
marcin mikołajczak
574db5b988 Allow submitting an array of rule_ids to /api/v1/reports
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:06:49 +02:00
marcin mikołajczak
bbf3bc2228 Add RuleTest
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:03:06 +02:00
marcin mikołajczak
384f8bfa78 Instance rules: Use render_many
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:02:40 +02:00
marcin mikołajczak
432599311d Add GET /api/v1/instance/rules
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:02:36 +02:00
marcin mikołajczak
bd52e2aec7 Instance rules
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-05-16 14:02:32 +02:00
lewdthewides
7977dd6ac7 Instruct users to run 'git pull' as the pleroma user 2022-05-12 16:02:58 +00: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
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
Haelwenn
b22843a982 Merge branch 'security/2.4.3' into 'stable'
Release: 2.4.3

See merge request pleroma/pleroma!3662
2022-05-06 08:19:03 +00:00
Haelwenn (lanodan) Monnier
57c486014c Release 2.4.3 2022-05-06 09:01:33 +02:00
Tusooa Zhu
fa3157df96 Skip cache when /objects or /activities is authenticated
Ref: fix-local-public
2022-05-06 08:44:03 +02:00
Tusooa Zhu
4d482b765f Allow to skip cache in Cache plug
Ref: fix-local-public
2022-05-06 08:39:42 +02:00
Ilja
85cbf773f0 update sweet_xml [Security] 2022-05-06 08:36:58 +02:00
marcin mikołajczak
9423052e92 Add "status" notification type
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-04-25 14:08:31 +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
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
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
marcin mikołajczak
ffe081bf44 Use reject_follow_request
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-03-16 19:18:15 +01:00
marcin mikołajczak
6754d1f272 POST /api/v1/accounts/:id/remove_from_followers
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2022-03-16 16:52:33 +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
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
Finn Behrens
7b56690af4 add nixos to supported distros 2022-01-22 09:39:02 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Alex Gleason
3a03d9b65f
Merge remote-tracking branch 'pleroma/develop' into nsfw-api-mrf 2021-06-17 15:38:10 -05:00
Alex Gleason
a704d5499c
NsfwApiPolicy: Fall back more generously when functions don't match 2021-06-17 15:32:42 -05:00
Alex Gleason
c802c3055e
NsfwApiPolicy: add systemd example file 2021-06-17 15:04:40 -05:00
Alex Gleason
b293c14a1b
NsfwApiPolicy: add describe/0 and config_description/0 2021-06-17 14:52:07 -05:00
Alex Gleason
2b3dfbb42f
NsfwApiPolicy: add tests 2021-06-17 14:36:51 -05:00
Alex Gleason
f15d419062
NsfwApiPolicy: raise if can't fetch user 2021-06-16 22:35:09 -05:00
Alex Gleason
718e8e1edb
Create NsfwApiPolicy 2021-06-16 22:35:04 -05: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
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 '07fed0fda2'; commit 'e3173a279d'; commit '21787546c0'; commit 'fda34591ce'; commit '0ada3fe823'; commit '32d263cb90'; commit 'c9e4200ed2'; commit '3ff9c5e2a6'; commit 'fa543a9361'; commit 'c23b81e399' 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
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
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
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
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
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
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
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
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
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
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
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
lain
07bf36142b Resilience Test: Add notification check for killing likes. 2021-01-06 12:49:18 +01:00
lain
a24b2bc38a Resilience Test: Add tests for killing likes. 2021-01-06 12:33:09 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
acf6393c87 SECURITY.md: we don't support 2.0 anymore, bump to 2.1 2020-09-08 20:13:00 +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
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
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
Roman Chvanikov
c56e3d4f3b Add expires_in param for account mutes 2020-09-08 13:26:44 +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
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
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
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
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
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
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
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
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
Mark Felder
899ea2da3e Switch to imagemagick, only support videos 2020-08-25 17:18:22 -05:00
Mark Felder
479578b148 Merge branch 'develop' into feld-2168-media-preview-proxy 2020-08-25 11:57:23 -05:00
Maksim
b267b751d4 Apply 1 suggestion(s) to 1 file(s) 2020-08-25 05:38:25 +00:00
Maksim Pechnikov
14ec12ac95 added tests 2020-08-24 15:01:45 +03: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
Ivan Tashkinov
aa0a5ffb48 [#2497] Media preview proxy: added quality config setting, adjusted width/height defaults. 2020-08-21 08:59:08 +03: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
Maksim Pechnikov
7794d7c694 added Pleroma.Web.PleromaAPI.EmojiFileController 2020-08-19 06:50:20 +03: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
Ivan Tashkinov
f50c653c8d Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-08-12 17:13:01 +03: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
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
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
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
Alex Gleason
e9cff69bce
Add TagPolicy as default MRF, #2010 2020-08-02 12:24:40 -05:00
Ivan Tashkinov
b8021016eb [#2497] Resolved merge conflicts. 2020-07-21 20:03:14 +03: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
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
Ivan Tashkinov
9faa632037 [#2497] Fixed merge issue. 2020-07-05 19:02:43 +03: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
href
39f7fc5b8e Update majic & call plug before OpenApiSpex 2020-06-16 19:00:54 +02:00
href
f124f68205 Switch from gen_magic to majic, use Majic.Plug, remove Pleroma.MIME 2020-06-16 15:27:27 +02:00
href
ec1452fd1c Pleroma.MIME: use gen_magic 2020-06-16 15:15:50 +02:00
Ivan Tashkinov
0e23138b50 [#2497] Specified SHELL in .gitlab-ci.yml as required for exexec. 2020-05-22 10:35:48 +03: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
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
Ivan Tashkinov
978ccf8f97 Merge remote-tracking branch 'remotes/origin/develop' into 2168-media-preview-proxy 2020-05-16 16:14:50 +03: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
Ivan Tashkinov
1b23acf164 [#2497] Media preview proxy for images: fixes, tweaks, refactoring, tests adjustments. 2020-05-11 23:21:53 +03:00
Ivan Tashkinov
bbdad85568 Initial implementation of image preview proxy. Media proxy tests refactoring. 2020-05-08 23:06:47 +03:00
6289 changed files with 169042 additions and 83751 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},
@ -84,6 +83,7 @@
# lanodan: I think PreferImplicitTry should be consistency, and the behaviour seems
# inconsistent, see: https://github.com/rrrene/credo/issues/224
{Credo.Check.Readability.PreferImplicitTry, false},
{Credo.Check.Readability.PipeIntoAnonymousFunctions, exit_status: 0},
{Credo.Check.Readability.RedundantBlankLines},
{Credo.Check.Readability.StringSigils},
{Credo.Check.Readability.TrailingBlankLine},
@ -91,7 +91,7 @@
{Credo.Check.Readability.VariableNames},
{Credo.Check.Readability.Semicolons},
{Credo.Check.Readability.SpaceAfterCommas},
{Credo.Check.Readability.WithSingleClause, exit_status: 0},
{Credo.Check.Refactor.DoubleBooleanNegation},
{Credo.Check.Refactor.CondStatements},
{Credo.Check.Refactor.CyclomaticComplexity},
@ -102,7 +102,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 +130,7 @@
# Custom checks can be created using `mix credo.gen.check`.
#
{Credo.Check.Consistency.FileLocation}
]
}
]

9
.dialyzer_ignore.exs Normal file
View file

@ -0,0 +1,9 @@
[
{"lib/cachex.ex", "Unknown type: Spec.cache/0."},
{"lib/pleroma/web/plugs/rate_limiter.ex", "The pattern can never match the type {:commit, _} | {:ignore, _}."},
{"lib/pleroma/web/plugs/rate_limiter.ex", "Function get_scale/2 will never be called."},
{"lib/pleroma/web/plugs/rate_limiter.ex", "Function initialize_buckets!/1 will never be called."},
{"lib/pleroma/workers/receiver_worker.ex", :call},
{"lib/pleroma/workers/receiver_worker.ex", :pattern_match},
{"lib/pleroma/workers/receiver_worker.ex", :pattern_match_cov},
]

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

20
.gitignore vendored
View file

@ -3,9 +3,10 @@
/db
/deps
/*.ez
/test/instance
/test/uploads
/.elixir_ls
/test/fixtures/DSCN0010_tmp.jpg
/test/fixtures/DSCN0010_tmp*
/test/fixtures/test_tmp.txt
/test/fixtures/image_tmp.jpg
/test/tmp/
@ -27,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
@ -44,9 +48,21 @@ docs/generated_config.md
# Code test coverage
/cover
/Elixir.*.coverdata
/coverage.xml
.idea
pleroma.iml
# asdf
.tool-versions
# Editor temp files
*~
*#
*.swp
archive-*
.gitlab-ci-local
# Test files should be named *.exs
test/pleroma/**/*.ex

View file

@ -1,118 +1,203 @@
image: elixir:1.9.4
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.14.5-otp-25
variables: &global_variables
# Only used for the release
ELIXIR_VER: 1.17.3
POSTGRES_DB: pleroma_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
DB_HOST: postgres
DB_PORT: "5432"
MIX_ENV: test
GIT_STRATEGY: fetch
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
- if: $CI_COMMIT_BRANCH
cache: &global_cache_policy
key: ${CI_COMMIT_REF_SLUG}
key: $CI_JOB_IMAGE-$CI_COMMIT_SHORT_SHA
paths:
- deps
- _build
stages:
- build
- lint
- test
- check-changelog
- benchmark
- deploy
- release
- docker
- docker-combine
before_script:
- apt-get update && apt-get install -y cmake
- mix local.hex --force
- mix local.rebar --force
- echo $MIX_ENV
- rm -rf _build/*/lib/pleroma
- mix deps.get
build:
after_script:
- rm -rf _build/*/lib/pleroma
check-changelog:
stage: check-changelog
image: alpine
rules:
- if: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == 'pleroma/pleroma' && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'weblate-extract'
when: never
- if: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == 'pleroma/pleroma' && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'weblate'
when: never
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"
before_script: ''
after_script: ''
cache: {}
script:
- apk add git
- sh ./tools/check-changelog
.build_changes_policy:
rules:
- changes:
- ".gitlab-ci.yml"
- "**/*.ex"
- "**/*.exs"
- "mix.lock"
.using-ci-base:
tags:
- amd64
build-1.14.5-otp-25:
extends:
- .build_changes_policy
- .using-ci-base
stage: build
script:
- mix deps.get
- mix compile --force
build-1.17.1-otp-26:
extends:
- .build_changes_policy
- .using-ci-base
stage: build
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.17.1-otp-26
script:
- mix compile --force
spec-build:
extends:
- .using-ci-base
stage: build
rules:
- 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:
extends:
- .using-ci-base
stage: benchmark
when: manual
variables:
MIX_ENV: benchmark
services:
- name: postgres:9.6
- name: postgres:11.22-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:
unit-testing-1.14.5-otp-25:
extends:
- .build_changes_policy
- .using-ci-base
stage: test
retry: 2
cache: &testing_cache_policy
<<: *global_cache_policy
policy: pull
services:
- name: postgres:9.6
services: &testing_services
- name: postgres:13-alpine
alias: postgres
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
script:
- apt-get update && apt-get install -y libimage-exiftool-perl
- mix deps.get
script: &testing_script
- mix ecto.create
- mix ecto.migrate
- mix coveralls --preload-modules
- mix pleroma.test_runner --cover --preload-modules
coverage: '/^Line total: ([^ ]*%)$/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
# Removed to fix CI issue. In this early state it wasn't adding much value anyway.
# TODO Fix and reinstate federated testing
# federated-testing:
# stage: test
# cache: *testing_cache_policy
# services:
# - name: minibikini/postgres-with-rum:12
# 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
# - epmd -daemon
# - mix test --trace --only federated
unit-testing-rum:
unit-testing-1.17.1-otp-26:
extends:
- .build_changes_policy
- .using-ci-base
stage: test
retry: 2
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.17.1-otp-26
cache: *testing_cache_policy
services:
- name: minibikini/postgres-with-rum:12
alias: postgres
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
variables:
<<: *global_variables
RUM_ENABLED: "true"
script:
- apt-get update && apt-get install -y libimage-exiftool-perl
services: *testing_services
script: *testing_script
formatting-1.15:
extends: .build_changes_policy
image: &formatting_elixir elixir:1.15-alpine
stage: lint
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
- mix ecto.create
- mix ecto.migrate
- "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
- mix test --preload-modules
lint:
stage: test
cache: *testing_cache_policy
script:
- mix format --check-formatted
cycles-1.15:
extends: .build_changes_policy
image: *formatting_elixir
stage: lint
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")}'
analysis:
stage: test
extends:
- .build_changes_policy
- .using-ci-base
stage: lint
cache: *testing_cache_policy
script:
- mix deps.get
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
dialyzer:
extends:
- .build_changes_policy
- .using-ci-base
stage: lint
allow_failure: true
when: manual
cache: *testing_cache_policy
tags:
- feld
script:
- mix dialyzer
docs-deploy:
stage: deploy
cache: *testing_cache_policy
@ -123,7 +208,7 @@ docs-deploy:
before_script:
- apk add curl
script:
- curl -X POST -F"token=$DOCS_PIPELINE_TRIGGER" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" https://git.pleroma.social/api/v4/projects/673/trigger/pipeline
- curl --fail-with-body -X POST -F"token=$CI_JOB_TOKEN" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" https://git.pleroma.social/api/v4/projects/673/trigger/pipeline
review_app:
image: alpine:3.9
stage: deploy
@ -153,6 +238,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 --fail-with-body -X POST -F"token=$CI_JOB_TOKEN" -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
@ -173,12 +272,15 @@ stop_review_app:
amd64:
stage: release
image: elixir:1.10.3
image:
name: hexpm/elixir-amd64:1.17.3-erlang-26.2.5.6-ubuntu-focal-20241011
only: &release-only
- stable@pleroma/pleroma
- develop@pleroma/pleroma
- /^maint/.*$/@pleroma/pleroma
- /^release/.*$/@pleroma/pleroma
tags:
- amd64
artifacts: &release-artifacts
name: "pleroma-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
paths:
@ -195,9 +297,11 @@ amd64:
- deps
variables: &release-variables
MIX_ENV: prod
VIX_COMPILATION_MODE: PLATFORM_PROVIDED_LIBVIPS
DEBIAN_FRONTEND: noninteractive
before_script: &before-release
- apt-get update && apt-get install -y cmake
- echo "import Mix.Config" > config/prod.secret.exs
- apt-get update && apt-get install -y cmake libmagic-dev libvips-dev erlang-dev git
- echo "import Config" > config/prod.secret.exs
- mix local.hex --force
- mix local.rebar --force
script: &release
@ -211,23 +315,27 @@ amd64-musl:
stage: release
artifacts: *release-artifacts
only: *release-only
image: elixir:1.10.3-alpine
image:
name: hexpm/elixir-amd64:1.17.3-erlang-26.2.5.6-alpine-3.17.9
tags:
- amd64
cache: *release-cache
variables: *release-variables
before_script: &before-release-musl
- apk add git gcc g++ musl-dev make cmake
- echo "import Mix.Config" > config/prod.secret.exs
- apk add git build-base cmake file-dev openssl vips-dev
- echo "import Config" > config/prod.secret.exs
- mix local.hex --force
- mix local.rebar --force
script: *release
arm:
stage: release
allow_failure: true
artifacts: *release-artifacts
only: *release-only
tags:
- arm32
image: elixir:1.10.3
- arm32-specified
image: arm32v7/elixir:$ELIXIR_VER
cache: *release-cache
variables: *release-variables
before_script: *before-release
@ -238,8 +346,8 @@ arm-musl:
artifacts: *release-artifacts
only: *release-only
tags:
- arm32
image: elixir:1.10.3-alpine
- arm32-specified
image: arm32v7/elixir:$ELIXIR_VER-alpine
cache: *release-cache
variables: *release-variables
before_script: *before-release-musl
@ -251,7 +359,8 @@ arm64:
only: *release-only
tags:
- arm
image: elixir:1.10.3
image:
name: hexpm/elixir-arm64:1.17.3-erlang-26.2.5.6-ubuntu-focal-20241011
cache: *release-cache
variables: *release-variables
before_script: *before-release
@ -263,88 +372,174 @@ arm64-musl:
only: *release-only
tags:
- arm
# TODO: Replace with upstream image when 1.9.0 comes out
image: elixir:1.10.3-alpine
image:
name: hexpm/elixir-arm64:1.17.3-erlang-26.2.5.6-alpine-3.17.9
cache: *release-cache
variables: *release-variables
before_script: *before-release-musl
script: *release
docker:
.kaniko:
stage: docker
image: docker:latest
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
cache: {}
dependencies: []
variables: &docker-variables
DOCKER_DRIVER: overlay2
DOCKER_HOST: unix:///var/run/docker.sock
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
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.4.1/buildx-v0.4.1.linux-amd64
DOCKER_BUILDX_HASH: 71a7d01439aa8c165a25b59c44d3f016fddbd98b
before_script: &before-docker
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $IMAGE_TAG_SLUG || true
before_script: &before-kaniko
- export CI_JOB_TIMESTAMP=$(date --utc -Iseconds)
- export CI_VCS_REF=$CI_COMMIT_SHORT_SHA
allow_failure: true
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 -t $IMAGE_TAG_LATEST .
tags:
- dind
- export IMAGE_TAG=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:$CI_COMMIT_SHORT_SHA
- export IMAGE_TAG_SLUG=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:$CI_COMMIT_REF_SLUG
- export IMAGE_TAG_LATEST=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:latest
- export IMAGE_TAG_LATEST_STABLE=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:latest-stable
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
.kaniko-latest:
extends: .kaniko
only:
- develop@pleroma/pleroma
docker-stable:
stage: docker
image: docker:latest
cache: {}
dependencies: []
variables: *docker-variables
before_script: *before-docker
allow_failure: true
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 -t $IMAGE_TAG_LATEST_STABLE .
tags:
- dind
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG --destination $IMAGE_TAG_LATEST
.kaniko-stable:
extends: .kaniko
only:
- stable@pleroma/pleroma
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG --destination $IMAGE_TAG_LATEST_STABLE
docker-release:
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
.kaniko-release:
extends: .kaniko
only:
- /^release/.*$/@pleroma/pleroma
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG
.kaniko-adhoc:
extends: .kaniko
only:
- /^build-docker/.*$/@pleroma/pleroma
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG
.kaniko:linux/amd64:
variables:
BUILD_ARCH: linux/amd64
BUILD_ARCH_IMG_SUFFIX: linux-amd64
ELIXIR_IMG: hexpm/elixir
tags:
- amd64
.kaniko:linux/arm64:
variables:
BUILD_ARCH: linux/arm64/v8
BUILD_ARCH_IMG_SUFFIX: linux-arm64-v8
ELIXIR_IMG: hexpm/elixir
tags:
- arm
.kaniko:linux/arm:
variables:
BUILD_ARCH: linux/arm/v7
BUILD_ARCH_IMG_SUFFIX: linux-arm-v7
ELIXIR_IMG: git.pleroma.social:5050/pleroma/ci-image/elixir-linux-arm-v7
tags:
- arm32-specified
kaniko-latest:linux/amd64:
extends:
- .kaniko-latest
- .kaniko:linux/amd64
kaniko-latest:linux/arm64:
extends:
- .kaniko-latest
- .kaniko:linux/arm64
kaniko-latest:linux/arm:
extends:
- .kaniko-latest
- .kaniko:linux/arm
kaniko-stable:linux/amd64:
extends:
- .kaniko-stable
- .kaniko:linux/amd64
kaniko-stable:linux/arm64:
extends:
- .kaniko-stable
- .kaniko:linux/arm64
kaniko-stable:linux/arm:
extends:
- .kaniko-stable
- .kaniko:linux/arm
kaniko-release:linux/amd64:
extends:
- .kaniko-release
- .kaniko:linux/amd64
kaniko-release:linux/arm64:
extends:
- .kaniko-release
- .kaniko:linux/arm64
kaniko-release:linux/arm:
extends:
- .kaniko-release
- .kaniko:linux/arm
.docker-combine:
stage: docker-combine
image: docker:cli
cache: {}
before_script:
- 'BUILD_ARCHES="linux-amd64 linux-arm64-v8 linux-arm-v7"'
- export IMAGE_TAG=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
- export IMAGE_TAG_SLUG=$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
- export IMAGE_TAG_LATEST=$CI_REGISTRY_IMAGE:latest
- export IMAGE_TAG_LATEST_STABLE=$CI_REGISTRY_IMAGE:latest-stable
- 'IMAGES=; for arch in $BUILD_ARCHES; do IMAGES="$IMAGES $CI_REGISTRY_IMAGE/$arch:$CI_COMMIT_SHORT_SHA"; done'
- 'IMAGES_SLUG=; for arch in $BUILD_ARCHES; do IMAGES_SLUG="$IMAGES_SLUG $CI_REGISTRY_IMAGE/$arch:$CI_COMMIT_REF_SLUG"; done'
- 'IMAGES_LATEST=; for arch in $BUILD_ARCHES; do IMAGES_LATEST="$IMAGES_LATEST $CI_REGISTRY_IMAGE/$arch:latest"; done'
- 'IMAGES_LATEST_STABLE=; for arch in $BUILD_ARCHES; do IMAGES_LATEST_STABLE="$IMAGES_LATEST_STABLE $CI_REGISTRY_IMAGE/$arch:latest"; done'
- mkdir -p ~/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > ~/.docker/config.json
docker-combine:latest:
extends: .docker-combine
only:
- develop@pleroma/pleroma
script:
- 'docker manifest create $IMAGE_TAG $IMAGES'
- 'docker manifest push $IMAGE_TAG'
- 'docker manifest create $IMAGE_TAG_SLUG $IMAGES_SLUG'
- 'docker manifest push $IMAGE_TAG_SLUG'
- 'docker manifest create $IMAGE_TAG_LATEST $IMAGES_LATEST'
- 'docker manifest push $IMAGE_TAG_LATEST'
docker-combine:stable:
extends: .docker-combine
only:
- stable@pleroma/pleroma
script:
- 'docker manifest create $IMAGE_TAG $IMAGES'
- 'docker manifest push $IMAGE_TAG'
- 'docker manifest create $IMAGE_TAG_SLUG $IMAGES_SLUG'
- 'docker manifest push $IMAGE_TAG_SLUG'
- 'docker manifest create $IMAGE_TAG_LATEST_STABLE $IMAGES_LATEST_STABLE'
- 'docker manifest push $IMAGE_TAG_LATEST_STABLE'
docker-combine:release:
extends: .docker-combine
only:
- /^release/.*$/@pleroma/pleroma
script:
- 'docker manifest create $IMAGE_TAG $IMAGES'
- 'docker manifest push $IMAGE_TAG'
- 'docker manifest create $IMAGE_TAG_SLUG $IMAGES_SLUG'
- 'docker manifest push $IMAGE_TAG_SLUG'

View file

@ -0,0 +1,10 @@
### Checklist
- [ ] Adding a changelog: In the `changelog.d` directory, create a file named `<code>.<type>`.
`<code>` can be anything, but we recommend using a more or less unique identifier to avoid collisions, such as the branch name.
`<type>` can be `add`, `change`, `remove`, `fix`, `security` or `skip`. `skip` is only used if there is no user-visible change in the MR (for example, only editing comments in the code). Otherwise, choose a type that corresponds to your change.
In the file, write the changelog entry. For example, if an MR adds group functionality, we can create a file named `group.add` and write `Add group functionality` in it.
If one changelog entry is not enough, you may add more. But that might mean you can split it into two MRs. Only use more than one changelog entry if you really need to (for example, when one change in the code fix two different bugs, or when refactoring).

View file

@ -1,6 +1,8 @@
### Release checklist
* [ ] Bump version in `mix.exs`
* [ ] Compile a changelog
* [ ] Create an MR with an announcement to pleroma.social
* [ ] Tag the release
* [ ] Bump version in `mix.exs`
* [ ] Compile a changelog with the `tools/collect-changelog` script
* [ ] Create an MR with an announcement to pleroma.social
#### post-merge
* [ ] Tag the release on the merge commit
* [ ] Make the tag into a Gitlab 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>

1
.rgignore Normal file
View file

@ -0,0 +1 @@
priv/static

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,786 @@
# 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/).
## 2.9.1
### Security
- Fix authorization checks for C2S Update activities to prevent unauthorized modifications of other users' content.
- Fix content-type spoofing vulnerability that could allow users to upload ActivityPub objects as attachments
- Reject cross-domain redirects when fetching ActivityPub objects to prevent bypassing domain-based security controls.
- Limit emoji shortcodes to alphanumeric, dash, or underscore characters to prevent potential abuse.
- Block attempts to fetch activities from the local instance to prevent spoofing.
- Sanitize Content-Type headers in media proxy to prevent serving malicious ActivityPub content through proxied media.
- Validate Content-Type headers when fetching remote ActivityPub objects to prevent spoofing attacks.
### Changed
- Include `pl-fe` in available frontends
### Fixed
- Remove trailing ` from end of line 75 which caused issues copy-pasting
## 2.9.0
### Security
- Require HTTP signatures (if enabled) for routes used by both C2S and S2S AP API
- Fix several spoofing vectors
### Changed
- Performance: Use 301 (permanent) redirect instead of 302 (temporary) when redirecting small images in media proxy. This allows browsers to cache the redirect response.
### Added
- Include "published" in actor view
- Link to exported outbox/followers/following collections in backup actor.json
- Hashtag following
- Allow to specify post language
### Fixed
- Verify a local Update sent through AP C2S so users can only update their own objects
- Fix Mastodon incoming edits with inlined "likes"
- Allow incoming "Listen" activities
- Fix missing check for domain presence in rich media ignore_host configuration
- Fix Rich Media parsing of TwitterCards/OpenGraph to adhere to the spec and always choose the first image if multiple are provided.
- Fix OpenGraph/TwitterCard meta tag ordering for posts with multiple attachments
- Fix blurhash generation crashes
### Removed
- Retire MRFs DNSRBL, FODirectReply, and QuietReply
## 2.8.0
### Changed
- Metadata: Do not include .atom feed links for remote accounts
- Bumped `fast_html` to v2.3.0, which notably allows to use system-installed lexbor with passing `WITH_SYSTEM_LEXBOR=1` environment variable at build-time
- Dedupe upload filter now uses a three-level sharding directory structure
- Deprecate `/api/v1/pleroma/accounts/:id/subscribe`/`unsubscribe`
- Restrict incoming activities from unknown actors to a subset that does not imply a previous relationship and early rejection of unrecognized activity types.
- Elixir 1.14 and Erlang/OTP 23 is now the minimum supported release
- Support `id` param in `GET /api/v1/statuses`
- LDAP authentication has been refactored to operate as a GenServer process which will maintain an active connection to the LDAP server.
- Fix 'Setting a marker should mark notifications as read'
- Adjust more Oban workers to enforce unique job constraints.
- Oban updated to 2.18.3
- Publisher behavior improvement when snoozing Oban jobs due to Gun connection pool contention.
- Poll results refreshing is handled asynchronously and will not attempt to keep fetching updates to a closed poll.
- Tuning for release builds to lower CPU usage.
- Rich Media preview fetching will skip making an HTTP HEAD request to check a URL for allowed content type and length if the Tesla adapter is Gun or Finch
- Fix nonexisting user will not generate metadata for search engine opt-out
- Update Oban to 2.18
- Worker configuration is no longer available. This only affects custom max_retries values for a couple Oban queues.
### Added
- Add metadata provider for ActivityPub alternate links
- Added support for argon2 passwords and their conversion for migration from Akkoma fork to upstream.
- Respect :restrict_unauthenticated for hashtag rss/atom feeds
- LDAP configuration now permits overriding the CA root certificate file for TLS validation.
- LDAP now supports users changing their passwords
- Include list id in StatusView
- Added MRF.FODirectReply which changes replies to followers-only posts to be direct.
- Add `id_filter` to MRF to filter URLs and their domain prior to fetching
- Added MRF.QuietReply which prevents replies to public posts from being published to the timelines
- Add `group_key` to notifications
- Allow providing avatar/header descriptions
- Added RemoteReportPolicy from Rebased for handling bogus federated reports
- scrubbers/default: Allow "mention hashtag" classes used by Mastodon
- Added dependencies for Swoosh's Mua mail adapter
- Include session scopes in TokenView
### Fixed
- Verify a local Update sent through AP C2S so users can only update their own objects
- Fixed malformed follow requests that cause them to appear stuck pending due to the recipient being unable to process them.
- Fix incoming Block activities being rejected
- STARTTLS certificate and hostname verification for LDAP authentication
- LDAPS connections (implicit TLS) are now supported.
- Fix /api/v2/media returning the wrong status code (202) for media processed synchronously
- Miscellaneous fixes for Meilisearch support
- Fix pleroma_ctl mix task calls sometimes not being found
- Add a rate limiter to the OAuth App creation endpoint and ensure registered apps are assigned to users.
- ReceiverWorker will cancel processing jobs instead of retrying if the user cannot be fetched due to 403, 404, or 410 errors or if the account is disabled locally.
- Address case where instance reachability status couldn't be updated
- Remote Fetcher Worker recognizes more permanent failure errors
- StreamerView: Do not leak follows count if hidden
- Imports of blocks, mutes, and follows would retry repeatedly due to incorrect error handling and all work executed in a single job
- Make vapid_config return empty array, fixing preloading for instances without push notifications configured
### Removed
- Remove stub for /api/v1/accounts/:id/identity_proofs (deprecated by Mastodon 3.5.0)
## 2.7.1
### Changed
- Accept `application/activity+json` for requests to `/.well-known/nodeinfo`
### Fixed
- Truncate remote user fields, avoids them getting rejected
- Improve the `FollowValidator` to successfully incoming activities with an errant `cc` field.
- Resolved edge case where the API can report you are following a user but the relationship is not fully established.
- The Swoosh email adapter for Mailgun was missing a new dependency on `:multipart`
- Fix Mastodon WebSocket authentication
## 2.7.0
### Security
- HTTP Security: By default, don't allow unsafe-eval. The setting needs to be changed to allow Flash emulation.
- Fix webfinger spoofing.
- Use proper workers for fetching pins instead of an ad-hoc task, fixing a potential fetch loop
### Changed
- Update to Phoenix 1.7
- Elixir Logger configuration is now longer permitted through AdminFE and ConfigDB
- Refactor the user backups code and improve test coverage
- Invalid activities delivered to the inbox will be rejected with a 400 Bad Request
- Support Bandit as an alternative to Cowboy for the HTTP server.
- Update Bandit to 1.5.2
- Replace eblurhash with rinpatch_blurhash. This also removes a dependency on ImageMagick.
- Elixir 1.13 is the minimum required version.
- Document maximum supported version of Erlang & Elixir
- Update and extend NetBSD installation docs
- Make `/api/v1/pleroma/federation_status` publicly available
- Increase outgoing federation parallelism
- Change Hackney connection pool timeouts to align with the values Gun uses
- Transmogrifier: handle non-validate errors on incoming Delete activities
- Remote object fetch failures will prevent the object fetch job from retrying if the object request returns 401, 403, 404, 410, or exceeds the maximum thread depth.
- - Change AccountView `last_status_at` from a datetime to a date (as done in Mastodon 3.1.0)
- Improve error logging when LDAP authentication fails.
- Publisher jobs will not retry if the error received is a 400
- PollWorker jobs will not retry if the activity no longer exists.
- Improved detecting unrecoverable errors for incoming federation jobs
- Changed some jobs to return :cancel on unrecoverable errors that should not be retried
- Discard Remote Fetcher jobs which errored due to an MRF rejection.
- Oban queues have refactored to simplify the queue design
- Ensure all Oban jobs have timeouts defined
- Optimistic Inbox reduces the processing overhead of incoming activities without instantly verifiable signatures.
- HTTP connection pool adjustments
- Disable jit by default for PostgreSQL
- Update the documentation for configuring Prometheus metrics.
- Change the prometheus library to PromEx.
- Publisher jobs now store the the activity id instead of inserting duplicate JSON data in the Oban queue for each delivery.
- Activity publishing failures will prevent the job from retrying if the publishing request returns a 403 or 410
- Publisher errors will now emit logs indicating the inbox that was not available for delivery.
- Reduce the reachability timestamp update to a single upsert query
- A 422 error is returned when attempting to reply to a deleted status
- Rich Media backfilling is now an Oban job
- Refactored Rich Media to cache the content in the database. Fetching operations that could block status rendering have been eliminated.
- Set default values on validators for transient objects (attachment, poll options)
- User profile refreshes are now asynchronous
- Change mediaproxy previews to use vips to generate thumbnails instead of ImageMagick
- Render nice web push notifications for polls
- Refactor the Mastodon /api/v1/streaming websocket handler to use Phoenix.Socket.Transport
### Added
- Uploader: Add support for uploading attachments using IPFS
- Add NSFW-detecting MRF
- Add DNSRBL MRF
- Add options to the mix prune_objects task
- Add Anti-mention Spam MRF backported from Rebased
- HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions configuration
- Support /authorize-interaction route used by Mastodon
- Add an option to reject certain domains when authorized fetch is enabled.
- Include following/followers in backups
- Allow to group bookmarks in folders
- Include image description in status media cards
- Implement `/api/v1/accounts/familiar_followers`
- Add support for configuring favicon, embed favicon and PWA manifest in server-generated meta
- Implement FEP-2c59, add "webfinger" to user actor
- Framegrabs with ffmpeg will execute with a 5 second timeout and cache the URLs of failures with a TTL of 15 minutes to prevent excessive retries.
- Added a Mix task "pleroma.config fix_mrf_policies" which will remove erroneous MRF policies from ConfigDB.
- Add ForceMention MRF
- [docs] add frontends management documentation
- Implement group actors
- Add contact account to InstanceView
- Add instance rules
- Implement /api/v2/instance route
- Verify profile link ownership with rel="me"
- Logger metadata is now attached to some logs to help with troubleshooting and analysis
- Add new parameters to /api/v2/instance: configuration[accounts][max_pinned_statuses] and configuration[statuses][characters_reserved_per_url]
- Add meilisearch, make search engines pluggable
- Add missing indexes on foreign key relationships
- Startup detection for configured MRF modules that are missing or incorrectly defined
- Permit passing --chunk and --step values to the Pleroma.Search.Indexer Mix task
- Deleting, Unfavoriting, Unrepeating, or Unreacting will cancel undelivered publishing jobs for the original activity.
- Oban jobs can now be viewed in the Live Dashboard
- Add media proxy to opengraph rich media cards
- Support for Erlang OTP 26
- Prioritize mentioned recipients (i.e., those that are not just followers) when federating.
- PromEx documentation
- Expose nonAnonymous field from Smithereen polls
- Add Qdrant/OpenAI embedding search
- Adds the capability to add a URL to a scrobble (optional field)
- scrubbers/default: Add more formatting elements from HTML4 / GoToSocial (acronym, bdo, big, cite, dfn, ins, kbd, q, samp, s, tt, var, wbr)
- Monitoring of search backend health to control the processing of jobs in the search indexing Oban queue
- Display reposted replies with exclude_replies: true
- Add "status" notification type
- Support honk-style attachment summaries as alt-text.
### Fixed
- Fix Emoji object IDs not always being valid
- Remove checking ImageMagick's commands for Pleroma.Upload.Filter.AnalyzeMetadata
- Ensure that StripLocation actually removes everything resembling GPS data from PNGs
- Fix authentication check on account rendering when bio is defined
- ap userview: add outbox field.
- Fix #strip_report_status_data
- Fix federation with Convergence AP Bridge
- ChatMessage: Tolerate attachment field set to an empty array
- Config: Check the permissions of the linked file instead of the symlink
- MediaProxy was setting the content-length header which is not permitted by RFC9112§6.2 when we are chunking the reply as it conflicts with the existence of the transfer-encoding header.
- Restore Cowboy's ability to stream MediaProxy responses without Chunked encoding.
- Fix the processing of email digest jobs.
- Client application data was always missing from the status
- Elixir 1.15 compatibility
- When downloading remote emojis packs, account for pagination
- Make remote emoji packs API use specifically the V1 URL. Akkoma does not understand it without V1, and it works either way with normal pleroma, so no reason to not do this
- Following HTTP Redirects when the HTTP Adapter is Finch
- Video framegrabs were not working correctly after the change to use Exile to execute ffmpeg
- Deactivated groups would still try to repeat a post.
- Fix logic error in Gun connection pooling which prevented retries even when the worker was launched with retry = true
- Connection pool errors when publishing an activity is a soft-error that will be retried shortly.
- Gun Connection Pool was not retrying to acquire a connection if the pool was full and stale connections were reclaimed
- TwitterAPI: Return proper error when healthcheck is disabled
- Handle cases when users.inbox is nil.
- Fix LDAP support
- Use correct domain for fqn and InstanceView
- The query for marking notifications as read has been simplified
- Mastodon API /api/v1/directory: Fix listing directory contents when not authenticated
- Ensure MediaProxy HTTP requests obey all the defined connection settings
- Fix a memory leak caused by Websocket connections that would not enter a state where a full garbage collection run could be triggered.
- Fix OpenGraph and Twitter metadata providers when parsing objects with no content or summary fields.
- MRF: Log sensible error for subdomains_regex
- MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one
- Federated timeline removal of hashtags via MRF HashtagPolicy
- Support objects with a null contentMap (firefish)
- Fix notifications query which was not using the index properly
- Notifications: improve performance by filtering on users table instead of activities table
- Prevent Rich Media backfill jobs from retrying in cases where it is likely they will fail again.
- Oban Jobs for refreshing users were not respecting the uniqueness setting
- Fix Optimistic Inbox for failed signatures
- MediaProxy Preview failures prevented when encountering certain video files
- pleroma_ctl: Use realpath(1) instead of readlink(1)
- ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …}
- Harden Rich Media parsing against very slow or malicious URLs
- Rich Media Preview cache eviction when the activity is updated.
- Parsing of RichMedia TTLs for Amazon URLs when query parameters are nil
- End of poll notifications were not streamed over websockets or web push
- Fix eblurhash and elixir-captcha not using system cflags
- Video thumbnails were not being generated due to a negative cache lookup logic error
- Fix web push notifications not successfully delivering
- Web Push notifications are no longer generated for muted/blocked threads and users.
- Fix validate_webfinger when running a different domain for Webfinger
### Removed
- Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint https://github.com/mastodon/mastodon/pull/11213
- Removed support for multiple federator modules as we only support ActivityPub
## 2.6.2
### Security
- MRF StealEmojiPolicy: Sanitize shortcodes (thanks to Hazel K for the report
## 2.6.1
### Changed
- - Document maximum supported version of Erlang & Elixir
### Added
- [docs] add frontends management documentation
### Fixed
- TwitterAPI: Return proper error when healthcheck is disabled
- Fix eblurhash and elixir-captcha not using system cflags
## 2.6.0
### Security
- Preload: Make generated JSON html-safe. It already was html safe because it only consists of config data that is base64 encoded, but this will keep it safe it that ever changes.
- CommonAPI: Prevent users from accessing media of other users by creating a status with reused attachment ID
- Disable XML entity resolution completely to fix a dos vulnerability
### Added
- Support for Image activities, namely from Hubzilla
- Add OAuth scope descriptions
- Allow lang attribute in status text
- OnlyMedia Upload Filter
- Implement MRF policy to reject or delist according to emojis
- (hardening) Add no_new_privs=yes to OpenRC service files
- Implement quotes
- Add unified streaming endpoint
### Fixed
- rel="me" was missing its cache
- MediaProxy responses now return a sandbox CSP header
- Filter context activities using Visibility.visible_for_user?
- UploadedMedia: Add missing disposition_type to Content-Disposition
- fix not being able to fetch flash file from remote instance
- Fix abnormal behaviour when refetching a poll
- Allow non-HTTP(s) URIs in "url" fields for compatibility with "FEP-fffd: Proxy Objects"
- Fix opengraph and twitter card meta tags
- ForceMentionsInContent: fix double mentions for Mastodon/Misskey posts
- OEmbed HTML tags are now filtered
- Restrict attachments to only uploaded files only
- Fix error 404 when deleting status of a banned user
- Fix config ownership in dockerfile to pass restriction test
- Fix user fetch completely broken if featured collection is not in a supported form
- Correctly handle the situation when a poll has both "anyOf" and "oneOf" but one of them being empty
- Fix handling report from a deactivated user
- Prevent using the .json format to bypass authorized fetch mode
- Fix mentioning punycode domains when using Markdown
- Show more informative errors when profile exceeds char limits
### Removed
- BREAKING: Support for passwords generated with `crypt(3)` (Gnu Social migration artifact)
- remove BBS/SSH feature, replaced by an external bridge.
- Remove a few unused indexes.
- Cleanup OStatus-era user upgrades and ap_enabled indicator
- Deprecate Pleroma's audio scrobbling
## 2.5.4
## Security
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitrary files from the server's filesystem
## 2.5.3
### Security
- Emoji pack loader sanitizes pack names
- Reduced permissions of config files and directories, distros requiring greater permissions like group-read need to pre-create the directories
## 2.5.5
## Security
- Prevent users from accessing media of other users by creating a status with reused attachment ID
## 2.5.4
## Security
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitrary files from the server's filesystem
## 2.5.3
### Security
- Emoji pack loader sanitizes pack names
- Reduced permissions of config files and directories, distros requiring greater permissions like group-read need to pre-create the directories
## 2.5.2
### Security
- `/proxy` endpoint now sets a Content-Security-Policy (sandbox)
- WebSocket endpoint now respects unauthenticated restrictions for streams of public posts
- OEmbed HTML tags are now filtered
### Changed
- docs: Be more explicit about the level of compatibility of OTP releases
- Set default background worker timeout to 15 minutes
### Fixed
- Atom/RSS formatting (HTML truncation, published, missing summary)
- Remove `static_fe` pipeline for `/users/:nickname/feed`
- Stop oban from retrying if validating errors occur when processing incoming data
- Make sure object refetching as used by already received polls follows MRF rules
### Removed
- BREAKING: Support for passwords generated with `crypt(3)` (Gnu Social migration artifact)
## 2.5.1
### Added
- Allow customizing instance languages
### Fixed
- Security: uploading HTTP endpoint can no longer create directories in the upload dir (internal APIs, like backup, still can do it.)
- ~ character in urls in Markdown posts are handled properly
- Exiftool upload filter will now ignore SVG files
- Fix `block_from_stranger` setting
- Fix rel="me"
- Docker images will now run properly
- Fix improper content being cached in report content
- Notification filter on object content will not operate on the ones that inherently have no content
- ZWNJ and double dots in links are parsed properly for Plain-text posts
- OTP releases will work on systems with a newer libcrypt
- Errors when running Exiftool.ReadDescription filter will not be filled into the image description
## 2.5.0 - 2022-12-23
### Removed
- MastoFE
- Quack, the logging backend that pushes to Slack channels
### Changed
- **Breaking:** Elixir >=1.11 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+
- Set timeout values for Oban queues. The default is infinity and some operations may not time out on their own.
- Delete activities are federated at lowest priority
- CSP now includes wasm-unsafe-eval
### 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
- 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.
- Add fine grained options to provide privileges to moderators and admins (e.g. delete messages, manage reports...)
- 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
- Possibility to discover users like `user@example.org`, while Pleroma is working on `pleroma.example.org`. Additional configuration required.
### 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 useless notification call on Delete activities
- Improved performance for filtering out deactivated and invisible users
- RSS and Atom feeds for users work again
- TwitterCard meta tags conformance
## 2.4.5 - 2022-11-27
## Fixed
- Image `class` attributes not being scrubbed, allowing to exploit frontend special classes [!3792](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3792)
- Delete report notifs when demoting from superuser [!3642](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3642)
- Validate `mediaType` only by it's format rather than using a list [!3597](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3597)
- Pagination: Make mutes and blocks lists behave the same as other lists [!3693](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3693)
- Compatibility with Elixir 1.14 [!3740](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3740)
- Frontend installer: FediFE build URL [!3736](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3736)
- Streaming: Don't stream ChatMessage into the home timeline [!3738](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3738)
- Streaming: Stream local-only posts in the local timeline [!3738](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3738)
- Signatures: Fix `keyId` lookup for GoToSocial [!3725](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3725)
- Validator: Fix `replies` handling for GoToSocial [!3725](https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3725)
## 2.4.4 - 2022-08-19
### Security
- Streaming API sessions will now properly disconnect if the corresponding token is revoked
## 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
@ -18,6 +796,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### 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
@ -270,11 +1054,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Static-FE: Fix remote posts not being sanitized
### Fixed
=======
- Rate limiter crashes when there is no explicitly specified ip in the config
- 500 errors when no `Accept` header is present if Static-FE is enabled
- Instance panel not being updated immediately due to wrong `Cache-Control` headers
- Statuses posted with BBCode/Markdown having unncessary newlines in Pleroma-FE
- Statuses posted with BBCode/Markdown having unnecessary newlines in Pleroma-FE
- OTP: Fix some settings not being migrated to in-database config properly
- No `Cache-Control` headers on attachment/media proxy requests
- Character limit enforcement being off by 1
@ -594,10 +1377,10 @@ curl -Lo ./bin/pleroma_ctl 'https://git.pleroma.social/pleroma/pleroma/raw/devel
- Reverse Proxy limiting `max_body_length` was incorrectly defined and only checked `Content-Length` headers which may not be sufficient in some circumstances
### Added
- Expiring/ephemeral activites. All activities can have expires_at value set, which controls when they should be deleted automatically.
- Expiring/ephemeral activities. All activities can have expires_at value set, which controls when they should be deleted automatically.
- Mastodon API: in post_status, the expires_in parameter lets you set the number of seconds until an activity expires. It must be at least one hour.
- Mastodon API: all status JSON responses contain a `pleroma.expires_at` item which states when an activity will expire. The value is only shown to the user who created the activity. To everyone else it's empty.
- Configuration: `ActivityExpiration.enabled` controls whether expired activites will get deleted at the appropriate time. Enabled by default.
- Configuration: `ActivityExpiration.enabled` controls whether expired activities will get deleted at the appropriate time. Enabled by default.
- Conversations: Add Pleroma-specific conversation endpoints and status posting extensions. Run the `bump_all_conversations` task again to create the necessary data.
- MRF: Support for priming the mediaproxy cache (`Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`)
- MRF: Support for excluding specific domains from Transparency.

11
COPYING
View file

@ -1,10 +1,17 @@
Unless otherwise stated this repository is copyright © 2017-2020
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-2020 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,25 @@
FROM elixir:1.9-alpine as build
# https://hub.docker.com/r/hexpm/elixir/tags
ARG ELIXIR_IMG=hexpm/elixir
ARG ELIXIR_VER=1.14.5
ARG ERLANG_VER=25.3.2.14
ARG ALPINE_VER=3.17.9
FROM ${ELIXIR_IMG}:${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER} as build
COPY . .
ENV MIX_ENV=prod
ENV VIX_COMPILATION_MODE=PLATFORM_PROVIDED_LIBVIPS
RUN apk add git gcc g++ musl-dev make cmake &&\
echo "import Mix.Config" > config/prod.secret.exs &&\
RUN apk add git gcc g++ musl-dev make cmake file-dev vips-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.11
FROM alpine:${ALPINE_VER}
ARG BUILD_DATE
ARG VCS_REF
@ -31,9 +38,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 exiftool imagemagick ncurses postgresql-client &&\
RUN apk update &&\
apk add exiftool ffmpeg vips libmagic ncurses postgresql-client &&\
adduser --system --shell /bin/false --home ${HOME} pleroma &&\
mkdir -p ${DATA}/uploads &&\
mkdir -p ${DATA}/static &&\
@ -45,7 +51,7 @@ USER pleroma
COPY --from=build --chown=pleroma:0 /release ${HOME}
COPY ./config/docker.exs /etc/pleroma/config.exs
COPY --chown=pleroma --chmod=640 ./config/docker.exs /etc/pleroma/config.exs
COPY ./docker-entrypoint.sh ${HOME}
EXPOSE 4000

View file

@ -18,22 +18,27 @@ 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), [NixOS](https://nixos.org), [Gentoo through GURU](https://gentoo.org/) and [Archlinux through AUR](https://aur.archlinux.org/packages/pleroma). You may find more at <https://repology.org/project/pleroma/versions>.
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:
@ -49,5 +54,5 @@ If you are not developing Pleroma, it is better to use the OTP release, which co
- 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)

View file

@ -6,7 +6,7 @@ Currently, Pleroma offers bugfixes and security patches only for the latest mino
| Version | Support
|---------| --------
| 2.0 | Bugfixes and security patches
| 2.2 | Bugfixes and security patches
## Reporting a vulnerability

View file

@ -299,7 +299,7 @@ defmodule Pleroma.LoadTesting.Activities do
"url" => [
%{
"href" =>
"#{Pleroma.Web.base_url()}/media/b1b873552422a07bf53af01f3c231c841db4dfc42c35efde681abaf0f2a4eab7.jpg",
"#{Pleroma.Web.Endpoint.url()}/media/b1b873552422a07bf53af01f3c231c841db4dfc42c35efde681abaf0f2a4eab7.jpg",
"mediaType" => "image/jpeg",
"type" => "Link"
}
@ -394,7 +394,7 @@ defmodule Pleroma.LoadTesting.Activities do
defp other_data(actor, content) do
%{host: host} = URI.parse(actor.ap_id)
datetime = DateTime.utc_now()
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()}"

View file

@ -33,10 +33,11 @@ defmodule Pleroma.LoadTesting.Fetcher do
end
defp create_filter(user) do
Pleroma.Filter.create(%Pleroma.Filter{
Pleroma.Filter.create(%{
user_id: user.id,
phrase: "must be filtered",
hide: true
hide: true,
context: ["home"]
})
end

View file

@ -55,7 +55,7 @@ defmodule Pleroma.LoadTesting.Users do
name: "Test テスト User #{i}",
email: "user#{i}@example.com",
nickname: "nick#{i}",
password_hash: Pbkdf2.hash_pwd_salt("test"),
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt("test"),
bio: "Tester Number #{i}",
local: !remote
}
@ -109,8 +109,8 @@ defmodule Pleroma.LoadTesting.Users do
end
def make_friends(%User{} = main_user, %User{} = user) do
{:ok, _} = User.follow(main_user, user)
{:ok, _} = User.follow(user, main_user)
{:ok, _, _} = User.follow(main_user, user)
{:ok, _, _} = User.follow(user, main_user)
end
@spec get_users(User.t(), keyword()) :: [User.t()]

View file

@ -1,10 +1,22 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.Benchmark do
import Mix.Pleroma
@shortdoc "Benchmarks"
@moduledoc """
Benchmark tasks available:
adapters
render_timeline
search
tag
MIX_ENV=benchmark mix pleroma.benchmark adapters
"""
use Mix.Task
import Mix.Pleroma
def run(["search"]) do
start_pleroma()
@ -63,7 +75,7 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
Benchee.run(
%{
"Standart rendering" => fn activities ->
"Standard rendering" => fn activities ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: activities,
for: user,
@ -91,20 +103,17 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
"Without conn and without pool" => fn ->
{:ok, %Tesla.Env{}} =
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [],
adapter: [pool: :no_pool, receive_conn: false]
pool: :no_pool,
receive_conn: false
)
end,
"Without conn and with pool" => fn ->
{:ok, %Tesla.Env{}} =
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [],
adapter: [receive_conn: false]
)
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [], receive_conn: false)
end,
"With reused conn and without pool" => fn ->
{:ok, %Tesla.Env{}} =
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [],
adapter: [pool: :no_pool]
)
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [], pool: :no_pool)
end,
"With reused conn and with pool" => fn ->
{:ok, %Tesla.Env{}} = Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500")

View file

@ -99,15 +99,16 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do
|> Enum.map(&String.downcase(&1))
_activities =
params
|> Map.put(:type, "Create")
|> Map.put(:local_only, local_only)
|> Map.put(:blocking_user, user)
|> Map.put(:muting_user, user)
|> Map.put(:user, user)
|> Map.put(:tag, tags)
|> Map.put(:tag_all, tag_all)
|> Map.put(:tag_reject, tag_reject)
%{
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

@ -17,14 +17,14 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Timelines do
# Let the user make 100 posts
1..100
|> Enum.each(fn i -> CommonAPI.post(user, %{"status" => to_string(i)}) end)
|> 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" => "."})
{:ok, activity} = CommonAPI.post(random_user, %{status: "."})
activity
end)
@ -42,7 +42,7 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Timelines do
|> Conn.assign(:user, reading_user)
|> Conn.assign(:skip_link_headers, true)
Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{"id" => user.id})
Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{id: user.id})
end
},
inputs: %{"user" => user, "no user" => nil},
@ -60,7 +60,7 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Timelines do
|> Conn.assign(:user, reading_user)
|> Conn.assign(:skip_link_headers, true)
Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{"id" => user.id})
Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{id: user.id})
end
},
inputs: %{"user" => user, "no user" => nil},

View file

@ -0,0 +1 @@
Add new activity actor/type index. Greatly speeds up retrieval of rare types (like "Listen")

View file

@ -0,0 +1 @@
Support Mitra-style emoji likes.

View file

@ -0,0 +1 @@
Set PATH in the FreeBSD rc script to avoid failures starting the service

View file

@ -0,0 +1 @@
Improved performance of status search queries using the default GIN index

View file

@ -0,0 +1 @@
Implement language detection with fastText

1
changelog.d/releases.fix Normal file
View file

@ -0,0 +1 @@
Fix release builds

View file

@ -0,0 +1 @@
Add `base_urls` to the /api/v1/instance pleroma metadata which provides information about the base URLs for media_proxy and uploads when configured

View file

@ -0,0 +1 @@
Support translation providers (DeepL, LibreTranslate)

View file

@ -0,0 +1 @@
Truncate the length of Rich Media title and description fields

0
changelog.d/typos.skip Normal file
View file

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
```

View file

@ -0,0 +1,8 @@
FROM elixir:1.14.5-otp-25
# 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

View file

@ -0,0 +1 @@
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.14.5-otp-25 --push .

View file

@ -0,0 +1,8 @@
FROM elixir:1.15.8-otp-26
# 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

View file

@ -0,0 +1 @@
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.15.8-otp-26 --push .

View file

@ -0,0 +1,8 @@
FROM elixir:1.16.3-otp-26
# 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

View file

@ -0,0 +1 @@
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.16.3-otp-26 --push .

View file

@ -0,0 +1,8 @@
FROM elixir:1.17.1-otp-26
# 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

View file

@ -0,0 +1 @@
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.17.1-otp-26 --push .

View file

@ -0,0 +1,3 @@
FROM postgres:13-bullseye
RUN apt-get update && apt-get install -y postgresql-13-rum/bullseye-pgdg

View file

@ -0,0 +1 @@
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/postgres-with-rum-13: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,
@ -15,7 +14,7 @@ config :pleroma, Pleroma.Captcha,
method: Pleroma.Captcha.Mock
# Print only warnings and errors during test
config :logger, level: :warn
config :logger, level: :warning
config :pleroma, :auth, oauth_consumer_strategies: []
@ -41,10 +40,11 @@ config :pleroma, Pleroma.Repo,
password: "postgres",
database: "pleroma_benchmark",
hostname: System.get_env("DB_HOST") || "localhost",
port: System.get_env("DB_PORT") || "5432",
pool_size: 10
# Reduce hash rounds for testing
config :pbkdf2_elixir, rounds: 1
config :pleroma, :password, iterations: 1
config :tesla, adapter: Tesla.Mock
@ -59,8 +59,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, Pleroma.ScheduledActivity,
daily_user_limit: 2,
total_user_limit: 3,
@ -81,6 +79,10 @@ IO.puts("RUM enabled: #{rum_enabled}")
config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock
config :pleroma, Pleroma.Application,
background_migrators: false,
streamer_registry: false
if File.exists?("./config/benchmark.secret.exs") do
import_config "benchmark.secret.exs"
else

View file

@ -37,19 +37,18 @@
# 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
migration_lock: :pg_advisory_lock
config :pleroma, Pleroma.Captcha,
enabled: true,
@ -64,23 +63,29 @@ config :pleroma, Pleroma.Upload,
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
default_description: nil,
base_url: nil,
allowed_mime_types: ["image", "audio", "video"]
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, Pleroma.Uploaders.IPFS,
post_gateway_url: "http://localhost:5001",
get_gateway_url: "http://localhost:8080"
config :pleroma, :emoji,
shortcode_globs: ["/emoji/custom/**/*.png"],
@ -110,67 +115,46 @@ config :pleroma, :uri_schemes,
"xmpp"
]
websocket_config = [
path: "/websocket",
serializer: [
{Phoenix.Socket.V1.JSONSerializer, "~> 1.0.0"},
{Phoenix.Socket.V2.JSONSerializer, "~> 2.0.0"}
],
timeout: 60_000,
transport_log: false,
compress: false
]
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
instrumenters: [Pleroma.Web.Endpoint.Instrumenter],
url: [host: "localhost"],
http: [
ip: {127, 0, 0, 1},
dispatch: [
{:_,
[
{"/api/v1/streaming", Pleroma.Web.MastodonAPI.WebsocketHandler, []},
{"/websocket", Phoenix.Endpoint.CowboyWebSocket,
{Phoenix.Transports.WebSocket,
{Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, websocket_config}}},
{:_, Phoenix.Endpoint.Cowboy2Handler, {Pleroma.Web.Endpoint, []}}
]}
]
ip: {127, 0, 0, 1}
],
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"
]
# Configures Elixir's Logger
config :logger, backends: [:console]
config :logger, :console,
level: :debug,
format: "\n$time $metadata[$level] $message\n",
metadata: [:request_id]
metadata: [:actor, :path, :type, :user]
config :logger, :ex_syslogger,
level: :debug,
ident: "pleroma",
format: "$metadata[$level] $message",
metadata: [:request_id]
config :quack,
level: :warn,
meta: [:all],
webhook_url: "https://hooks.slack.com/services/YOUR-KEY-HERE"
metadata: [:actor, :path, :type, :user]
config :mime, :types, %{
"application/xml" => ["xml"],
"application/xrd+xml" => ["xrd+xml"],
"application/jrd+json" => ["jrd+json"],
"application/activity+json" => ["activity+json"],
"application/ld+json" => ["activity+json"]
"application/ld+json" => ["activity+json"],
# Can be removed when bumping MIME past 2.0.5
# see https://akkoma.dev/AkkomaGang/akkoma/issues/657
"image/apng" => ["apng"]
}
config :tesla, adapter: Tesla.Adapter.Hackney
@ -187,11 +171,12 @@ config :pleroma, :instance,
email: "example@example.com",
notify_email: "noreply@example.com",
description: "Pleroma: An efficient and flexible fediverse server",
short_description: "",
background_image: "/images/city.jpg",
instance_thumbnail: "/instance/thumbnail.jpeg",
favicon: "/favicon.png",
limit: 5_000,
description_limit: 5_000,
chat_limit: 5_000,
remote_limit: 100_000,
upload_limit: 16_000_000,
avatar_upload_limit: 2_000_000,
@ -210,13 +195,10 @@ config :pleroma, :instance,
federating: true,
federation_incoming_replies_max_depth: 100,
federation_reachability_timeout_days: 7,
federation_publisher_modules: [
Pleroma.Web.ActivityPub.Publisher
],
allow_relay: true,
public: true,
quarantined_instances: [],
managed_config: true,
rejected_instances: [],
static_dir: "instance/static/",
allowed_post_formats: [
"text/plain",
@ -225,9 +207,11 @@ config :pleroma, :instance,
"text/bbcode"
],
autofollowed_nicknames: [],
autofollowing_nicknames: [],
max_pinned_statuses: 1,
attachment_links: false,
max_report_comment_size: 1000,
report_strip_status: true,
safe_dm_mentions: false,
healthcheck: false,
remote_post_retention_days: 90,
@ -254,7 +238,30 @@ config :pleroma, :instance,
length: 16
]
],
show_reactions: true
show_reactions: true,
password_reset_token_validity: 60 * 60 * 24,
profile_directory: true,
admin_privileges: [
:users_read,
:users_manage_invites,
:users_manage_activation_state,
:users_manage_tags,
:users_manage_credentials,
:users_delete,
:messages_read,
:messages_delete,
:instances_delete,
:reports_manage_reports,
:moderation_log_read,
:announcements_manage_announcements,
:emoji_manage_emoji,
:statistics_read
],
moderator_privileges: [:messages_delete, :reports_manage_reports],
max_endorsed_users: 20,
birthday_required: false,
birthday_min_age: 0,
max_media_attachments: 1_000
config :pleroma, :welcome,
direct_message: [
@ -306,7 +313,7 @@ config :pleroma, :frontend_configurations,
hideSitename: false,
hideUserStats: false,
loginMethod: "password",
logo: "/static/logo.png",
logo: "/static/logo.svg",
logoMargin: ".1em",
logoMask: true,
minimalScopesMode: false,
@ -322,9 +329,6 @@ config :pleroma, :frontend_configurations,
subjectLineBehavior: "email",
theme: "pleroma-dark",
webPushNotifications: false
},
masto_fe: %{
showInstanceSpecificPanel: true
}
config :pleroma, :assets,
@ -343,8 +347,10 @@ config :pleroma, :assets,
config :pleroma, :manifest,
icons: [
%{
src: "/static/logo.png",
type: "image/png"
src: "/static/logo.svg",
sizes: "512x512",
purpose: "any",
type: "image/svg+xml"
}
],
theme_color: "#282c37",
@ -353,10 +359,12 @@ 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,
authorized_fetch_mode: false
authorized_fetch_mode: false,
client_api_enabled: false
config :pleroma, :streamer,
workers: 3,
@ -391,6 +399,17 @@ config :pleroma, :mrf_keyword,
federated_timeline_removal: [],
replace: []
config :pleroma, :mrf_emoji,
remove_url: [],
remove_shortcode: [],
federated_timeline_removal_url: [],
federated_timeline_removal_shortcode: []
config :pleroma, :mrf_hashtag,
sensitive: ["nsfw"],
reject: [],
federated_timeline_removal: []
config :pleroma, :mrf_subchain, match_actor: %{}
config :pleroma, :mrf_activity_expiration, days: 365
@ -404,6 +423,28 @@ config :pleroma, :mrf_object_age,
threshold: 604_800,
actions: [:delist, :strip_followers]
config :pleroma, :mrf_nsfw_api,
url: "http://127.0.0.1:5000/",
threshold: 0.7,
mark_sensitive: true,
unlist: false,
reject: false
config :pleroma, :mrf_follow_bot, follower_nickname: nil
config :pleroma, :mrf_inline_quote, template: "<bdi>RT:</bdi> {url}"
config :pleroma, :mrf_remote_report,
reject_all: false,
reject_anonymous: true,
reject_empty_message: true
config :pleroma, :mrf_force_mention,
mention_parent: true,
mention_quoted: true
config :pleroma, :mrf_antimentionspam, user_age_limit: 30_000
config :pleroma, :rich_media,
enabled: true,
ignore_hosts: [],
@ -412,8 +453,12 @@ config :pleroma, :rich_media,
Pleroma.Web.RichMedia.Parsers.TwitterCard,
Pleroma.Web.RichMedia.Parsers.OEmbed
],
failure_backoff: 60_000,
ttl_setters: [Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl]
timeout: 5_000,
ttl_setters: [
Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl,
Pleroma.Web.RichMedia.Parser.TTL.Opengraph
],
max_body: 5_000_000
config :pleroma, :media_proxy,
enabled: false,
@ -424,6 +469,8 @@ config :pleroma, :media_proxy,
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
@ -436,11 +483,23 @@ config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http,
headers: [],
options: []
config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script, script_path: nil
config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script,
script_path: nil,
url_format: nil
config :pleroma, :chat, enabled: true
# 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 :phoenix, :format_encoders, json: Jason
config :pleroma, :shout,
enabled: true,
limit: 5_000
config :phoenix, :format_encoders, json: Jason, "activity+json": Jason
config :phoenix, :json_library, Jason
@ -468,7 +527,8 @@ config :pleroma, :http_security,
sts: false,
sts_max_age: 31_536_000,
ct_max_age: 2_592_000,
referrer_policy: "same-origin"
referrer_policy: "same-origin",
allow_unsafe_eval: false
config :cors_plug,
max_age: 86_400,
@ -525,35 +585,25 @@ config :pleroma, Pleroma.User,
],
email_blacklist: []
# The Pruner :max_age must be longer than Worker :unique
# value or it cannot enforce uniqueness.
config :pleroma, Oban,
repo: Pleroma.Repo,
log: false,
queues: [
activity_expiration: 10,
federator_incoming: 50,
federator_outgoing: 50,
web_push: 50,
mailer: 10,
transmogrifier: 20,
scheduled_activities: 10,
background: 5,
remote_fetcher: 2,
attachments_cleanup: 5,
new_users_digest: 1
],
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}
]
config :pleroma, :workers,
retries: [
federator_incoming: 5,
federator_outgoing: 5
federator_outgoing: 25,
web_push: 50,
background: 20,
search_indexing: [limit: 10, paused: true],
slow: 5
],
plugins: [{Oban.Plugins.Pruner, max_age: 900}],
crontab: [
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker},
{"*/10 * * * *", Pleroma.Workers.Cron.AppCleanupWorker}
]
config :pleroma, Pleroma.Formatter,
@ -567,17 +617,17 @@ config :pleroma, Pleroma.Formatter,
config :pleroma, :ldap,
enabled: System.get_env("LDAP_ENABLED") == "true",
host: System.get_env("LDAP_HOST") || "localhost",
port: String.to_integer(System.get_env("LDAP_PORT") || "389"),
host: System.get_env("LDAP_HOST", "localhost"),
port: String.to_integer(System.get_env("LDAP_PORT", "389")),
ssl: System.get_env("LDAP_SSL") == "true",
sslopts: [],
tls: System.get_env("LDAP_TLS") == "true",
tlsopts: [],
base: System.get_env("LDAP_BASE") || "dc=example,dc=com",
uid: System.get_env("LDAP_UID") || "cn"
config :esshd,
enabled: false
base: System.get_env("LDAP_BASE", "dc=example,dc=com"),
uid: System.get_env("LDAP_UID", "cn"),
# defaults to CAStore's Mozilla roots
cacertfile: System.get_env("LDAP_CACERTFILE", nil),
mail: System.get_env("LDAP_MAIL", "mail")
oauth_consumer_strategies =
System.get_env("OAUTH_CONSUMER_STRATEGIES")
@ -597,10 +647,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
@ -617,7 +664,26 @@ config :pleroma, Pleroma.Emails.UserEmail,
config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: false
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics"
config :pleroma, Pleroma.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
drop_metrics_groups: [],
grafana: [
host: System.get_env("GRAFANA_HOST", "http://localhost:3000"),
auth_token: System.get_env("GRAFANA_TOKEN"),
upload_dashboards_on_start: false,
folder_name: "BEAM",
annotate_app_lifecycle: true
],
metrics_server: [
port: 4021,
path: "/metrics",
protocol: :http,
pool_size: 5,
cowboy_opts: [],
auth_strategy: :none
],
datasource: "Prometheus"
config :pleroma, Pleroma.ScheduledActivity,
daily_user_limit: 25,
@ -632,12 +698,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,
@ -648,6 +720,7 @@ config :pleroma, :rate_limit,
timeline: {500, 3},
search: [{1000, 10}, {1000, 30}],
app_account_creation: {1_800_000, 25},
oauth_app_creation: {900_000, 5},
relations_actions: {10_000, 10},
relation_id_action: {60_000, 2},
statuses_actions: {10_000, 15},
@ -656,9 +729,20 @@ 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
@ -670,7 +754,7 @@ config :pleroma, :static_fe, enabled: false
# With no frontend configuration, the bundled files from the `static` directory will
# be used.
#
# config :pleroma, :frontends,
# config :pleroma, :frontends,
# primary: %{"name" => "pleroma-fe", "ref" => "develop"},
# admin: %{"name" => "admin-fe", "ref" => "stable"},
# available: %{...}
@ -695,8 +779,11 @@ config :pleroma, :frontends,
"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",
"ref" => "master"
"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",
@ -705,13 +792,28 @@ config :pleroma, :frontends,
"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",
"soapbox" => %{
"name" => "soapbox",
"git" => "https://gitlab.com/soapbox-pub/soapbox",
"build_url" =>
"https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/${ref}/download?job=build-production",
"ref" => "v1.0.0",
"https://gitlab.com/soapbox-pub/soapbox/-/jobs/artifacts/${ref}/download?job=build-production",
"ref" => "v3.0.0-beta.1",
"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"
},
"pl-fe" => %{
"name" => "pl-fe",
"git" => "https://github.com/mkljczk/pl-fe",
"build_url" => "https://pl.mkljczk.pl/pl-fe.zip",
"ref" => "develop",
"build_dir" => "."
}
}
@ -724,7 +826,7 @@ config :pleroma, :modules, runtime_dir: "instance/modules"
config :pleroma, configurable_from_database: false
config :pleroma, Pleroma.Repo,
parameters: [gin_fuzzy_search_limit: "500"],
parameters: [gin_fuzzy_search_limit: "500", jit: "off"],
prepare: :unnamed
config :pleroma, :connections_pool,
@ -734,44 +836,55 @@ config :pleroma, :connections_pool,
max_connections: 250,
max_idle_time: 30_000,
retry: 0,
await_up_timeout: 5_000
connect_timeout: 5_000
config :pleroma, :pools,
federation: [
size: 50,
max_waiting: 10,
timeout: 10_000
size: 75,
max_waiting: 20,
recv_timeout: 10_000
],
media: [
size: 50,
max_waiting: 10,
timeout: 10_000
size: 75,
max_waiting: 20,
recv_timeout: 15_000
],
rich_media: [
size: 25,
max_waiting: 20,
recv_timeout: 15_000
],
upload: [
size: 25,
max_waiting: 5,
timeout: 15_000
max_waiting: 20,
recv_timeout: 15_000
],
default: [
size: 10,
size: 50,
max_waiting: 2,
timeout: 5_000
recv_timeout: 5_000
]
config :pleroma, :hackney_pools,
federation: [
max_connections: 50,
timeout: 150_000
timeout: 10_000
],
media: [
max_connections: 50,
timeout: 150_000
timeout: 15_000
],
rich_media: [
max_connections: 50,
timeout: 15_000
],
upload: [
max_connections: 25,
timeout: 300_000
timeout: 15_000
]
config :pleroma, :majic_pool, size: 2
private_instance? = :if_instance_is_private
config :pleroma, :restrict_unauthenticated,
@ -782,7 +895,11 @@ config :pleroma, :restrict_unauthenticated,
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: false
config :pleroma, :mrf,
policies: Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy,
policies: [
Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy,
Pleroma.Web.ActivityPub.MRF.TagPolicy,
Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy
],
transparency: true,
transparency_exclusions: []
@ -790,12 +907,56 @@ 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,
process_chunk_size: 100,
timeout: :timer.minutes(30)
config :pleroma, ConcurrentLimiter, [
{Pleroma.Search, [max_running: 30, max_waiting: 50]}
]
config :pleroma, Pleroma.Web.WebFinger, domain: nil, update_nickname_on_user_fetch: true
config :pleroma, Pleroma.Search, module: Pleroma.Search.DatabaseSearch
config :pleroma, Pleroma.Search.Meilisearch,
url: "http://127.0.0.1:7700/",
private_key: nil,
initial_indexing_chunk_size: 100_000
config :pleroma, Pleroma.Application,
background_migrators: true,
internal_fetch: true,
load_custom_modules: true,
max_restarts: 3,
streamer_registry: true
config :pleroma, Pleroma.Uploaders.Uploader, timeout: 30_000
config :pleroma, Pleroma.Search.QdrantSearch,
qdrant_url: "http://127.0.0.1:6333/",
qdrant_api_key: "",
openai_url: "http://127.0.0.1:11345",
# The healthcheck url has to be set to nil when used with the real openai
# API, as it doesn't have a healthcheck endpoint.
openai_healthcheck_url: "http://127.0.0.1:11345/health",
openai_model: "snowflake/snowflake-arctic-embed-xs",
openai_api_key: "",
qdrant_index_configuration: %{
vectors: %{size: 384, distance: "Cosine"}
}
# 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.
@ -8,8 +8,7 @@ use Mix.Config
# with brunch.io to recompile .js and .css sources.
config :pleroma, Pleroma.Web.Endpoint,
http: [
port: 4000,
protocol_options: [max_request_line_length: 8192, max_header_value_length: 8192]
port: 4000
],
protocol: "http",
debug_errors: true,
@ -36,8 +35,8 @@ config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Local
# configured to run both http and https servers on
# different ports.
# Do not include metadata nor timestamps in development logs
config :logger, :console, format: "[$level] $message\n"
# Do not include timestamps in development logs
config :logger, Logger.Backends.Console, format: "$metadata[$level] $message\n"
# Set a higher stacktrace during development. Avoid configuring such
# in production as building large stacktraces may be expensive.
@ -54,10 +53,15 @@ config :pleroma, Pleroma.Repo,
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

@ -18,6 +18,7 @@ config :pleroma, Pleroma.Repo,
password: System.fetch_env!("DB_PASS"),
database: System.get_env("DB_NAME", "pleroma"),
hostname: System.get_env("DB_HOST", "db"),
port: System.get_env("DB_PORT", "5432"),
pool_size: 10
# Configure web push notifications

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,
@ -20,6 +20,7 @@ config :pleroma, Pleroma.Web.Endpoint,
config :phoenix, serve_endpoints: true
# Do not print debug messages in production
config :logger, Logger.Backends.Console, level: :info
config :logger, :console, level: :info
config :logger, :ex_syslogger, level: :info
@ -63,7 +64,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.
@ -16,7 +16,7 @@ config :pleroma, Pleroma.Captcha,
# Print only warnings and errors during test
config :logger, :console,
level: :warn,
level: :warning,
format: "\n[$level] $message\n"
config :pleroma, :auth, oauth_consumer_strategies: []
@ -38,7 +38,10 @@ 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,
client_api_enabled: true
# Configure your database
config :pleroma, Pleroma.Repo,
@ -47,17 +50,23 @@ config :pleroma, Pleroma.Repo,
password: "postgres",
database: "pleroma_test",
hostname: System.get_env("DB_HOST") || "localhost",
pool: Ecto.Adapters.SQL.Sandbox
port: System.get_env("DB_PORT") || "5432",
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: System.schedulers_online() * 2,
log: false
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
config :pleroma, :rich_media,
enabled: false,
ignore_hosts: [],
ignore_tld: ["local", "localdomain", "lan"]
ignore_tld: ["local", "localdomain", "lan"],
max_body: 2_000_000
config :pleroma, :instance,
multi_factor_authentication: [
@ -78,12 +87,7 @@ 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, Oban,
queues: false,
crontab: false,
plugins: false
config :pleroma, Oban, testing: :manual
config :pleroma, Pleroma.ScheduledActivity,
daily_user_limit: 2,
@ -110,21 +114,93 @@ 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 :pleroma, :instances_favicons, enabled: false
config :pleroma, Pleroma.Uploaders.S3,
bucket: nil,
streaming_enabled: true,
public_endpoint: nil
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, Pleroma.Web.WebFinger, update_nickname_on_user_fetch: false
config :pleroma, :side_effects,
ap_streamer: Pleroma.Web.ActivityPub.ActivityPubMock,
logger: Pleroma.LoggerMock
config :pleroma, Pleroma.Search, module: Pleroma.Search.DatabaseSearch
config :pleroma, Pleroma.Search.Meilisearch, url: "http://127.0.0.1:7700/", private_key: nil
# Reduce recompilation time
# https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects
config :phoenix, :plug_init_mode, :runtime
config :pleroma, :config_impl, Pleroma.UnstubbedConfigMock
config :pleroma, :datetime_impl, Pleroma.DateTimeMock
config :pleroma, Pleroma.PromEx, disabled: true
# Mox definitions. Only read during compile time.
config :pleroma, Pleroma.User.Backup, config_impl: Pleroma.UnstubbedConfigMock
config :pleroma, Pleroma.Uploaders.S3, ex_aws_impl: Pleroma.Uploaders.S3.ExAwsMock
config :pleroma, Pleroma.Uploaders.S3, config_impl: Pleroma.UnstubbedConfigMock
config :pleroma, Pleroma.Upload, config_impl: Pleroma.UnstubbedConfigMock
config :pleroma, Pleroma.Language.LanguageDetector, config_impl: Pleroma.StaticStubbedConfigMock
config :pleroma, Pleroma.ScheduledActivity, config_impl: Pleroma.UnstubbedConfigMock
config :pleroma, Pleroma.Web.RichMedia.Helpers, config_impl: Pleroma.StaticStubbedConfigMock
config :pleroma, Pleroma.Uploaders.IPFS, config_impl: Pleroma.UnstubbedConfigMock
config :pleroma, Pleroma.Web.Plugs.HTTPSecurityPlug, config_impl: Pleroma.StaticStubbedConfigMock
config :pleroma, Pleroma.Web.Plugs.HTTPSignaturePlug, config_impl: Pleroma.StaticStubbedConfigMock
config :pleroma, Pleroma.Upload.Filter.AnonymizeFilename,
config_impl: Pleroma.StaticStubbedConfigMock
config :pleroma, Pleroma.Upload.Filter.Mogrify, config_impl: Pleroma.StaticStubbedConfigMock
config :pleroma, Pleroma.Upload.Filter.Mogrify, mogrify_impl: Pleroma.MogrifyMock
config :pleroma, Pleroma.Signature, http_signatures_impl: Pleroma.StubbedHTTPSignaturesMock
peer_module =
if String.to_integer(System.otp_release()) >= 25 do
:peer
else
:slave
end
config :pleroma, Pleroma.Cluster, peer_module: peer_module
config :pleroma, Pleroma.Application,
background_migrators: false,
internal_fetch: false,
load_custom_modules: false,
max_restarts: 100,
streamer_registry: false,
test_http_pools: true
config :pleroma, Pleroma.Web.Streaming, sync_streaming: true
config :pleroma, Pleroma.Uploaders.Uploader, timeout: 1_000
config :pleroma, Pleroma.Emoji.Loader, test_emoji: true
config :pleroma, Pleroma.Web.RichMedia.Backfill,
stream_out: Pleroma.Web.ActivityPub.ActivityPubMock
config :pleroma, Pleroma.Web.Plugs.HTTPSecurityPlug, enable: false
config :pleroma, Pleroma.User.Backup, tempdir: "test/tmp"
if File.exists?("./config/test.secret.exs") do
import_config "test.secret.exs"
else

View file

@ -1,6 +1,7 @@
{
"skip_files": [
"test/support",
"lib/mix/tasks/pleroma/benchmark.ex"
"lib/mix/tasks/pleroma/benchmark.ex",
"lib/credo/check/consistency/file_location.ex"
]
}

View file

@ -3,7 +3,7 @@
set -e
echo "-- Waiting for database..."
while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:5432/${DB_NAME:-pleroma} -t 1; do
while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma} -t 1; do
sleep 1s
done

File diff suppressed because it is too large Load diff

View file

@ -1,290 +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 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.
## 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.
- `parent_visible`: If the parent of this post is visible to the user or not.
## 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`
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 chat. 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/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 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`.
- `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`). 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 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/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
- `pleroma_background_image` - sets the background image of the user. Can be set to "" (an empty string) to reset.
- `discoverable` - if true, discovery of this account in search results and other services is allowed.
- `actor_type` - the type of this account.
- `accepts_chat_messages` - if false, this account will reject all chat messages.
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`
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 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.
## 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
## Markers
Has these additional fields under the `pleroma` object:
- `unread_count`: contains number unread notifications
## 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.
## 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, `[]`
### Endorsements
*Added in Mastodon 2.5.0*
- `GET /api/v1/endorsements`: Returns an empty array, `[]`
### Profile directory
*Added in Mastodon 3.0.0*
- `GET /api/v1/directory`: Returns HTTP 404
### Featured tags
*Added in Mastodon 3.0.0*
- `GET /api/v1/featured_tags`: Returns HTTP 404

View file

@ -1,572 +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", "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 `{"enabled": "false", "totp": false }`
## `/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/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:
* `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/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)
## `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/pleroma/emoji/packs/import`
### Imports packs from filesystem
* Method `GET`
* Authentication: required
* Params: None
* Response: JSON, returns a list of imported packs.
## `GET /api/pleroma/emoji/packs/remote`
### Make request to another instance for packs list
* Method `GET`
* Authentication: required
* Params:
* `url`: url of the instance to get packs from
* Response: JSON with the pack list, hashmap with pack name and pack contents
## `POST /api/pleroma/emoji/packs/download`
### Download pack from another instance
* Method `POST`
* Authentication: required
* 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/pleroma/emoji/packs/:name`
### Creates an empty pack
* Method `POST`
* Authentication: required
* Params: None
* Response: JSON, "ok" and 200 status or 409 if the pack with that name already exists
## `PATCH /api/pleroma/emoji/packs/:name`
### Updates (replaces) pack metadata
* Method `PATCH`
* Authentication: required
* Params:
* `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/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/files`
### Add new file to the pack
* Method `POST`
* Authentication: required
* Params:
* `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/pleroma/emoji/packs/:name/files`
### Update emoji file from pack
* Method `PATCH`
* Authentication: required
* Params:
* `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/pleroma/emoji/packs/:name/files`
### Delete emoji file from pack
* Method `DELETE`
* Authentication: required
* Params:
* `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/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/pleroma/emoji/packs/: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": {...}
}
```
## `GET /api/pleroma/emoji/packs/:name/archive`
### Requests a local pack archive 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. 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 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

@ -1,4 +1,4 @@
# Transfering the config to/from the database
# Transferring the config to/from the database
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
@ -32,14 +32,141 @@
config :pleroma, configurable_from_database: false
```
To delete transfered settings from database optional flag `-d` can be used. `<env>` is `prod` by default.
Options:
- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non-standard 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
=== "OTP"
```sh
./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d]
./bin/pleroma_ctl config migrate_from_db [--env=<env>] [-d] [--path=<path>]
```
=== "From Source"
```sh
mix pleroma.config migrate_from_db [--env=<env>] [-d]
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
```
## Remove invalid MRF modules from the database
This forcibly removes any enabled MRF that does not exist and will fix the ability of the instance to start.
=== "OTP"
```sh
./bin/pleroma_ctl config fix_mrf_policies
```
=== "From Source"
```sh
mix pleroma.config fix_mrf_policies
```

View file

@ -21,16 +21,18 @@ Replaces embedded objects with references to them in the `objects` table. Only n
mix pleroma.database remove_embedded_objects [option ...]
```
### Options
- `--vacuum` - run `VACUUM FULL` after the embedded objects are replaced with their references
## Prune old remote posts from the database
This will prune remote posts older than 90 days (configurable with [`config :pleroma, :instance, remote_post_retention_days`](../../configuration/cheatsheet.md#instance)) from the database, they will be refetched from source when accessed.
This will prune remote posts older than 90 days (configurable with [`config :pleroma, :instance, remote_post_retention_days`](../../configuration/cheatsheet.md#instance)) from the database. Pruned posts may be refetched in some cases.
!!! note
The disk space will only be reclaimed after a proper vacuum. By default Postgresql does this for you on a regular basis, but if your instance has been running for a long time and there are many rows deleted, it may be advantageous to use `VACUUM FULL` (e.g. by using the `--vacuum` option).
!!! 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.
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. Vacuum causes a substantial increase in I/O traffic, and may lead to a degraded experience while it is running.
=== "OTP"
@ -45,7 +47,11 @@ This will prune remote posts older than 90 days (configurable with [`config :ple
```
### Options
- `--vacuum` - run `VACUUM FULL` after the objects are pruned
- `--keep-threads` - Don't prune posts when they are part of a thread where at least one post has seen local interaction (e.g. one of the posts is a local post, or is favourited by a local user, or has been repeated by a local user...). It also won't delete posts when at least one of the posts in that thread is kept (e.g. because one of the posts has seen recent activity).
- `--keep-non-public` - Keep non-public posts like DM's and followers-only, even if they are remote.
- `--prune-orphaned-activities` - Also prune orphaned activities afterwards. Activities are things like Like, Create, Announce, Flag (aka reports). They can significantly help reduce the database size. Note: this can take a very long time.
- `--vacuum` - Run `VACUUM FULL` after the objects are pruned. This should not be used on a regular basis, but is useful if your instance has been running for a long time before pruning.
## Create a conversation for all existing DMs
@ -93,6 +99,9 @@ Can be safely re-run
## Vacuum the database
!!! note
By default Postgresql has an autovacuum deamon running. While the tasks described here can help in some cases, they shouldn't be needed on a regular basis. See [the Postgresql docs on vacuuming](https://www.postgresql.org/docs/current/sql-vacuum.html) for more information on this.
### Analyze
Running an `analyze` vacuum job can improve performance by updating statistics used by the query planner. **It is safe to cancel this.**
@ -141,3 +150,21 @@ but should only be run if necessary. **It is safe to cancel this.**
```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

@ -1,4 +1,4 @@
# Managing emails
# EMail administration tasks
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
@ -16,8 +16,7 @@
mix pleroma.email test [--to <destination email address>]
```
Example:
Example:
=== "OTP"
@ -30,3 +29,17 @@ Example:
```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

@ -1,17 +1,28 @@
# Managing frontends
`mix pleroma.frontend install <frontend> [--ref <ref>] [--file <file>] [--build-url <build-url>] [--path <path>] [--build-dir <build-dir>]`
=== "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 like, but missing information will be filled out by looking at the data configured under `frontends.available` in the config files.
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:
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)
- [soapbox](https://gitlab.com/soapbox-pub/soapbox)
You can still install frontends that are not configured, see below.
@ -19,51 +30,67 @@ You can still install frontends that are not configured, see below.
For a frontend configured under the `available` key, it's enough to install it by name.
```sh tab="OTP"
./bin/pleroma_ctl frontend install pleroma
```
=== "OTP"
```sh tab="From Source"
mix pleroma.frontend install pleroma
```
```sh
./bin/pleroma_ctl frontend install pleroma
```
This will download the latest build for the 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`).
=== "From Source"
You can override any of the details. To install a pleroma build from a different url, you could do this:
```sh
mix pleroma.frontend install pleroma
```
```sh tab="OPT"
./bin/pleroma_ctl frontend install pleroma --ref 2hu_edition --build-url https://example.org/raymoo.zip
```
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`).
```sh tab="From Source"
mix pleroma.frontend install pleroma --ref 2hu_edition --build-url https://example.org/raymoo.zip
```
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.
```sh tab="OTP"
./bin/pleroma_ctl frontend install pleroma --ref mybuild --file ~/Downloads/doomfe.zip
```
=== "OTP"
```sh tab="From Source"
mix pleroma.frontend install pleroma --ref mybuild --file ~/Downloads/doomfe.zip
```
```sh
./bin/pleroma_ctl 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}`
=== "From Source"
Careful: This folder will be completely replaced on installation
```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 commond line. For example:
The installation process is the same, but you will have to give all the needed options on the command line. For example:
```sh tab="OTP"
./bin/pleroma_ctl frontend install gensokyo --ref master --build-url https://gensokyo.2hu/builds/marisa.zip
```
=== "OTP"
```sh tab="From Source"
mix pleroma.frontend install gensokyo --ref master --build-url https://gensokyo.2hu/builds/marisa.zip
```
```sh
./bin/pleroma_ctl 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}`
=== "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

@ -37,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

@ -133,22 +133,20 @@
mix pleroma.user sign_out <nickname>
```
## Deactivate or activate a user
## Activate a user
=== "OTP"
```sh
./bin/pleroma_ctl user toggle_activated <nickname>
./bin/pleroma_ctl user activate NICKNAME
```
=== "From Source"
```sh
mix pleroma.user toggle_activated <nickname>
mix pleroma.user activate NICKNAME
```
## Deactivate a user and unsubscribes local users from the user
=== "OTP"
@ -224,9 +222,10 @@
```
### 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
@ -263,11 +262,41 @@
=== "OTP"
```sh
./bin/pleroma_ctl user toggle_confirmed <nickname>
./bin/pleroma_ctl user confirm <nickname>
```
=== "From Source"
```sh
mix pleroma.user toggle_confirmed <nickname>
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,20 +5,25 @@
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. Run `sudo -Hu postgres vacuumdb --all --analyze-in-stages`. This will quickly generate the statistics so that postgres can properly plan queries.
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.
@ -26,11 +31,11 @@
1. Optionally you can remove the users of your instance. This will trigger delete requests for their accounts and posts. Note that this is 'best effort' and doesn't mean that all traces of your instance will be gone from the fediverse.
* You can do this from the admin-FE where you can select all local users and delete the accounts using the *Moderate multiple users* dropdown.
* You can also list local users and delete them individualy using the CLI tasks for [Managing users](./CLI_tasks/user.md).
* You can also list local users and delete them individually using the CLI tasks for [Managing users](./CLI_tasks/user.md).
2. Stop the Pleroma service `systemctl stop pleroma`
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

@ -0,0 +1,71 @@
# Managing installed frontends
Pleroma lets you install multiple frontends including multiple versions of same frontend. Right now it's only possible to switch which frontend is the default, but in the future it would be possible for user to select which frontend they prefer to use.
As of 2.6.0 there are two ways of managing frontends - through PleromaFE's Admin Dashboard (preferred, easier method) or through AdminFE (clunky but also works on versions older than 2.6.0).
!!! note
Managing frontends through UI requires [in-database configuration](../configuration/howto_database_config.md) to be enabled (default on newer instances but might be off on older ones).
## How it works
When installing frontends, it creates a folder in [static directory](../configuration/static_dir.md) that follows this pattern: `/frontends/${front-end name}/${front-end version}/`, puts contents of the built frontend in there. Then when accessing the server backend checks what front-end name and version are set to be default and serves index.html and assets from appropriate path.
!!! warning
If you've been putting your frontend build directly into static dir as an antiquated way of serving custom frontend, this system will not work and will still serve the custom index.html you put in there. You can still serve custom frontend builds if you put your build into `/frontends/$name/$version` instead and set the "default frontend" fields appropriately.
Currently, there is no backup system, i.e. when installing `master` version it _will_ overwrite installed `master` version, for now if you want to keep previous version you should back it up manually, i.e. running `cp -r ./frontends/pleroma-fe/master ./frontends/pleroma-fe/master_old` in your static dir.
## Managing front-ends through Admin Dashboard
Open up Admin Dashboard (gauge icon in top bar, same as where link to AdminFE was),__
![location of Admin Dashboard icon](../assets/admin_dash_location.png)
switch to "Front-ends" tab.
![screenshot of Front-ends tab](../assets/frontends_tab.png)
This page is designed to be self-explanatory and easy to use, while avoiding issues and pitfalls of AdminFE, but it's also early in development, everything is subject to change.
!!! warning
This goes without saying, but if you set default frontend to anything except >2.6.0 version of PleromaFE you'll lose the access to Admin Dashboard and will have to use AdminFE to get it back. See below on how to use AdminFE.
### Limitations
Currently the list of available for install frontends is essentially hard-coded in backend's configuration, each providing only one version, with exception for PleromaFE which overrides 'pleroma-fe' to also include `develop` version. There is no way to manually install build with a URL (coming soon) nor add more available frontends to the repository (it's broken).
There is also no way to tell if there is an update available or not, for now you should watch for [announcements](https://pleroma.social/announcements/) of new PleromaFE stable releases to see if there is new stable version. For `develop` version it's up to you whether you want to follow the development process or just reinstall it periodically hoping for new stuff.
## Using AdminFE to manage frontends
Access AdminFE either directly by going to `/pleroma/admin` of your instance or by opening Admin Dashboard and clicking the link at the bottom of the window
![link to open old AdminFE](../assets/old_adminfe_link.png)
Go to Settings -> Frontend.
### Installing front-ends
At the very top of the page there's a list of available frontends and button to install custom front-end
!!! tip
Remember to click "Submit" in bottom right corner to save your changes!
!!! bug
**Available Frontends** section lets you _install_ frontends but **NOT** update/reinstall them. It's only useful for installing a frontend once.
Due to aforementioned bug, preferred way of installing frontends in AdminFE is by clicking the "Install another frontend"
![screenshot of admin-fe with instructions on how to install a frontend](../assets/way_to_install_frontends.png)
and filling in the fields. Unfortunately AdminFE does not provide the raw data necessary for you to fill those fields, so your best bet is to see what backend returns in browser's devtools or refer to the [source code](https://git.pleroma.social/pleroma/pleroma/-/blob/develop/config/config.exs?ref_type=heads#L742-791). For the most part, only **Name**, **Ref** (i.e. version) and **Build URL** fields are required, although some frontends might also require **Build Directory** to work.
For pleroma-fe you can use either `master` or `develop` refs, or potentially any ref in GitLab that has artifacts for `build` job, but that's outside scope of this document.
### Selecting default frontend
Scroll page waaaaay down, search for "Frontends" section, subtitled "Installed frontends management", change the name and reference of the "Primary" frontend.
![screenshot of admin-fe with instructions on how to install a frontend](../assets/primary_frontend_section.png)
!!! danger
If you change "Admin" frontend name/reference you risk losing access to AdminFE as well.
!!! warning
Don't put anything into the "Available" section as it will break the list of available frontends completely, including the "add another frontend" button. If you accidentally put something in there, click the trashbin icon next to "Available" to reset it and restore the frontends list.

View file

@ -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 checkout <tagged release>` [^1]. e.g. `git checkout v2.4.5` This pulls the [tagged release](https://git.pleroma.social/pleroma/pleroma/-/releases) 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,35 +0,0 @@
# ChatMessages
ChatMessages 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.
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`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View file

@ -3,101 +3,110 @@ Note: Additional clients may be working but theses are officially supporting Ple
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
### 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)
- Contact: [@whalebird@pleroma.io](https://pleroma.io/users/whalebird)
- Platforms: Windows, Mac, Linux
- Features: Streaming Ready
- Features: MastoAPI, Streaming Ready
### Fedistar
- Homepage: <https://fedistar.net>
- Source Code: <https://github.com/h3poteto/fedistar>
- Contact: [@fedistar@pleroma.io](https://pleroma.io/users/fedistar)
- Platforms: Windows, Mac, Linux
- 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
### Husky
- Source code: <https://git.mentality.rip/FWGS/Husky>
- Contact: [@Husky@enigmatic.observer](https://enigmatic.observer/users/Husky)
- Platforms: Android
- Features: No Streaming, Emoji Reactions, Text Formatting, FE Stickers
- Features: MastoAPI, No Streaming, Emoji Reactions, Text Formatting, FE Stickers
### Fedi
- Homepage: <https://www.fediapp.com/>
- Source Code: Proprietary, but gratis
- Platforms: iOS, Android
- Features: Pleroma-specific features like Reactions
- 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/>
- Contact: <me@mariotaku.org>
- Platform: Android
- Features: No Streaming
- Features: MastoAPI, No Streaming
### Indigenous
- Homepage: <https://indigenous.realize.be/>
- Source Code: <https://github.com/swentel/indigenous-android/>
- Contact: [@realize.be@realize.be](@realize.be@realize.be)
- Contact: [@swentel@realize.be](https://realize.be)
- Platforms: Android
- Features: No Streaming
- 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
- 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)
- Features: MastoAPI
### DashFE
- Source Code: <https://notabug.org/daisuke/DashboardFE>
@ -107,3 +116,10 @@ Feel free to contact us to be added to this list!
- 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,18 +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.
## :chat
## :shout
* `enabled` - Enables the backend chat. Defaults to `true`.
* `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).
* `discription_limit`: The character limit for image descriptions.
* `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.
@ -37,19 +38,21 @@ To add configuration to your config file, you can copy it from the base config.
* `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.
* `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`: 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``.
* `quarantined_instances`: ActivityPub instances where private (DMs, followers-only) activities will not be send.
* `rejected_instances`: ActivityPub instances to reject requests from if authorized_fetch_mode is enabled.
* `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`).
* `report_strip_status`: Strip associated statuses in reports to ids when closed/resolved, otherwise keep a copy.
* `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``.
* `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`).
@ -63,6 +66,44 @@ To add configuration to your config file, you can copy it from the base config.
* `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).
* `admin_privileges`: A list of privileges an admin has (e.g. delete messages, manage reports...)
* Possible values are:
* `:users_read`
* Allows admins to fetch users through the admin API.
* `:users_manage_invites`
* Allows admins to manage invites. This includes sending, resending, revoking and approving invites.
* `:users_manage_activation_state`
* Allows admins to activate and deactivate accounts. This also allows them to see deactivated users through the Mastodon API.
* `:users_manage_tags`
* Allows admins to set and remove tags for users. This can be useful in combination with MRF policies, such as `Pleroma.Web.ActivityPub.MRF.TagPolicy`.
* `:users_manage_credentials`
* Allows admins to trigger a password reset and set new credentials for an user.
* `:users_delete`
* Allows admins to delete accounts. Note that deleting an account is actually deactivating it and removing all data like posts, profile information, etc.
* `:messages_read`
* Allows admins to read messages through the admin API, including non-public posts and chats.
* `:messages_delete`
* Allows admins to delete messages from other users.
* `:instances_delete,`
* Allows admins to remove a whole remote instance from your instance. This will delete all users and messages from that remote instance.
* `:reports_manage_reports`
* Allows admins to see and manage reports.
* `:moderation_log_read,`
* Allows admins to read the entries in the moderation log.
* `:emoji_manage_emoji`
* Allows admins to manage custom emoji on the instance.
* `:statistics_read,`
* Allows admins to see some simple statistics about the instance.
* `moderator_privileges`: A list of privileges a moderator has (e.g. delete messages, manage reports...)
* Possible values are the same as for `admin_privileges`
## :features
* `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.
@ -114,7 +155,15 @@ 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)).
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.ActivityExpiration` to be enabled for processing the scheduled delections.
* `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 deletions.
* `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.
* `Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy`: Forces quote post URLs to be reflected in the message content inline.
* `Pleroma.Web.ActivityPub.MRF.QuoteToLinkTagPolicy`: Force a Link tag for posts quoting another post. (may break outgoing federation of quote posts with older Pleroma versions).
* `Pleroma.Web.ActivityPub.MRF.ForceMention`: Forces posts to include a mention of the author of parent post or the author of quoted post.
* `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.
@ -125,15 +174,16 @@ To add configuration to your config file, you can copy it from the base config.
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.
* `followers_only`: List of instances to decrease post visibility to only the followers, including for DM mentions.
* `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.
@ -189,7 +239,7 @@ config :pleroma, :mrf_user_allowlist, %{
e.g., A value of 900 results in any post with a timestamp older than 15 minutes will be acted upon.
* `actions`: A list of actions to apply to the post:
* `:delist` removes the post from public timelines
* `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines
* `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines, additionally for followers-only it degrades to a direct message
* `:reject` rejects the message entirely
#### :mrf_steal_emoji
@ -201,12 +251,41 @@ config :pleroma, :mrf_user_allowlist, %{
* `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.
#### :mrf_emoji
* `remove_url`: A list of patterns which result in emoji whose URL matches being removed from the message. This will apply to statuses, emoji reactions, and user profiles. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
* `remove_shortcode`: A list of patterns which result in emoji whose shortcode matches being removed from the message. This will apply to statuses, emoji reactions, and user profiles. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
* `federated_timeline_removal_url`: A list of patterns which result in message with emojis whose URLs match being removed from federated timelines (a.k.a unlisted). This will apply only to statuses. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
* `federated_timeline_removal_shortcode`: A list of patterns which result in message with emojis whose shortcodes match being removed from federated timelines (a.k.a unlisted). This will apply only to statuses. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
#### :mrf_inline_quote
* `template`: The template to append to the post. `{url}` will be replaced with the actual link to the quoted post. Default: `<bdi>RT:</bdi> {url}`
#### :mrf_force_mention
* `mention_parent`: Whether to append mention of parent post author
* `mention_quoted`: Whether to append mention of parent quoted author
### :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
* `authorized_fetch_mode_exceptions`: List of IPs (CIDR format accepted) to exempt from HTTP Signatures requirement (for example to allow debugging, you shouldn't otherwise need this)
## Pleroma.User
@ -219,19 +298,11 @@ config :pleroma, :mrf_user_allowlist, %{
* `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
Enables the worker which processes posts scheduled for deletion. Pinned posts are exempt from expiration.
* `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:
@ -240,10 +311,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.
@ -314,14 +382,23 @@ This section describe PWA manifest instance-specific values. Currently this opti
* `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 pass to script as arguments.
Urls of attachments are passed to the script as arguments.
* `script_path`: path to external script.
* `script_path`: Path to the external script.
* `url_format`: Set to `:htcacheclean` if using Apache's htcacheclean utility.
Example:
@ -359,7 +436,7 @@ config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http,
* `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.
* `timeout`: Amount of milliseconds after which the HTTP request is forcibly terminated.
## HTTP server
@ -397,26 +474,27 @@ This will make Pleroma listen on `127.0.0.1` port `8080` and generate urls start
* ``ct_max_age``: The maximum age for the `Expect-CT` header if sent.
* ``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.
* `allow_unsafe_eval`: Adds `wasm-unsafe-eval` to the CSP header. Needed for some non-essential frontend features like Flash emulation.
### 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:
@ -436,7 +514,7 @@ config :pleroma, :rate_limit,
Means that:
1. In 60 seconds, 15 authentication attempts can be performed from the same IP address.
2. In 1 second, 10 search requests can be performed from the same IP adress by unauthenticated users, while authenticated users can perform 30 search requests per second.
2. In 1 second, 10 search requests can be performed from the same IP address by unauthenticated users, while authenticated users can perform 30 search requests per second.
Supported rate limiters:
@ -496,7 +574,7 @@ 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.
* `:await_up_timeout` - Timeout to connect to the host.
* `: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
@ -515,7 +593,7 @@ There are four pools used:
For each pool, the options are:
* `:size` - limit to how much requests can be concurrently executed.
* `:timeout` - timeout while `gun` will wait for response
* `: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
@ -547,7 +625,7 @@ the source code is here: [kocaptcha](https://github.com/koto-bank/kocaptcha). Th
* `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.
@ -568,10 +646,7 @@ 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
@ -589,6 +664,19 @@ config :ex_aws, :s3,
host: "s3.eu-central-1.amazonaws.com"
```
#### Pleroma.Uploaders.IPFS
* `post_gateway_url`: URL with port of POST Gateway (unauthenticated)
* `get_gateway_url`: URL of public GET Gateway
Example:
```elixir
config :pleroma, Pleroma.Uploaders.IPFS,
post_gateway_url: "http://localhost:5001",
get_gateway_url: "http://{CID}.ipfs.mydomain.com"
```
### Upload filters
#### Pleroma.Upload.Filter.AnonymizeFilename
@ -602,12 +690,24 @@ This filter replaces the filename (not the path) of an upload. For complete obfu
No specific configuration.
#### Pleroma.Upload.Filter.Exiftool
#### 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.OnlyMedia
This filter rejects uploads that are not identified with Content-Type matching audio/\*, image/\*, or video/\*
No specific configuration.
#### Pleroma.Upload.Filter.Mogrify
* `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", "auto-orient", {"implode", "1"}]`.
@ -642,6 +742,21 @@ config :pleroma, Pleroma.Emails.Mailer,
auth: :always
```
An example for Mua adapter:
```elixir
config :pleroma, Pleroma.Emails.Mailer,
enabled: true,
adapter: Swoosh.Adapters.Mua,
relay: "mail.example.com",
port: 465,
auth: [
username: "YOUR_USERNAME@domain.tld",
password: "YOUR_SMTP_PASSWORD"
],
protocol: :ssl
```
### :email_notifications
Email notifications settings.
@ -690,9 +805,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,
@ -704,7 +818,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}
]
```
@ -745,7 +860,7 @@ Web Push Notifications configuration. You can use the mix task `mix web_push.gen
* ``private_key``: VAPID private key
## :logger
* `backends`: `:console` is used to send logs to stdout, `{ExSyslogger, :ex_syslogger}` to log to syslog, and `Quack.Logger` to log to Slack
* `backends`: `:console` is used to send logs to stdout, `{ExSyslogger, :ex_syslogger}` to log to syslog
An example to enable ONLY ExSyslogger (f/ex in ``prod.secret.exs``) with info and debug suppressed:
```elixir
@ -753,7 +868,7 @@ config :logger,
backends: [{ExSyslogger, :ex_syslogger}]
config :logger, :ex_syslogger,
level: :warn
level: :warning
```
Another example, keeping console output and adding the pid to syslog output:
@ -762,16 +877,16 @@ config :logger,
backends: [:console, {ExSyslogger, :ex_syslogger}]
config :logger, :ex_syslogger,
level: :warn,
level: :warning,
option: [:pid, :ndelay]
```
See: [loggers documentation](https://hexdocs.pm/logger/Logger.html) and [ex_sysloggers documentation](https://hexdocs.pm/ex_syslogger/)
An example of logging info to local syslog, but warn to a Slack channel:
An example of logging info to local syslog, but debug to console:
```elixir
config :logger,
backends: [ {ExSyslogger, :ex_syslogger}, Quack.Logger ],
backends: [ {ExSyslogger, :ex_syslogger}, :console ],
level: :info
config :logger, :ex_syslogger,
@ -779,14 +894,12 @@ config :logger, :ex_syslogger,
ident: "pleroma",
format: "$metadata[$level] $message"
config :quack,
level: :warn,
meta: [:all],
webhook_url: "https://hooks.slack.com/services/YOUR-API-KEY-HERE"
config :logger, :console,
level: :debug,
format: "\n$time $metadata[$level] $message\n",
metadata: [:request_id]
```
See the [Quack Github](https://github.com/azohra/quack) for more details
## Database options
@ -812,21 +925,8 @@ This will probably take a long time.
### BBS / SSH access
To enable simple command line interface accessible over ssh, add a setting like this to your configuration file:
```exs
app_dir = File.cwd!
priv_dir = Path.join([app_dir, "priv/ssh_keys"])
config :esshd,
enabled: true,
priv_dir: priv_dir,
handler: "Pleroma.BBS.Handler",
port: 10_022,
password_authenticator: "Pleroma.BBS.Authenticator"
```
Feel free to adjust the priv_dir and port number. Then you will have to create the key for the keys (in the example `priv/ssh_keys`) and create the host keys with `ssh-keygen -m PEM -N "" -b 2048 -t rsa -f ssh_host_rsa_key`. After restarting, you should be able to connect to your Pleroma instance with `ssh username@server -p $PORT`
This feature has been removed from Pleroma core.
However, a client has been made and is available at https://git.pleroma.social/Duponin/sshocial.
### :gopher
* `enabled`: Enables the gopher interface
@ -848,13 +948,13 @@ 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"
```
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.
@ -883,16 +983,33 @@ Pleroma account will be created with the same name as the LDAP user name.
* `enabled`: enables LDAP authentication
* `host`: LDAP server hostname
* `port`: LDAP port, e.g. 389 or 636
* `ssl`: true to use SSL, usually implies the port 636
* `ssl`: true to use implicit SSL/TLS, usually port 636
* `sslopts`: additional SSL options
* `tls`: true to start TLS, usually implies the port 389
* `tls`: true to use explicit TLS (STARTTLS), usually port 389
* `tlsopts`: additional TLS options
* `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"
* `cacertfile`: Path to alternate CA root certificates file
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.).
@ -965,14 +1082,6 @@ 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
@ -1009,7 +1118,7 @@ config :pleroma, Pleroma.Formatter,
## :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.
Boolean, enables/disables in-database configuration. Read [Transferring the config to/from the database](../administration/CLI_tasks/config.md) for more information.
## :database_config_whitelist
@ -1065,6 +1174,21 @@ 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 achieves 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
* `:timeout` an integer representing seconds
## Frontend management
Frontends in Pleroma are swappable - you can specify which one to use here.
@ -1090,3 +1214,22 @@ config :pleroma, :frontends,
```
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

@ -29,7 +29,7 @@ foo, /emoji/custom/foo.png
The files should be PNG (APNG is okay with `.png` for `image/png` Content-type) and under 50kb for compatibility with mastodon.
Default file extentions and locations for emojis are set in `config.exs`. To use different locations or file-extentions, add the `shortcode_globs` to your secrets file (`prod.secret.exs` or `dev.secret.exs`) and edit it. Note that not all fediverse-software will show emojis with other file extentions:
Default file extensions and locations for emojis are set in `config.exs`. To use different locations or file-extensions, add the `shortcode_globs` to your secrets file (`prod.secret.exs` or `dev.secret.exs`) and edit it. Note that not all fediverse-software will show emojis with other file extensions:
```elixir
config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png", "/emoji/custom/**/*.gif"]
```

View file

@ -62,6 +62,20 @@ An additional “Expect-CT” header will be sent with the configured `ct_max_ag
If you click on a link, your browsers request to the other site will include from where it is coming from. The “Referrer policy” header tells the browser how and if it should send this information. (see [Referrer policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy))
### Uploaded media and media proxy
It is STRONGLY RECOMMENDED to serve both the locally-uploaded media and the media proxy from another domain than the domain that Pleroma runs on, if applicable.
```elixir
config :pleroma, :media_proxy,
base_url: "https://some.other.domain"
config :pleroma, Pleroma.Upload,
base_url: "https://some.other.domain/media"
```
See `installation/pleroma-mediaproxy.nginx` for examples on how to configure your media proxy.
## systemd
A systemd unit example is provided at `installation/pleroma.service`.

View file

@ -0,0 +1,62 @@
# How to use a different domain name for Pleroma and the users it serves
Pleroma users are primarily identified by a `user@example.org` handle, and you might want this identifier to be the same as your email or jabber account, for instance.
However, in this case, you are almost certainly serving some web content on `https://example.org` already, and you might want to use another domain (say `pleroma.example.org`) for Pleroma itself.
Pleroma supports that, but it might be tricky to set up, and any error might prevent you from federating with other instances.
*If you are already running Pleroma on `example.org`, it is no longer possible to move it to `pleroma.example.org`.*
## Account identifiers
It is important to understand that for federation purposes, a user in Pleroma has two unique identifiers associated:
- A webfinger `acct:` URI, used for discovery and as a verifiable global name for the user across Pleroma instances. In our example, our account's acct: URI is `acct:user@example.org`
- An author/actor URI, used in every other aspect of federation. This is the way in which users are identified in ActivityPub, the underlying protocol used for federation with other Pleroma instances.
In our case, it is `https://pleroma.example.org/users/user`.
Both account identifiers are unique and required for Pleroma. An important risk if you set up your Pleroma instance incorrectly is to create two users (with different acct: URIs) with conflicting author/actor URIs.
## WebFinger
As said earlier, each Pleroma user has an `acct`: URI, which is used for discovery and authentication. When you add @user@example.org, a webfinger query is performed. This is done in two steps:
1. Querying `https://example.org/.well-known/host-meta` (where the domain of the URL matches the domain part of the `acct`: URI) to get information on how to perform the query.
This file will indeed contain a URL template of the form `https://example.org/.well-known/webfinger?resource={uri}` that will be used in the second step.
2. Fill the returned template with the `acct`: URI to be queried and perform the query: `https://example.org/.well-known/webfinger?resource=acct:user@example.org`
## Configuring your Pleroma instance
**_DO NOT ATTEMPT TO CONFIGURE YOUR INSTANCE THIS WAY IF YOU DID NOT UNDERSTAND THE ABOVE_**
### Configuring Pleroma
Pleroma has a two configuration settings to enable using different domains for your users and Pleroma itself. `host` in `Pleroma.Web.Endpoint` and `domain` in `Pleroma.Web.WebFinger`. When the latter is not set, it defaults to the value of `host`.
*Be extra careful when configuring your Pleroma instance, as changing `host` may cause remote instances to register different accounts with the same author/actor URI, which will result in federation issues!*
```elixir
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "pleroma.example.org"]
config :pleroma, Pleroma.Web.WebFinger, domain: "example.org"
```
- `domain` - is the domain for which your Pleroma instance has authority, it's the domain used in `acct:` URI. In our example, `domain` would be set to `example.org`. This is used in WebFinger account ids, which are the canonical account identifier in some other fediverse software like Mastodon. **If you change `domain`, the accounts on your server will be shown as different accounts in those software**.
- `host` - is the domain used for any URL generated for your instance, including the author/actor URL's. In our case, that would be `pleroma.example.org`. This is used in AP ids, which are the canonical account identifier in Pleroma and some other fediverse software. **You should not change this after you have set up the instance**.
### Configuring WebFinger domain
Now, you have Pleroma running at `https://pleroma.example.org` as well as a website at `https://example.org`. If you recall how webfinger queries work, the first step is to query `https://example.org/.well-known/host-meta`, which will contain an URL template.
Therefore, the easiest way to configure `example.org` is to redirect `/.well-known/host-meta` to `pleroma.example.org`.
With nginx, it would be as simple as adding:
```nginx
location = /.well-known/host-meta {
return 301 https://pleroma.example.org$request_uri;
}
```
in example.org's server block.

View file

@ -5,50 +5,37 @@ The configuration of Pleroma has traditionally been managed with a config file,
## Migration to database config
1. Run the mix task to migrate to the database. You'll receive some debugging output and a few messages informing you of what happened.
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
```
```
10:04:34.155 [debug] QUERY OK source="config" db=1.6ms decode=2.0ms queue=33.5ms idle=0.0ms
SELECT c0."id", c0."key", c0."group", c0."value", c0."inserted_at", c0."updated_at" FROM "config" AS c0 []
Migrating settings from file: /home/pleroma/config/dev.secret.exs
10:04:34.240 [debug] QUERY OK db=4.5ms queue=0.3ms idle=92.2ms
TRUNCATE config; []
10:04:34.244 [debug] QUERY OK db=2.8ms queue=0.3ms idle=97.2ms
ALTER SEQUENCE config_id_seq RESTART; []
10:04:34.256 [debug] QUERY OK source="config" db=0.8ms queue=1.4ms idle=109.8ms
SELECT c0."id", c0."key", c0."group", c0."value", c0."inserted_at", c0."updated_at" FROM "config" AS c0 WHERE ((c0."group" = $1) AND (c0."key" = $2)) [":pleroma", ":instance"]
10:04:34.292 [debug] QUERY OK db=2.6ms queue=1.7ms idle=137.7ms
INSERT INTO "config" ("group","key","value","inserted_at","updated_at") VALUES ($1,$2,$3,$4,$5) RETURNING "id" [":pleroma", ":instance", <<131, 108, 0, 0, 0, 1, 104, 2, 100, 0, 4, 110, 97, 109, 101, 109, 0, 0, 0, 7, 66, 108, 101, 114, 111, 109, 97, 106>>, ~N[2020-07-12 15:04:34], ~N[2020-07-12 15:04:34]]
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:
```
@ -72,21 +59,21 @@ The configuration of Pleroma has traditionally been managed with a config file,
Here is an example of a server config stripped down after migration:
```
use Mix.Config
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.
@ -95,15 +82,15 @@ The configuration of Pleroma has traditionally been managed with a config file,
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
```
@ -111,7 +98,7 @@ The configuration of Pleroma has traditionally been managed with a config file,
```
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
@ -124,30 +111,45 @@ The configuration of Pleroma has traditionally been managed with a config file,
## Debugging
### Clearing database config
You can clear the database config by truncating the `config` table in the database. e.g.,
You can clear the database config with the following command:
```
psql -d pleroma_dev
pleroma_dev=# TRUNCATE config;
TRUNCATE TABLE
```
**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 minimal configuration in the database. Only the `config :pleroma, :instance` settings are in the table:
e.g., here is an example showing a the removal of the `config :pleroma, :instance` settings:
```
psql -d pleroma_dev
pleroma_dev=# select * from config;
id | key | value | inserted_at | updated_at | group
----+-----------+------------------------------------------------------------+---------------------+---------------------+----------
1 | :instance | \x836c0000000168026400046e616d656d00000007426c65726f6d616a | 2020-07-12 15:33:29 | 2020-07-12 15:33:29 | :pleroma
(1 row)
pleroma_dev=# delete from config where key = ':instance' and group = ':pleroma';
DELETE 1
```
**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

@ -1,4 +1,4 @@
# I2P Federation and Accessability
# I2P Federation and Accessibility
This guide is going to focus on the Pleroma federation aspect. The actual installation is neatly explained in the official documentation, and more likely to remain up-to-date.
It might be added to this guide if there will be a need for that.

View file

@ -55,18 +55,18 @@ 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, :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
@ -82,7 +82,7 @@ For example, here is a sample policy module which rewrites all messages to "new
```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
@ -133,3 +133,26 @@ config :pleroma, :mrf,
```
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

@ -29,7 +29,7 @@ HiddenServiceDir /var/lib/tor/pleroma_hidden_service/
HiddenServicePort 80 127.0.0.1:8099
HiddenServiceVersion 3 # Remove if Tor version is below 0.3 ( tor --version )
```
Restart Tor to generate an adress:
Restart Tor to generate an address:
```
systemctl restart tor@default.service
```

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 processes 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

@ -1,10 +1,28 @@
# Optimizing your PostgreSQL performance
# Optimizing PostgreSQL performance
Pleroma performance depends to a large extent on good database performance. The default PostgreSQL settings are mostly fine, but often you can get better performance by changing a few settings.
Pleroma performance is largely dependent on performance of the underlying database. Better performance can be achieved by adjusting a few settings.
You can use [PGTune](https://pgtune.leopard.in.ua) to get recommendations for your setup. If you do, set the "Number of Connections" field to 20, as Pleroma will only use 10 concurrent connections anyway. If you don't, it will give you advice that might even hurt your performance.
## PGTune
We also recommend not using the "Network Storage" option.
[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 explanation of the issue can be found at <https://blog.soykaf.com/post/postgresql-elixir-troubles/>.
## Example configurations
@ -28,4 +46,3 @@ max_worker_processes = 2
max_parallel_workers_per_gather = 1
max_parallel_workers = 2
```

View file

@ -0,0 +1,147 @@
# Configuring search
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
## Built-in search
To use built-in search that has no external dependencies, set the search module to `Pleroma.Activity`:
> config :pleroma, Pleroma.Search, module: Pleroma.Search.DatabaseSearch
While it has no external dependencies, it has problems with performance and relevancy.
## QdrantSearch
This uses the vector search engine [Qdrant](https://qdrant.tech) to search the posts in a vector space. This needs a way to generate embeddings and uses the [OpenAI API](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings). This is implemented by several project besides OpenAI itself, including the python-based fastembed-server found in `supplemental/search/fastembed-api`.
The default settings will support a setup where both the fastembed server and Qdrant run on the same system as pleroma. To use it, set the search provider and run the fastembed server, see the README in `supplemental/search/fastembed-api`:
> config :pleroma, Pleroma.Search, module: Pleroma.Search.QdrantSearch
Then, start the Qdrant server, see [here](https://qdrant.tech/documentation/quick-start/) for instructions.
You will also need to create the Qdrant index once by running `mix pleroma.search.indexer create_index`. Running `mix pleroma.search.indexer index` will retroactively index the last 100_000 activities.
### Indexing and model options
To see the available configuration options, check out the QdrantSearch section in `config/config.exs`.
The default indexing option work for the default model (`snowflake-arctic-embed-xs`). To optimize for a low memory footprint, adjust the index configuration as described in the [Qdrant docs](https://qdrant.tech/documentation/guides/optimize/). See also [this blog post](https://qdrant.tech/articles/memory-consumption/) that goes into detail.
Different embedding models will need different vector size settings. You can see a list of the models supported by the fastembed server [here](https://qdrant.github.io/fastembed/examples/Supported_Models), including their vector dimensions. These vector dimensions need to be set in the `qdrant_index_configuration`.
E.g, If you want to use `sentence-transformers/all-MiniLM-L6-v2` as a model, you will not need to adjust things, because it and `snowflake-arctic-embed-xs` are both 384 dimensional models. If you want to use `snowflake/snowflake-arctic-embed-l`, you will need to adjust the `size` parameter in the `qdrant_index_configuration` to 1024, as it has a dimension of 1024.
When using a different model, you will need do drop the index and recreate it (`mix pleroma.search.indexer drop_index` and `mix pleroma.search.indexer create_index`), as the different embeddings are not compatible with each other.
## Meilisearch
Note that it's quite a bit more memory hungry than PostgreSQL (around 4-5G for ~1.2 million
posts while idle and up to 7G while indexing initially). The disk usage for this additional index is also
around 4 gigabytes. Like [RUM](./cheatsheet.md#rum-indexing-for-full-text-search) indexes, it offers considerably
higher performance and ordering by timestamp in a reasonable amount of time.
Additionally, the search results seem to be more accurate.
Due to high memory usage, it may be best to set it up on a different machine, if running pleroma on a low-resource
computer, and use private key authentication to secure the remote search instance.
To use [meilisearch](https://www.meilisearch.com/), set the search module to `Pleroma.Search.Meilisearch`:
> config :pleroma, Pleroma.Search, module: Pleroma.Search.Meilisearch
You then need to set the address of the meilisearch instance, and optionally the private key for authentication. You might
also want to change the `initial_indexing_chunk_size` to be smaller if you're server is not very powerful, but not higher than `100_000`,
because meilisearch will refuse to process it if it's too big. However, in general you want this to be as big as possible, because meilisearch
indexes faster when it can process many posts in a single batch.
> config :pleroma, Pleroma.Search.Meilisearch,
> url: "http://127.0.0.1:7700/",
> private_key: "private key",
> initial_indexing_chunk_size: 100_000
Information about setting up meilisearch can be found in the
[official documentation](https://docs.meilisearch.com/learn/getting_started/installation.html).
You probably want to start it with `MEILI_NO_ANALYTICS=true` environment variable to disable analytics.
At least version 0.25.0 is required, but you are strongly advised to use at least 0.26.0, as it introduces
the `--enable-auto-batching` option which drastically improves performance. Without this option, the search
is hardly usable on a somewhat big instance.
### Private key authentication (optional)
To set the private key, use the `MEILI_MASTER_KEY` environment variable when starting. After setting the _master key_,
you have to get the _private key_, which is actually used for authentication.
=== "OTP"
```sh
./bin/pleroma_ctl search.meilisearch show-keys <your master key here>
```
=== "From Source"
```sh
mix pleroma.search.meilisearch show-keys <your master key here>
```
You will see a "Default Admin API Key", this is the key you actually put into your configuration file.
### Initial indexing
After setting up the configuration, you'll want to index all of your already existing posts. Only public posts are indexed. You'll only
have to do it one time, but it might take a while, depending on the amount of posts your instance has seen. This is also a fairly RAM
consuming process for `meilisearch`, and it will take a lot of RAM when running if you have a lot of posts (seems to be around 5G for ~1.2
million posts while idle and up to 7G while indexing initially, but your experience may be different).
The sequence of actions is as follows:
1. First, change the configuration to use `Pleroma.Search.Meilisearch` as the search backend
2. Restart your instance, at this point it can be used while the search indexing is running, though search won't return anything
3. Start the initial indexing process (as described below with `index`),
and wait until the task says it sent everything from the database to index
4. Wait until everything is actually indexed (by checking with `stats` as described below),
at this point you don't have to do anything, just wait a while.
To start the initial indexing, run the `index` command:
=== "OTP"
```sh
./bin/pleroma_ctl search.meilisearch index
```
=== "From Source"
```sh
mix pleroma.search.meilisearch index
```
This will show you the total amount of posts to index, and then show you the amount of posts indexed currently, until the numbers eventually
become the same. The posts are indexed in big batches and meilisearch will take some time to actually index them, even after you have
inserted all the posts into it. Depending on the amount of posts, this may be as long as several hours. To get information about the status
of indexing and how many posts have actually been indexed, use the `stats` command:
=== "OTP"
```sh
./bin/pleroma_ctl search.meilisearch stats
```
=== "From Source"
```sh
mix pleroma.search.meilisearch stats
```
### Clearing the index
In case you need to clear the index (for example, to re-index from scratch, if that needs to happen for some reason), you can
use the `clear` command:
=== "OTP"
```sh
./bin/pleroma_ctl search.meilisearch clear
```
=== "From Source"
```sh
mix pleroma.search.meilisearch clear
```
This will clear **all** the posts from the search index. Note, that deleted posts are also removed from index by the instance itself, so
there is no need to actually clear the whole index, unless you want **all** of it gone. That said, the index does not hold any information
that cannot be re-created from the database, it should also generally be a lot smaller than the size of your database. Still, the size
depends on the amount of text in posts.

View file

@ -88,3 +88,8 @@ config :pleroma, :frontend_configurations,
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

@ -1,23 +0,0 @@
This document contains notes and guidelines for Pleroma developers.
# 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.Plugs.OAuthScopesPlug, %{scopes: [...]})`. To explicitly set OAuth scopes check skipped, call `plug(:skip_plug, Pleroma.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.
## [HTTP Basic Authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization)
* With HTTP Basic 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). `Pleroma.Plugs.AuthenticationPlug` and `Pleroma.Plugs.LegacyAuthenticationPlug` both call `Pleroma.Plugs.OAuthScopesPlug.skip_plug(conn)` when password is provided.
## Auth-related configuration, OAuth consumer mode etc.
See `Authentication` section of [the configuration cheatsheet](configuration/cheatsheet.md#authentication).

File diff suppressed because it is too large Load diff

View file

@ -116,6 +116,10 @@ The modified chat message
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
@ -173,11 +177,14 @@ Returned data:
"created_at": "2020-04-21T15:06:45.000Z",
"emojis": [],
"id": "12",
"unread": false
"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:

View file

@ -0,0 +1,522 @@
# 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` and `/api/v2/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.
- `quotes_count`: the count of status quotes.
- `non_anonymous`: true if the source post specifies the poll results are not anonymous. Currently only implemented by Smithereen.
- `bookmark_folder`: the ID of the folder bookmark is stored within (if any).
- `list_id`: the ID of the list the post is addressed to (if any, only returned to author).
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.
## Bookmarks
The `GET /api/v1/bookmarks` endpoint accepts optional parameter `folder_id` for bookmark folder ID.
The `POST /api/v1/statuses/:id/bookmark` endpoint accepts optional parameter `folder_id` for bookmark folder ID.
## 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
- `avatar_description`: string, image description for user avatar, defaults to empty string
- `header_description`: string, image description for user banner, defaults to empty string
### 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.)
- `avatar_description` - image description for user avatar
- `header_description` - image description for user banner
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
- `max_media_attachments`: Maximum number of post media attachments
- `chat_limit`: The maximum characters per chat message
- `description_limit`: The maximum characters per image description
- `poll_limits`: The limits of polls
- `shout_limit`: The maximum characters per Shoutbox message
- `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.account_activation_required`: Whether users are required to confirm their emails before signing in
- `pleroma.metadata.birthday_required`: Whether users are required to provide their birth day when signing in
- `pleroma.metadata.birthday_min_age`: The minimum user age (in days)
- `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
- `pleroma.stats.mau`: Monthly active user count
- `pleroma.vapid_public_key`: The public key needed for push messages
In, `GET /api/v2/instance` Pleroma-specific fields are all moved into `pleroma` object. `max_toot_chars`, `poll_limits` and `upload_limit` are replaced with their MastoAPI counterparts.
## 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
### Authenticating via `sec-websocket-protocol` header
Pleroma allows to authenticate via the `sec-websocket-protocol` header, for example, if your access token is `your-access-token`, you can authenticate using the following:
```
sec-websocket-protocol: your-access-token
```
### Authenticating after connection via `pleroma:authenticate` event
Pleroma allows to authenticate after connection is established, via the `pleroma:authenticate` event. For example, if your access token is `your-access-token`, you can send the following after the connection is established:
```
{"type": "pleroma:authenticate", "token": "your-access-token"}
```
### Response to client-sent events
Pleroma will respond to client-sent events that it recognizes. Supported event types are:
- `subscribe`
- `unsubscribe`
- `pleroma:authenticate`
The reply will be in the following format:
```
{
"event": "pleroma:respond",
"payload": "{\"type\": \"<type of the client-sent event>\", \"result\": \"<result of the action>\", \"error\": \"<error code>\"}"
}
```
Result of the action can be either `success`, `ignored` or `error`. If it is `error`, the `error` property will contain the error code. Otherwise, the `error` property will not be present. Below are some examples:
```
{
"event": "pleroma:respond",
"payload": "{\"type\": \"pleroma:authenticate\", \"result\": \"success\"}"
}
{
"event": "pleroma:respond",
"payload": "{\"type\": \"subscribe\", \"result\": \"ignored\"}"
}
{
"event": "pleroma:respond",
"payload": "{\"type\": \"unsubscribe\", \"result\": \"error\", \"error\": \"bad_topic\"}"
}
```
If the sent event is not of a type that Pleroma supports, it will not reply.
### The `stream` attribute of a server-sent event
Technically, this is in Mastodon, but its documentation does nothing to specify its format.
This attribute appears on every event type except `pleroma:respond` and `delete`. It helps clients determine where they should display the new statuses.
The value of the attribute is an array containing one or two elements. The first element is the type of the stream. The second is the identifier related to that specific stream, if applicable.
For the following stream types, there is a second element in the array:
- `list`: The second element is the id of the list, as a string.
- `hashtag`: The second element is the name of the hashtag.
- `public:remote:media` and `public:remote`: The second element is the domain of the corresponding instance.
For all other stream types, there is no second element.
Some examples of valid `stream` values:
- `["list", "1"]`: List of id 1.
- `["hashtag", "mew"]`: The hashtag #mew.
- `["user:notifications"]`: Notifications for the current user.
- `["user"]`: Home timeline.
- `["public:remote", "mew.moe"]`: Public posts from the instance mew.moe .
### The unified streaming endpoint
If you do not specify a stream to connect to when requesting `/api/v1/streaming`, you will enter a connection that subscribes to no streams. After the connection is established, you can authenticate and then subscribe to different streams.
### List of supported streams
Below is a list of supported streams by Pleroma. To make a single-stream WebSocket connection, append the string specified in "Query style" to the streaming endpoint url.
To subscribe to a stream after the connection is established, merge the JSON object specified in "Subscribe style" with `{"type": "subscribe"}`. To unsubscribe, merge it with `{"type": "unsubscribe"}`.
For example, to receive updates on the list 1, you can connect to `/api/v1/streaming/?stream=list&list=1`, or send
```
{"type": "subscribe", "stream": "list", "list": "1"}
```
upon establishing the websocket connection.
To unsubscribe to list 1, send
```
{"type": "unsubscribe", "stream": "list", "list": "1"}
```
Note that if you specify a stream that requires a logged-in user in the query string (for example, `user` or `list`), you have to specify the access token when you are trying to establish the connection, i.e. in the query string or via the `sec-websocket-protocol` header.
- `list`
- Query style: `?stream=list&list=<id>`
- Subscribe style: `{"stream": "list", "list": "<id>"}`
- `public`, `public:local`, `public:media`, `public:local:media`, `user`, `user:pleroma_chat`, `user:notifications`, `direct`
- Query style: `?stream=<stream name>`
- Subscribe style: `{"stream": "<stream name>"}`
- `hashtag`
- Query style: `?stream=hashtag&tag=<name>`
- Subscribe style: `{"stream": "hashtag", "tag": "<name>"}`
- `public:remote`, `public:remote:media`
- Query style: `?stream=<stream name>&instance=<instance domain>`
- Subscribe style: `{"stream": "<stream name>", "instance": "<instance domain>"}`
## 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, `[]`
### 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,848 @@
# 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
Deprecated. `notify` parameter in `POST /api/v1/accounts/:id/follow` should be used instead.
* 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
Deprecated. `notify` parameter in `POST /api/v1/accounts/:id/follow` should be used instead.
* 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/:id/endorsements`
### Returns users endorsed by a user
* Method `GET`
* Authentication: not required
* Params:
* `id`: the id of the account for whom to return results
* Response: JSON, returns a list of Mastodon Account entities
## `/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/statuses/:id/quotes`
### Gets quotes for a given status
* Method `GET`
* Authentication: not required
* Params:
* `id`: the id of the status
* Response: JSON, returns a list of Mastodon Status entities
## `GET /api/v1/pleroma/bookmark_folders`
### Gets user bookmark folders
* Authentication: required
* Response: JSON. Returns a list of bookmark folders.
* Example response:
```json
[
{
"id": "9umDrYheeY451cQnEe",
"name": "Read later",
"emoji": "🕓",
"emoji_url": null
}
]
```
## `POST /api/v1/pleroma/bookmark_folders`
### Creates a bookmark folder
* Authentication: required
* Params:
* `name`: folder name
* `emoji`: folder emoji (optional)
* Response: JSON. Returns a single bookmark folder.
## `PATCH /api/v1/pleroma/bookmark_folders/:id`
### Updates a bookmark folder
* Authentication: required
* Params:
* `id`: folder id
* `name`: folder name (optional)
* `emoji`: folder emoji (optional)
* Response: JSON. Returns a single bookmark folder.
## `DELETE /api/v1/pleroma/bookmark_folders/:id`
### Deletes a bookmark folder
* Authentication: required
* Params:
* `id`: folder id
* Response: JSON. Returns a single bookmark folder.
## `/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
## `/api/v1/pleroma/remote_interaction`
## Interact with profile or status from remote account
* Metod `POST`
* Authentication: not required
* Params:
* `ap_id`: Profile or status ActivityPub ID
* `profile`: Remote profile webfinger
* Response: JSON. Returns `{"url": "[redirect url]"}` on success, `{"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 visibility 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`
Audio scrobbling in Pleroma is **deprecated**.
### 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`
Audio scrobbling in Pleroma is **deprecated**.
### 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,47 @@
# Prometheus / OpenTelemetry Metrics
Pleroma includes support for exporting metrics via the [prom_ex](https://github.com/akoutmos/prom_ex) library.
The metrics are exposed by a dedicated webserver/port to improve privacy and security.
Config example:
```
config :pleroma, Pleroma.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
drop_metrics_groups: [],
grafana: [
host: System.get_env("GRAFANA_HOST", "http://localhost:3000"),
auth_token: System.get_env("GRAFANA_TOKEN"),
upload_dashboards_on_start: false,
folder_name: "BEAM",
annotate_app_lifecycle: true
],
metrics_server: [
port: 4021,
path: "/metrics",
protocol: :http,
pool_size: 5,
cowboy_opts: [],
auth_strategy: :none
],
datasource: "Prometheus"
```
PromEx supports the ability to automatically publish dashboards to your Grafana server as well as register Annotations. If you do not wish to configure this capability you must generate the dashboard JSON files and import them directly. You can find the mix commands in the upstream [documentation](https://hexdocs.pm/prom_ex/Mix.Tasks.PromEx.Dashboard.Export.html). You can find the list of modules enabled in Pleroma for which you should generate dashboards for by examining the contents of the `lib/pleroma/prom_ex.ex` module.
## prometheus.yml
The following is a bare minimum config example to use with [Prometheus](https://prometheus.io) or Prometheus-compatible software like [VictoriaMetrics](https://victoriametrics.com).
```
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'pleroma'
scheme: http
static_configs:
- targets: ['pleroma.soykaf.com:4021']
```

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
- (optional) `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 response 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 addressing 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,7 @@
This section contains notes and guidelines for developers.
- [Setting up a Pleroma development environment](setting_up_pleroma_dev.md)
- [Setting up a Gitlab Runner](setting_up_a_gitlab_runner.md)
- [Authentication & Authorization](authentication_authorization.md)
- [ActivityPub Extensions](ap_extensions.md)
- [Mox Testing Guide](mox_testing.md)

Some files were not shown because too many files have changed in this diff Show more