Skip to content

Commit b1e4620

Browse files
authored
Merge branch 'main' into dht
2 parents 3c8d844 + a5b6db6 commit b1e4620

32 files changed

+846
-1132
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,5 @@ jobs:
5151
with:
5252
name: website-build-${{ github.run_id }}
5353
path: ${{ env.BUILD_PATH }}
54-
retention-days: 1
54+
retention-days: 1
55+
include-hidden-files: true

.github/workflows/linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Checkout Code
17-
uses: actions/checkout@v3
17+
uses: actions/checkout@v4
1818
with:
1919
# Full git history is needed to get a proper list of changed files within `super-linter`
2020
fetch-depth: 0

.markdownlint.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
"single-trailing-newline": false,
1010
"link-fragments": false,
1111
"line-length": false,
12-
"blanks-around-fences": false
12+
"blanks-around-fences": false,
13+
"no-inline-html": false
1314
}

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ install:
1212

1313
website: clean install
1414
npx spec-generator -c .config.json
15+
touch out/.nojekyll
1516

1617
watch: clean install
1718
npx spec-generator -c .config.json -w

package-lock.json

Lines changed: 282 additions & 1089 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"author": "",
1010
"license": "",
1111
"private": true,
12-
"devDependencies": {
13-
"spec-generator": "^1.6.0"
12+
"dependencies": {
13+
"spec-generator": "^1.6.1"
1414
}
1515
}

src/architecture/principles.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ editors:
1818
url: https://protocol.ai/
1919
tags: ['architecture']
2020
order: 0
21+
xref:
22+
- trustless-gateway
23+
- http-routing-v1
2124
---
2225

2326
The IPFS stack is a suite of specifications and tools that share two key characteristics:

src/http-gateways/dnslink-gateway.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ editors:
1717
affiliation:
1818
name: Cloudflare
1919
url: https://cloudflare.com/
20+
xref:
21+
- path-gateway
22+
- web-redirects-file
2023
tags: ['httpGateways', 'webHttpGateways']
2124
order: 4
2225
---

src/http-gateways/libp2p-gateway.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ editors:
1616
name: Shipyard
1717
url: https://ipshipyard.com
1818
xref:
19+
- http-routing-v1
1920
- path-gateway
2021
- trustless-gateway
2122
tags: ['httpGateways', 'lowLevelHttpGateways', 'exchange', 'transport']

src/http-gateways/path-gateway.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,23 @@ description: >
44
The comprehensive low-level HTTP Gateway enables the integration of IPFS
55
resources into the HTTP stack through /ipfs and /ipns namespaces, supporting
66
both deserialized and verifiable response types.
7-
date: 2024-04-17
7+
date: 2025-10-13
88
maturity: reliable
99
editors:
1010
- name: Marcin Rataj
1111
github: lidel
1212
url: https://lidel.org/
1313
affiliation:
14-
name: Protocol Labs
15-
url: https://protocol.ai/
14+
name: Shipyard
15+
url: https://ipshipyard.com
16+
former_editors:
17+
- name: Henrique Dias
18+
github: hacdias
19+
url: https://hacdias.com/
20+
affiliation:
21+
name: Shipyard
22+
url: https://ipshipyard.com
23+
thanks:
1624
- name: Adrian Lanzafame
1725
github: lanzafame
1826
affiliation:
@@ -28,17 +36,15 @@ editors:
2836
affiliation:
2937
name: Protocol Labs
3038
url: https://protocol.ai/
31-
- name: Henrique Dias
32-
github: hacdias
33-
url: https://hacdias.com/
34-
affiliation:
35-
name: Protocol Labs
36-
url: https://protocol.ai/
3739
xref:
3840
- url
3941
- trustless-gateway
42+
- subdomain-gateway
43+
- dnslink-gateway
4044
- ipip-0402
4145
- ipip-0412
46+
- ipip-0288
47+
- ipns-record
4248
tags: ['httpGateways', 'lowLevelHttpGateways']
4349
order: 0
4450
---
@@ -328,6 +334,11 @@ Gateways MUST use 404 to signal that content is not available, particularly
328334
when the gateway is [non recursive](#recursive-vs-non-recursive-gateways), and only provides access to a known
329335
dataset, so that it can assess that the requested content is not part of it.
330336

337+
NOTE: Gateways MUST return 404 for missing root blocks. However, for streaming
338+
responses (such as CAR), once HTTP 200 OK status is sent, gateways cannot
339+
change it. If a child block is missing during streaming, the gateway SHOULD
340+
terminate the stream. Clients MUST verify response completeness.
341+
331342
### `410` Gone
332343

333344
Error to indicate that request was formally correct, but this specific Gateway
@@ -635,6 +646,10 @@ Indicates the original, requested content path before any path resolution and tr
635646

636647
Example: `X-Ipfs-Path: /ipns/k2..ul6/subdir/file.txt`
637648

649+
This header SHOULD be returned with deserialized responses.
650+
Implementations MAY omit it with trustless response types
651+
(`application/vnd.ipld.raw` and `application/vnd.ipld.car`).
652+
638653
### `X-Ipfs-Roots` (response header)
639654

640655
Used for HTTP caching.
@@ -664,6 +679,15 @@ NOTE: while the first CID will change every time any article is changed,
664679
the last root (responsible for specific article or a subdirectory) may not
665680
change at all, allowing for smarter caching beyond what standard Etag offers.
666681

682+
This header SHOULD be returned with deserialized responses.
683+
Implementations MAY omit it with trustless response types
684+
(`application/vnd.ipld.raw` and `application/vnd.ipld.car`).
685+
686+
NOTE: Gateways that stream responses (e.g., CAR) without pre-resolving the
687+
entire path MAY only include the root CID for simple `/ipfs/{cid}` requests, or
688+
MAY omit this header for path requests where intermediate CIDs are not known
689+
when headers are sent.
690+
667691
### `X-Content-Type-Options` (response header)
668692

669693
Optional, present in certain response types:

0 commit comments

Comments
 (0)