Commit graph

560 commits

Author SHA1 Message Date
silverpill
e78e3c5102 Increase length of logged inbox response 2023-01-25 20:30:43 +00:00
silverpill
d09770913b Replace client-side tag URLs with collection IDs 2023-01-22 15:32:23 +00:00
silverpill
75579eae4f Add support for emoji shortcodes 2023-01-21 22:56:46 +00:00
silverpill
b958b8fb4c Save sizes of media attachments and other files to database 2023-01-21 19:52:32 +00:00
silverpill
e3b51d0752 Validate emoji name before saving 2023-01-21 12:41:37 +00:00
silverpill
99d45ee048 Create custom type for emoji images 2023-01-20 22:11:01 +00:00
silverpill
6c6eb731f9 Use usize type for file sizes 2023-01-20 01:00:15 +00:00
silverpill
c26fc9235d Group imports in some modules 2023-01-19 22:00:04 +00:00
silverpill
441264f34c Allow emojis with image/gif media type 2023-01-18 16:45:51 +00:00
silverpill
52112996c5 Try to fix federation with GNU Social 2023-01-18 13:26:04 +00:00
silverpill
6af5b8c24d Ignore Like() activity if local post doesn't exist 2023-01-18 01:14:21 +00:00
silverpill
01f56d9ef7 Use re-exported tokio_postgres::GenericClient trait 2023-01-18 01:01:45 +00:00
silverpill
0e68ea263c Increase max emoji size to 250 kB 2023-01-17 20:47:34 +00:00
silverpill
fcb6554ebb Don't download HTML pages attached by GNU Social 2023-01-17 19:16:46 +00:00
silverpill
10c38400e4 Accept actor objects where value of "attachment" property is not an array 2023-01-17 18:04:16 +00:00
silverpill
56e75895bd Download custom emojis contained in remote posts 2023-01-17 16:47:09 +00:00
silverpill
7b8a56dd8f Support "Public" audience identifier 2023-01-17 00:51:35 +00:00
silverpill
5064afd766 Change max actor image size to 5 MB 2023-01-16 20:34:24 +00:00
silverpill
4d29c83365 Validate emoji tags 2023-01-15 02:14:02 +00:00
silverpill
143879caf9 Ignore deserialization errors when parsing object tags 2023-01-15 02:07:52 +00:00
silverpill
a22ae40d8e Create SimpleTag and LinkTag types 2023-01-15 01:50:44 +00:00
silverpill
41fdb8abb0 Rename activitypub::activity module to activitypub::types 2023-01-14 23:31:38 +00:00
silverpill
72637fe80c Add mediaType property to images in actor object 2023-01-14 19:39:19 +00:00
silverpill
53138ea1c7 Don't fetch HTML pages attached by GNU Social 2023-01-14 19:38:28 +00:00
silverpill
7c07cd79bc Use "mediaType" property value to determine file extension when saving downloaded media 2023-01-14 02:10:06 +00:00
silverpill
85dbb6f392 Save downloaded media as "unknown" if its media type is not supported 2023-01-14 02:08:28 +00:00
silverpill
51cb72d142 Add test for get_note_author_id 2023-01-13 01:31:45 +00:00
silverpill
5c0672884a Log actor tags at debug level 2023-01-13 01:31:45 +00:00
silverpill
cbc78f9532 Support "as:Public" audience identifier 2023-01-13 01:31:45 +00:00
silverpill
5c2685c785 Remove empty module 2023-01-13 01:31:45 +00:00
silverpill
48de6218eb Add webfinger test 2023-01-13 01:31:45 +00:00
silverpill
7218864563 Don't stop activity processing on invalid local mentions 2023-01-11 21:55:40 +00:00
silverpill
2385601e12 Create get_or_import_profile_by_actor_address helper function 2023-01-11 21:55:35 +00:00
silverpill
22cf00fd98 Propagate database errors returned by importer in search_profiles_or_import() 2023-01-11 21:26:53 +00:00
silverpill
7247441693 Don't ignore Delete(Person) verification errors if database error subtype is not NotFound 2023-01-11 21:26:53 +00:00
silverpill
af332283ed Move ActorAddress type to webfinger::types module 2023-01-11 21:26:52 +00:00
silverpill
5fec0c187d Sign Move() activity with server key 2023-01-11 21:26:48 +00:00
silverpill
228299c5b7 Remove prepare_signed_update_person() function 2023-01-09 16:22:47 +00:00
silverpill
65496e5260 Write values of actor tags to log 2023-01-07 20:47:42 +00:00
silverpill
44ce9a73a2 Save media types of uploaded avatar and banner images 2023-01-07 16:05:15 +00:00
silverpill
682cf09835 Store avatar and banner metadata as JSON objects 2023-01-07 12:22:33 +00:00
silverpill
65072ca3c5 Rename Image type to ActorImage 2023-01-07 12:08:15 +00:00
silverpill
6c850b0197 Move fetch_actor_images to actors::helpers module 2023-01-07 12:07:53 +00:00
silverpill
fe395480eb Set limit on number of media files that can be attached to post 2023-01-06 16:55:38 +00:00
silverpill
68e464c813 Don't sniff media type in save_file() 2023-01-06 15:41:09 +00:00
silverpill
5b3aa2a24b Fix federation with GNU Social 2023-01-05 19:55:17 +00:00
silverpill
5c9aa0f148 Always put outgoing activities in a queue 2023-01-04 19:36:57 +00:00
silverpill
30857868a0 Write tag value to log if tag type is Emoji 2023-01-04 17:40:17 +00:00
silverpill
498be66d8b Change actor status to "unreachable" if delivery to inbox fails 2023-01-01 21:48:23 +00:00
silverpill
534812efa2 Implement activity delivery queue 2023-01-01 19:45:41 +00:00
silverpill
b392d9164b Keep actor IDs when constructing OutgoingActivity 2023-01-01 19:44:50 +00:00
silverpill
1d234bd679 Stop generating reachability report after delivery 2023-01-01 19:40:43 +00:00
silverpill
b4f68aaec8 Rename IncomingActivity type 2022-12-31 13:28:25 +00:00
silverpill
0ecf682984 Move activity queue helpers to activitypub::queues module 2022-12-31 00:07:10 +00:00
silverpill
471442a22a Set limit on a number of requests in import_post 2022-12-29 17:32:38 +00:00
silverpill
de9bc7f35e Rewrite mention_to_address and parse_acct_uri, remove unnecessary regexp 2022-12-28 00:18:45 +00:00
silverpill
e7b318c761 Make post and profile page redirections work in Mastodon 2022-12-27 20:29:44 +00:00
silverpill
7494d62858 Make post/profile page redirection work when web client service is enabled 2022-12-24 17:59:40 +00:00
silverpill
b14338d5f0 Move frontend module to web_client::urls 2022-12-24 17:09:44 +00:00
silverpill
bf92cebe5c Write activity ID to log if repost already exists in database 2022-12-21 19:21:21 +00:00
silverpill
f2df270a82 Remove duplicate inboxes when constructing OutgoingActivity 2022-12-20 00:59:57 +00:00
silverpill
4d31b9f9f9 Reject activities from blocked instances before verifying signature 2022-12-20 00:59:57 +00:00
silverpill
a14c719d25 Ignore Announce(Dislike) activities 2022-12-14 16:34:30 +00:00
silverpill
68f7b046a1 Support manuallyApprovesFollowers property on actor objects 2022-12-14 09:34:45 +00:00
silverpill
d2e2b684e3 Refactor deliver_activity_worker() and prepare for queue serialization 2022-12-14 09:34:40 +00:00
silverpill
fcab5b000a Ignore Announce() activity if repost already exists but with a different object ID 2022-12-13 19:42:57 +00:00
silverpill
1b588a86e0 Handle non-nested Undo(Follow) activities 2022-12-13 01:12:42 +00:00
silverpill
f2037c9516 Save activity ID when processing remote follow request 2022-12-13 00:54:38 +00:00
silverpill
8c14b18d5b Extract integrity proof before fetching actor 2022-12-12 22:54:49 +00:00
silverpill
a85eaabf2f Process Announce() and Update() activities in background jobs 2022-12-12 22:54:43 +00:00
silverpill
50b8ad9de4 Create type for deserializing Undo() activities and remove Activity type 2022-12-12 21:15:08 +00:00
silverpill
bb033e11df Create type for deserializing Delete() activities 2022-12-12 21:04:18 +00:00
silverpill
73e0b10a10 Create types for deserializing Add() and Remove() activities 2022-12-12 20:58:23 +00:00
silverpill
f50609e4e5 Create type for deserializing Update(Person) activities 2022-12-12 20:58:23 +00:00
silverpill
72eabce15b Create types for deserializing Follow(), Accept() and Reject() activities 2022-12-12 20:58:20 +00:00
silverpill
1efbf5a3fb Process Create() activities in background jobs 2022-12-12 15:29:40 +00:00
silverpill
2bf16b260e Add handle_activity() function 2022-12-12 00:31:29 +00:00
silverpill
7498fc9dba Move create_remote_profile() and update_remote_profile() to actors::helpers module 2022-12-11 14:57:57 +00:00
silverpill
5307a28111 Create type for deserializing Like() activities 2022-12-10 20:51:21 +00:00
silverpill
212db48d75 Add find_aliases() helper function 2022-12-10 20:51:16 +00:00
silverpill
64dbd8ff26 Accept attachments with type Video
Video attachments are used in PixelFed.
2022-12-10 19:01:11 +00:00
silverpill
cc728afb7d Remove unused fields from Object and Activity types 2022-12-10 19:01:11 +00:00
silverpill
f21f72b96e Create type for deserializing Move() activities 2022-12-10 19:01:04 +00:00
silverpill
b7a1803715 Create type for deserializing Announce() activities 2022-12-09 23:07:19 +00:00
silverpill
04ee3e5106 Move activity parsing to handlers 2022-12-09 21:16:53 +00:00
silverpill
e247941695 Reorganize handlers and remove unneeded modules 2022-12-09 20:22:48 +00:00
silverpill
e6be1cde2d Refactor handle_undo_follow() function 2022-12-08 22:58:48 +00:00
silverpill
84c93fecf1 Refactor receive_activity() function 2022-12-08 22:11:15 +00:00
silverpill
999dd7e608 Don't fetch actor when verifying JSON signature on Delete(Person) activity 2022-12-08 16:31:26 +00:00
silverpill
cd6968b15a Fetch actor before verifying JSON signature 2022-12-08 16:10:29 +00:00
silverpill
a71c4ccc89 Refactor ActivityPub authentication helpers 2022-12-08 16:09:10 +00:00
silverpill
06e172d9fa Never ignore invalid HTTP signatures 2022-12-08 00:47:18 +00:00
silverpill
d3db42ec9e Rename modules 2022-12-07 21:00:54 +00:00
silverpill
e0053f19c7 Add handler function for Create() activity 2022-12-07 19:46:49 +00:00
silverpill
c218d3ebce Don't match object type in receive_activity() 2022-12-06 23:59:33 +00:00
silverpill
67313dbac7 Create unified handler for Undo() activities 2022-12-06 23:53:30 +00:00
silverpill
648a217971 Create unified handler for Update() activities 2022-12-06 23:48:24 +00:00
silverpill
a3c3f97759 Rename modules 2022-12-06 23:29:59 +00:00
silverpill
d3819c67e6 Create dedicated types for all activities and remove create_activity() function 2022-12-06 21:07:26 +00:00
silverpill
e5c1be2f93 Transform incoming events into posts
Support for Event objects from Rebased.
2022-12-06 19:54:44 +00:00
silverpill
777dd74373 Use Follow type to create embedded activity when building Undo(Follow) 2022-12-05 23:03:37 +00:00
silverpill
7c3d669e9b Use plain object ID instead of embedded activity in Accept(Follow) 2022-12-05 22:59:31 +00:00
silverpill
51318046a8 Create dedicated types for building Follow(), Accept(Follow) and Undo(Follow) activities 2022-12-05 22:53:09 +00:00
silverpill
ff745cfe64 Add tests for build_undo_follow() and build_move_person() 2022-12-05 22:50:40 +00:00
silverpill
10cd778f40 Replace generic parameter in OutgoingActivity struct with Value type 2022-12-05 18:08:15 +00:00
silverpill
d1939b10d5 Move DatabaseError to database module 2022-12-03 22:57:09 +00:00
silverpill
4185cbefb0 Rename Pool type to DbPool 2022-12-03 21:30:24 +00:00
silverpill
56427a4535 Catch error if media request returns 4xx or 5xx 2022-12-03 11:19:08 +00:00
silverpill
28aea5b023 Always set User-Agent header when using fetcher 2022-12-03 11:19:01 +00:00
silverpill
7d204ab150 Remove unknown classes during HTML sanitization 2022-11-29 16:46:00 +00:00
silverpill
a3ec1e7b58 Verify that actor alias exists before moving local followers 2022-11-27 22:04:53 +00:00
silverpill
ff7c6724a0 Accept Move() activities where object is local actor 2022-11-27 19:54:07 +00:00
silverpill
df8c206cf0 Accept Move() activities coming from "target" actor 2022-11-27 19:53:57 +00:00
silverpill
73ef78f021 Search for aliases by DID when processing Move(Person) activity 2022-11-27 13:47:52 +00:00
silverpill
4a42bcd369 Add API methods for creating user-signed Move() activities 2022-11-27 13:05:21 +00:00
silverpill
12861a98b7 Use actor ID as a hint when identifying activity signer 2022-11-27 11:15:13 +00:00
silverpill
8dfd8bf0d7 Add ImportError to AuthenticationError enum 2022-11-27 10:53:51 +00:00
silverpill
fbcba1b99d Refactor send_signed_update view 2022-11-26 01:00:42 +00:00
silverpill
262b910638 Rename instance.host() to instance.hostname() 2022-11-24 13:27:10 +00:00
silverpill
473147ed04 Move signature type check to activitypub::authentication module 2022-11-23 16:11:25 +00:00
silverpill
301ade36a3 Use enum to define identity proof type 2022-11-23 01:04:55 +00:00
silverpill
241351c2bf Allow value of "icon" property to be empty object 2022-11-22 19:00:29 +00:00
silverpill
1edcefee6d Accept Create() activities with object type Article and Video 2022-11-21 23:24:40 +00:00
silverpill
126c04febb Include local posts in search results 2022-11-21 22:06:06 +00:00
silverpill
4a5bcba127 Change signature format in minisign integrity proofs 2022-11-19 15:52:20 +00:00
silverpill
e1bb00a8dc Handle Accept(Follow) activities without nested Follow 2022-11-18 16:42:04 +00:00
silverpill
3b470a04f7 Allow alsoKnownAs attribute value to be string 2022-11-17 22:49:31 +00:00
silverpill
09cb15297a Ignore Announce(Undo) activities 2022-11-14 18:56:42 +00:00
silverpill
c11daa21a0 Rename utils::crypto module to crypto_rsa 2022-11-13 21:31:04 +00:00
silverpill
4d85638d8c Move password utils to utils::passwords module 2022-11-13 21:30:59 +00:00
silverpill
8ad88f84b2 Support integrity proofs created with minisign 2022-11-11 00:53:23 +00:00
silverpill
64546ecabe Refactor signature verifiers 2022-11-11 00:53:23 +00:00
silverpill
db00ad1623 Move signature suites to identity::signatures module 2022-11-11 00:53:23 +00:00
silverpill
f4aebdfdb2 Accept minisign identity proofs from other instances 2022-11-11 00:53:23 +00:00
silverpill
1bfb951df8 Move create_identity_claim to identity::claims module
Make it work with any DID type
2022-11-10 09:46:06 +00:00
silverpill
a5c9da78ef Add DidKey type 2022-11-09 18:53:52 +00:00
silverpill
dae6e9437b Use general Did type intsead of DidPkh in identity proofs 2022-11-09 18:15:50 +00:00
silverpill
4e53a5c4e4 Move DidPkh type to identity module 2022-11-08 22:45:59 +00:00
silverpill
fbfb6bb3c2 Create dedicated type for Update(Person) activity 2022-11-07 15:52:53 +00:00
silverpill
e750b2b718 Add test for build_update_person 2022-11-07 15:32:49 +00:00
silverpill
ff12501ec0 Exclude local profiles when looking up activity signer 2022-11-06 22:37:09 +00:00
silverpill
109a519607 Treat activity signature as primary signature
Request signature is secondary.
2022-11-06 22:29:06 +00:00
silverpill
3cc7b58350 Change log level of JSON signature error message 2022-11-02 19:23:32 +00:00
silverpill
7f9b2a8768 Verify activities containing EIP-155 integrity proof 2022-11-02 18:04:12 +00:00
silverpill
cdd3bfb6df Rewrite get_json_signature to return signer type along with other info 2022-11-02 17:16:53 +00:00
silverpill
75fe4df328 Implement EIP-191 integrity proofs 2022-11-02 16:08:34 +00:00
silverpill
1ec8cb4ddd Add views for signing Update(Person) activity 2022-11-02 16:08:34 +00:00
silverpill
3dbb922f3c Return error if trying to sign activity which is already signed 2022-11-02 16:08:34 +00:00
silverpill
4193ba94a5 Write warning to log if request signer differs from activity signer 2022-10-31 22:33:14 +00:00
silverpill
8c1d871d9e Return HTTP 405 in reponse to POST request to outbox
ActivityPub C2S is not supported.
2022-10-31 19:11:00 +00:00