Commit graph

18,263 commits

Author SHA1 Message Date
Lain Soykaf
c3fe61c2f5
fix(user): correct cache key invalidation 2026-07-24 16:01:13 +04:00
nicole mikołajczyk
97b94a2f43 Update tests
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-24 01:05:12 +02:00
nicole mikołajczyk
6ffa90a42a Include actual accepts_chat_messages in source field
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-24 01:00:46 +02:00
nicole mikołajczyk
efb43a02fa changelog
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-24 00:59:15 +02:00
nicole mikołajczyk
4aa0d5d709 Allow disabling Chats feature
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-24 00:58:58 +02:00
Lain Soykaf
d090aeb2bb
fix(http): forward plain HTTP proxy requests 2026-07-22 20:35:51 +04:00
nicole mikołajczyk
2a56a02d9a changelog
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-21 01:26:06 +02:00
nicole mikołajczyk
59269cf07a Fix hashtag timeline query
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-21 01:26:06 +02:00
nicole mikołajczyk
c772f9b40a Add a failing test
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-21 01:26:06 +02:00
nicole mikołajczyk
36bc7b116d Allow creating accounts without a password in the AdminAPI, update docs
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-20 19:01:02 +02:00
Phantasm
0a076443ad Merge pull request 'Fix preferred frontends' (#7911) from phnt/pleroma:fix-preferred-frontend into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7911
2026-07-20 15:29:02 +00:00
Phantasm
1d6664b1f4 InstanceStaticPlug: Add more override and fallback tests 2026-07-20 15:18:49 +00:00
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