* Move vulnerable dependencies to patched versions
Backend (Cargo.lock): openssl 0.10.55 -> 0.10.81, bytes 1.12.1, h2 0.3.27,
tokio 1.26 -> 1.47.1 (mio 1.x), url 2.3.1 -> 2.5.7 (idna 1.1), rand 0.8.8,
spin 0.9.9, time 0.3.55, ring 0.17.14.
Three alerts needed manifest changes:
- tokio-rustls 0.23 -> 0.26 (rustls 0.20 -> 0.23), which is what moves
ring off 0.16. The ring provider is selected explicitly instead of the
default aws-lc-rs, so the image build needs no cmake/C toolchain; roots
still come from webpki-roots (now 1.0). Checked against live hosts: a
valid certificate connects, an expired one and a name mismatch are
refused.
- maxminddb 0.23 -> 0.27: lookup() now returns a result that is decoded,
and the City model's fields are no longer Options. The existing
locate_random_ip test (12.5.56.25 -> "Gardena") passes.
- structopt (clap 2, which pulled atty) -> clap 4 derive in telemetry_core,
telemetry_shard and the soak tests; criterion 0.4 -> 0.5 for the same
reason. Both binaries' arguments were parsed before and after for the
docker-compose invocations and a set of other cases: identical results,
except that `--feed-timeout` given without a value is now an error where
structopt silently used the default. --denylist keeps taking every value
up to the next flag (num_args = 1..), as its help text describes.
Frontend: npm audit fix within ranges, and webpack-dev-server 4 -> 5.2.6
(no devServer options are configured, so nothing to migrate). Left:
sockjs -> uuid 8 inside webpack-dev-server 5; the fix is 6.0, which needs
Node 22 while CI runs 20, and it is the local dev server only.
Checked: backend cargo test (58 passed), clippy, fmt; frontend lint,
prettier, test and build.
* Reject an invalid byte size instead of panicking
ByteSize::from_str called expect("all ascii digits") on the numeric part,
so a value with no digits ("abc", "k") or one too large for usize
aborted the shard at startup with a panic instead of a usage error, and
the suffix multiplication could overflow silently in release builds.
Parse errors now return Err and the multiplication is checked.
The new test fails on the old code (panic) and passes on this one.
* Allow soak tests to generate lots of chains for testing
* Style tweaks, and redo 'all chains' modal
* make highlighted text readable on selected chain
* cargo fmt
* Update frontend/src/index.css
Fix a typo
Co-authored-by: Tarik Gul <47201679+TarikGul@users.noreply.github.com>
* A couple more wee telemetry style tweaks
* ..but make the tab animation faster
* Be more defensive checking for event target
* Comment out animation for now
Co-authored-by: Tarik Gul <47201679+TarikGul@users.noreply.github.com>
* First/Third party by genesis hash, not label. Make limit configurable
* Fix a test that relies on not being a node limit
* remove a now-invalid comment
* Cargo fmt
* Fix another naff comment
* Update backend/telemetry_core/src/state/chain.rs
Comment tweak
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: David <dvdplm@gmail.com>
* If messageId changes and network ID doesn't, remove 'old' message_id
* Boot nodes/connection when no recent messages received for it
* Separate task needed for soketto recv to avoid cancel-safety issues with new interval
* Wee tidy up
* cargo fmt
* Add some logging around node adding/removing
* Another log info msg
* a bit of tidy up
* bump stale node timeout to 60s
* Make soak tests work again with genesis hash subscribing
* cargo fmt
* derive hex from hash
* actually compile code
* fmt
Co-authored-by: David Palm <dvdplm@gmail.com>
* test running tests
* Add delay so that core knows about node before feed subscribes to limit chance of race
* move delaye to the right place
* Don't do expensive docker step untill we will be pushing the image
* docker test skipped as hoped, so push to 'true'
* just remove docker steps in github CI entirely since they aren't needed by anything (gitlab CI does this stuff now)
* run CI on pull requests too to catch PRs from forks
* Handle subscription by hash in the frontend
* Forward-ported backend changes
* Fix unit tests
* Remove unused `chains_by_label`
* fmt
* Updated but failing E2E tests
* subscribe by genesis hash in tests
* fmt
* Copy `BlockHash` instead of returning a ref
* Pin chains by genesisHash
Co-authored-by: James Wilson <james@jsdw.me>
* Only remove the feed that disconnected to not break the rest...
* use multimap struct to avoid sync issues between feed and chain
* add a remove test, too
* cargo fmt
* fix name of test
* move multimap to common so we can doctest it and add 'unique' to name
* cargo fmt
* Return old key if value moved to make uniqueness more obvious