Commit graph

18,181 commits

Author SHA1 Message Date
Phantasm
3ba3319390
Lint 2026-07-19 23:12:20 +02:00
Phantasm
00c9059252
Remove unused require Logger 2026-07-19 22:23:20 +02:00
Phantasm
bbae94ddf3
Revert "Only warn about bad clear_config usage if warned usage is met"
What was I even thinking when writing that?

This reverts commit 3790e6786c.
2026-07-19 22:15:37 +02:00
Phantasm
0448ba5cd2
ApplicationTest: skip test spamming warnings from ExSyslogger
:warn log level is deprecated, but ExSyslogger hasn't been updated yet.
2026-07-19 22:15:20 +02:00
Phantasm
4c27a3c5a0
ConfigDB: Refactor AdminAPI controller config filtering 2026-07-19 22:15:20 +02:00
Phantasm
232cdab753
ConfigDB: Refactor and simplify whitelist/blacklist filter tasks 2026-07-19 22:15:20 +02:00
Phantasm
3ab8cc1eb9
ApplicationTest: make clear_config delete the whole env tree
clear_config([:logger, :backends], [value]) leaves the :logger env key
behind which breaks a ConfigDB test where the :logger key shouldn't be
stored and set.
2026-07-19 22:15:19 +02:00
Phantasm
70cb241173
Elixir 1.19: Fixup unit testing CI name 2026-07-18 23:07:52 +02:00
Phantasm
a9aa19585b
Elixir 1.19: Emit debug logger reconfiguration logs in test env as well 2026-07-18 23:02:38 +02:00
Phantasm
e2f744bd68
Merge branch 'develop' into gitlab-mr-iid-4381 2026-07-18 20:47:03 +02:00
Phantasm
a89fe828d3
ConfigDB: Don't use a different config whitelist globally in tests 2026-07-18 20:45:51 +02:00
Phantasm
41ab347571
Lint 2026-07-18 16:13:39 +02:00
Phantasm
d383c453a1
Elixir 1.19: Added features changelog (ConfigDB blacklist) 2026-07-18 16:10:22 +02:00
Phantasm
c688d09478
ConfigDB: Implement config update blacklist in AdminAPI 2026-07-18 16:06:11 +02:00
Phantasm
2d307c1487
ConfigDB: Support blacklisting whole config groups 2026-07-18 16:05:14 +02:00
eal
7de1affda8 Dockerfile: update base images to fix problems with SSL handshakes
My instance has been having problems with push federation since
updating to v2.10.2, using the docker image. Posts are not reaching
their destination instance until some other interaction initiates a
fetch from source.

The logs contain lots of errors such as:

```
pleroma    | 09:34:40.885 [notice] TLS :client: In state :wait_cert_cr at ssl_handshake.erl:2158 generated CLIENT ALERT: Fatal - Unsupported Certificate
pleroma    |  - {:key_usage_mismatch,
pleroma    |  {{:Extension, {2, 5, 29, 15}, true, [:keyCertSign, :cRLSign]},
pleroma    |   {:Extension, {2, 5, 29, 37}, false, [{1, 3, 6, 1, 5, 5, 7, 3, 1}]}}}
```

This erlang/OTP issue seems to be the same problem:
https://github.com/erlang/otp/issues/9208

The erlang version committed here was selected after discussion in the
merge request.

I have not noticed any federation problems with an image built from
this dockerfile.
2026-07-18 11:15:45 +03:00
Phantasm
ebd5596ba7
Elixir 1.19: Create ConfigDB blacklist and task for :pleroma, :logger
This option was never configurable with ConfigDB when it lived under
:logger, :backends; no need to be configurable now.
2026-07-17 23:32:43 +02:00
Phantasm
1d758dbbf5
Elixir 1.19: Do not restart :logger in ConfigDB TransferTask 2026-07-17 22:39:43 +02:00
Lain Soykaf
b862254889
fix(deps): update Gun to 2.4.1 2026-07-17 21:09:13 +04:00
Lain Soykaf
d0d6c986f4
docs(http): document Gun pool behavior 2026-07-17 20:35:40 +04:00
Lain Soykaf
f11ffca7f5
feat(http): rework Gun connection pooling 2026-07-17 20:35:17 +04:00
moon.eth
b11e8888d1 MediaProxy: improve inline rendering of remote image attachments
Two related changes that ensure remote images render inline in timelines
instead of as clickable links.

reverse_proxy: always force inline for whitelisted content types
  When `inline_content_types` is configured as a whitelist, the upstream's
  `content-disposition` header used to be passed through unchanged. Some
  origins send `content-disposition: attachment` for media we want
  embedded, so the proxy now always emits `content-disposition: inline`
  for whitelisted types (overriding the upstream header), deriving a
  filename from `MIME.extensions/1` (e.g. `inline.gif`) so browsers have
  something to use for "Save As". When the type has no known extension,
  the bare token `inline` is emitted. The `inline_content_types: true`
  (pass-through) and `:false` (always attachment) behaviours are
  unchanged.

ActivityPub: sniff MIME type for extensionless/generic attachments
  Some remotes (e.g. extensionless Cloudflare Images URLs) ship
  attachments with no usable `mediaType` (missing, empty, or
  `application/octet-stream`), which would render as links instead of
  inline images. `AttachmentValidator.fix_media_type/1` now fetches the
  first 8 KB of the URL and runs it through libmagic when the declared
  type carries no real information. Only `image/*` results replace the
  declared type; any other result, non-2xx response, transport error, or
  exception yields `nil` and the original type is kept, so ingestion
  never blocks and non-image media is never reclassified. Present real
  types are left untouched (no fetch is attempted).

The new logic lives in `Pleroma.Web.ActivityPub.ObjectValidators.AttachmentTypeSniffer`.

Tests: comprehensive coverage of both changes, including a dedicated
suite for the sniffer covering happy paths, non-image bodies, HTTP
failures, raised exceptions, guard clauses, and verification that the
Range header is sent; AttachmentValidator tests for mimeType fallback,
empty-string mediaType, multi-URL sniffing, and HTTP-failure fallback;
ReverseProxy tests for inline_content_types `true`/`false`/custom
whitelists, bare-inline for types without a MIME extension, and
attachment_name handling.
2026-07-14 15:04:06 +09:00
Mark Felder
f4b415c54e Improve RSS compliance
The core feed reader issue was that RSS 2.0 <link> is a simple text
element and can only appear once per <item>.
By having multiple <link> tags with rel attributes, parsers were
getting confused and resolving entries to the wrong URL.
Now each item has exactly one <link>: the post URL. Everything else
uses valid <atom:link> or dedicated extension elements where
appropriate.
2026-07-10 16:57:13 +00:00
Phantasm
70c79ad512
Merge branch 'develop' into gitlab-mr-iid-4381 2026-06-30 00:31:51 +02:00
Phantasm
7d9175350d
Elixir 1.19: Completely overwrite formatter for default handler
:logger.update_handler_config/3 can merge configs,
:logger.set_handler_config/3 instead resets the rest to defaults.
2026-06-30 00:24:48 +02:00
Phantasm
a020b8a190
Elixir 1.19: Ensure default primary logger configg level is debug
Setting the default handler and ex_syslogger handler levels does not
necessarily have to set the primary logger log level, at least in the
future. Without this, the primary log level might be lower than the
configured console/syslog levels, which would cause some desired logs to
not be logged.
2026-06-29 23:47:43 +02:00
nicole mikołajczyk
b0ae451942 Merge pull request 'Allow attaching emojis to user lists' (#7929) from mkljczk/pleroma:list-emoji into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7929
2026-06-29 12:51:43 +00:00
nicole mikołajczyk
cb0a1d1602 Merge pull request 'Grouped Notifications: Add feature flag to instance view and nodeinfo' (#7926) from phnt/pleroma:grouped-notifs-flag into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7926
2026-06-29 11:28:45 +00:00
Phantasm
964feb1e47
InstanceView: Remove unreachable guards in filter_render 2026-06-28 00:36:43 +02:00
Phantasm
dd07088377
InstanceView: lint tests 2026-06-28 00:19:38 +02:00
Phantasm
3027052b0d
InstanceView: Remove wall of changed configs in show render tests.
Switched to using config defaults instead.
2026-06-28 00:17:28 +02:00
Phantasm
d19a9f768c
InstanceView: Tighten show2.json 2026-06-27 23:39:48 +02:00
Phantasm
6e03f1d789
InstanceView: Tighten show.json render test, rename show2-only funcs 2026-06-27 23:34:01 +02:00
Phantasm
ef321846d4
InstanceView: Use attribute for pleroma_configuration filter in test 2026-06-27 22:44:59 +02:00
Phantasm
6c79cc792f
InstanceView: improve filtering in tests, simplify 2026-06-27 22:42:50 +02:00
Phantasm
9912b2d16a
InstanceView: lint tests 2026-06-26 02:05:55 +02:00
Phantasm
93fe0f5ab5
InstanceView: Filter out *configuration keys from *configuration2 2026-06-26 02:05:50 +02:00
Phantasm
6393fe0a9e
InstanceView: removing unneeded doubling of attributes in tests 2026-06-26 01:59:57 +02:00
Phantasm
0337bd0ae4
InstanceView: Add show2.json render test 2026-06-26 01:59:57 +02:00
Phantasm
c290f022de
InstanceView: Add show.json render test 2026-06-26 01:59:54 +02:00
Phantasm
e45dad2104
InstanceView: Add domain_blocks.json render test 2026-06-23 22:42:15 +02:00
Phantasm
df67f21974
InstanceView: use shorter setup syntax when applicable 2026-06-23 22:24:44 +02:00
Phantasm
86725b5a00
InstanceView: add rule(s), translation render tests 2026-06-23 22:22:49 +02:00
Phantasm
7e9b8a7663
InstanceView: Add federation/0 func test 2026-06-23 18:20:16 +02:00
Phantasm
19a84baf82
InstanceView: Add feature flag tests 2026-06-23 17:26:47 +02:00
nicole mikołajczyk
c6d1cead83 Allow attaching emojis to user lists
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-06-23 16:08:52 +02:00
Phantasm
9782bcf979
Elixir 1.19: Fix most MRFs being absent from AdminAPI suggestions.
Elixir 1.19 started lazily loading modules, so modules only get loaded
when referenced. Thus :code.all_loaded would no longer include all MRF
policies which is used on startup to generate sugestions for AdminAPI.
2026-06-16 20:22:24 +02:00
Phantasm
07c65adb0c
Grouped Notifications: Add feature flag to instance view and nodeinfo 2026-06-10 22:54:06 +02:00
lain
6f5ea55613 Merge pull request 'allow <center> (used by mfm)' (#7920) from mfm-center into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7920
2026-06-05 09:24:15 +00:00
lain
98cd1bbb9a Merge pull request 'Add grouped notifications API' (#7910) from issue-7905-grouped-notifications into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7910
Reviewed-by: Phantasm <phnt@noreply.git.pleroma.social>
2026-06-05 09:23:26 +00:00