Important: developers that want to use this functionality should make sure to store the data instances of a shape tree in a container that has the same name of that shape tree. These containers should be stored in the root of the container that is dedicacted to the developers' app.

As a developer, you might want to ask a user to give access to his or her data to another party's WebID. For example, you might want to ask Alice to give Bob read access to her payslip data.

To do this, you need to undertake a procedure of three steps (see image below). First, you need to create an access request. Next, you have to present this request to the user and ask him or her for approval. Finally, you need to check the status of the access request to see whether it was successful or not. This endpoint allows you to take the first step and create an access request. The next step is described in the /account/{webid_url}/access-request/{id}/exchange endpoint. The final step can be undertaken by sending a GET request to the /account/{webid_url}/access-request/{id}/exchange endpoint.

Note that the procedure in which this endpoint is used, is designed to bridge the period in which the Solid interop specification (and thus also the authorisation agent) is not yet finalised.

Currently, the functionality of this procedure (and thus also endpoint) is limited.

  • Currently, only use.id WebIDs are accepted.
  • For Access Need Groups, only the interop:AccessRequired necessity, interop:SharedAccess scenario and interop:SocialAgent authentication are supported.
  • For Access Needs
    • Only the following access modes are supported: acl:Read, acl:Write, acl:Append.
    • Only the interop:AccessRequired necessity is supported.
    • hasDataInstance and inheritsFromNeed are not supported.
  • Linked data shapes trees must be hosted on use.id.
  • The location of the linked data shape trees must remain the same.
  • A shape tree defines a set of attributes. An attribute can currently not be included in more than one of such sets.
  • Applications can only modify access modes of data that is stored in their respective application container.
  • One can only grant access for the whole set of data instances that match with the shape tree. In other words, one cannot grant access to a specific instance of a shape tree.
  • The shapetree:contains property is currently not supported. This means that, currently, shape trees cannot yet be used to define hierarchies.

For now, awaiting full shape tree support, of we advise developers to model their data using shape trees according to the third normal form.

For more information about Access Need Groups, Access Needs, ShapeTrees and Shapes, please refer to https://solid.github.io/data-interoperability-panel/specification/

Language
URL
Click Try It! to start a request and see the response here!