Skip to content

fix: Ipfs-Uri gateway header (IPIP-548) - #11437

Merged
lidel merged 8 commits into
masterfrom
ipip-548-ipfs-uri
Aug 27, 2026
Merged

lidel merged 8 commits into
masterfrom
ipip-548-ipfs-uri

Conversation

@lidel

@lidel lidel commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Problem

LegacyX-Ipfs-Path cannot carry every UnixFS file name: bytes outside visible ASCII are invalid in HTTP field values1, so names like łódź.txt reached clients garbled. ipfs/specs#548 deprecates it in favor of Ipfs-Uri, a percent-encoded ipfs:// / ipns:// address that survives any name.

Fix

Draft until boxo cuts a release with ipfs/boxo#1209; the temporary go.mod pin then becomes a normal version bump.

Footnotes

  1. RFC 9110, section 5.5: field values are limited to HTAB, SP, and visible ASCII.

lidel added 2 commits August 24, 2026 01:28
Bump boxo to the IPIP-548 implementation (ipfs/boxo#1209): gateway
responses carry a canonical percent-encoded Ipfs-Uri header and stop
sending the deprecated X-Ipfs-Path, which cannot represent every
UnixFS file name.

- sharness: CORS expects Ipfs-Uri exposed, X-Ipfs-Path gone
- gateway-conformance CI pinned to the IPIP-548 test suite
  (ipfs/gateway-conformance#301) until a release ships
- reverse-proxy doc and v0.44 changelog updated

Refs ipfs/specs#548
Expose boxo's opt-in for the legacy X-Ipfs-Path response header as a
kubo config flag, default off. Unsafe: the legacy value cannot
represent every UnixFS file name, so it must only be used to
facilitate migration to Ipfs-Uri, and even when enabled the header
is still skipped when the value would include non-ASCII byte
sequences.

Refs ipfs/specs#548
@lidel lidel mentioned this pull request Aug 23, 2026
63 tasks
@socket-security

socket-security Bot commented Aug 23, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedgithub.com/​ipfs/​boxo@​v0.42.2 ⏵ v0.42.3-0.20260827015437-63cae36adc9674 +1100100100100

View full report

@lidel
lidel marked this pull request as ready for review August 23, 2026 23:54
@lidel
lidel requested a review from a team as a code owner August 23, 2026 23:54
lidel added 5 commits August 27, 2026 00:30
Move the v0.44 highlights and dependency lines into a new v0.43.1
section, and add the missing entry for owner-only key exports
(#11428). v0.44.md returns to an empty skeleton.
@lidel
lidel merged commit a554311 into master Aug 27, 2026
19 checks passed
@lidel
lidel deleted the ipip-548-ipfs-uri branch August 27, 2026 02:35
pull Bot pushed a commit to redpeacock78/kubo that referenced this pull request Sep 15, 2026
* feat: Ipfs-Uri gateway header (IPIP-548)

Bump boxo to the IPIP-548 implementation (ipfs/boxo#1209): gateway
responses carry a canonical percent-encoded Ipfs-Uri header and stop
sending the deprecated X-Ipfs-Path, which cannot represent every
UnixFS file name.

- sharness: CORS expects Ipfs-Uri exposed, X-Ipfs-Path gone
- gateway-conformance CI pinned to the IPIP-548 test suite
  (ipfs/gateway-conformance#301) until a release ships
- reverse-proxy doc and v0.44 changelog updated

Refs ipfs/specs#548

* feat: opt-in Gateway.DeprecatedXIpfsPath

Expose boxo's opt-in for the legacy X-Ipfs-Path response header as a
kubo config flag, default off. Unsafe: the legacy value cannot
represent every UnixFS file name, so it must only be used to
facilitate migration to Ipfs-Uri, and even when enabled the header
is still skipped when the value would include non-ASCII byte
sequences.

Refs ipfs/specs#548

* ci: bump gateway-conformance pin

* ci: gateway-conformance v0.14

* chore: boxo with IPIP-548 from boxo/main

* docs: Ipfs-Uri changelog in v0.43.1

* docs: assemble v0.43.1 changelog

Move the v0.44 highlights and dependency lines into a new v0.43.1
section, and add the missing entry for owner-only key exports
(ipfs#11428). v0.44.md returns to an empty skeleton.

* docs: note boxo v0.42.2 fixes in v0.43.1

(cherry picked from commit a554311)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant