SolidOS/solid-logic

update getPodRoot() to v.10 solid protocol

bourgeoa opened this issue · 5 comments

getPodRoot() is meant to find a storageRoot.
It actually get the information from the WebID and expect to return one or none among the storage listed in the profile.
This must be updated to :

  • profile having 0, 1 or more storages
  • when > 1 return as storage the profile storage if available
  • when no storage use the new v.10 protocol header link --> solid:storageDescription
    if not available make a recursive research to solid:Storage in the root of storage

See https://github.com/SolidOS/solid-ui/blob/3576458f7be53012dc4085b5ae7caee1a511773e/src/utils/keyHelpers/accessData.ts#L7 for reference.

@bourgeoa I want to ask you about the 3rd point of protocol header link when no storages found? Can you point me to more details on this for my understanding?

Root storage container description MUST include this triple

Servers MUST include statements about the storage as part of the storage description resource.
Storage description statements include the properties:
rdf:type
A class whose URI is http://www.w3.org/ns/pim/space#Storage

NSS does this by having the above triple in podRoot/.meta

What does this mean?

when > 1 return as storage the profile storage if available

Does it mean if there are 3 storages listed in the profile and one of them is on the same subdomain as the profile, that is the storage to use?

That is a proposal. Happy that there is a reaction.
Actually the function returns one storage using with match any. The result is not reproducible. Depending on what you want to do it may be an issue.