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
e1b93e8a93
feat: added basic fetcher, get keys at startup
2024-03-25 21:19:02 +01:00
88808f020c
feat: storage for application keys
2024-03-25 21:18:27 +01:00
6ea4f06d54
feat: initial work on validating http signatures
2024-03-25 05:12:49 +01:00
d0816a0f6a
fix: from -> actor
2024-03-25 05:12:09 +01:00
6be1a445be
chore: not all pub
2024-03-25 05:08:29 +01:00
5d7ce0e3c4
feat: simple delivery system + http signatures
2024-03-25 05:07:58 +01:00
76c0bd5218
feat: store base domain and protocol separately
2024-03-25 05:02:39 +01:00
de74669bd7
chore: moved version as const
2024-03-25 05:02:20 +01:00
7f69abf6c0
fix: cleanup
2024-03-25 02:27:31 +01:00
6be486ca3d
fix: add also server column for server addressing
2024-03-25 02:26:47 +01:00
acd4fa0bd4
feat: work on authed outbox/inbox
2024-03-25 02:00:57 +01:00
384d5147ed
feat: initial auth extractor
2024-03-25 01:58:30 +01:00
41899556bf
fix: session id is session
2024-03-25 01:58:06 +01:00
fbd175e8f3
chore: oops merge made a mess
2024-03-25 01:57:13 +01:00
a3df3e882e
feat: super barebones auth route
2024-03-24 23:55:48 +01:00
e02a48d9da
fix: wrong id type for addressing model
2024-03-24 05:55:50 +01:00
2958107c49
fix: actually insert addressing on receiving
...
also some nice utils to handle link vecs
2024-03-24 05:49:36 +01:00
28ba5f1b40
feat: add global inbox get, which respects privacy
2024-03-24 04:58:49 +01:00
2ac7fa0588
chore: split inbox/outbox, added forgotten mods
2024-03-24 04:05:09 +01:00
65032ef606
fix: faker followers/following counts
2024-03-24 04:04:48 +01:00
0d1250fd6f
feat: add addressing table
...
this should allow to build timelines and check access permissions
quickly. my only concern is keeping thousands, if not even millions, of
rows always with full strings. future optimizations may look into an
intermediary table to map ids to integers and optimize this table's
storage
2024-03-24 04:03:44 +01:00
7251a3e92c
feat: added sessions with credentials
2024-03-24 04:03:22 +01:00
2673860106
chore: better ap user route
2024-03-23 20:24:38 +01:00
34b7db5ce6
feat: default for config
2024-03-23 20:24:29 +01:00
13afd5be87
chore: split server context and router
2024-03-23 20:24:14 +01:00
d36ac82dd9
feat: add followers and followers count to users
...
redo migrations (: honestly if you're expecting to keep a long-lasting
db at this stage of development i have bad news for you
2024-03-23 16:44:27 +01:00
72c2cd5f81
chore: cleaned up all model modules
2024-03-23 06:32:15 +01:00
1a7a4f6df6
chore: ok clippy
2024-03-23 06:14:34 +01:00
c361528b2f
feat: moved object creation out of entity
2024-03-23 06:10:53 +01:00
05245c2776
fix: faker also insert config and credentials
2024-03-23 06:10:33 +01:00
f48509e2d8
feat: added tables+entities for config, credentials
...
simple password auth is bad and shall likely go but it's easy for now
and i need a way to login to test user interactions as i make the outbox
working
2024-03-23 05:02:39 +01:00
b90f7307bc
fix: datetime utc, also in likes
...
redo all migrations ehe
2024-03-23 04:40:39 +01:00
490358e9ed
chore: merged follow___ into one function
2024-03-23 04:40:02 +01:00
a18d0fd3d4
chore: split down ap/user file
2024-03-23 04:31:48 +01:00
84882dd5bd
fix: published is optional on activities
2024-03-22 17:59:46 +01:00
812fe05b6b
fix: cleaner way to stop showing sqlx logs
2024-03-22 17:54:49 +01:00
69c06d4a9c
fix: hide sqlx queries
...
args are hidden anyway and they are quite unreadable
2024-03-22 17:49:25 +01:00
65cd8e8070
feat: process deletions, log inbox activity better
2024-03-22 17:44:04 +01:00
95eaa9596c
feat: added simpler ways to ignore+log errors
2024-03-22 17:43:57 +01:00
0ec636a868
fix: sqlite returns runtime error, catch it
...
prob too wide but i wanna use sqlite
2024-03-22 06:53:40 +01:00
4fd8ad2c2c
fix: sqlite can't handle u64
2024-03-22 06:35:50 +01:00
afcd9d8572
fix: unique
2024-03-22 06:25:30 +01:00
89cd0d0335
fix: it wasn't that easy
2024-03-22 05:59:24 +01:00
9f1e6da4b9
feat: add likes and shares, process likes
...
also redid migrations because its easier and also its just me using this
cursed thing and i can just delete the db and migrations look nicer this
way
2024-03-22 05:34:08 +01:00
e26346cf66
fix: followers, following
2024-03-22 05:33:39 +01:00
80c38dc211
fix: forgot auto increment
2024-03-22 03:11:47 +01:00
02ae091962
feat: manage follower/followig collections
2024-03-22 02:50:38 +01:00
8cb8632521
feat: added relation table
2024-03-22 02:29:37 +01:00
7751114bda
fix: disable shared inbox/outbox
...
they aren't really implemented anyway and it's too much hassle now,
they're only relevant for big instances, not 1-user dev junk
2024-03-22 01:56:06 +01:00
20415a0386
feat: barebones following/followers collections
2024-03-22 01:52:02 +01:00
5c1ee72d68
fix: log what comes to our inbox
2024-03-22 01:41:42 +01:00
5eec008343
fix: strip acct: from webfinger if given
2024-03-22 01:22:03 +01:00
69f0239764
feat: nodeinfo (well barebones but kinda)
2024-03-22 01:21:50 +01:00
3e81574783
fix: host-meta is xrd+xml
2024-03-22 00:21:35 +01:00
aab31eac67
feat: handle host-meta and webfingers
2024-03-22 00:17:52 +01:00
efb1f506c3
fix: add cc/to , clear bcc/bto in object too
2024-03-21 20:40:07 +01:00
d127385310
docs: added some readme about ap and as folders
2024-03-21 20:37:16 +01:00
c2f3224e0e
fix: context <-> conversation
...
damn you mastodon!
2024-03-21 20:36:56 +01:00
8ad5738579
feat: add audiences to objects too
2024-03-21 20:36:46 +01:00
d53644ea1f
chore: moved faker in its own file
2024-03-21 20:36:28 +01:00
b222090aee
fix: also for object
2024-03-21 20:11:00 +01:00
9da5b09ec6
fix: need the full content-type...
2024-03-21 19:55:55 +01:00
ca5c6c9971
fix: update base migration
2024-03-21 19:51:00 +01:00
d318ccb782
fix: ld_context to all
2024-03-21 19:32:07 +01:00
017f508907
feat: add context to objects
2024-03-21 19:25:37 +01:00
c4f677097b
fix: make @context addition explicit
...
also moved things around: object() is now into LD trait
2024-03-21 19:15:19 +01:00
483076b6b2
fix: show published time on users
2024-03-21 16:47:15 +01:00
f6150387ca
chore: a lil bit of self promotion :3
2024-03-21 03:35:07 +01:00
bc182bdf70
fix: i checked the logs, content type ld+json...
...
was it really just this??? ffs
2024-03-21 03:07:35 +01:00
cacef6e029
fix: oops mixed preferred_username and name
2024-03-21 02:50:48 +01:00
d109faf5cd
fix: add #main-key key id + endpoints placeholder
2024-03-21 02:45:24 +01:00
baa39aa81f
fix: all users are discoverable for now
...
does it even make a difference?
2024-03-21 02:36:41 +01:00
1d97b8d3f5
feat: add discoverable to actors
...
idk if it makes a difference? ap doesnt mention it but everyone has it
2024-03-21 02:32:35 +01:00
b27c2cf31a
fix: image and icon are inline anonymous objects..
2024-03-21 02:32:13 +01:00
de9c3498bc
feat: add pubkey to actor
...
veeeeery crude impl, with hardcoded pubkey in faker cmd, but whatevs i
want activitupub.academy to fetch meeee
2024-03-21 02:11:31 +01:00
fe36ed2a52
feat: activity view embeds object
2024-03-21 01:42:29 +01:00
399061eff0
fix: activity with embedded object, not user...
2024-03-21 01:24:55 +01:00
1215f49499
fix: base app Actor, domain stripper
2024-03-21 01:11:20 +01:00
4f4cd5bf9b
feat: outbox with embedded objects
2024-03-21 01:11:08 +01:00
32dbd9e9ce
fix: temp rename relationship field to avoid clash
2024-03-21 01:10:33 +01:00
59e8b298f5
feat: Node::maybe_object
2024-03-21 01:10:04 +01:00
45c5ea69a6
fix: .flat() returning empty arrays
2024-03-21 01:09:54 +01:00
30637f93ee
feat: extended database entities
2024-03-21 01:09:33 +01:00
efc9c79ab0
chore: prelude to import all ActivityStream traits
2024-03-21 00:05:00 +01:00
a5c51f00ea
feat: more link helpers and node constructors
2024-03-21 00:04:44 +01:00
bf8cd97c8f
chore: Mut traits take owned self rather than &mut
2024-03-21 00:04:01 +01:00
9a7199c496
feat: serve application actor on /
...
mastodon uses /actor, but i think the root is fine?
2024-03-20 11:24:54 +01:00
a6b6ca6965
fix: id extractor
2024-03-20 11:00:21 +01:00
db369683a0
feat: @context in base, actor fields, impl activity
2024-03-20 11:00:01 +01:00
dcaf5d5c2b
feat: more compact _id methods, url! macro
2024-03-20 09:42:25 +01:00
178ad1b75d
fix: dedicated methods for uris
...
so i dont always wonder if its plural or not
2024-03-20 09:19:31 +01:00
225d8b9292
fix: clap clashes
2024-03-20 09:04:08 +01:00
5386c7ba7a
feat: allow specifying base domain
2024-03-20 08:56:35 +01:00
b2079a2c91
feat: simple outbox without objects
...
links dont require me to do relations now, but are likely needed
2024-03-20 07:55:24 +01:00
c51ca0744b
chore: polish
2024-03-20 07:55:03 +01:00
1cede82df6
feat: constructors for Node
2024-03-20 07:54:24 +01:00
9f06aa5993
feat: getters/setters for collection and page
2024-03-20 07:54:14 +01:00
8a4e40c93a
feat: create 100 fake entities
2024-03-20 07:53:45 +01:00
339d92986e
chore: moved AP routes in separate folder dir
2024-03-20 05:44:50 +01:00
49cf3205c4
feat: plce and profile
2024-03-20 05:44:40 +01:00
680c61ff9a
feat: mut traits, getter/setters for base+object
2024-03-20 05:44:10 +01:00
35f85695ba
feat: macros for getters/setters, refactored
2024-03-20 05:42:35 +01:00
863ea0408d
fix: macro allows zero flat, removed invalid type
2024-03-19 22:47:52 +01:00
a4374c4ff0
feat: debug fetch command to get remote stuff
2024-03-19 07:39:12 +01:00
410b077fea
fix: actor type from json Value
2024-03-19 07:38:48 +01:00
ef54867369
fix: add json header otherwise we get html
2024-03-19 07:38:33 +01:00
4e45e359b2
fix: other way round, now correctly fetches
2024-03-19 07:38:12 +01:00
3a53c6a2ed
feat: added back ToJson trait for db entities
2024-03-19 06:49:21 +01:00
106380d3b7
feat: improved Node API
2024-03-19 06:49:02 +01:00
67c3e80cf6
feat: improve Node fetching and handling
2024-03-19 05:47:46 +01:00
a73852b3b7
feat: refactored and expanded activitypub types
2024-03-19 05:15:41 +01:00
7d69f8148c
chore: refactored type enums
2024-03-19 01:00:44 +01:00
0adeb667c4
feat: add constructors for entities
2024-03-16 20:09:06 +01:00
32d6e80820
docs: added readme, renamed
...
upub is actually a pretty cool name, should snipe the crates.io name
asap
2024-03-16 06:06:31 +01:00
52f7ee0990
feat: faker cmd for fake test entities
2024-03-16 05:46:14 +01:00
85c9b363f6
feat: db model for activity and object + routes
2024-03-16 05:45:58 +01:00
40cee0fc87
feat: added basic server for actors
2024-03-16 03:30:04 +01:00
170756588d
feat: added migrations
...
TODO gate them under feature flag eventually ™️
2024-03-16 03:29:06 +01:00
7876b95de5
feat: recreated models, now with sea_orm
...
old ones from mastodon's blog weren't that useful since all
objects/activities are traits in the end
2024-03-16 03:27:36 +01:00
e8a7e4e31c
feat: add types enum and basic inbox match
2024-03-15 19:43:29 +01:00
ac3f07f804
feat: work on activitystream types
2024-03-14 05:27:08 +01:00
6bae33f0a6
chore: sample axum route
2024-02-09 17:07:55 +01:00
c69027638f
feat: add simple models
...
actor, webfinger, activity, object
thanks gargron
https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/
2023-12-30 05:08:05 +01:00