You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This a placeholder for gathering references to create a more fleshed out plan.
We have distinct Gateway (/ipfs, /ipns) and API (/api/v0) endpoints today, and only the most basic read operations can be executed via Gateway.
Exposing /api/v0 on the gateway was a mistake, and we need to work towards removing the need for it.
The goal here would be to shift what is possible on the Gateway endpoints natively, so most popular operations like manipulating IPLD work without touching the advanced API.
Ordered improvements
Lower effort, high impact
Things well understood, with clear implementation plan:
Things that do not add anything new, but need to happen to solve production issues, improve devexp, and create solid foundations for wider community to participate in Gateway work beyond MVP features listed in the section above.
Here's what it could look like from a user's perspective:
constformData=newFormData()formData.append('file',newBlob(['hello world!']),'example1.txt')formData.append('file',newBlob(['Goodbye World?']),'example2.txt')// Post to empty directory CIDconstpostResponse=awaitfetch('ipfs://bafybeiczsscdsbs7ffqz55asqdf3smv6klcw3gofszvwlyarci47bgf354/',{method: 'POST',body: formData})constnewURL=awaitpostResponse.text()// newURL will be a directory with `example1.txt` and `example2.txt`
This will also play well with people using file inputs or drag and drop to upload data.
We have distinct Gateway (/ipfs, /ipns) and API (/api/v0) endpoints today, and only the most basic read operations can be executed via Gateway.
Exposing
/api/v0
on the gateway was a mistake, and we need to work towards removing the need for it.The goal here would be to shift what is possible on the Gateway endpoints natively, so most popular operations like manipulating IPLD work without touching the advanced API.
Ordered improvements
Lower effort, high impact
Things well understood, with clear implementation plan:
/ipns/
"dropping only the branches that changed, not entire DAG"
(feat: X-Ipfs-Roots for smarter HTTP caches kubo#8720)
(wip: feat(gateway): Block and CAR response formats kubo#8758)
(https://github.com/ipfs/go-ipfs/issues/8769)
High impact maintenance work
Things that do not add anything new, but need to happen to solve production issues, improve devexp, and create solid foundations for wider community to participate in Gateway work beyond MVP features listed in the section above.
(https://github.com/ipfs/go-ipfs/issues/1818#issuecomment-1015849462)
Higher effort, high impact
Things that have extremely high impact, but need some additional research / design to happen.
POST /ipfs/
with support for IPLD content types (as a template foripfs://
behavior in browsers)"Mount any gateway CID root as a native read-only drive"
(WebDAV (HTTP Extensions for Distributed Authoring) #146)
"Mount Files from ipfs-desktop as a native, writable drive"
(WebDAV (HTTP Extensions for Distributed Authoring) #146)
Old Brainstorm
Below is the landscape of things worth considering.
No regrets
Things worth doing
?format=car|block|...
– Gateway support for /ipfs/{cid}?format=car|raw|... kubo#8234👉 what if:
Other ideas
Big complexity and low impact for user running it on localhost.
resumable uploads
access controls?
The text was updated successfully, but these errors were encountered: