Relationship between pods and webids

Apologies, I have read and re-read all the documents I can find on Solid, but am still a little fuzzy with the details - so any help very gratefully received (and sorry if I’m missing something obvious!). My question relates to the decoupling of pods from webIDs and what the flow looks like in a couple of basic scenarios.

Lets say that I have a pod with a folder of pictures that I want to share with Bob. I assume that I would (in my pod or pod management app), give read permissions to that resource by using Bob’s webId. But what happens next? Do I send Bob the link to the resource on my pod? Does Bob then access the photos through his photosharing app by using the pod link I sent? Does the app then undertake the auth dance to retrieve my photos?

In a similar vein, lets say I want a photosharing app to access some of my photos. I assume that the app will define the permissions it requires, which I will grant when I login to the photosharing app using my webId. But how does the photosharing app then locate my pod?

Would I be expected to provide this info in addition to my webId? Or does the Identity Provider maintain a link between my webId and my pod. In which case how would multiple pods work? I saw an answer on the forum that suggested that you need a new webId per pod, but that feels wrong to me (and I’m not sure it’s what the high-level documentation suggests ).

Once again - apologies if I’m being stupid - it would be great if someone could let me know what I have wrong (or right)

1 Like

First, no apologies necessary, we’re working on documentation for this process but it is taking a while.

If you want Bob to access your photos, you would put Bob’s WebID in the access control resource for the photos container.

If you want Bob to know about the photos, it’s possible an app would do that for you but it’s also possible you’d need to just give him the address of the container. He can then directly visit.

Here’s how it should work : a WebID points to your profile. Your profile should contain information about where you store things, for example a pim:storage predicate pointing to the root of your pod. Well-behaved apps will also store information in part of your profile called a type-index about where it has stored photos. So if Bob has a well-behaved photo app and your WebID, the photo app would use your WebID to look in your profile, find the type index, find a list of places you have photos that Bob has access to and take him there. So in that case the only thing you would need is Bob’s WebID and the only thing he’d need would be your WebID.

2 Likes

And, as for the relationship between pods and WebIDs …

One person can have multiple WebIDs and multiple storage spaces. The only way to know where to look for or where to put what is by examining the person’s profile. If they only list one storage space, voila - that WebID is associated with that storage and you have one WebID = one Pod. Otoh, they might have multiple. Also they may have pointers to data that isn’t even on a pod they own … it’s about following the links to the data, not the location of the data.

2 Likes

Thank you for the quick reply! That’s great; makes sense - really appreciate the detailed and clear answer.