Commit graph

18,315 commits

Author SHA1 Message Date
Phantasm
85a0f2e602 StaticNotFoundPlug: Remove unused plug options 2026-07-20 15:18:49 +00:00
Phantasm
00ca971390 FrontendStaticPlug: Add test for static files outside of index 2026-07-20 15:18:49 +00:00
Phantasm
9129c65795 StaticNotFoundPlug: Move tests out from InstanceStatic 2026-07-20 15:18:49 +00:00
Phantasm
a30298c1eb StaticNotFoundPlug: Move 404 on non-existing static files to a new plug
This fixes preferred frontends not working (returning 404 on most static
frontend files).
2026-07-20 15:18:49 +00:00
Phantasm
103b724962 EnsureHostMatchesPlug: add missing behavior declaration 2026-07-20 15:18:49 +00:00
Phantasm
7ab1901a28
Woodpecker CI Docker: Bump Kaniko plugin version to 2.3.2
Removes the temporary downgrade and updates the plugin to a version that
includes kaniko with a fix for:
https://github.com/osscontainertools/kaniko/issues/745
2026-07-20 16:59:39 +02:00
Phantasm
56105bc18d
Woodpecker CI Docker: fully qualify docker images 2026-07-20 16:49:54 +02:00
Phantasm
8c8c2de1e1
Woodpecker CI Docker: Downgrade to kaniko plugin version 2.2.2
2.3.1 duplicates arch variant in the platform triplet resulting in
podman erroring out when using the image.
2026-07-20 16:49:53 +02:00
Phantasm
f7be7f8018
Woodpecker CI Docker: Switch to kaniko_image anchor everywhere 2026-07-20 16:49:53 +02:00
Phantasm
7d4b53bf48
Woodpecker CI: include armv7 arch in combined Docker tags 2026-07-20 16:49:53 +02:00
Phantasm
631094666c
Woodpecker CI: Unify armv7 workflow with main Docker workflow 2026-07-20 16:49:49 +02:00
Phantasm
6ec04af08c Merge pull request 'Woodpecker CI: Build Vix in unit testing pipelines, do not build arm32v7 images in MRs' (#7936) from ci-build-vix into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7936
2026-07-20 09:28:05 +00:00
Phantasm
ac08f0487f
Woodpecker CI: Do not build arm/v7 in PR, simplify 2026-07-20 11:17:09 +02:00
Phantasm
bde0e3e353
Woodpecker CI: Build Vix in unit test pipelines instead of downloading 2026-07-20 11:16:25 +02:00
Phantasm
a2eea6768c Merge pull request 'Dockerfile: update base images to fix problems with SSL handshakes' (#7930) from eal/pleroma:develop into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7930
2026-07-20 09:08:59 +00:00
Phantasm
38bb47b615 Merge pull request 'Elixir 1.19 support' (#7758) from gitlab-mr-iid-4381 into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7758
2026-07-19 22:00:00 +00:00
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
Lain Soykaf
dc348e8be8
fix(deps): adapt hackney and mdex behavior 2026-07-02 12:48:52 +04:00
Lain Soykaf
9154f6fe3c
fix(deps): replace earmark with mdex 2026-07-02 11:31:54 +04:00
Lain Soykaf
a96fb31a89
fix(deps): update hackney 2026-07-02 10:57:12 +04:00
Lain Soykaf
28d7ac3a43
fix(deps): update decimal 2026-07-02 10:50:20 +04:00
Lain Soykaf
ab49f00090
chore(deps): update jason 2026-07-02 10:48:06 +04:00
Lain Soykaf
604e2ad849
fix(deps): remove unused quic lock 2026-07-02 10:40:53 +04:00
Lain Soykaf
d964737d75
fix(deps): update postgrex 2026-07-02 10:39:34 +04:00
Lain Soykaf
dc28528588
fix(deps): update cowboy 2026-07-02 10:36:53 +04:00
Lain Soykaf
eae1311bc2
fix(deps): update cowlib 2026-07-02 10:35:41 +04:00
Lain Soykaf
4d1044e2d1
fix(deps): update plug_cowboy 2026-07-02 10:33:50 +04:00
Lain Soykaf
dcc5a33f4d
fix(deps): update phoenix 2026-07-02 10:31:34 +04:00