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
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
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
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
923803a533
Tests: Explicitly set db pool size and max cases to the same value.
2024-03-19 10:34:37 +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
95bcd5d28f
Merge branch 'force-mention' into 'develop'
...
Add ForceMention mrf
See merge request pleroma/pleroma!4082
2024-03-17 12:32:14 +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
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
acb9e46074
Add some missing fields to instanceV2
...
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-02-27 13:25:26 +01: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
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
Mark Felder
eb4dd50f53
Use config to control inclusion of test emoji
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
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
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
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
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
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
Haelwenn (lanodan) Monnier
1fc53c3077
config/description.exs: Remove quack
...
Was already removed in f40ccce7e9
2023-12-20 16:24:42 -05:00
Mark Felder
cd3abe0b4c
Fix more Logger warn -> warning
2023-12-20 16:23:57 -05:00
Haelwenn (lanodan) Monnier
086ba59d03
HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions
2023-12-16 19:25:51 +01:00
Lain Soykaf
cca6c20eb6
Revert "EmailTest: use config mock"
...
This reverts commit dca41cc4a3
.
2023-12-12 19:35:19 +04:00
Lain Soykaf
dca41cc4a3
EmailTest: use config mock
2023-12-12 15:25:52 +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 Soykaf
22c4d89dbb
ScheduledActivity: Use config mocking
2023-12-12 12:48:55 +04:00
Lain Soykaf
90a47ca050
S3 Test: Remove global state dependencies
2023-12-11 09:25:05 +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
e5beab7f16
Config/Test: Don't start promex during testing.
2023-12-10 17:18:18 +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
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
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
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 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
Mark Felder
a0e08c6ec2
Merge branch 'develop' into phoenix1.7
2023-11-07 16:05:04 -05: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
6b8c5e12df
Add contact account to InstanceView
...
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-10-26 23:32:08 +02:00
tusooa
87353e5ad1
Fix config descriptions for mrf inline quote
2023-09-13 19:20:32 -04:00
tusooa
163e563733
Allow more flexibility in InlineQuotePolicy
2023-09-13 19:19:05 -04:00
Alex Gleason
93e4972b50
Add InlineQuotePolicy as a default MRF
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
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
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
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
a7e7db4a29
Phoenix.Endpoint.Cowboy2Handler -> Plug.Cowboy.Handler
2023-05-31 13:48:16 -04: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
bc7ec43179
Allow customizing instance languages
2023-01-26 20:17:13 -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
tusooa
179efd9467
Make backup parameters configurable
2022-12-24 00:20:25 -05:00
Ekaterina Vaartis
398141da68
Merge remote-tracking branch 'upstream/develop' into meilisearch
2022-12-20 21:00:07 +03: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
Lain Soykaf
63d00f8123
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into update-deps
2022-12-15 17:19:36 -05: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
Haelwenn
c2cfe0c690
Clarify config description
2022-11-12 17:44:31 +00: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
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
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
6f047cc308
Do not strip reported statuses when configured not to
2022-11-09 22:36:57 -05: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
Alexander Strizhakov
4121bca895
expanding WebFinger
2022-11-03 09:48:24 -04:00
Ekaterina Vaartis
fd2cfc80d2
Change search_indexing = 10 and retries for indexing = 2
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
4f2637acc6
Add description for initial_indexing_chunk_size
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
3a11e79de0
Add config description for meilisearch
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
e4b7a3f51f
Modify some meilisearch variables
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
e154ebbf79
Initial meilisearch implementation, doesn't delete posts yet
2022-10-10 20:19:08 +03:00
Tusooa Zhu
467b6cad6f
Reduce incoming and outgoing federation queue sizes to 5
2022-09-17 16:34:33 -04: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
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
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 (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
Sean King
d67d191344
Fix fedi-fe build URL
2022-08-24 23:39:02 -06:00
Sean King
cc0f32c253
Add glitch-lily as an installable frontend
2022-08-19 22:54:56 -06: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
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
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
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
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
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
Claudio Maradonna
44659ecd65
ipfs: revert to String.replace for cid placeholder
...
ipfs: fix lint
2022-07-07 06:29:12 +02:00