Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor trusted access and access grants #71

Merged
merged 13 commits into from
Jan 26, 2021
Merged
3,961 changes: 3,117 additions & 844 deletions proposals/specification/access-grants.bs

Large diffs are not rendered by default.

1,074 changes: 433 additions & 641 deletions proposals/specification/access-needs.bs

Large diffs are not rendered by default.

709 changes: 352 additions & 357 deletions proposals/specification/access-receipts.bs

Large diffs are not rendered by default.

18 changes: 14 additions & 4 deletions proposals/specification/agent.bs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,9 @@ assigned to each [=Registry Set=], depending on the sensitivity of the
interop:hasRemoteDataRegistrySet <https://alice.pod.example/profile/remote#set> ;
######## Inboxes ########
interop:hasInbox <https://alice.pod.example/inbox/general> ;
interop:hasAccessInbox <https://alice.pod.example/inbox/access> .
interop:hasAccessInbox <https://alice.pod.example/inbox/access> ;
######## Options ########
interop:receivesAccessReceipt interop:ReceiptInMessage .
</pre>
</figure>

Expand Down Expand Up @@ -159,6 +161,14 @@ of software with an [=identity=] that can be strongly authenticated.
<td>ldp:inbox</td>
<td>An inbox for access related messages sent to the [=Agent=]</td>
</tr>
<tr>
<td>receivesAccessReceipt</td>
<td>interop:ReceiptInMessage,
interop:ReceiptInRegistration</td>
<td>Identifies whether [=Access Receipts=] should be sent directly
to the [=Application=] or provided in the [=Application Registration=]
if the [=Agent=] is also an [=Application=]</td>
</tr>
</tbody>
</table>

Expand All @@ -174,7 +184,8 @@ The [AgentShape](#shexAgent) is used to validate an instance of the
interop:hasAccessReceiptRegistrySet IRI ;
interop:hasRemoteDataRegistrySet IRI ;
interop:hasInbox IRI ;
interop:hasAccessInbox IRI
interop:hasAccessInbox IRI ;
interop:receivesAccessReceipt [ interop:ReceiptInMessage interop:ReceiptInRegistration ]
}
</pre>

Expand All @@ -186,8 +197,7 @@ is assigned to a resource to ensure it will validate against the
<#AgentTree>
a st:ShapeTree;
st:expectsType st:ShapeTreeResource ;
st:validatedBy &lt;interops#AgentShape&gt; ;
st:matchesUriTemplate "{id}" .
st:validatedBy &lt;interops#AgentShape&gt; .
</pre>

## Resource Hierarchy ## {#agents-hierarchy}
Expand Down
21 changes: 13 additions & 8 deletions proposals/specification/application-registration.bs
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,11 @@ via the [interop:hasRegistration](interop.ttl#hasRegistration) property.
<pre highlight="turtle">
<#registry>
a interop:ApplicationRegistry ;
interop:hasRegistration &lt;705563552198b6fb3efc40717872aa2ec35d669c1095cc5d665f499ec5d7e23a/#registration&gt; ,
&lt;ede6aa50cb9e5fc564fdb4f0dc661685825ee3178355214086be27f9830e2a42/#registration&gt; ,
&lt;150dca42b3d5661ba10a28e0aff36f212e27b0f7463fe1ef3bf1b5a45b640673/#registration&gt; ,
&lt;b3564e72a3877c9cfa9e4bc4d9e47e9b7c536ae9927407c8dd00ec3b0069f536/#registration&gt; .
interop:hasRegistration
&lt;705563552198b6fb3efc40717872aa2ec35d669c1095cc5d665f499ec5d7e23a/#registration&gt; ,
&lt;ede6aa50cb9e5fc564fdb4f0dc661685825ee3178355214086be27f9830e2a42/#registration&gt; ,
&lt;150dca42b3d5661ba10a28e0aff36f212e27b0f7463fe1ef3bf1b5a45b640673/#registration&gt; ,
&lt;b3564e72a3877c9cfa9e4bc4d9e47e9b7c536ae9927407c8dd00ec3b0069f536/#registration&gt; .
</pre>
</figure>

Expand Down Expand Up @@ -144,8 +145,7 @@ is assigned to a resource to ensure it will validate against the
<#ApplicationRegistrySetTree>
a st:ShapeTree;
st:expectsType st:ShapeTreeResource ;
st:validatedBy &lt;interops#ApplicationRegistrySetShape&gt; ;
st:matchesUriTemplate "application" .
st:validatedBy &lt;interops#ApplicationRegistrySetShape&gt; .
</pre>

### Application Registry ### {#datamodel-application-registry}
Expand Down Expand Up @@ -294,8 +294,7 @@ added, it is validated against [AccessReceiptTree](#treeAccessReceipt).
st:expectsType st:ShapeTreeContainer ;
st:validatedBy &lt;interops#ApplicationRegistrationShape&gt; ;
st:contains <#AccessReceiptTree> ,
st:AllowAll ;
st:matchesUriTemplate "{id}" .
st:AllowAll .
</pre>

## Resource Hierarchy ## {#appreg-hierarchy}
Expand Down Expand Up @@ -653,3 +652,9 @@ This operation creates a new [=Application Registration=], and
1. Assign permissions for `REG` per the [[#appreg-permissions]]
1. Link `REG` to `REGISTRY` via `REGISTRY hasRegistration`
1. Return `REG`

## Application Services ## {#appreg-services}

### Register Application ### {#appreg-service-registerapp}

Issue: Define app registration service
29 changes: 26 additions & 3 deletions proposals/specification/application.bs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ by linking to [=Access Need Groups=] via the
interop:applicationAuthor &lt;https://app.example/org/id#agent&gt; ;
interop:applicationAuthorName "Example Organization" ;
interop:applicationThumbnail &lt;https://app.example/profile/thumb.svg&gt; ;
interop:hasAccessNeedGroup &lt;#exampleAccessNeedGroup&gt; .
interop:hasAccessNeedGroup &lt;#exampleAccessNeedGroup&gt; ;
interop:receivesAccessReceipt interop:ReceiptInRegistration .
</pre>
</figure>

Expand Down Expand Up @@ -97,6 +98,13 @@ they've been granted access to.
<td>[=Access Need Group=] representing types of data the
[=Application=] needs to operate</td>
</tr>
<tr>
<td>receivesAccessReceipt</td>
<td>interop:ReceiptInMessage,
interop:ReceiptInRegistration</td>
<td>Identifies whether [=Access Receipts=] should be sent directly
to the [=Application=] or provided in the [=Application Registration=]</td>
</tr>
</tbody>
</table>

Expand All @@ -112,6 +120,7 @@ The [ApplicationShape](#shexApplication) is used to validate an instance of the
interop:applicationAuthorName xsd:string ;
interop:applicationThumbanil IRI? ;
interop:hasAccessNeedGroup IRI* ;
interop:receivesAccessReceipt [ interop:ReceiptInMessage interop:ReceiptInRegistration ]
}
</pre>

Expand All @@ -123,8 +132,7 @@ is assigned to a resource to ensure it will validate against the
<#ApplicationTree>
a st:ShapeTree;
st:expectsType st:ShapeTreeResource ;
st:validatedBy &lt;interops#ApplicationShape&gt; ;
st:matchesUriTemplate "{id}" .
st:validatedBy &lt;interops#ApplicationShape&gt; .
</pre>

## Resource Hierarchy ## {#app-hierarchy}
Expand Down Expand Up @@ -232,3 +240,18 @@ The permission model for the resources detailed in
</tbody>
</table>
</figure>

## Application Services ## {#app-services}

### Load Application Service ### {#load-application-service}

Issue: Detail how an application service is looked up in the
[=Application=] Profile.

### Redirect to Application Service ### {#redirect-to-application-service}

Issue: Detail how an [=Agent=] can be redirected to an application service

### Return from Application Service ### {#return-from-application-service}

Issue: detail how an [=Agent=] is returned back from an application service
Loading