Commit Graph

13283 Commits

Author SHA1 Message Date
Gus Eggert
f855bfe6ef
feat: add basic gateway tracing (#8595)
* add deprecation warning when tracer plugins are loaded
* add response format attribute to span in gateway handler
* add note about tracing's experimental status in godoc
* add nil check for TTL when adding name span attrs
* add basic sharness test for integration with otel collector
* add nil check in UnixFSAPI.processLink
* test: sharness check all json objs for swarm span
* add env var docs to docs/environment-variables.md
* chore: pin the otel collector version
* add tracing spans per response type (#8841)
* docs: tracing with jaeger-ui

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-04-04 19:24:05 +02:00
Lucas Molas
282ac7f1f5
fix(cli): ipfs add with multiple files of same name (#8493) 2022-04-03 10:40:38 -04:00
Marcin Rataj
5fa556945e
fix(gw): validate requested CAR version (#8835)
* fix(gw): validate requested CAR version

This adds validation of 'application/vnd.ipld.car;version=n' passed
in the Accept header by HTTP clients to align Gateway behavior with
the spec submitted to IANA.

* test: fix comment in test/sharness/t0118-gateway-car.sh

Co-authored-by: Gus Eggert <gus@gus.dev>

Co-authored-by: Gus Eggert <gus@gus.dev>
2022-04-01 09:12:46 -07:00
Gus Eggert
46c3689b75
feat: re-enable docker sharness tests (#8808)
The Docker sharness tests were disabled years ago when go-ipfs moved
from Travis to CircleCI. This makes the tweaks necessary to re-enable
them.

The Docker image has since moved to be based on BusyBox which doesn't
have the requisite wget version for the existing tests to work, so
this adds some functionality to the pollEndpoint program to support
polling HTTP endpoints as well.
2022-03-30 11:07:26 -04:00
Marcin Rataj
d6de97b417
docs: gateway.md (#8825)
Adds link to relevant pages at docs.ipfs.io
2022-03-28 16:31:36 +02:00
Lucas Molas
d92887086f
fix(core/commands): do not cache config (#8824) 2022-03-27 08:11:45 -04:00
Omicron166
d13a09a076
remove unused import (#8787) 2022-03-25 08:48:16 -07:00
Jorropo
d02e4aa841 CI: force running go-ipfs-http-client and go-ipfs-api tests
This test is actually testing is the ipfs binary (from the path).
Using the go-ipfs-http-client code.
But most PR only update the binary. HOWEVER Golang does not check PATH for caching.
So as far as golang knows: go-ipfs-http-client is old, it havn't changed, and it doesn't run it.

That leads us to this test not running on most important PR.
2022-03-24 17:48:05 +01:00
Marcin Rataj
a61c53f87f
feat(cmds): document deprecated RPC API commands (#8802)
* feat(cmds): add deprecated and experimental status

Added programmatic state annotation introduced in
https://github.com/ipfs/go-ipfs-cmds/pull/225
for already deprecated / experimental commands.

* chore: go-ipfs-cmds v0.7.0

Co-authored-by: Lucas Molas <schomatis@gmail.com>
2022-03-22 20:46:32 +01:00
Lucas Molas
c8543904d9
Merge pull request #8793 from ipfs/kylehuntsman/fix/repo/omitempty-error
fix(fsrepo): deep merge when setting config
2022-03-22 11:02:29 -03:00
Lucas Molas
f62bd64fdb allow config to fail as we have no empty default 2022-03-21 19:03:37 -03:00
Adin Schmahmann
beaa8fc29b
feat: add gateway histogram metrics (#8443)
* feat(gw): response type histogram metrics

- response-type agnostic firstContentBlockGetMetric which counts the
  latency til the first content block.

- car/block/file/gen-dir-index duration histogram metrics that show how
  long each response type takes

* docs: improve metrics descriptions
* feat: more gw histogram buckets

0.05, 0.1, 0.25, 0.5, 1, 2, 5, 10, 30, 60 secs
as suggested in reviews at https://github.com/ipfs/go-ipfs/pull/8443

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <gus@gus.dev>
2022-03-21 15:57:08 +01:00
Hector Sanjuan
0dabcc2db6
Merge pull request #8803 from ipfs/bubble-err-not-found
ErrNotFound changes: bubble tagged libraries.
2022-03-19 16:13:10 +01:00
Hector Sanjuan
943187d001 ErrNotFound changes: bubble tagged libraries.
Additionally fixes tests for new error message which went from

`ipld: <cid> not found`

to

`<cid> not found`
2022-03-19 00:16:45 +01:00
Dimitris Apostolou
6c6a55056d Fix typos 2022-03-18 00:58:36 +01:00
Jorropo
09aed2d63b
Merge pull request #8757 from ipfs/feat/err-not-found
Bubble ErrNotFound improvements.

The is a really nice UX improvement because it know tell you which ipld block is missing instead of a generic "not found".
2022-03-18 00:42:40 +01:00
Jorropo
7c2033f215 chore: update deps
The commits has been moved from the PR to master to avoid the deps breaking when github is gonna GC the PR commits.
2022-03-18 00:28:29 +01:00
Marcin Rataj
4cabdfefbf
feat(gateway): Block and CAR response formats (#8758)
* feat: serveRawBlock implements ?format=block
* feat: serveCar implements ?format=car
* feat(gw): ?format= or Accept HTTP header

- extracted file-like content type responses to separate .go files
- Accept HTTP header with support for application/vnd.ipld.* types

* fix: use .bin for raw block content-disposition

.raw may be handled by something, depending on OS, and .bin
seems to be universally "binary file" across all systems:
https://en.wikipedia.org/wiki/List_of_filename_extensions_(A%E2%80%93E)

* refactor: gateway_handler_unixfs.go

- Moved UnixFS response handling to gateway_handler_unixfs*.go files.
- Removed support for X-Ipfs-Gateway-Prefix (Closes #7702)

* refactor: prefix cleanup and readable paths

- removed dead code after X-Ipfs-Gateway-Prefix is gone
  (https://github.com/ipfs/go-ipfs/issues/7702)
- escaped special characters in content paths returned with http.Error
  making them both safer and easier to reason about (e.g. when invisible
  whitespace Unicode is used)
2022-03-17 17:15:24 +01:00
Dave Justice
6774ef9dfd
fix: allow ipfs-companion browser extension to access RPC API (#8690)
* fix: add companion ids to allow origins

- fixes #8689
- Adds the chrome-extension ids for ipfs-companion and
ipfs-companion-beta to the allowed origins list, this
allows us to accesss ipfs api from a manifest v3 extension.
- added tests in t0401-api-browser-security.sh

* fix: companion when custom CORS *-Origin is set

Companion extension should be able to access RPC API even when custom
Access-Control-Allow-Origin is set

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-03-17 00:07:52 +01:00
Lucas Molas
e14f580ba7
Merge pull request #8638 from ipfs/schomatis/fix/core/node/unwrap-fx-error
fix(core/node): unwrap fx error in node construction
2022-03-16 19:45:51 -03:00
Lucas Molas
519863ecab fix(core/node): unwrap fx error in node construction 2022-03-16 19:32:31 -03:00
Lucas Molas
3c09c260bf remove todo 2022-03-16 19:03:03 -03:00
Gus Eggert
bc33ed4c35
Update PATCH_RELEASE_TEMPLATE.md 2022-03-16 17:50:46 -04:00
Gus Eggert
5e1b2248c5
feat: add full goroutine stack dump (#8790) 2022-03-16 09:42:22 -04:00
Lucas Molas
76128272b7 unroll setConfigUnsynced 2022-03-15 18:09:28 -03:00
Lucas Molas
04e7e9502e
feat(cmds): extend block size check for dag|block put (#8751)
* feat(cmds): extend block size check for dag|block put
* feat(cmds): block size check for dag import
* style: dag-pb → UnixFS, 1MB → 1MiB

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-03-11 23:23:11 +01:00
Gus Eggert
0487f03eae
feat: add endpoint for enabling block profiling (#8469) 2022-03-11 14:32:59 -05:00
Lucas Molas
199659ab77
fix(cmds): option for progress bar in cat/get (#8686)
* fix(cmds): option for progress bar in cat/get

* defer bar.Finish()
2022-03-11 14:25:46 -05:00
Adin Schmahmann
eafa1c7345
docs: note the default reprovider strategy as all (#8603) 2022-03-10 01:42:33 -08:00
Gus Eggert
816a128aaf
fix: listen on loopback for API and gateway ports in docker-compose.yaml (#8773) 2022-03-09 10:31:07 -05:00
godcong
be3dbc2bd2
fix(discovery): fix daemon not starting due to mdns startup failure (#8704) 2022-03-09 07:08:24 -08:00
Marcin Rataj
83b3ec4a61
Merge pull request #8756 from laurentsenta/feat/add-back-ipfs-config
Move go-ipfs-config back into go-ipfs,
close https://github.com/ipfs/go-ipfs-config/issues/151
2022-03-09 01:15:08 +01:00
Kyle Huntsman
a09b6c205e fix(repo/common): improve MapGetKV not found error 2022-03-07 17:14:40 -07:00
Laurent Senta
6379013e41 ci: tweak example testing to pass with internal config package 2022-03-04 09:45:16 +01:00
Laurent Senta
8d549f03f3 fix: rewrite dependencies over the go-ipfs-config package 2022-03-04 09:45:16 +01:00
Laurent Senta
c9cf47dad5 config: remove go-ipfs-config code 2022-03-04 09:45:16 +01:00
Laurent Senta
783092ea9f Merge remote-tracking branch 'config/master' into feat/add-back-ipfs-config 2022-03-04 09:44:27 +01:00
Kyle Huntsman
e1d14441a0 fix(fsrepo): deep merge when setting config 2022-03-03 00:21:37 -07:00
Hector Sanjuan
6c6830c822 Fix sharness 2022-03-02 19:30:38 +01:00
Hector Sanjuan
04048f46a2 Try to fix sharness error 2022-03-02 19:14:35 +01:00
Hector Sanjuan
eb86f3659a Fix sharness for new not found error messages 2022-03-02 18:40:10 +01:00
Hector Sanjuan
7bb3bfbc33 Bubble ErrNotFound improvements 2022-03-02 18:29:29 +01:00
Marcin Rataj
d5ad847e05
feat: ipfs-webui v2.15 (#8712)
Release Notes:
https://github.com/ipfs/ipfs-webui/releases/tag/v2.15.0
2022-03-01 19:03:06 +01:00
Marcin Rataj
caba3b2643
feat: X-Ipfs-Roots for smarter HTTP caches (#8720) 2022-03-01 09:04:31 -08:00
Gus Eggert
10ff11b4ca
chore: add instructions for Chocolatey release 2022-03-01 10:35:19 -05:00
Steven Allen
da08acef38
Merge pull request #8750 from ipfs/fix-muxer-prios
fix prioritization of stream muxers
2022-02-28 12:05:25 +00:00
Marten Seemann
3674b662db add a test case for libp2p option prioritization 2022-02-28 15:26:06 +04:00
Marten Seemann
ec46f1e6e4 fix prioritization of stream muxers 2022-02-25 11:44:47 +04:00
Lucas Molas
3ea5631f9a
fix(cmds/keystore): do not allow to import keys we don't generate (#8733) 2022-02-18 23:42:40 +01:00
Adin Schmahmann
686993f6f2
docs: add Internal.UnixFSShardingSizeThreshold (#8723)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-02-18 23:37:55 +01:00