# Request access to another pod on community solid server

**URL:** <https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709>\
**Category:** Build a Solid App\
**Created:** [June 27, 2023, 9:07pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709 "2023-06-27T21:07:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![timbot1789](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/timbot1789/32/4014_2.png) [@timbot1789](https://forum.solidproject.org/u/timbot1789)\
**Post date:** [June 27, 2023, 9:07pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/1 "2023-06-27T21:07:12Z")

</div>

I’m trying to build a feature where a user can request access and permissions to another user’s pod, which the second user can later review and approve/deny. I see that inrupt has some libraries that do this: [@inrupt/solid-client-access-grants API Documentation — Inrupt solid-client-access-grants Documentation](https://docs.inrupt.com/developer-tools/api/javascript/solid-client-access-grants/)  
However my understanding is that these libraries only works with ESS. Is there a way to do the same thing with CSS, or a solid pod generally?

---

<div class="post-metadata">

**Author:** ![gaz009](https://avatars.discourse-cdn.com/v4/letter/g/a5b964/32.png) [@gaz009](https://forum.solidproject.org/u/gaz009)\
**Post date:** [June 27, 2023, 9:46pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/2 "2023-06-27T21:46:58Z")

</div>

The access grants feature is an experimental API only in ESS.

To emulate this somewhat in CSS and NSS, I would imagine you would need your webID document to have a link to a public “inbox” where anyone can send a request. You could then build an app that shows the content of these requests and if you approve it, then it allows that user to read some data by updating the security policy with an associated resource.

---

<div class="post-metadata">

**Author:** ![timbot1789](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/timbot1789/32/4014_2.png) [@timbot1789](https://forum.solidproject.org/u/timbot1789)\
**Post date:** [June 27, 2023, 10:19pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/3 "2023-06-27T22:19:36Z")

</div>

Yeah that’s kind of what I imagined doing too if there wasn’t a standard. However, rolling our own access grant system kind of implicitly means it won’t be interoperable with other apps. Was hoping to avoid that, but it may not be possible rn.

---

<div class="post-metadata">

**Author:** ![gaz009](https://avatars.discourse-cdn.com/v4/letter/g/a5b964/32.png) [@gaz009](https://forum.solidproject.org/u/gaz009)\
**Post date:** [June 27, 2023, 10:57pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/4 "2023-06-27T22:57:56Z")

</div>

I wouldn’t worry about that too much at this point. From my point of view, Inrupt is doing the same thing with their experimental API since it doesn’t work with other SOLID compliant servers. I’m not sure if the Inbox proposal was finalized, and I don’t remember the link, but I Do believe an Inbox in your webId is something you are allowed to do. If you make a popular inbox request ontology and make it public, it could become the standard way.

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [June 28, 2023, 12:13am UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/5 "2023-06-28T00:13:38Z")

</div>

You should check out the [Solid Notifications Protocol](https://solidproject.org/TR/notifications-protocol). It is AFAIK the closest we have to a standard way to communicate with a pod owner and is (I could be wrong) in the latest CSS. That is the communication/notification part, for the access grant part , one option is the [Interoperability Specification](https://solid.github.io/data-interoperability-panel/specification/),.

---

<div class="post-metadata">

**Author:** ![timbot1789](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/timbot1789/32/4014_2.png) [@timbot1789](https://forum.solidproject.org/u/timbot1789)\
**Post date:** [June 28, 2023, 12:57am UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/6 "2023-06-28T00:57:03Z")

</div>

Ah ok. The interoperability spec does have a few notes on how to handle access grants. I’ll give that a go. Thanks!

---

<div class="post-metadata">

**Author:** ![hochstenbach](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/hochstenbach/32/2308_2.png) [@hochstenbach](https://forum.solidproject.org/u/hochstenbach)\
**Post date:** [June 28, 2023, 4:46am UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/7 "2023-06-28T04:46:48Z")

</div>

> [@jeffz](#):
>
> Solid Notifications Protocol

There is also the [Event Notifications](https://www.eventnotifications.net) protocol we are working on. A pod owner could e.g. send an AS2 ‘Offer’ to another pod owners inbox that can ‘Accept’ or ‘Reject’ this and update the access rights. This could result in an ‘Announce’ notification to the original requester informing the access was granted.

This Event Notification protocol is currently also implemented in non-Solid use-cases e.g. [COAR Notify](https://www.coar-repositories.org/notify/) to communicate between institutional repostories and peer-review systems. And this will also be part of [DataVerse](https://dataverse.org) the open source software that is used for research data (with simular use-cases as this one).

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [June 28, 2023, 2:39pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/8 "2023-06-28T14:39:00Z")

</div>

And now there’s also this proposal : [GitHub - CxRes/per-resource-events: A minimal notifications protocol built on HTTP](https://github.com/CxRes/per-resource-events),

---

<div class="post-metadata">

**Author:** ![Siemen](https://avatars.discourse-cdn.com/v4/letter/s/8e8cbc/32.png) [@Siemen](https://forum.solidproject.org/u/Siemen)\
**Post date:** [March 28, 2024, 12:28pm UTC](https://forum.solidproject.org/t/request-access-to-another-pod-on-community-solid-server/6709/9 "2024-03-28T12:28:35Z")

</div>

Would it already be possible to use the [java client library](https://docs.inrupt.com/developer-tools/java/client-libraries/access-grants/create-access-requests-grants/) from Inrupt to handle access requests and grants between a solid client app and a locally running CSS? Or does this still only work with the ESS?

If the latter is the case, what would you need in your client app to realize read access to the resources of the different pods stored on the CSS? And this could maybe be a stupid question but does the client app need to have an account on the CSS itself (so it can instantiate a session for the SolidClient class) in order to communicate with the pod-owners on the CSS?

Thanks in advance!
