Jason Robinson
72bca93215
Tweak handle_send to send AP payloads for now for each recipient
...
Need to refactor code a bit to deliver shared inbox + add the
public receiver in a sane way.
2019-03-17 03:23:41 +02:00
Jason Robinson
31ae219426
Add authentication to outbound payloads for ActivityPub targets
2019-03-17 03:18:07 +02:00
Jason Robinson
353ae9ff9d
Add Accept entity and ActivityPub follow auto-Accept flow
...
When receiving an ActivityPub Follow, send back an Accept activity
automatically. Due to application hook needed to fetch sending
user private key (for signing), this is only available if Django
is installed since currently application hooks exist only for
Django configuration.
Django applications should include a new configuration item
"get_private_key_function" which points to a function which takes
a user identifier (fid, handle or guid) and returns a private key
in RSA object format.
2019-03-17 03:17:10 +02:00
Jason Robinson
d8a067a691
Fix erronous typing of UserType.private_key
...
Code expects an RSA object, typing was shown as str.
2019-03-17 03:13:47 +02:00
Jason Robinson
0cf13a33a4
Fix fetching Diaspora remote entities
2019-03-16 04:21:20 +02:00
Jason Robinson
fddb22facc
Ensure public key passed to requests-http-signatures is bytes
2019-03-16 03:35:39 +02:00
Jason Robinson
3a44534b24
Add cryptography to dependencies
...
Required by requests-http-signatures. Which is a shame since
we already use pycryptodome.
2019-03-16 03:07:31 +02:00
Jason Robinson
29ba501d31
Fix mapping of image urls from ActivityPub AS2 actor
2019-03-14 23:03:24 +02:00
Jason Robinson
a4db2f0beb
Ensure fetch for Diaspora protocol is done with entities in lowercase
...
Not sure how this broke!
2019-03-14 22:31:44 +02:00
Jason Robinson
ad17e2cd2f
Fix document fetcher to parse correctly fetched AS2 document into profile
2019-03-14 22:06:39 +02:00
Jason Robinson
9359831ea2
Merge branch 'activitypub-signatures' into 'master'
...
Work on ActivityPub HTTP signatures and payload delivery
See merge request jaywink/federation!142
2019-03-06 21:06:47 +00:00
Jason Robinson
2fb2da6955
Work on ActivityPub HTTP signatures and payload delivery
...
Also removes some legacy cruft for the failed Diaspora URI's as ID's experiment.
Refs: #7
2019-03-06 22:42:33 +02:00
Jason Robinson
eedef11041
Merge branch 'refactor-handle-receive' into 'master'
...
Refactor handle_receive to require a RequestType
See merge request jaywink/federation!141
2019-03-03 01:08:07 +00:00
Jason Robinson
2fa8271af7
Refactor handle_receive to require a RequestType
...
The ActivityPub protocol handlers require access to HTTP headers,
method and url from the incoming request. Thus require passing in
a RequestType object, which has the same structure as a Django
HttpRequest for compatibility.
This is a breaking backwards compatible change requiring Diaspora
payloads be wrapped in a RequestType object.
Refs: #7
2019-03-03 03:04:08 +02:00
Jason Robinson
fe7cd7c7d1
Merge branch 'activitypub-fetcher' into 'master'
...
ActivityPub profile fetcher and inbound protocol routing improvements
See merge request jaywink/federation!140
2019-03-02 21:55:54 +00:00
Jason Robinson
dbaae4842b
Changelog for the various changes
2019-03-02 23:52:09 +02:00
Jason Robinson
871cf67cde
Add username to base Profile entity
2019-03-02 01:42:08 +02:00
Jason Robinson
a876d3a239
Add fetching of remote ActivityPub profile
2019-03-02 01:24:57 +02:00
Jason Robinson
7d8ae2c814
Allow passing extra headers to network util fetch_document
2019-03-02 01:24:57 +02:00
Jason Robinson
c7ce799caf
Add identification of protocol on fetch_remote_profile id parameter
...
This adds activitypub to protocols that will be fetcher for
remote profile.
2019-03-02 01:24:57 +02:00
Jason Robinson
a1b3afba7f
Move handle_send protocol identification to federation module root
...
Add also "identify by id" function.
2019-03-02 01:24:57 +02:00
Jason Robinson
b30b0f5d78
Refactor away unnecessary 'handle' parameter to 'retrieve_remote_profile'
...
The function will guess the protocol from the format of the
ID given.
2019-03-02 01:24:57 +02:00
Jason Robinson
4af97a486b
Add GitLab CI badge
2019-03-01 23:24:36 +00:00
Jason Robinson
5baa0b5fe6
Added network utility `network.fetch_host_ip` to fetch IP by hostname
2019-02-13 23:05:10 +02:00
Jason Robinson
4f2e57c579
Merge branch 'allow-disabling-ap-webfinger' into 'master'
...
Disable ActivityPub limited features by default when on Django
See merge request jaywink/federation!139
2019-01-29 19:53:22 +00:00
Jason Robinson
e099d993a8
Disable ActivityPub limited features by default when on Django
...
Allow enabling by setting the FEDERATION "activitypub" key to True.
This is done to not break compatibility for new users for
platforms which prefer activitypub.
2019-01-29 21:42:57 +02:00
Jason Robinson
2a5a7b76b1
Don't try to parse a nodeinfo document which is for example 404
...
Refs: https://github.com/friendica/friendica/issues/6472
2019-01-19 23:30:46 +02:00
Jason Robinson
6985a49a9a
Make Misskey fetcher survive bad JSON
2018-12-02 20:14:35 +02:00
Jason Robinson
402e72d488
Merge branch 'misskey-parser' into 'master'
...
Add Misskey fetcher and parser
See merge request jaywink/federation!138
2018-11-27 21:24:48 +00:00
Jason Robinson
6f7571a81e
Add Misskey fetcher and parser
2018-11-27 23:19:58 +02:00
Jason Robinson
4bef9b6c8e
Merge branch 'parse-matrix-signups-status' into 'master'
...
Add parsing of Matrix server signups status
See merge request jaywink/federation!137
2018-11-27 20:12:19 +00:00
Jason Robinson
4c786c3148
Add parsing of Matrix server signups status
2018-11-27 22:09:05 +02:00
Jason Robinson
1687fdb59a
Do NodeInfo fetch if Mastodon API version indicates Pleroma server
2018-11-25 23:12:26 +02:00
Jason Robinson
04f3bd44d7
Use Mastodon instance count as post count
2018-11-25 22:56:30 +02:00
Jason Robinson
fce0917682
Parse Mastodon signups status from the instance about page
2018-11-25 22:51:11 +02:00
Jason Robinson
bc389eef8d
Merge branch 'matrix-fetcher-parser' into 'master'
...
Add basic fetcher and parser for Matrix servers
See merge request jaywink/federation!136
2018-11-23 23:00:04 +00:00
Jason Robinson
aa17591ccc
Add basic fetcher and parser for Matrix servers
2018-11-24 00:56:10 +02:00
Jason Robinson
ddfb82fb88
Merge branch 'metainfo-parser-fixees' into 'master'
...
Metainfo parser fixes
Closes #122
See merge request jaywink/federation!135
2018-11-01 20:52:57 +00:00
Jason Robinson
2bed885021
Don't crash Mastodon instance doc parser on null contact_account
2018-11-01 22:44:24 +02:00
Jason Robinson
00b3fba440
Strip ending slash from NodeInfo2 base_url parsing
2018-11-01 22:33:36 +02:00
Jason Robinson
6c4c61938b
Merge branch 'activitypub-protocol' into 'master'
...
Add beginnings of Activitypub protocol with Follow activity
See merge request jaywink/federation!134
2018-10-22 20:50:58 +00:00
Jason Robinson
cef05fb226
Add missing PROTOCOL_NAME to ActivityPub protocol module
2018-10-22 23:23:54 +03:00
Jason Robinson
008c8e8971
Inital passing ActivityPub mapper tests, Follow passes
...
Skip the rest of the tests, implement one by one until the same
functionality of the Diaspora mappers is ready.
2018-10-13 12:08:12 +03:00
Jason Robinson
d1b9a9a877
Skeleton of ActivityPub mappers starting with Follow activity
2018-10-11 20:40:23 +03:00
Jason Robinson
d2c35a2cdc
Add ActivityPub to protocols and function to identify payload
2018-10-11 19:16:36 +03:00
Jason Robinson
c3f59e832e
Change activitypub_object_view get_object_function call signature
...
Pass now full request object instead of the object ID. This allows
the app to check permissions for the object.
2018-10-10 22:43:17 +03:00
Jason Robinson
6dd20c3521
Simplify process_payload call by passing in just request
2018-10-09 22:53:54 +03:00
Jason Robinson
aff1a8e59e
Tweak activitypub_object_view process_payload call signature
...
Now passes `response.content` as is and also passes in the request
object.
2018-10-09 22:46:23 +03:00
Jason Robinson
331421c216
Merge branch 'inbox' into 'master'
...
Django activitypub_object_view now processes POST to /inbox/
See merge request jaywink/federation!133
2018-10-09 19:26:56 +00:00
Jason Robinson
17c23b3be8
Django activitypub_object_view now processes POST to /inbox/
2018-10-09 22:24:46 +03:00