コミットグラフ

39 コミット

作成者 SHA1 メッセージ 日付
Cory Slep 96c9afee84 Add Read and ReadWrite when getting data.
This allows implementations to prevent race conditions between
contentious objects.
2018-05-27 22:57:43 +02:00
Cory Slep 353cd20402 Prepend to ordered collections. 2018-05-27 22:16:59 +02:00
Cory Slep bed3dbef16 Change vocab Add methods to Append and Prepend
This allows the reverse chronological order to be set as items are
easily prepended to non-functional activity stream properties.
2018-05-27 17:07:40 +02:00
Cory Slep de215c8787 Add and fix tests for PostOutbox verification.
PostOutbox and the SocialAPI can now use either HTTP Signatures or a
custom authentication scheme, such as OAuth2.

Tests for the handler authentication and authorization need to be
written still.
2018-05-26 14:37:06 +02:00
Cory Slep 2986f7601b Add function to serve ActivityPub object.
This also incorporates some interface changes to permit both HTTP
Signatures and other forms of authentication and authorization when
accessing data. This means support for something like OAuth2 should be
doable in conjunction with HTTP Signatures.

Tests are broken; this commit should not be used as a build point.
2018-05-25 00:23:50 +02:00
Cory Slep f46242ac83 Replace PostOutboxAuthorized with HTTP Signatures.
This makes the implementation conformant to §6 of the specification that
requires HTTP requests to be signed with the user's credentials.
2018-05-20 13:53:12 +02:00
Cory Slep ecc87da47f Add HTTP Signatures support for user credentials.
Tests are broken in this commit.
2018-05-18 23:31:18 +02:00
Cory Slep 5390174107 Add same-origin and same-actor checks.
These covers server-to-server Update and Delete activities as well as server-to-
server Undo activities, respectively.
2018-05-13 17:18:39 +02:00
Cory Slep f60bb145cf Deduplicate adding to like/following collections.
We simply prevent adding a duplicate likes, liked, following, or
follower based on the IRI of the element being added to the collection.

Adds corresponding black box tests.

Note that this deduplication does not cover the inbox.
2018-05-13 13:05:12 +02:00
Cory Slep 4bad90902e Add extra integration tests.
These generally include improving the handling of OrderedCollections and
IRIs. Note that improvement to setting IRI'd fetches from the
implementing application were made.

Improve the handing of AutoAccept and AutoReject follows. If there are
no owned objects in the Activity, we prevent sending the automatic reply
in case the implemented application is not checking for ownership of the
object of the original Follow activity.
2018-05-12 23:03:20 +02:00
Cory Slep 9fbd18b53c PostOutbox Follow tests 2018-05-10 17:25:48 +02:00
Cory Slep 7b63dca953 Support Inbox Forwarding.
Client libraries can also filter the collections being targeted for the
inbox forwarding.
2018-05-10 12:49:37 +02:00
Cory Slep c5dd064b06 PostInbox adds to actor's Inbox OrderedCollection.
Tests were upated and refactored to use common initialization similar to
how PostOutbox has common intialization.
2018-04-29 15:56:38 +02:00
Cory Slep e3a72c5274 Apply nulls in JSON in PostOutbox Update
This is a much better solution than trying to do some sort of roll-your-
own JSON parser.
2018-04-28 13:47:33 +02:00
Cory Slep 07c0392ada Clean up some TODOs. 2018-04-25 00:43:41 +02:00
Cory Slep 2adcc56581 Add PostOutbox Create unit tests.
Fix normalizing the recipents between the object and the activity. Also
allow the handlers to adjust what gets placed in the outbox, since the
client-to-server API allows the server to modify the object before being
delivered.
2018-04-22 14:02:45 +02:00
Cory Slep 19ca5b0975 Add PostOutbox non-callback tests.
Also move some functions out of the generic Application interface into
the specialized SocialApp interface. They will be moved back into the
Application interface if further development needs it when implementing
inbox forwarding, for example.
2018-04-19 20:58:00 +02:00
Cory Slep c5830e6eff Add PostInbox Like and Undo unit tests 2018-04-14 09:54:30 +02:00
Cory Slep a06ee678e8 Add PostInbox Remove unit tests 2018-04-14 09:36:24 +02:00
Cory Slep 4050d971c4 Add PostInbox Add unit tests. 2018-04-13 22:08:39 +02:00
Cory Slep 7d049ea3d4 Add tests for PostInbox Object/Target requirements
Also fixed my earlier stupidity at requiring a 'type' when I meant to
require a 'target'. Also added the missing checks to the federated
handlers.
2018-04-12 21:55:20 +02:00
Cory Slep a944e2493a Fix pub build. Implement Follow AutoAccept test.
Also refactored the likes/liked add-to-collections logic so that they
are also applicable for following and followers collections. This code
is still as ugly as sin.
2018-04-11 00:10:29 +02:00
Cory Slep 9f42e8c52c Testing for @context and Follow DoNothing/Reject.
Testing the Follow AutoAccept feature requires implementing it similar
to how the likes collections are implemented.
2018-04-08 19:17:08 +02:00
Cory Slep c6c350e4d0 Move the DelivererPool out of ActivityPub.
This simplifies testing and allows other implementations to supply a
basic version instead.
2018-04-04 20:36:23 +02:00
Cory Slep 701475b6e0 Fix bugs with delivering messages.
This was uncovered during writing tests where both the Social and
Federative APIs are enabled. The actorObject interface was overused
partially due to my earlier confusion; the introduction of the internal
actor interface resolved this.

Finally, the HttpClient interface was introduced to be able to mock out
calls in testing. It may also prove useful for future applications using
this library.
2018-04-04 00:23:55 +02:00
Cory Slep aede45d546 Don't try to own 'object' for Add/Remove Activities 2018-03-31 23:24:10 +02:00
Cory Slep 6e343f9f45 Support federative Add and Remove 2018-03-30 19:39:07 +02:00
Cory Slep 4efb0a41b2 Add public creation functions 2018-02-21 23:16:10 +01:00
Cory Slep 4368380651 Implement Accept in response to a Follow 2018-02-20 22:50:13 +01:00
Cory Slep 07a04262d9 Support likes, liked, blocking, auto-accept/reject follows. 2018-02-20 00:09:29 +01:00
Cory Slep 683a26f6c1 Overhaul of interfaces, begin detailed Activity handling. 2018-02-15 23:38:58 +01:00
Cory Slep bcec31a2a7 Internalize interfaces that should not be public. 2018-02-12 21:19:35 +01:00
Cory Slep 6448da4ec2 Hook in rest of Activities for ClientReceiver.
There's another iteration of design that can be done that moves
management of actors and collections back into this library, as right
now a lot of the Receiver interfaces put that burden on client
implementations.
2018-02-08 23:55:25 +01:00
Cory Slep ea1a387866 Implement client Create handler 2018-02-08 21:12:52 +01:00
Cory Slep d80d47289a Implement POSTing Activity objects to another server. 2018-02-04 18:50:32 +01:00
Cory Slep 7400a3197f Add support for wrapping objects in Create activity. 2018-02-04 18:32:01 +01:00
Cory Slep fe707109c4 Make substantial progress on ActivityPub client & server implmentation 2018-02-04 17:42:22 +01:00
Cory Slep 3662ac5bf9 Outline support for inbox and outbox handlers and routing. 2018-01-31 22:43:13 +01:00
Cory Slep 9300d8583e Migrate pub to go-fed. 2018-01-26 00:19:21 +01:00