コミットグラフ

108 コミット

作成者 SHA1 メッセージ 日付
Cory Slep
806c037e3b Add note to self to check Follow edge case 2018-09-01 20:03:40 +02:00
Cory Slep
83277d57c9 Announce activities now add to shares collections on objects. 2018-08-21 20:49:24 +02:00
Cory Slep
1252727ca8 Add tests for Callbacker extensions 2018-08-20 23:11:33 +02:00
Cory Slep
1c057922ca Fix intransitive activity generated code in vocab.
The sub-types of Intransitive Activity (Arrive, etc) would not satisfy
the vocab.IntransitiveActivityType interface, due to not accounting for
the parent WithoutProperties definition.

This fixes that code generation, so that all Activity subtypes will be
able to be properly converted to vocab.ActivityType or
vocab.IntransitiveActivityType.

Updated the PostOutbox code path to properly handle this distinction
when receiving a C2S IntransitiveActivity.
2018-08-20 23:08:02 +02:00
Cory Slep
797b2f79a8 Support other activity types 2018-08-20 00:35:31 +02:00
Cory Slep
387ed4a775 Fix body delivery bytes being incorrectly copied 2018-08-19 23:25:14 +02:00
Cory Slep
2f2858f92b Include more links to go-fed.org and official reports 2018-08-19 18:39:54 +02:00
Cory Slep
46d55732d5 Use minimum sized types for enumerated values 2018-08-19 18:31:45 +02:00
Cory Slep
8b0590a0cd Correctly test for root cause in issue 75. 2018-08-19 18:03:56 +02:00
Cory Slep
3740d4a418 Remove TODO 2018-08-19 11:06:52 +02:00
Cory Slep
452d6f1af7 Add unit test for issue 75: C2S not forwarding 2018-08-19 01:05:02 +02:00
Cory Slep
f8b24eef88 Use OrderedCollection by default for collections.
The 'liked', 'likes', 'followers', and 'following' collections now
default to the 'OrderedCollection' type instead of throwing an error if
the client application does not supply an IRI, 'Collection', or
'OrderedCollection' type on the actor or object.
2018-08-04 13:53:33 +02:00
Cory Slep
be4644fbca Examine IRI when origin checking Update/Delete
Before we just always threw an error. Also update tests to check for
both cases.
2018-08-03 22:54:12 +02:00
Cory Slep
f82653f709 Don't do an Activity's side effects more than once
If a federated Activity has been seen before, skip handling its side
effects.
2018-08-03 22:30:53 +02:00
Cory Slep
8fa0f2395c Add Like activities to the likes collection.
Previously, it was incorrectly adding the actors to the likes collection.
2018-08-02 22:29:03 +02:00
Cory Slep
107468d8e9 Fix GetInbox failure due to unavailable messages.
When deduplicating IRIs in a user's inbox, the library tries to
dereference the IRI to... obtain the ID. I must have added this when I
had no idea what I was doing. Oh my god, everyone's going to know I am
dumb! Quick, don't read this commit message, I'll just finish typing
this sentence over here.

Well, it's fixed now.
2018-08-01 23:30:20 +02:00
Cory Slep
10e099bd8a Remove unused test method from previous interface. 2018-08-01 23:22:46 +02:00
Cory Slep
b0c125a7ba Improve media type detection for ActivityPub types 2018-08-01 23:18:41 +02:00
Cory Slep
1ed478582e To immediately be deleted.
I don't need this level of detail for headers. This is beyond overkill
for content negotiation. Just do something simpler.
2018-08-01 19:27:06 +02:00
21stio
7b788cf596
Update README.md
added syntax highlighting
2018-06-25 09:43:15 +02:00
Cory Slep
fb16747c4e Migrate Typer and type-detection functions to vocab
This helps ensure that the code to detect specific ActivityStream types
continues to live in the code-generation algorithms, reducing
maintenance burdens.
2018-06-12 23:29:30 +02:00
Cory Slep
1f9eeafca8 Serve tombstone with HTTP status Gone 2018-06-09 00:03:45 +02:00
Cory Slep
2764b67c7e Remove bto & bcc before serving ActivityStream object 2018-06-08 23:45:25 +02:00
Cory Slep
45f05d97c4 PostInbox Add now adds IRIs.
As part of normalization.
2018-06-06 22:59:24 +02:00
Cory Slep
3d310d5e81 PostInbox auto Follow/Reject uses IRI only
Part of normalization of IRIs.
2018-06-06 22:53:18 +02:00
Cory Slep
7f3a6fce6b PostOutbox Add uses IRIs
Normalizes to prevent overly-embedding objects.
2018-06-06 22:49:06 +02:00
Cory Slep
a1fc177bc7 PostOutbox Create actor & attributedTo uses IRIs
Part of normalizing IRIs and preventing overly embedding objects.
2018-06-06 22:45:36 +02:00
Cory Slep
da279300a0 Followers, following, likes, liked collections use IRIs.
As part of the IRI normalization effort.
2018-06-06 22:36:49 +02:00
Cory Slep
53c59ed335 Inboxes and outboxes now contain IRIs.
As part of normalization of objects and not embedding them everywhere.
2018-06-06 22:26:48 +02:00
Cory Slep
945c79483a Use IRIs when normalizing recipients.
Part of the IRI auditing for normalization effort.
2018-06-06 22:20:52 +02:00
Cory Slep
2bc987e776 Wrapping in Create for delivery propagates IRIs only.
As part of auditing everywhere an object may become inadvertently
embedded, and prefer normalization of IRIs.
2018-06-06 21:44:10 +02:00
Cory Slep
33c5320c8f Fixes for the first c2s implementation report.
Non Interface Behavior Changes:

- Robust header detection for ActivityPub requests
- No more panic because of a Bto access after a Bcc condition
- PostOutbox Undo activities now required to have matching actors

Interface Behavior Changes:

- PostOutbox activities themselves are now passed to App.Set
- Authentication/Authorization in a SocialAPIVerifier no longer
    shadowed and ignored.
- Add activities can now fetch remote objects (not permanent)

The behavior changes are justified as having been broken bugs that would
have not met a developer's expectations. So including them as part of
the next release maintains major version 0 behavior compatibility.
2018-06-06 00:49:02 +02:00
Cory Slep
62ec7d5278 Fix logic for Accept and Content-Type headers 2018-06-03 01:29:47 +02:00
Cory Slep
2aa074e2a2 Fix typos in README 2018-05-30 23:58:05 +02:00
Cory Slep
e910e86bd6 Update all the READMEs 2018-05-30 23:48:34 +02:00
Cory Slep
0fc1556d17 Fix comments and HandlerFunc 2018-05-30 23:37:59 +02:00
Cory Slep
f9a2b1b8de Fix go vet issues 2018-05-30 21:33:05 +02:00
Cory Slep
6c1de66753 Move CanAdd & CanRemove into Application interface 2018-05-30 21:27:07 +02:00
Cory Slep
ba40dc50b4 Use *url.URL instead of url.URL.
He who fights with monsters should be careful lest he thereby become a monster.
And if thou gaze long into an abyss, the abyss will also gaze into thee.
2018-05-29 21:57:39 +02:00
Cory Slep
b8a27ed6f7 The App interfaces contain only the needed funcs
This will hopefully clarify what interfaces are needed for which kind of
implementations of ActivityPub are needed.
2018-05-29 00:04:24 +02:00
Cory Slep
abda28d2dc Remove make publicly visible errors private.
We can instead directly write HTTP status codes in these special cases,
removing the burden on library users.
2018-05-27 23:11:19 +02:00
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
7f2faf98e1 Add handlers test.
Also, for all tests that use tables, log the test case being executed.
That way verbose mode will indicate which test case is causing any nil
pointer dereference or other segfault interrupts. Also, it will inform
anyone who runs in verbose mode just how many tests there really are.
2018-05-27 01:49:03 +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
b9606f06f2 Fix tests for HTTP Signatures.
Also, bugfix the time.Now calls to use the federator's clock instead.
This is how it should have been done in the beginning, but is necessary
for the tests since the HTTP Signatures by default sign the dates in the
headers. And I noticed said dates were being populated by time.Now
instead of the mock-able Clock.
2018-05-19 22:16:37 +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