feat(dc_bridge): bless vector as a Destination type - #455
Merged
Conversation
A robot's edge aggregator hop was only reachable through hand-written, unvalidated passthrough TOML (`type = "vector"` custom_config_files snippets) — a typo there means the robot silently ships nowhere. `vector` now joins postgres/s3/file/console as a blessed Destination type, configured entirely from ROS parameters (`host`, `port`) with the same startup-time validation (missing host, out-of-range port). The rendered sink forwards to `host:port` over Vector's own native inter-instance protocol, with the same disk buffer every other blessed sink gets. Closes #443 Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
Comments only — toml++ discards them at parse time, so the gold-file equality check in VectorDestinationForwardsToAggregator is unaffected. Line-by-line explanation of what each section of the rendered config does, as a worked example for configuring a vector Destination. Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## jazzy #455 +/- ##
==========================================
+ Coverage 70.93% 71.00% +0.08%
==========================================
Files 119 119
Lines 7401 7419 +18
==========================================
+ Hits 5249 5267 +18
Misses 2152 2152
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
github-actions
Bot
deleted the
feature/443-bless-vector-as-a-destination-type
branch
August 31, 2026 11:24
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
vectoras a Destinationtypealongsidepostgres,s3,fileandconsole(ADR-0003), so a robot's edge-aggregator hop is validated ROS-param config instead of hand-written passthrough TOML that DC never parses.vector_from_rawrequireshostandport(no defaults — unlikepostgres's dev-friendly127.0.0.1/5432, there's no sensible address to assume for another Shipper) and validates the port range 1-65535, reusing the sameRawDestinationParams::host/portfieldspostgresalready declares — no new ROS param plumbing needed inbridge_node.cpp.render_sinkemitstype = "vector",address = "<host>:<port>", and the same disk buffer every other blessed sink gets — the identical shape already proven end-to-end bytools/e2e/params/e2e_limits_forward_sink.toml's hand-written passthrough sink (verified against the pinned Vector build; see that file's header), now generated and validated bydc_bridgeitself instead of hand-written TOML.custom_config_files) is untouched for every other sink type.doc/src/dc/destinations.md(type table + example) and every other doc page that enumerated the blessed set as exactly four types.Test plan
prek run --all-files --skip build-docpasses (clang-format, REUSE, yaml/toml lint, etc.)dc_bridgerender-test coverage (render_test.cpp), matching the existing pattern forpostgres/s3/file:VectorDestinationForwardsToAggregator— gold-file render test (test/fixtures/render/vector_destination.toml)VectorFromRawRejectsMissingHost/RejectsMissingPort/RejectsOutOfRangePort/BuildsAddressDestinationFromRawBuildsS3FileConsoleextended to covervectorcolcon test --packages-select dc_bridge— not run locally (this sandbox has no ROS 2 install and no network access to fetchvector_vendor/aws_sdk_vendorfor a from-scratch workspace build); CI'sbuild-workspacejob covers this.Closes #443