@@ -8,6 +8,77 @@ When a given [=Agent=] is the subject of an [=Access Authorization=],
8
8
an [=Access Grant=] is generated and [[#ar-hierarchy|stored]]
9
9
in the [=Agent Registration=] for that [=Agent=] .
10
10
11
+ ## Application Registration ## {#application-registration}
12
+
13
+ An <dfn>Application Registration</dfn> provides the [=Social Agent=]
14
+ with a place to maintain metadata, state, preferences, and
15
+ other application-specific data associated with a given [=Application=] they
16
+ have elected to use.
17
+
18
+ [=Application Registrations=] are stored in an [=Agent Registry=] .
19
+
20
+ [Class Definition] (interop.ttl#ApplicationRegistration) -
21
+ [Shape Definition] (interop.shex#ApplicationRegistrationShape) -
22
+ [Shape Tree Definition] (interop.tree#ApplicationRegistrationTree)
23
+
24
+ <table class="classinfo data" align="left" id="classApplicationRegistration">
25
+ <colgroup></colgroup>
26
+ <colgroup></colgroup>
27
+ <colgroup></colgroup>
28
+ <thead>
29
+ <tr>
30
+ <th> Property</th>
31
+ <th> Range</th>
32
+ <th> Description</th>
33
+ </tr>
34
+ </thead>
35
+ <tbody>
36
+ <tr>
37
+ <td> registeredBy</td>
38
+ <td> [SocialAgent] (#classSocialAgent)</td>
39
+ <td> [=Social Agent=] that registered the [=Application Registration=] </td>
40
+ </tr>
41
+ <tr>
42
+ <td> registeredWith</td>
43
+ <td> [Application] (#classApplication)</td>
44
+ <td> [=Application=] used to create the [=Application Registration=] </td>
45
+ </tr>
46
+ <tr>
47
+ <td> registeredAt</td>
48
+ <td> xsd:dateTime</td>
49
+ <td> Date and time the [=Application Registration=] was created</td>
50
+ </tr>
51
+ <tr>
52
+ <td> updatedAt</td>
53
+ <td> xsd:dateTime</td>
54
+ <td> Date and time the [=Application Registration=] was updated</td>
55
+ </tr>
56
+ <tr>
57
+ <td> registeredAgent</td>
58
+ <td> [Application] (#classApplication)</td>
59
+ <td> The [=Application=] that was registered</td>
60
+ </tr>
61
+ <tr>
62
+ <td> hasAccessGrant</td>
63
+ <td> [AccessGrant] (#classAccessGrant)</td>
64
+ <td> Links to an [=Access Grant=] describing the access that has been
65
+ granted to the `registeredAgent`</td>
66
+ </tr>
67
+ </tbody>
68
+ </table>
69
+
70
+ <figure>
71
+ <figcaption> Alice's [=Application Registration=] for Projectron at
72
+ https://alice.pod.example/agents/2f2f3628/ -
73
+ <a href="snippets/alice.example/2f2f3628.ttl">View</a> </figcaption>
74
+ <pre class=include-code>
75
+ path: snippets/alice.example/2f2f3628.ttl
76
+ highlight: turtle
77
+ show: 11-18
78
+ </pre>
79
+ </figure>
80
+
81
+
11
82
## Social Agent Registration ## {#social-agent-registration}
12
83
13
84
A <dfn>Social Agent Registration</dfn> provides the [=Social Agent=]
@@ -69,6 +140,16 @@ interact with.
69
140
<td> Links to an [=Access Grant=] describing the access that has been
70
141
granted to the `registeredAgent`</td>
71
142
</tr>
143
+ <tr>
144
+ <td> skos:prefLabel</td>
145
+ <td> xsd:string</td>
146
+ <td> Human readable label assigned by the user creating the registration</td>
147
+ </tr>
148
+ <tr>
149
+ <td> skos:note</td>
150
+ <td> xsd:string</td>
151
+ <td> Optional note which can further help with recognising the agent</td>
152
+ </tr>
72
153
</tbody>
73
154
</table>
74
155
@@ -84,20 +165,18 @@ interact with.
84
165
</pre>
85
166
</figure>
86
167
87
- ## Application Registration ## {#application-registration }
168
+ ## Social Agent Invitation ## {#social-agent-invitation }
88
169
89
- An <dfn>Application Registration</dfn> provides the [=Social Agent=]
90
- with a place to maintain metadata, state, preferences, and
91
- other application-specific data associated with a given [=Application=] they
92
- have elected to use.
170
+ A <dfn>Social Agent Invitation</dfn> provides the [=Social Agent=]
171
+ with a simple and secure way to establish data sharing with other [=Social Agents=] .
93
172
94
- [=Application Registrations =] are stored in an [=Agent Registry=] .
173
+ [=Social Agent Invitations =] are stored in an [=Agent Registry=] .
95
174
96
- [Class Definition] (interop.ttl#ApplicationRegistration ) -
97
- [Shape Definition] (interop.shex#ApplicationRegistrationShape ) -
98
- [Shape Tree Definition] (interop.tree#ApplicationRegistrationTree )
175
+ [Class Definition] (interop.ttl#SocialAgentInvitation ) -
176
+ [Shape Definition] (interop.shex#SocialAgentInvitationShape ) -
177
+ [Shape Tree Definition] (interop.tree#SocialAgentInvitationTree )
99
178
100
- <table class="classinfo data" align="left" id="classApplicationRegistration ">
179
+ <table class="classinfo data" align="left" id="classSocialAgentInvitation ">
101
180
<colgroup></colgroup>
102
181
<colgroup></colgroup>
103
182
<colgroup></colgroup>
@@ -112,48 +191,67 @@ have elected to use.
112
191
<tr>
113
192
<td> registeredBy</td>
114
193
<td> [SocialAgent] (#classSocialAgent)</td>
115
- <td> [=Social Agent=] that registered the [=Application Registration =] </td>
194
+ <td> [=Social Agent=] that registered the [=Social Agent Invitation =] </td>
116
195
</tr>
117
196
<tr>
118
197
<td> registeredWith</td>
119
198
<td> [Application] (#classApplication)</td>
120
- <td> [=Application=] used to create the [=Application Registration =] </td>
199
+ <td> [=Application=] used to create the [=Social Agent Invitation =] </td>
121
200
</tr>
122
201
<tr>
123
202
<td> registeredAt</td>
124
203
<td> xsd:dateTime</td>
125
- <td> Date and time the [=Application Registration =] was created</td>
204
+ <td> Date and time the [=Social Agent Invitation =] was created</td>
126
205
</tr>
127
206
<tr>
128
207
<td> updatedAt</td>
129
208
<td> xsd:dateTime</td>
130
- <td> Date and time the [=Application Registration =] was updated</td>
209
+ <td> Date and time the [=Social Agent Invitation =] was updated</td>
131
210
</tr>
132
211
<tr>
133
- <td> registeredAgent </td>
134
- <td> [Application] (#classApplication) </td>
135
- <td> The [=Application=] that was registered </td>
212
+ <td> capabilityUrl </td>
213
+ <td> [[!capability-urls|Capability URL]] </td>
214
+ <td> Secure link used to accept the invitation </td>
136
215
</tr>
137
216
<tr>
138
- <td> hasAccessGrant</td>
139
- <td> [AccessGrant] (#classAccessGrant)</td>
140
- <td> Links to an [=Access Grant=] describing the access that has been
141
- granted to the `registeredAgent`</td>
217
+ <td> skos:prefLabel</td>
218
+ <td> xsd:string</td>
219
+ <td> Human readable label assigned by the user creating the invitation</td>
220
+ </tr>
221
+ <tr>
222
+ <td> skos:note</td>
223
+ <td> xsd:string</td>
224
+ <td> Optional note which can further help with understanding who is being invited</td>
142
225
</tr>
143
226
</tbody>
144
227
</table>
145
228
146
229
<figure>
147
- <figcaption> Alice's [=Application Registration=] for Projectron at
148
- https://alice.pod.example/agents/2f2f3628/ -
149
- <a href="snippets/alice.example/2f2f3628.ttl">View</a> </figcaption>
230
+ <figcaption> Alice's [=Social Agent Invitation=] for Yori at
231
+ https://alice.pod.example/agents/a1umr5yx/ -
232
+ <a href="snippets/alice.example/a1umr5yx.ttl">View</a>
233
+ </figcaption>
150
234
<pre class=include-code>
151
- path: snippets/alice.example/2f2f3628 .ttl
235
+ path: snippets/alice.example/a1umr5yx .ttl
152
236
highlight: turtle
153
- show: 11-18
237
+ show: 14-99
154
238
</pre>
155
239
</figure>
156
240
241
+ [=Authorization Agent=] accepting an authenticated request, targeting the `capabilityUrl`
242
+ from a [=Social Agent Invitation=]
243
+ * MUST respond with the [[!WEBID]] of the [=Social Agent=] who created the [=Social Agent Invitation=] , using `Content-Type: text/plain`
244
+ * MUST use the identity of the [=Social Agent=] , from the incoming request,
245
+ as the `registeredAgent` for newly created [=Social Agent Registration=] .
246
+ * SHOULD use the `skos:prefLabel` from the [=Social Agent Invitation=] for the new [=Social Agent Registration=] .
247
+ * SHOULD use the `skos:note` from the [=Social Agent Invitation=] for the new [=Social Agent Registration=] .
248
+ * SHOULD schedule [[#agent-registration-discovery]] on the `registeredAgent` from the new [=Social Agent Registration=] .
249
+ After the successful discovery, add it as `reciprocalRegistration`
250
+
251
+ Note: Commonly the [=Authorization Agent=] , making the request on behalf of the [=Social Agent=] accepting the invitation,
252
+ will create corresponding [=Social Agent Registration=] after receiving the [[!WEBID]] in the response,
253
+ which means that it is not available before receiving the response.
254
+
157
255
## Agent Registry ## {#ar-registry}
158
256
159
257
An <dfn>Agent Registry</dfn> is a collection of <dfn>Agent Registrations</dfn> .
0 commit comments