PoC: Configurable built-in bridge #3918
Draft
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.
Proposed changes
Enable the built-in bridge to be configured with custom rules, ultimately to help enable a generic mapper.
At the time of creating the PR, I have implemented some parsing logic for a bridge toml template, and for testing purposes, created a
main.rsin thetedge_mqtt_bridgecrate which reads a given config file and debug-prints the expansion of that template. I believe it supports what we need in order to define the existing bridge rules.For testing it out, save the following template to a file and run
cargo run -p tedge_mqtt_bridge <filename>. You can play around with settingc8y.smartrest.templatesand seeing the generated output change as a result. I've experimented with usingserde_spannedandariadnefor contextual error reporting with invalid templates.TODO:
Types of changes
Paste Link to the issue
Checklist
just prepare-devonce)just formatas mentioned in CODING_GUIDELINESjust checkas mentioned in CODING_GUIDELINESFurther comments