node-solid-server icon indicating copy to clipboard operation
node-solid-server copied to clipboard

Implement storage description resource discovery

Open csarven opened this issue 1 year ago • 10 comments

https://solidproject.org/ED/protocol#server-storage-description details the discovery of the storage description resource.

Servers MUST include the Link header field with rel="http://www.w3.org/ns/solid/terms#storageDescription" targeting the URI of the storage description resource in the response of HTTP GET, HEAD and OPTIONS requests targeting a resource in a storage.


https://github.com/solid/specification/issues/355#issuecomment-1140508784 shows how an application (e.g., https://dokie.li/ ) makes use of such resource to discover the features of the storage. Some common use cases are mentioned in https://github.com/solid/specification/issues/355#use-cases

csarven avatar Dec 02 '24 10:12 csarven

Can I take this issue?

sumeetkolekarr avatar Jan 13 '25 11:01 sumeetkolekarr

@sumeetkolekarr Please do!

lib/header.js may be one of the places where you want to look into. For example, I've done something like this:

addLink(res, 'https://csarven.localhost:8443/storage-description', 'http://www.w3.org/ns/solid/terms#storageDescription')

Essentially you may want to start with any non-auxiliary resource (i.e., with the exception of resources referred by describedby or acl) to have a storageDescription relation to the description resource that the storage also refers to. (Another way of saying that is that the storage root, e.g., / has link header relations for http://www.w3.org/ns/solid/terms#storageDescription and describedby and they both link to the same resource e.g., https://csarven.localhost:8443/storage-description - they can potentially be different resources, but there is no strong argument to have them separate at this time, so I suggest keeping it simple. If I'm not mistaken, NSS's describedby for the root container / is /.meta, so all containers and non-containers in the storage can simply do this:

addLink(res, 'https://csarven.localhost:8443/.meta', 'http://www.w3.org/ns/solid/terms#storageDescription')

Happy to support further if you have any questions.

csarven avatar Jan 13 '25 12:01 csarven

Kindly Assign me and I will work on it right away!

sumeetkolekarr avatar Jan 13 '25 14:01 sumeetkolekarr

@sumeetkolekarr branch issue#1805 has been created

bourgeoa avatar Jan 13 '25 21:01 bourgeoa

@bourgeoa Perfectly noted!

sumeetkolekarr avatar Jan 14 '25 04:01 sumeetkolekarr

@csarven this issue has been open for a while now. I am trying to start contributing to open-source projects and can help you close this issue. maybe you can help a little or provide me with some resources that'd help me contribute to this project.

aditya-hansraj avatar Mar 24 '25 20:03 aditya-hansraj

@aditya-hansraj Perhaps coordinate with @sumeetkolekarr in case they're already working on it or have implemented? What needs to be implemented is mentioned in the first comment. You can also see the Matrix chat for NSS ( https://matrix.to/#/#solid_node-solid-server:gitter.im ) if you'd like to coordinate with the others.

csarven avatar Mar 24 '25 21:03 csarven

@sumeetkolekarr hello, are you still working on this issue ?

aditya-hansraj avatar Mar 27 '25 15:03 aditya-hansraj

@aditya-hansraj I am still working on it, if you want, we both can work on the issue

sumeetkolekarr avatar Mar 30 '25 20:03 sumeetkolekarr

@sumeetkolekarr yes definitely, you can just fill me up on whatever you've done till now, then we can solve this issue together.

aditya-hansraj avatar Mar 30 '25 20:03 aditya-hansraj