Commit Graph

768 Commits

Author SHA1 Message Date
Marcin Rataj
93f8897d7c
feat(config): optional Gateway.MaxRangeRequestFileSize (#10997)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Check / lint (push) Waiting to run
Docker Check / build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
adds Gateway.MaxRangeRequestFileSize configuration to protect against CDN bugs
where range requests over certain sizes return entire files instead of requested
byte ranges, causing unexpected bandwidth costs.

- default: 0 (no limit)
- returns 501 Not Implemented for oversized range requests
- protects against CDNs like Cloudflare that ignore range requests over 5GiB

also introduces OptionalBytes type to reduce code duplication when handling
byte-size configuration values, replacing manual string parsing with humanize.ParseBytes.
migrates existing byte-size configs to use this new type.

Fixes: https://github.com/ipfs/boxo/issues/856
2025-11-11 18:54:43 -08:00
Marcin Rataj
be7bf60355
chore: update webui to v4.10.0 (#11048)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Check / lint (push) Waiting to run
Docker Check / build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
updates ipfs-webui from v4.9.1 to v4.10.0

https://github.com/ipfs/ipfs-webui/releases/tag/v4.10.0
2025-11-06 02:23:42 +01:00
Marcin Rataj
1dffcb892f
fix: update webui to v4.9.1 (#10994)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.9.1
2025-09-27 02:05:18 +02:00
Marcin Rataj
90740dca21
feat: ipfs-webui v4.9.0 with retrieval diagnostics (#10969)
* fix(webui): show helpful errors for incompatible configurations

- show error when Gateway.NoFetch=true and WebUI is not available locally
- show error when Gateway.DeserializedResponses=false (incompatible)
- add tests for both error scenarios

* chore(webui): update to v4.9.0

https://github.com/ipfs/ipfs-webui/releases/tag/v4.9.0

* docs: add WebUI v4.9.0 update to v0.38 changelog

- highlight new diagnostics screen for troubleshooting
- include screenshots of key features in table format
- add local access URL for WebUI
- update TOC with new sections
2025-09-19 04:16:21 +02:00
Marcin Rataj
906ce802bf
feat(gateway): improved error page with retrieval state details (#10950)
* feat(gateway): add DiagnosticServiceURL config

- add Gateway.DiagnosticServiceURL to kubo config
- pass diagnostic service URL to boxo gateway
- document new config option in docs/config.md
- default to https://check.ipfs.network

* docs(changelog): add gateway error UX improvements to v0.38

- document improved 504 error pages with retrieval diagnostics
- highlight new Gateway.DiagnosticServiceURL config option
- include screenshot showing enhanced error page UX
2025-09-08 19:49:00 +02:00
Marcin Rataj
64c47c374a
feat(config): Gateway.RetrievalTimeout|MaxConcurrentRequests (#10905)
* feat(gateway): concurrency and timeout limits

Depends on https://github.com/ipfs/boxo/pull/994

* chore: boxo master with final boxo#994

this includes race-condition fixes from ipfs/boxo#994
and increased `DefaultMaxConcurrentRequests = 4096`

* docs: concise config.md and changelog
2025-08-15 02:36:33 +02:00
Marcin Rataj
cfbc64845c
feat: ipfs-webui v4.8.0 (#10902)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.8.0
2025-08-08 03:58:12 +02:00
Andrew Gillis
90b73d2ad2
refactor: remove goprocess (#10872)
* refactor: remove goprocess

The `goprocess` package is no longer needed. It can be replaces by modern `context` and `context.AfterFunc`.

* mod tidy

* log unmount errors on shutdown

* Do not log non-mounted errors on shutdown

* Use WaitGroup associated with IPFS node to wait for services to whutdown

* Prefer explicit Close to context.ArterFunc

* Do not use node-level WaitGroup

* Unmount for non-supported platforms

* fix return values

* test: daemon shuts down gracefully

make sure ongoing operations dont block shutdown

* test(cli): add TestFUSE

* test: smarter RequiresFUSE

opportunistically run FUSE tests if env has fusermount
and TEST_FUSE was not explicitly set

* docs: changelog

---------

Co-authored-by: gammazero <gammazero@users.noreply.github.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-06 00:33:45 +02:00
Andrew Gillis
bb58ca4737
remove unneeded thirdparty packages (#10871)
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Spell Check / spellcheck (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
* remove unneeded thirdparty packages

Remove unnecessary packages from `thirdparty` in repo.

- Remove `thirdparty/assert` (replaced by `github.com/stretchr/testify/require`)
- Remove `thirdparty/dir` (replacd by `misc/fsutil`)
- Remove `thirdparty/notifier` (unused)
2025-07-16 01:53:42 -07:00
Andrew Gillis
20d9660a64
chore: use go-log/v2 (#10801)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
* chore: update to go-log/v2

go-log v2 has been out for quite a while now and it is time to deprecate v1.

Replace all use of go-log with go-log/v2
Makes /api/v0/log/tail useful over HTTP
Updates dependencies that have moved to go-lov/v2
Removes support for ContextWithLoggable as this is not needed for tracing-like functionality
- Replaces: PR #8765
- Closes issue #8753
- Closes issue #9245
- Closes issue #10809

Other fixes:
* update go-ipfs-cmds
* update http logs test
* fix test
* Read/send one line of log data at a time
* Update -log-level docs
2025-05-19 13:04:05 -07:00
Marcin Rataj
ee7fef251c
feat: ipfs-webui v4.7.0 (#10780)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.7.0
2025-04-09 20:58:32 +02:00
Marcin Rataj
b2efaa992f
feat: ipfs-webui v4.6 (#10756)
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Spell Check / spellcheck (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
https://github.com/ipfs/ipfs-webui/releases/tag/v4.6.0
2025-03-14 18:08:19 +01:00
Marcin Rataj
652d94b2b1
feat: ipfs-webui v4.5.0 (#10735)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.5.0
2025-02-25 23:31:10 +01:00
Marcin Rataj
9282f08188
fix: ipfs-webui v4.4.2 (#10635)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.4.2
2024-12-20 19:24:21 +01:00
Marcin Rataj
53e793afdd
fix: ipfs-webui v4.4.1 (#10608)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.4.1
2024-12-03 20:11:34 +01:00
Marcin Rataj
5d2f5369c7
feat: ipfs-webui v4.4.0 (#10574)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.4.0
2024-11-07 22:12:42 +01:00
Marcin Rataj
b336602597
feat: ipfs-webui v4.3.3 (#10543)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.3.3
2024-10-16 20:51:17 +02:00
Russell Dempsey
ce23fc7ccc
feat: ipfs-webui v4.3.2 (#10523)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.3.1
https://github.com/ipfs/ipfs-webui/releases/tag/v4.3.2

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-09-24 23:26:51 +02:00
Marcin Rataj
91ae982494
feat: webui v4.3.0 (#10477)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.3.0
2024-08-12 22:36:59 +02:00
Henrique Dias
eb97cf9e57
chore: bump to go-ipfs-cmds @ v0.11 2024-04-17 07:47:39 +02:00
Marcin Rataj
513bc3c0c8
chore: webui v4.2.1 (#10391)
patch release that removes unnecessary requests to
countly.ipfs.io which is no longer online

https://github.com/ipfs/ipfs-webui/releases/tag/v4.2.1
2024-04-09 08:08:06 +02:00
Henrique Dias
e22f47ae4b
core/corehttp!: remove /api/v0 from gateway port 2024-03-05 08:21:13 +00:00
Henrique Dias
0ea879b4a1
feat: add Ipns.MaxCacheTTL 2024-01-26 11:20:34 +01:00
Henrique Dias
e166af9756
core/corehttp: wrap gateway with headers, deprecate gateway /api/v0 2024-01-24 09:33:23 +00:00
Henrique Dias
0ec6308e8b core/corehttp: wrap hostname option with otelhttp 2024-01-16 11:12:12 +01:00
Russell Dempsey
d882642168
feat: webui v4.2.0 (#10241)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.2.0

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-12-03 22:48:28 +01:00
Henrique Dias
58c29399cf
chore: clean migration 2023-11-29 12:29:59 +01:00
Henrique Dias
01cc5eab57
feat(rpc): Opt-in HTTP RPC API Authorization (#10218)
Context: https://github.com/ipfs/kubo/issues/10187
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-11-17 01:29:29 +01:00
Hector Sanjuan
a0f34b16dd
feat: built-in content blocking based on IPIP-383 (#10161)
Fixes #8492

This introduces "nopfs" as a preloaded plugin into Kubo
with support for denylists from https://github.com/ipfs/specs/pull/383

It automatically makes Kubo watch *.deny files found in:

- /etc/ipfs/denylists
- $XDG_CONFIG_HOME/ipfs/denylists
- $IPFS_PATH/denylists

* test: Gateway.NoFetch and GatewayOverLibp2p

adds missing tests for "no fetch" gateways one can expose,
in both cases the offline mode is done by passing custom
blockservice/exchange into path resolver, which means
global path resolver that has nopfs intercept is not used,
and the content blocking does not happen on these gateways.

* fix: use offline path resolvers where appropriate

this fixes the problem described in
https://github.com/ipfs/kubo/pull/10161#issuecomment-1782175955
by adding explicit offline path resolvers that are backed
by offline exchange, and using them in NoFetch gateways
instead of the default online ones

---------

Co-authored-by: Henrique Dias <hacdias@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-10-28 05:34:14 +02:00
Henrique Dias
4695fd9fed
refactor: namesys cleanup, gateway /ipns/ ttl (#10115) 2023-10-18 10:23:50 +02:00
Henrique Dias
170686b420
chore: update types to match boxos (#10179) 2023-10-17 19:02:26 +02:00
Henrique Dias
a7c6518497
feat: path consolidation (#10063) 2023-10-06 16:14:44 +02:00
Henrique Dias
97527472fe
feat(gateway): update gateway api, no multi-range support 2023-10-02 16:43:52 +02:00
Russell Dempsey
73860d6ee7
chore: webui v4.1.1 (#10120)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.1.1
(translation updates)
2023-09-21 19:35:16 +02:00
Henrique Dias
0bac56c3aa
feat: add Gateway.DisableHTMLErrors option (#10137) 2023-09-21 15:03:17 +00:00
Jorropo
3f33e61d3a chore: update to go1.21 for gateway over libp2p 2023-09-20 10:47:03 +02:00
Russell Dempsey
0eeb1f5a2f
fix: hamt traversal in ipld-explorer (webui@4.1.0) (#10025)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.1.0
2023-09-05 18:42:20 +02:00
Kay
2c66ea6995
refactor: if statement (#10105) 2023-09-05 15:35:51 +02:00
Adin Schmahmann
bc6bee1585 rename Libp2pGatewayOption and hard code its gateway configuration 2023-08-31 03:51:48 -04:00
Jorropo
f7aa1204b1 feat: add gateway to http over libp2p 2023-08-30 18:51:22 +02:00
Henrique Dias
4606586207
feat(gateway): expose /routing/v1 server (opt-in) (#9877) 2023-08-25 17:30:04 +02:00
Henrique Dias
5ea58251d5
chore: update boxo, go-libp2p, and internalize mplex (#10095) 2023-08-24 06:11:02 +00:00
Kay
f12b372af9
style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
Marten Seemann
c08313f032 chore: update go-libp2p to v0.28.1
Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2023-07-26 14:48:19 +02:00
Russell Dempsey
82e0a44587 feat: webui@4.0.2
see https://github.com/ipfs/ipfs-webui/releases/tag/v4.0.2
2023-07-05 22:37:43 +02:00
Russell Dempsey
c93e2675ba
feat: webui@4.0.1 (#9940) 2023-06-14 10:12:41 +02:00
Henrique Dias
2716cd987f
feat(gateway): support for IPIP-402 CAR params (#9914) 2023-06-08 17:32:18 +02:00
Henrique Dias
c10b804449
feat: Gateway.DeserializedResponses config flag (#9789)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-05-30 00:59:34 +02:00
Russell Dempsey
53821c202f
feat: webui@3.0.0 (#9835) 2023-05-02 13:16:52 +02:00
Henrique Dias
c6a59c9cc1
feat(tracing): use OTEL_PROPAGATORS as per OTel spec (#9801) 2023-04-06 16:36:15 +02:00