1.0.0 - Production grade edge device management
What's Changed in 1.0.0 (Summary)
🎉 thin-edge.io 1.0.0 is here 🚀
Thanks to everyone for contributing to the project, as this is the result of a lot of hard work from many people. And whilst 1.0.0 is a massive milestone in the project, we're still committed to continuing implementing new features, so stay tuned.
The documentation has been improved focussing on consistency and readability. Below are some notable links to highlight some of the features that thin-edge.io provides out of the box:
- Firmware Management
- Software Management
- Configuration Management
- Log Management
- Remote Access
- Health Monitoring
And if you don't find what you want then you can check out our the new Community Plugins page, to explore the ever growing list of plugins.
Need help upgrading to 1.0.0? Then check out the Legacy Guide.
New Features
Cumulocity - Support software types
You no longer need to prefix software versions in Cumulocity IoT using the ::<type>
syntax! We now support the of official software type as defined in the Cumulocity IoT Device Library. This enables users to also filter for software types in the UI.
Check out the user docs for Software Management for more details.
Implemented by @rina23q in #2613
Cumulocity - Listen to Cumulocity Operation in their JSON format
The Cumulocity operations are now received via the c8y/devicecontrol/operations
MQTT topic instead of the c8y/s/ds
SmartREST topic. This lays the groundwork for a future features.
Implemented by @rina23q in #2596
New command to recreate mosquitto bridges
The mosquitto bridges are automatically recreated when upgrading thin-edge.io, and only the bridges which are configured will be recreated.
You can manually refresh the bridge configuration by running:
tedge refresh-bridges
Implemented by @Bravo555 in #2573
Restart tedge-agent after self updates
Note If you are upgrading from anything prior to 1.0.0, you will still need to restart the tedge-agent
(or just restart the whole device). All future self updates of thin-edge.io will not require this step.
Implemented by @albinsuresh in #2587
Minor improvements
- Add support for commands with multiple arguments in custom operations by @Ruadhri17 in #2602
- Default configuration for tedge operation plugins by @albinsuresh in #2637
- Bypass duplicate message filtering on mapper startup with config flag by @Ruadhri17 in #2632
Fixes
- Only send 114 when operations changed by @Bravo555 in #2588
- Limit the length of the message for failed operation by @Ruadhri17 in #2586
- fixed services shown as child devices #2584 by @Bravo555 in #2620
- Fix entity store file permission on mapper startup #2598 by @albinsuresh in #2638
- Fix tedge-agent stuck on too many pending operations by @didier-wenzek in #2640
- tedge-apt-plugin update list missing keep config options by @rina23q in #2681
Documentation
- Add a legacy documentation section by @didier-wenzek in #2581
- Improve certificate related documentation by @didier-wenzek in #2585
- docs: update supported platform information by @reubenmiller in #2594
What's Changed in 1.0.0 (full list)
- Bump actions/upload-pages-artifact from 2 to 3 by @dependabot in #2538
- Bump actions/deploy-pages from 3 to 4 by @dependabot in #2539
- Remove reference to version in installation scripts by @jarhodes314 in #2553
- docs: remove tedge-log-plugin and tedge-configuration-plugin references by @reubenmiller in #2554
- Fix new clippy warnings by @Bravo555 in #2563
- docs: remove deprecated domain model by @reubenmiller in #2559
- docs: move connect external device under security section by @reubenmiller in #2560
- feat: add user warning when an invalid custom operation filename is used by @reubenmiller in #2562
- docs(operations): add tip about valid filenames for custom operations by @reubenmiller in #2564
- Bump crate-ci/typos from 1.16.0 to 1.17.0 by @dependabot in #2561
- docs: add instructions to reconnect with c8y after changing settings by @reubenmiller in #2555
- docs(smartrest): add full example of using a custom smart rest operation by @reubenmiller in #2565
- docs: update MacOS instructions for building rugpi images by @reubenmiller in #2556
- dev: add CODEOWNERS definition by @reubenmiller in #2557
- ci: enable merge queue by @reubenmiller in #2570
- ci: fix incompatible PR checks from merge queue trigger by @reubenmiller in #2572
- Rename configuration
enable.sudo
tosudo.enable
by @Ruadhri17 in #2571 - chore: update system test dependencies by @reubenmiller in #2577
- ci: only run filter step on PRs by @reubenmiller in #2578
- test: refactor service tests by removing unnecessary logic by @reubenmiller in #2575
- chore: upgrade tempfile to resolve dependentabot alert about rustix by @reubenmiller in #2576
- test: don't configure repos when installing thin-edge.io via local deb packages by @reubenmiller in #2579
- test: filter MQTT message to avoid false negatives when thin-edge.io splits measurements by @reubenmiller in #2580
- Add
refresh-bridges
command by @Bravo555 in #2573 - Add a legacy documentation section by @didier-wenzek in #2581
- Add examples to
tedge config list --doc
by @didier-wenzek in #2583 - Improve doc TOC by @didier-wenzek in #2582
- build(deps): Bump crate-ci/typos from 1.17.0 to 1.17.1 by @dependabot in #2589
- docs: move c8y token docs and expand on details and alternatives by @reubenmiller in #2558
- reenable default settings for dbg profile by @Bravo555 in #2590
- Only send 114 when operations changed by @Bravo555 in #2588
- docs: remove the child device configuration management page by @reubenmiller in #2593
- Limit the length of the message for failed operation by @Ruadhri17 in #2586
- Improve certificate related documentation by @didier-wenzek in #2585
- docs: update supported platform information by @reubenmiller in #2594
- docs: make markdown compatible with mdx v3 by @reubenmiller in #2599
- Restart tedge-agent after self update by @albinsuresh in #2587
- Use JSON over MQTT to listen C8Y operations by @rina23q in #2596
- fix: update h2 dependency by @reubenmiller in #2610
- test: use random service name in tests to avoid side effects from concurrent runs by @reubenmiller in #2618
- docs: correct note about certificate chain order by @reubenmiller in #2607
- build(deps): Bump dorny/paths-filter from 2 to 3 by @dependabot in #2621
- test: use local ca to generate device certificates by @reubenmiller in #2619
- build(deps): Bump crate-ci/typos from 1.17.1 to 1.17.2 by @dependabot in #2608
- test: fix flaky firmware update test on child devices by @reubenmiller in #2622
- docs: add plugins section by @reubenmiller in #2609
- test: support installing git-lfs in different environments and only if necessary by @reubenmiller in #2611
- test: minor improvements to reduce log noise in system tests by @reubenmiller in #2625
- Refactor the c8y remote access plugin to use the c8y auth proxy by @jarhodes314 in #2597
- build(deps): Bump SebRollen/toml-action from 1.0.2 to 1.2.0 by @dependabot in #2626
- fixed services shown as child devices #2584 by @Bravo555 in #2620
- Support software type for c8y advanced software management in 10.14 by @rina23q in #2613
- Add support for commands with multiple arguments in custom operations by @Ruadhri17 in #2602
- dependencies: update Rust crates to use ring 0.17.x by @reubenmiller in #2629
- docs: refactor overview and start pages by @reubenmiller in #2630
- Fixed typo in getting-started.md by @nneuerburg in #2633
- Fix tedge agent restart on self update by @didier-wenzek in #2631
- docs: unlist tedge-watchdog documentation by @reubenmiller in #2635
- Limit dynamic operation dir APIs to main device #2409 by @albinsuresh in #2614
- build(deps): Bump peter-evans/create-pull-request from 5 to 6 by @dependabot in #2643
- build(deps): Bump codecov/codecov-action from 3 to 4 by @dependabot in #2644
- test: collect both parent and child logs on test teardown for child log file operation by @reubenmiller in #2646
- docs: cleanup and normalization by @reubenmiller in #2636
- ci: add cloudsmith cleanup job to remove old packages by @reubenmiller in #2642
- Fix entity store file permission on mapper startup #2598 by @albinsuresh in #2638
- docs: remove proposal banner from operation workflow reference by @reubenmiller in #2648
- Send supported ops message on cmd capability message #2645 by @albinsuresh in #2649
- Fix software type should be reported as "softwareType", not "type" by @rina23q in #2652
- docs(getting started): remove explicit timestamps from example commands by @reubenmiller in #2650
- Default configuration for tedge operation plugins by @albinsuresh in #2637
- Fix tedge-agent stuck on too many pending operations by @didier-wenzek in #2640
- Remove the tedge dummy plugin by @didier-wenzek in #2656
- Remove all the PySys tests by @didier-wenzek in #2655
- test: fix redirection syntax error in setup by @reubenmiller in #2658
- dev: avoid github typo false positive by using another version example by @reubenmiller in #2660
- test: use unique child names when creating devices with an explicit
@id
field by @reubenmiller in #2657 - build(deps): Bump crate-ci/typos from 1.17.2 to 1.18.0 by @dependabot in #2661
- Replace error log levels with warnings in tedge agent by @Ruadhri17 in #2647
- ci: remove ci_pipeline workflow and dependencies by @reubenmiller in #2662
- docs: fix integration-tests badge by linking to merge queue event by @reubenmiller in #2663
- docs: replace twitter with linkedin by @reubenmiller in #2664
- Bypass duplicate message filtering on mapper startup with config flag by @Ruadhri17 in #2632
- fix(apt): disable debian frontend when running apt commands by @reubenmiller in #2672
- test: use a more reliable service pid detection by @reubenmiller in #2673
- docs: fix step6 list rendering error due to erroneous formatting by @reubenmiller in #2676
- docs(aws): add aws connection test details by @reubenmiller in #2675
- Merge how-to and reference docs for c8y-firmware-plugin by @didier-wenzek in #2665
- Remove "upload HEAD coverage" workflow by @Bravo555 in #2679
- docs: refactor and extend software management docs by @reubenmiller in #2667
- docs: update rugpi instructions to align with rugpi v0.6 by @reubenmiller in #2668
- docs(collectd): simplify instructions by using a community plugin for installation and configuration by @reubenmiller in #2674
- Fix device_registration test teardown by @albinsuresh in #2680
- tedge-apt-plugin update list missing keep config options by @rina23q in #2681
- cargo-udeps: pin nightly version to fix "unknown feature
stdsimd
" error by @Bravo555 in #2687 - docs: fix typos and grammar on rugpi image build instructions by @reubenmiller in #2685
- Docs/clarify configuration tools by @didier-wenzek in #2682
- Replace special characters in package version by @Ruadhri17 in #2683
- patch version bump by @github-actions in #2688
Full Changelog: 1.0.0-rc.1...1.0.0