fr33domlover
7c2fad7417
Implement fetchAPIDOrH using a dedicated error type
2019-04-16 16:10:17 +00:00
fr33domlover
25fcceabde
postOutboxR: Use ResultShare for fetching recipient actor
2019-04-16 14:34:17 +00:00
fr33domlover
d5eefd1553
Implement outbox remote delivery, in handler and periodic, not used yet
2019-04-16 14:27:50 +00:00
fr33domlover
7946fe441d
Add field errorSince to RemoteActor to track inbox POST unreachability
2019-04-12 01:09:45 +00:00
fr33domlover
3f9364e4aa
Rename RemoteSharer entity to RemoteActor
2019-04-12 00:56:27 +00:00
fr33domlover
7621c0280a
Rewrite ticketFollowers migration without insertKey, it causes problems
2019-04-11 16:43:46 +00:00
fr33domlover
9a306e762c
Unfinished updated outbox handler
2019-04-11 13:44:44 +00:00
fr33domlover
7dda068ba3
Make the DB migrations not depend on current model
2019-04-11 13:26:57 +00:00
fr33domlover
1d854423cb
Switch Audience from Vector to list and fix Public bug
...
* No good reason to use Vector, let's use list, it's just easier
* The Public URI recognizing code wasn't being used; now it is
2019-04-01 23:40:29 +00:00
fr33domlover
0c280c7af6
Add setting that says how much time to keep retrying activity delivery
2019-04-01 23:38:44 +00:00
fr33domlover
c2415301bc
More type-safe handling of DB key Hashids
2019-03-29 03:25:32 +00:00
fr33domlover
228e954706
Create Note outbox handler, not in use yet
...
I wrote a function handleOutboxNote that's supposed to do the whole outbox POST
handler process. There's an outbox item table in the DB now, I adapted things
in various source files. Ticket comment federation work is still in progress.
2019-03-28 21:08:30 +00:00
fr33domlover
cdb1c8b121
Add settings option to disable federation
2019-03-25 00:17:24 +00:00
fr33domlover
e36d960d2b
Rename handleActivity to handleInboxActivity
2019-03-23 15:45:44 +00:00
fr33domlover
85c6354291
Switch jsonb support from persistent-postgresql to a custom module
...
The custom module provides a parametric wrapper, allowing any specific
FromJSON/ToJSON instance to be used. It's a standalone module though, and not a
wrapper of persistent-postgresql, because persistent-postgresql uses aeson
Value and it prevents using toEncoding to get from the value directly to a
string.
2019-03-23 15:29:50 +00:00
fr33domlover
0032456925
Add noteAudience; record recipient of local remotely-targetted activities in DB
2019-03-23 02:57:34 +00:00
fr33domlover
58a56b6743
Make noteId optional, to support taking a Note in postOutboxR
2019-03-23 02:05:30 +00:00
fr33domlover
88d4c976ee
Add route getMessageR, returns an Activity Note for any locally created Message
2019-03-22 20:46:42 +00:00
fr33domlover
6c186355f3
Change some top-level routes' breadcrumbs to be under HomeR
2019-03-22 05:17:58 +00:00
fr33domlover
c27636a438
Add route /publish for sending activities, getOutboxR now free to return outbox
2019-03-22 05:17:54 +00:00
fr33domlover
d40e1b8891
In outbox post form, provide parent and context, and default to ticket comment
2019-03-21 23:56:47 +00:00
fr33domlover
ad3a20d783
Receive remote comments on local ticket discussion
2019-03-21 22:57:15 +00:00
fr33domlover
72f96a0dff
When verifying HTTPsig, return iid&rsid and remove duplicate shared usage check
...
* Adapt DB related code to return the InstanceId and RemoteSharerId
* Previously, when fetching a known shared key, we were running a DB
check/update for the shared usage record. I noticed - and hopefully I
correctly noticed - that this check already runs when we discover the keyId
points to a shared key we already know. So, after successful sig
verification, there's no need to run the check again. So I removed it.
2019-03-21 21:38:59 +00:00
fr33domlover
061c84349d
Recognize the 3 variants of the Public collection URI when parsing audience
2019-03-21 19:13:36 +00:00
fr33domlover
77324442fc
Fetch local messages by LocalMessageId, not by MessageId
2019-03-21 19:06:52 +00:00
fr33domlover
68b0ae7829
When receiving HTTP signed request, check the keyId host for weird cases
...
- Exclude hosts without periods, so things like localhost and IPv6 are rejected
- Exclude hosts without letters, so things like IPv4 are rejected
- Exclude the instance's own host, just in case somehow some fake activity
slips in and gets approved, maybe even accidentally when delivered by another
server
2019-03-20 12:27:40 +00:00
fr33domlover
747bbd5f0c
Publish actor documents for projects, and add some new properties to Actor
2019-03-20 12:01:10 +00:00
fr33domlover
ade1157a04
Add a custom ActivityPub actor type: Project
2019-03-20 10:36:00 +00:00
fr33domlover
3f2a178830
New module Yesod.FedURI: Render routes into FedURI and LocalURI
2019-03-20 10:08:36 +00:00
fr33domlover
6f3df6d569
Allow actors not to list any public keys at all
2019-03-20 09:31:08 +00:00
fr33domlover
716487f2b8
In ticket comment tree, support mixing local and remote (federated) comments
2019-03-20 08:07:37 +00:00
fr33domlover
e0de4cdcc7
Remove Discussion's nextMessage field, it's not being used anymore
2019-03-18 20:18:25 +00:00
fr33domlover
4b351ef62e
Automatically set approot to https://HOST and require Host header to match
2019-03-16 17:15:31 +00:00
fr33domlover
a9eaf35d5e
When verifying HTTP sig, require ActivityPub-Actor to be signed only if present
2019-03-16 15:48:25 +00:00
fr33domlover
475e398d6d
Switch ticket comment IDs to use Hashids-of-MessageId instead of custom number
2019-03-15 16:36:02 +00:00
fr33domlover
9e881554ea
Make frg:isShared key property optional, it was accidentally required
2019-03-15 16:33:10 +00:00
fr33domlover
0e0afa78f9
Parse/encoding audience targetting activity fields
2019-03-14 02:30:36 +00:00
fr33domlover
24c091a248
Add activity types Follow, Accept, Reject
2019-03-13 23:37:58 +00:00
fr33domlover
f6cbc1eb8a
Use file based switches to relax keyfile loading rules
2019-03-11 02:01:41 +00:00
fr33domlover
2a39378468
HTTP Signature verification: RSA-SHA256 and PEM/ASN1 support
...
Before, things worked like this:
* Only signatures of Ed25519 keys could be verified
* Key encoding placed the plain binary Ed25519 key in the PEM, instead of the
key's ASN1 encoding
With this patch it now works like this:
* Ed25519 signatures are supported as before
* RSA keys are now supported too, assuming RSA-SHA256 signatures
* Both Ed25519 and RSA keys are encoded and decoded using actual PEM with ASN1
2019-03-10 23:15:42 +00:00
fr33domlover
ef57f29a54
Adapt Activity/Create/Note to new ActivityPub typeclass and add safety checks
2019-03-10 06:42:03 +00:00
fr33domlover
61d1aa6720
Define HMAC based access token and switch CapSignKey from Ed25519 to HMAC
2019-03-09 21:21:36 +00:00
fr33domlover
fdbe46741b
When POSTing an activity, protect remote actor DB insertion with withHostLock
2019-03-09 17:12:43 +00:00
fr33domlover
e341f62587
Fix typo in comment
2019-03-09 15:44:31 +00:00
fr33domlover
468202cf45
Fix instance mutex deadlock, accidentally initialized the MVar empty
2019-03-09 15:43:30 +00:00
fr33domlover
37216d9045
Move remote actor DB code from Foundation to separate module
2019-03-09 15:40:02 +00:00
fr33domlover
b0e33af4d8
Fix typo in actor key route
2019-03-06 01:49:55 +00:00
fr33domlover
043022d117
When verifying HTTP sig, make Ed25519 verification failure message clearer
2019-03-06 01:31:30 +00:00
fr33domlover
c26289cf42
Don't check CSRF token in InboxR, POSTs there freely come from other servers
2019-03-05 09:00:22 +00:00
fr33domlover
6e721797e9
Catch sig generation error when sending signed HTTP POST
2019-03-05 08:26:41 +00:00