f4252a2fbf
fix: insert addressings after fetching
...
also refactored fetcher into a trait of context
2024-04-18 05:25:56 +02:00
93b5c0cd4a
fix: only fetch remote objects to avoid recursion
2024-04-18 04:50:06 +02:00
3a79ca05a2
feat: local users can request to fetch remote stuff
2024-04-18 04:48:49 +02:00
b2e6703b0e
feat: also fetch liked posts
2024-04-18 04:38:21 +02:00
5f8d8be05a
fix: show in_reply_to and statuses count
2024-04-18 04:14:16 +02:00
a897edd310
feat: add statuses count and in_reply_to fields
...
migration + models update
2024-04-18 04:09:13 +02:00
094a8b957c
fix: increase follow counts on Accept
...
both for inbox and outbox
2024-04-18 03:41:27 +02:00
45a69f0332
feat: show following/followers counts for users
2024-04-18 03:06:56 +02:00
8721a44354
feat: helper methods to handle auth cases
2024-04-18 03:06:40 +02:00
8aa80c7670
fix: faker inserts addressing too
2024-04-17 22:08:41 +02:00
267840a317
fix: not all keys are #main-key
2024-04-16 19:19:49 +02:00
dab4550d08
fix: show outbox for remote users with url trick
2024-04-16 08:04:08 +02:00
3cf401467e
feat: login tells you who you are
2024-04-15 22:29:55 +02:00
d5a83a5c7c
fix: attempt to select only one addressing
2024-04-15 22:10:49 +02:00
ee26596568
feat: allow to resolve local views of remote things
...
basically any id prefixed with + will be:
* prefixed with 'https://'
* have all '@' replaced with '/'
* not be normalized with local domain patterns
thus allowing to look up kind of any url in our db
this is kinda reinventing the wheel, but i really don't want to have
local-only ids and would much rather have a local-only way to display
them, because at least everyone can understand it and look up anything
remote easily
2024-04-15 21:36:31 +02:00
f1ff946245
fix: also store public addrs for remote activities
...
oopsss thank you @prefetcher
2024-04-15 21:29:30 +02:00
a5454af7a3
chore: skeleton routes for likes&co and context
2024-04-15 01:56:54 +02:00
586f8d3f97
chore: unused imports
2024-04-14 16:57:36 +02:00
fd98864606
chore: some work on mastodon statuses route
2024-04-14 16:49:38 +02:00
b1b0aee2f9
feat: process some Undo activities, small refactor
2024-04-14 16:47:36 +02:00
b99ca9fa7e
feat: ignore deletions for GONE users
...
mastodon is quite spammy omg
2024-04-14 16:05:44 +02:00
19598aaffd
fix: order
...
was it just me being silly displaying it??? lol
2024-04-14 06:43:21 +02:00
8a14600311
fix: proper addressing creation for likes
2024-04-14 05:53:36 +02:00
b11da7f3c0
fix: oops i mixed up some fields
2024-04-14 03:48:37 +02:00
a735e16f73
fix: image and icon live under url
2024-04-14 03:39:52 +02:00
8b10bde544
feat: more consistent way to view remote users
2024-04-14 02:36:59 +02:00
6613f337ce
feat: cors and tracing layers
2024-04-13 22:31:46 +02:00
4d44688564
feat: dump json to stdout after fetching
2024-04-13 22:17:35 +02:00
c9a20b4e65
feat: node.fetch() is now signed
2024-04-13 22:13:36 +02:00
2e8d4323ee
fix: don't repeat (request-target)
2024-04-13 21:35:53 +02:00
027040604c
feat: improved http signatures code
2024-04-13 21:22:19 +02:00
f29d3baeb9
fix: name is nullable, preferredUsername is not
2024-04-13 16:43:19 +02:00
7f66851136
fix: Path<()>, not Path<>, Path<>
2024-04-13 06:55:16 +02:00
fc488e6b2f
feat: route for viewing specifically remote users
...
WIP, will probably go away in favor of a uniform route
2024-04-13 06:50:04 +02:00
9c9b5ec380
fix: standard base64
2024-04-13 06:06:05 +02:00
5d3c222774
fix: verify_oneshot, maybe makes a difference?
2024-04-13 06:02:50 +02:00
652af15771
fix: include method in request target
2024-04-13 05:36:29 +02:00
437859008c
feat: reimplemented from scratch http sig verify
2024-04-13 05:26:50 +02:00
6614f63f56
fix: added inbox and outbox to main app actor
2024-04-13 04:42:46 +02:00
72774d01ed
fix: also in case of digest
2024-04-13 04:31:50 +02:00
5f66ca4946
fix: oh my god if it was this ...
2024-04-13 04:31:36 +02:00
80d324ae03
fix: use method, don't hardcode "post"
2024-04-13 04:24:22 +02:00
1caaa08f78
fix: fetcher specifies application/json
2024-04-13 04:21:33 +02:00
2031d8de41
fix: upub error reports status codes as-is
2024-04-13 04:08:45 +02:00
861cd2297b
fix: why is it throwing 500???
2024-04-13 03:47:04 +02:00
b4e82b551b
fix: going back to manual http signatures
...
at least those worked, what the fuck is up with this lib technology...
2024-04-13 03:41:36 +02:00
d60d29bf98
fix: continue as anon if can't fetch user
2024-04-13 03:31:37 +02:00
c342b7c936
fix: object view
...
quite wasteful to do it like this but for some reason previous way
didn't work??
2024-04-13 03:28:52 +02:00
bb16a5b7d2
fix: return response rather than parsing
...
so that deliveries work
2024-04-13 03:21:25 +02:00
855434ee12
fix: try using again the new lib?
2024-04-13 03:09:47 +02:00
3a48e91655
fix: force overrule signature algorithm
...
really what?????
2024-04-13 03:03:54 +02:00
70c978caa0
fix: having more fun with http signatures
2024-04-13 02:55:10 +02:00
ff55d2fea4
fix: mastodon compat
2024-04-13 02:35:18 +02:00
46bbeea3ab
feat: verify inbox http signatures
2024-04-13 01:49:23 +02:00
d66f09d130
feat: inbox requests remote server auth
2024-04-13 01:49:04 +02:00
5863bdf04e
feat: signed fetches, improved signatures code
...
should make sure that it still works
2024-04-13 00:44:53 +02:00
95ab7a50ef
chore: refactored a little
2024-04-12 22:56:29 +02:00
576e809b69
fix: timelines ordering
...
what??? ASCENDING goes from most recent to least recent?? maybe
ascending oldness??????
2024-04-12 22:41:04 +02:00
d3d5f98dfd
feat: authorized fetch on activities and objects
2024-04-12 22:21:23 +02:00
4e34446894
fix: oops must be generic impl
2024-04-12 21:55:19 +02:00
5de807b3d9
fix: don't clear audiences
...
still quite jank way to do it but at least should work again?
2024-04-12 21:42:06 +02:00
ca59c30e70
fix: auth filter conditions any, not all
2024-04-12 21:18:01 +02:00
0fa88e51e6
feat: added all inboxes and outboxes
...
base POST to /outbox still returns NOT IMPLEMENTED tho
2024-04-12 20:01:47 +02:00
af8d11e75b
feat: inbox/outbox security and obj embedding
2024-04-12 19:36:00 +02:00
0d340185cf
feat: improved addressing select
2024-04-12 19:35:26 +02:00
3a874ed3e7
fix: insert activities, expand addressing
...
remote activities for Likes and Follows should still be added to our
database so we know where to verify those and we can present them in a
timeline for notifications
2024-04-12 18:40:24 +02:00
9e67eead69
feat: multi-join maybe? fix inbox not embedding obj
...
got this from https://github.com/SeaQL/sea-orm/discussions/1502 , not
sure it's what i need but i'm trying some stuff
2024-04-11 17:00:09 +02:00
d5c5d341e8
fix: ownerships
2024-04-11 16:59:47 +02:00
0261f87306
feat: first mastodon route yay, mastodon default on
2024-04-11 00:52:44 +02:00
86e84d88aa
chore: updated apb things, restructured a bit
2024-04-11 00:29:32 +02:00
4c2eb7b990
chore: better routing structure
2024-04-09 04:35:57 +02:00
bb26ff763d
chore: restructured completely
...
kinda MVC:
Model -> model
View -> routes
Controller -> server
2024-04-09 01:14:48 +02:00
20ca18f9e3
chore: also modularized APInbox
2024-04-08 02:55:21 +02:00
7ce872cfff
chore: separated outbox business logic in methods
...
dumped all in server but temporary, now can be properly modularized
also fixed endpoints
2024-04-08 02:30:43 +02:00
24d547e93a
feat: subdivide into features
2024-04-06 18:03:13 +02:00
a624222751
feat: listed half of mastodon's api routes
2024-04-06 17:20:44 +02:00
ca871a867f
docs: some readmes
...
pretty useless but at least they're there
2024-04-06 17:20:14 +02:00
520c8eff3a
feat: separated apb types into crate, reworked
...
no more "impl ..." hell, each trait has associated types so that we know
it's a "Self::Link" or a "Self::Actor", but in practice they can both be
a "serde_json::Value" and thus we can change its type. also Node::Array
is now a Vec<T> rather than Vec<Node<T>> because it makes more sense.
Node is Iterable and will yield zero (Empty|Link), one (Object) or many
(Array) Ts
2024-04-06 16:56:13 +02:00
b5867b90ac
feat: accept also bare note to publish
2024-03-28 05:24:38 +01:00
0ec839f42f
fix: followers was wrong because full model
2024-03-28 05:19:13 +01:00
3725097749
fix: followers querying with full id
2024-03-28 05:14:50 +01:00
d7efbf5131
chore: imports cleanup
2024-03-28 05:14:17 +01:00
e68332bc31
chore: refactor collections with utils, moved stuff
2024-03-28 04:52:17 +01:00
68823559c1
feat: process updates for notes and users
2024-03-28 04:47:49 +01:00
5bad5e0405
fix: more lenient nodeinfo
2024-03-28 04:05:47 +01:00
4274367285
feat: immediately wakeup dispatcher when sending
2024-03-27 05:09:20 +01:00
70c1f96959
fix: maybe fix for expanding addressings
2024-03-27 04:46:57 +01:00
746c5e5921
fix: log follow request accept/reject
2024-03-27 04:40:50 +01:00
bd4d123223
fix: less extreme logging for deliveries
2024-03-27 04:38:14 +01:00
742c769014
fix: filter out empty targets
2024-03-27 04:36:46 +01:00
625b8e0e02
fix: when missing embedded object still show url!
2024-03-27 04:28:09 +01:00
fe30ad59d7
feat: normalized pagination
2024-03-27 04:23:42 +01:00
139e973277
fix: don't insert when there's nothing to insert
2024-03-27 04:13:29 +01:00
ac2c86f16e
feat: crude implementation of most inbox flows
2024-03-27 04:00:27 +01:00
db8ecc7c3d
chore: moved around stuff
2024-03-27 04:00:18 +01:00
c3face463e
feat: crude implementation for most outbox methods
2024-03-27 03:24:14 +01:00
f83103ba72
fix: Node::id() returns owned value, imports fix
2024-03-27 03:23:54 +01:00
b37d799f59
fix: oh yes that was it! now digest
2024-03-27 02:11:14 +01:00
21db907e17
fix: omg is it the day of the week?
2024-03-27 02:08:50 +01:00
e75758b320
fix: if this is it.............
2024-03-27 02:07:02 +01:00
44adbeb434
fix: maybe without the day? omg mastodon...
2024-03-27 01:56:44 +01:00
b730598abe
fix: well it's not standard duhh
2024-03-27 01:53:41 +01:00
ad012bd2ee
fix: what the fuck mastodon?
...
or is it rust's fault?
2024-03-27 01:48:55 +01:00
4d06af9c54
fix: ooo is it this one?
2024-03-27 01:44:27 +01:00
f2513f30c8
fix: show me what they say when rejecting sign :(
2024-03-27 00:24:14 +01:00
a2f77fa6fb
fix: apparently i need to put flat links...
...
what's the point of being ActivityPub if you expect a fixed structure!!!
2024-03-27 00:15:17 +01:00
e9dc33a39d
fix: typo
2024-03-26 23:55:57 +01:00
603724ebcc
feat: improved dispatcher sleep logic
2024-03-26 23:53:44 +01:00
6097493932
chore: faker creates test user, not root
2024-03-26 23:53:30 +01:00
46394af394
fix: include request-target
2024-03-26 23:42:22 +01:00
8437de6c1b
fix: add back algorithm, fix digest fn
2024-03-26 21:48:39 +01:00
e8eff349cf
fix: ops must include digest and compose header
2024-03-26 21:30:41 +01:00
fc4674ecca
fix: maybe if i do it the old way??
2024-03-26 21:24:10 +01:00
98cb07b547
fix: does 'require_header' change anything?
2024-03-26 21:14:01 +01:00
923d96bd7f
fix: are these the issue?
2024-03-26 21:09:49 +01:00
46b9a339f7
fix: also full AP header
2024-03-26 21:02:07 +01:00
2f5344af37
fix: correct path for signature
2024-03-26 20:22:15 +01:00
a99c21654d
fix: use date format mastodon shows in docs
...
can't be this, or can it?
2024-03-26 20:17:41 +01:00
8bf41aa28b
fix: use a reasonable crate for http signing
...
http_signatures is abandoned, http_sig is weird???
2024-03-26 19:27:35 +01:00
d321d0b22a
fix: calculate digest, remove algo field
...
https://docs.joinmastodon.org/spec/security/#http
2024-03-26 05:25:51 +01:00
4afb0ae946
fix: generate keys on the fly
2024-03-26 04:20:35 +01:00
8ed4251d31
fix: #main-key ...
2024-03-26 04:14:23 +01:00
82f8abd96b
fix: well known without protocol
2024-03-26 03:54:25 +01:00
d918caa815
fix: was getting host wrongly, also log way more
2024-03-26 03:49:09 +01:00
90cae9e5fd
fix: header and LD context...
2024-03-26 03:41:17 +01:00
8ba25d511e
fix: more resilient priv key selection
2024-03-26 03:21:00 +01:00
e6b30975cc
feat: catch dispatcher errors
2024-03-26 03:11:59 +01:00
81b6a7183a
fix: log delivery responses bodies
2024-03-26 03:05:43 +01:00
83b0b35043
fix: check status code when delivering
2024-03-26 02:50:58 +01:00
d5c73e85e8
fix: fetch activity case for non embedded
2024-03-26 02:46:10 +01:00
34a3769fba
fix: acktually algorithm is required by spec
2024-03-26 02:27:40 +01:00
7d1473691e
fix: valid ids for inserted things
2024-03-26 02:24:09 +01:00
a7a6a23560
fix: also insert like relation when posting likes
2024-03-26 02:13:03 +01:00
c6703a0a1e
fix: add published which must be non null
2024-03-26 02:07:46 +01:00
36aec4f447
fix: improvements for debugging
2024-03-26 02:05:20 +01:00
b464aa0e98
fix: register outbox route
2024-03-26 01:31:17 +01:00
f588df751f
fix: don't attempt to deliver to public target
2024-03-26 01:25:15 +01:00
794548d14a
fix: duhhh
2024-03-26 01:19:34 +01:00
0c8afc2780
fix: some logging on fetcher and dispatcher
2024-03-26 01:14:43 +01:00
13f99532fe
fix: put bac protocol in urls
2024-03-26 01:02:48 +01:00
6a050c0bb4
fix: actually fixed it
2024-03-26 00:58:01 +01:00
3a0ca6af86
feat: control how many statuses to insert
2024-03-26 00:53:07 +01:00
71acddb766
feat: crude handling of line and create
2024-03-26 00:50:07 +01:00
d7e846370a
feat: show public key of user
2024-03-26 00:49:56 +01:00
b0d8957f41
feat: Node::get() returns owned object
2024-03-26 00:49:42 +01:00
be75ac33d1
feat: parse some algorithms for digest, all rsa
2024-03-26 00:49:27 +01:00
4a99a3dc40
chore: small improvements and fixed some warns
2024-03-26 00:49:07 +01:00
6d078f7068
feat: show pub key and created time for app actor
2024-03-26 00:48:37 +01:00
f74aab7852
feat: implemented GET inbox to browse home feed
2024-03-25 21:48:58 +01:00
b0e4940ec8
feat: validate incoming http signatures
2024-03-25 21:19:25 +01:00