docs/activitypub.7 (view raw)
1.\"
2.\" Copyright (c) 2019 Ted Unangst
3.\"
4.\" Permission to use, copy, modify, and distribute this software for any
5.\" purpose with or without fee is hereby granted, provided that the above
6.\" copyright notice and this permission notice appear in all copies.
7.\"
8.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15.\"
16.Dd $Mdocdate$
17.Dt ACTIVITYPUB 7
18.Os
19.Sh NAME
20.Nm activitypub
21.Nd notes about the honk implementation
22.Sh DESCRIPTION
23The
24.Xr honk 1
25utility processes status updates and other microblog activities using the
26.Nm ActivityPub
27protocol to exchange messages with other servers.
28The specification is subject to interpretation, and not all implementations
29behave in the same way.
30This document attempts to clarify honk's behavior.
31It is not intended to be a complete description of
32.Nm ActivityPub ,
33but may be useful as a guide to other implementors looking to interoperate.
34.Ss OBJECTS
35The following object or document types are supported.
36.Bl -tag -width tenletters
37.It Vt Note
38Fully supported.
39The default object type for honk.
40.It Vt Article
41Fully supported.
42.It Vt Page
43Supported.
44.It Vt Question
45Read only support.
46Appears similar to a Note.
47.It Vt Event
48Supported.
49Appears similar to a Note.
50Can be both created and received, but
51.Vt Invite
52activities are ignored.
53.It Vt Video
54Limited support.
55.It Vt Audio
56Limited Support.
57.It Vt GuessWord
58Guess the word game.
59(Unofficial extension.)
60The solution is stored in
61.Fa content
62with the possible words, one per line, in a file located at
63.Fa wordlist .
64.El
65.Pp
66Honk primarily supports HTML content, not markdown or other formats,
67with a wide range of permitted HTML tags in object
68.Fa content
69fields.
70The following tags are supported.
71.Bd -literal -offset indent
72a, img, span,
73div, h1, h2, h3, h4, h5, h6, hr,
74table, thead, tbody, tfoot, th, tr, td, colgroup, col,
75p, br, pre, code, blockquote, q,
76caption, kbd, time, wbr, aside,
77ruby, rtc, rb, rt, details, summary,
78samp, mark, ins, dfn, cite, abbr, address,
79strong, em, b, i, s, u, sub, sup, del, tt, small,
80ol, ul, li, dl, dt, dd
81.Ed
82.Pp
83The following tag attributes are permitted.
84.Bd -literal -offset indent
85href, src, alt, colspan, rowspan
86.Ed
87.Pp
88The following class names are used for syntax highlighting code blocks.
89.Bd -literal -offset indent
90kw, bi, st, nm, tp, op, cm, al, dl
91.Ed
92.Ss ACTIVITIES
93The following activities are supported.
94.Bl -tag -width tenletters
95.It Vt Create
96Fully supported.
97.It Vt Announce
98Supported with share semantics.
99.It Vt Read
100Supported.
101Primarily used to acknowledge replies and complete threads.
102Can be interpreted to mean reply is approved, if not endorsed.
103.It Vt Add
104Works with collections.
105.It Vt Follow
106Supported.
107Can follow both actors and collections.
108.It Vt Update
109Supported.
110Honk sends and receives
111.Vt Update
112activities.
113.It Vt Delete
114Does what it can.
115.It Vt Like
116Don't be ridiculous.
117.It Vt EmojiReact
118Be ridiculous.
119.El
120.Ss METADATA
121The following additional object types are supported, typically as
122.Fa tag
123or
124.Fa attachment .
125.Bl -tag -width tenletters
126.It Mention
127Pretty @ machine.
128.It Emoji
129Inline text :emoji: with image replacement.
130.It Place
131Included as a
132.Fa location .
133Supports
134.Fa name ,
135.Fa url ,
136.Fa latitude ,
137and
138.Fa longitude .
139.It Document
140Plain text and images in jpeg, gif, png, and webp formats are supported.
141Other formats are linked to origin.
142.El
143.Pp
144The
145.Fa replies
146array will be populated with a list of acknowledged replies.
147.Ss EXTENSIONS
148Honk also supports a
149.Vt Ping
150activity and will respond with a
151.Vt Pong
152activity.
153This is useful for debugging networking connectivity issues without
154visible side effects.
155See ping.txt for details.
156.Ss SECURITY
157Honk uses http signatures.
158.Ss WEBFINGER
159Honk implements the
160.Vt webfinger
161end point and will use it for @mention resolution.
162It is not required for federation.
163.Ss LD-JSON
164Not really.
165.Sh SEE ALSO
166.Xr intro 1 ,
167.Xr honk 1
168.Sh STANDARDS
169.Pp
170.Lk https://www.w3.org/TR/activitypub/ "ActivityPub"
171.Pp
172.Lk https://www.w3.org/TR/activitystreams-vocabulary/ "Activity Vocabulary"
173.Sh CAVEATS
174The ActivityPub standard is subject to interpretation, and not all
175implementations are as enlightened as honk.