d70fa16383
oban options should be a keyword list
2024-04-16 02:58:50 +01:00
5043571084
Enable oban job uniqueness
...
by default just prevent job floods with a 1-seconds
uniqueness check, but override in RemoteFetcherWorker
for 5 minute uniqueness check over all states
:infinity is an option we can go for maybe at some point,
but that would prevent any refetches so maybe not idk.
2024-04-16 02:53:24 +01:00
1896ff1ab0
changelog entry
2024-04-16 02:35:59 +01:00
b7dd739de1
Make sure we return the right format for oban
2024-04-16 02:35:21 +01:00
2fc25980d1
fix pattern matching in fetch errors
2024-04-13 23:55:26 +01:00
18442dcc7e
Fix quote test
2024-04-13 23:05:52 +01:00
33fb74043d
Bring our adjustments into line with atom-failure
2024-04-13 22:56:04 +01:00
49ed27cd96
require logger
2024-04-13 22:25:31 +01:00
7f6e35ece4
formatting
2024-04-12 20:33:33 +01:00
2e369aef71
Allow the Remote Fetcher to attempt fetching an unreachable instance
2024-04-12 20:33:21 +01:00
fed7a78c77
Oban jobs should be discarded on permanent errors
2024-04-12 20:33:17 +01:00
c0532bcae0
Handle 401s as I have observed it in the wild
2024-04-12 20:33:11 +01:00
f31b262aec
Improve test descriptions
2024-04-12 20:32:38 +01:00
ff515c05c3
Prevent requeuing Remote Fetcher jobs that exceed thread depth
2024-04-12 20:32:31 +01:00
7e5004b3e2
Leverage existing atoms as return errors for the object fetcher
2024-04-12 20:32:13 +01:00
53a9413b95
Formatting
2024-04-12 20:31:40 +01:00
d69cba1b93
Remove duplicate log messages from Transmogrifier
...
Object fetch errors are logged in the fetcher module
2024-04-12 20:31:31 +01:00
3c54f407c5
Conslidate log messages for object fetcher failures and leverage Logger.metadata
2024-04-12 20:30:38 +01:00
825ae46bfa
Set Logger level to error
2024-04-12 20:29:33 +01:00
331710b6bb
RemoteFetcherWorker Oban job tests
2024-04-12 20:29:28 +01:00
eeed051a0f
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.
2024-04-12 20:29:11 +01:00
30d63aaa6e
Revert "Mark instances as unreachable when returning a 403 from an object fetch"
...
This reverts commit d472bafec19cee269e7c943bafae7c805785acd7.
2024-04-12 20:28:56 +01:00
e2b04fac5a
Skip remote fetch jobs for unreachable instances
2024-04-12 20:28:36 +01:00
6d368808d3
Remove mistaken duplicate fetch
2024-04-12 20:28:31 +01:00
160d113b30
Changelogs
2024-04-12 20:28:26 +01:00
132036f951
Cancel remote fetch jobs for deleted objects
2024-04-12 20:28:21 +01:00
4ff22a409a
Consolidate the HTTP status code checking into the private get_object/1
2024-04-12 20:28:16 +01:00
4c29366fe5
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
2024-04-12 20:27:33 +01:00
ac4cc619ea
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
2024-04-12 20:26:56 +01:00
c241b5b09f
Remove Fetcher.fetch_object_from_id!/2
...
It was only being called once and can be replaced with a case statement.
2024-04-12 20:26:28 +01:00
f8a53fbe2f
bump dependencies
2024-04-12 19:59:30 +01:00
e36c0f96fc
Merge pull request 'Add docker override file to docs and gitignore' ( #621 ) from norm/akkoma:docker-compose-override into develop
...
Reviewed-on: AkkomaGang/akkoma#621
2024-04-12 18:50:25 +00:00
6f3c955aa0
Merge pull request 'elixir1.16 testing' ( #742 ) from elixir1.16 into develop
...
Reviewed-on: AkkomaGang/akkoma#742
2024-04-12 18:49:33 +00:00
024ffadd80
Merge pull request 'Don't list old accounts as aliases in WebFinger' ( #713 ) from erincandescent/akkoma:no-old-account-alias into develop
...
Reviewed-on: AkkomaGang/akkoma#713
2024-04-12 18:34:14 +00:00
e2e4f53585
Merge pull request 'Use standard-compliant Accept header when fetching' ( #740 ) from Oneric/akkoma:fetch_std-accept-hdr into develop
...
Reviewed-on: AkkomaGang/akkoma#740
2024-04-12 18:28:26 +00:00
d910e8d7d1
Add test suite for elixir1.16
2024-04-12 19:13:33 +01:00
df25d86999
Cleaned up FEP-fffd commits a bit
2024-04-12 18:50:57 +01:00
4887df12d7
Merge pull request 'Allow for url to be a list' ( #718 ) from helge/akkoma:develop into develop
...
Reviewed-on: AkkomaGang/akkoma#718
2024-04-12 17:39:38 +00:00
e6ca2b4d2a
Merge pull request 'Fix array-less EmojiReacts' ( #739 ) from Oneric/akkoma:tag-arrayless into develop
...
Reviewed-on: AkkomaGang/akkoma#739
2024-04-12 17:26:07 +00:00
6ba80aaff5
Merge pull request 'Check if data is visible before embedding it in OG tags' ( #741 ) from ograph-restrictions into develop
...
Reviewed-on: AkkomaGang/akkoma#741
2024-04-12 17:22:59 +00:00
8e60177466
Merge pull request 'MRF.InlineQuotePolicy: Add link to post URL, not ID' ( #733 ) from erincandescent/akkoma:quote-url into develop
...
Reviewed-on: AkkomaGang/akkoma#733
2024-04-12 17:02:52 +00:00
75d9e2b375
MRF.InlineQuotePolicy: Add link to post URL, not ID
...
"id" is used for the canonical link to the AS2 representation of an object.
"url" is typically used for the canonical link to the HTTP representation.
It is what we use, for example, when following the "external source" link
in the frontend. However, it's not the link we include in the post contents
for quote posts.
Using URL instead means we include a more user-friendly URL for Mastodon,
and a working (in the browser) URL for Threads
2024-04-12 13:23:50 +02:00
05f8179d08
check if data is visible before embedding it in OG tags
...
previously we would uncritically take data and format it into
tags for static-fe and the like - however, instances can be
configured to disallow unauthenticated access to these resources.
this means that OG tags as a vector for information leakage.
_technically_ this should only occur if you have both
restrict_unauthenticated *AND* you run static-fe, which makes no
sense since static-fe is for unauthenticated people in particular,
but hey ho.
2024-04-12 05:16:47 +01:00
fae0a14ee8
Use standard-compliant Accept header when fetching
...
Spec says clients MUST use this header and servers MUST respond to it,
while servers merely SHOULD respond to the one we used before.
https://www.w3.org/TR/activitypub/#retrieving-objects
The old value is kept as a fallback since at least two years ago
not every implementation correctly dealt with the spec-compliant
variant, see: https://github.com/owncast/owncast/issues/1827
Fixes: AkkomaGang/akkoma#730
2024-04-12 00:22:37 +02:00
1135935cbe
Merge remote-tracking branch 'oneric/ipv6' into develop
2024-04-11 20:59:49 +01:00
090a77d1af
Merge pull request 'static-fe: don’t squeeze non-square images' ( #705 ) from Oneric/akkoma:staticfe-nonsquare-img into develop
...
Reviewed-on: AkkomaGang/akkoma#705
2024-04-11 18:43:03 +00:00
0e066bddae
Merge pull request 'Drop base_url special casing in test env' ( #737 ) from Oneric/akkoma:testenv_drop_baseurl_specialcase into develop
...
Reviewed-on: AkkomaGang/akkoma#737
2024-04-11 18:24:09 +00:00
462225880a
Accept EmojiReacts with non-array tag
...
JSON-LD compaction strips the array since it’s just one object
Fixes: AkkomaGang/akkoma#720
2024-04-09 04:04:16 +02:00
debd686418
Add tests for our own custom emoji format
2024-04-09 03:52:22 +02:00
9598137d32
Drop base_url special casing in test env
...
61621ebdbc
already explicitly added
the uploader base url to config/test.exs and it reduces differences
from prod.
2024-04-07 00:20:12 +02:00