feat: a read-only gateway for a node's stored files #115

Merged
admin merged 3 commits from feat/gateway into dev 2026-10-09 07:36:26 +00:00
Owner

The gateway part of #34; the rest of that issue (jobs as linked data, IPNS names, the pinning service API) is not in this.

sisyphusd run --gateway-listen 127.0.0.1:8080 serves a node's stored files over plain HTTP by content ID, as GET /ipfs/<cid>, the way any IPFS gateway does. A browser, a web page or curl can then fetch a result without being a node.

  • Access. A request must show the node's API token (bearer header, or ?token= for a link). With --gateway-open anyone who can reach the address and knows a content ID can fetch it, and pages elsewhere may too.
  • Sealed files are refused either way: the gateway holds only what was sealed, and serving that would suggest otherwise.
  • Ranges work, so media can be seeked; ?filename= names the file and sets its type; responses are marked immutable, since an ID is always the same bytes.
  • Read-only: anything but GET and HEAD is refused. Single files only.

Not done from the issue's gateway list: publishing to public gateways for data marked public.

The gateway part of #34; the rest of that issue (jobs as linked data, IPNS names, the pinning service API) is not in this. `sisyphusd run --gateway-listen 127.0.0.1:8080` serves a node's stored files over plain HTTP by content ID, as `GET /ipfs/<cid>`, the way any IPFS gateway does. A browser, a web page or `curl` can then fetch a result without being a node. - **Access.** A request must show the node's API token (bearer header, or `?token=` for a link). With `--gateway-open` anyone who can reach the address and knows a content ID can fetch it, and pages elsewhere may too. - **Sealed files are refused** either way: the gateway holds only what was sealed, and serving that would suggest otherwise. - Ranges work, so media can be seeked; `?filename=` names the file and sets its type; responses are marked immutable, since an ID is always the same bytes. - Read-only: anything but GET and HEAD is refused. Single files only. Not done from the issue's gateway list: publishing to public gateways for data marked public.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Sisyphus/Sisyphus#115