Releases: thin-edge/thin-edge.io
1.7.1
What's Changed
All notable changes to this project will be documented in this file.
🐛 Bug Fixes
- c8y: prevent URI percent-decoding in c8y_auth_proxy path handling - #3886
- docs: docker log plugin sample improvement - #3887
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.7.0..1.7.1
1.7.0
What's Changed
All notable changes to this project will be documented in this file.
✨ Highlights
Publish measurements with units and additional properties - #3776, #3774
thin-edge.io finally supports publishing measurements to Cumulocity with units (e.g. ˚C)! A small change, but a much requested feature that should allow you include the units of each measurement to ensure your users are interpreting the measurements in the intended units.
Check out the updated getting started guide for an example and a link to the reference documentation.
# tell thin-edge.io what units are associated (you only need to do this once per type)
tedge mqtt pub -r 'te/device/main///m/environment/meta' '{
"temperature": {
"unit": "°C"
}
}'
# publish the measurement as normal, and the tedge-mapper-c8y will add the unit automatically
tedge mqtt pub -r 'te/device/main///m/environment' '{
"temperature": 31.0
}'Measurements can also be published with additional properties along side the values. This enables you to add properties to give more context to your values, e.g. add sensor details, etc. Below shows a short example, but check out the documentation for more details:
tedge mqtt pub 'te/device/main///m/example' '{
"temperature": 25,
"properties": {
"sensor": "DS18B20",
"has_alarm": false,
"samples": [25.1],
"range": {
"min": "-55°C",
"max": "+125°C"
}
}
}'Log plugin extensions log plugin extensions #3762, #3806, #3830
The new log plugin support allows users to create log plugins to retrieve logs from any source, not just file-based logs!
Out-of-the-box users now can retrieve logs from following sources:
file- the built-in existing for file based log filesjournald- Collect logs from any SystemD servicedmesg- Collect Linux Kernel logs (for Advanced users)
Hardware Security Module (HSM) Improvements
The Hardware Security Module integration has been extended to make it easier to interact with TPM's 2.0 and other HSMs that use the PKCS11 interface whilst reducing dependencies on addition tools like GnuTLS's certtool (though powerusers can still use certtool if you so choose).
Below details some of the improvements made in the space of HSMs:
-
A convenience script,
tedge-init-hsm.sh, has been added to the Linux packages to help users who aren't too familiar with HSMs and the PKCS11 interface to do the initial HSM setup (including creating the HSM private key) - #3870tedge-init-hsm.sh --type tpm2 --pin "<pin>" --so-pin "<so_pin>" --token-url 'pkcs11:model=SLB9672%00%00%00%00%00%00%00%00%00;manufacturer=Infineon;serial=0000000000000000;token='
The script will use the new
tedge cert create-key-hsmcommand to create the certificate's private key without relying on external tooling - #3709. In advanced cases, you can call thetedge cert create-key-hsmyourself, or stick to third party tooling to handle the intialization of the HSM -
Allow users to set the PKCS11 pin from the client - #3809
-
Improved logging to include the PKCS11 slots/tokens/objects information to make debugging easier - #3785
Cumulocity MQTT Service Support - PREVIEW - #3707, #3862
Note: Requires both the Cumulocity MQTT Service to be installed and the Cumulocity feature, mqtt-service.smartrest, to be activated in the tenant which may or may not be available for you in your current tenant.
In preparation for the much anticipated Cumulocity MQTT Service feature, thin-edge.io adds out-of-the-box support for connecting to Cumulocity via the MQTT Service (on port 9883). This will allow users to publish data to user-defined Cumulocity topics instead of being restricted to the SmartREST and JSON over MQTT topics.
EARLY PREVIEW - tedge-flows (JavaScript based data flows)
Note: This feature is an early preview and should not be used in production and all aspects (e.g. the interface, deployment model etc.) are subject to change!
tedge-flows providers users a way to extend and adapt the built-in mappers for Cumulocity, Azure and AWS with their own filtering and message transformation rules, leveraging the core mapping rules and mapper mechanisms (bridge connections, HTTP proxies, operations). You can define custom logic via JavaScript (ES2023), which is run by a new embedded sand-boxed engine. This makes it easier to write custom logic without needed to get bogged down by init systems, reconnecting MQTT clients, CPU architecture specific deployments...
As an example, users can now adapt to their use cases the translation of measurements from thin-edge.io JSON to Cumulocity JSON:
- consuming measurements from a non-standard topic
- filtering out part of the measurements
- normalizing units
- adding units read from device config
- producing transformed measurements on a non-standard topic
We expect tedge-flows to provide an integral part of your IoT device integration so you are encourages to experiment with different flows, and provide feedback so you can shape the direction of this feature.
🚀 Features
- c8y: c8y-mapper sends all supported operations on-demand via signal channel - #3761
- c8y: enable cert renewal when using cloud profiles with Cumulocity - #3783
- cli: add support for NO_COLOR standard for controlling usage of colour in console messages - #3859
- mqtt: Support username/password for local broker authentication - #3823
- telemetry: inventory.json support for child devices - #3755
- troubleshooting: include mosquitto configuration in diagnostic collection - #3769
- troubleshooting: log incoming and outgoing packets in built-in bridge - #3770
🐛 Bug Fixes
- bridge: Avoid spurious unknown pkid warning on bridge healthcheck - #3821
- c8y: tedge connect c8y --test works with basic auth - #3793
- cli: support
--helpforaptandfile-logplugins. - #3798 - connectivity: proxy port parsing issue when using port 80 - #3804
- hsm: Only reload PKCS11 library if key is not found - #3795
- hsm: update client key uri without restarting tedge-p11-server - #3772
- mqtt: MQTT messages are forwarded twice to subscribers with overlapping subscriptions - #3789
- mqtt: remove inappropriate warning on MQTT connect - #3867
- mqtt|bridge: Set tedge-mapper-c8y status to up after bridge reconnects - #3794
📓 Documentation
- c8y: set ownership of Cumulocity basic auth credentials file - #3797
- certificates: add link to guide on how to add a root certificate in linux - #3853
⛵ Refactor
- hsm:
TedgeP11Service- #3751 - connectivity: assume 443 as the default https proxy port - #3808
- plugins: Improve error reporting on sudo execution error - #3802
- refactor: typed device topic id in tedge config - #3864
📋 Miscellaneous Tasks
- packaging|developer-exp: add task to generate software bill of materials - #3763
🔎 CI/CD
- ci: workaround cargo-udeps failure - #3759
- ci: parameterize the build workflow and skip publishing on manual runs - #3880
- ci: change default workflow permissions to read only - #3778
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.6.1..1.7.0
1.6.1
What's Changed
All notable changes to this project will be documented in this file.
🚀 Features
- mqtt: enable services to register and receive operations from c8y - #3747
🐛 Bug Fixes
- hsm: pkcs11 generate correct CSR signature - #3737
- cli: Restore
WARNlog level for tedge - #3741 - c8y: de-duplicate custom operations on c8y/devicecontrol/notifications - #3744
- telemetry: do not overwrite latest twin data from inventory.json values on mapper restart - #3742
📓 Documentation
- firmware: update outdated information about Rugix - #3748
- c8y: add info how to display custom fragments in Cumulocity Device Management UI - #3750
⛵ Refactor
- mqtt: handle retain messages with dynamic subscriptions - #3710
📋 Miscellaneous Tasks
- chore: bump MSRV to 1.85 - #3735
🔎 CI/CD
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.6.0..1.6.1
1.6.0
What's Changed
All notable changes to this project will be documented in this file.
✨ Highlights
New diagnostic collection command #3608
New tedge command to make it easier to capture the diagnostic information when reporting a bug, or doing general troubleshooting. Custom diagnostic scripts can be added into your images to also collect information about custom applications. Check out the documentation
tedge diag collect
Executing /usr/share/tedge/diag-plugins/01_tedge.sh... ✓
Executing /usr/share/tedge/diag-plugins/02_os.sh... ✓
Executing /usr/share/tedge/diag-plugins/03_mqtt.sh... ✓
Executing /usr/share/tedge/diag-plugins/04_workflow.sh... ✓
Executing /usr/share/tedge/diag-plugins/05_entities.sh... ✓
Executing /usr/share/tedge/diag-plugins/06_internal.sh... ✓
Executing /usr/share/tedge/diag-plugins/07_mosquitto.sh... ✓
Total 7 executed: 7 completed, 0 failed, 0 skipped
Diagnostic information saved to /tmp/tedge-diag-2025-07-15_14-18-53.tar.gz
/tmp/tedge-diag-2025-07-15_14-18-53.tar.gzConfiguration management allows creating parent directories #3718
New tedge-configuration-plugin properties (parent_user, parent_group and parent_mode) to support creating the the required folder hierarchy if when applying configuration from the cloud to the device. This gives you more flexibility when applying configuration to devices where the parent folder hierarchy might not already exist.
Below shows an example of using the new parent_* properties in the /etc/tedge/tedge-configuration-plugin.toml file:
[[files]]
path = '/etc/containers/certs.d/example/ca.crt'
type = 'harbor-certificate'
user = 'tedge'
group = 'tedge'
mode = 0o640
# Below are new parameters used if the config file's
# parent folders don't exist
parent_user = 'root'
parent_group = 'root'
parent_mode = 0o700Check out the documentation for more details.
HSM/PKCS11 improvements
Further improvements to the Hardware Security Module support (HSM) (via the PKCS11 API) which was first introduced in 1.5.0, and it makes it even easier to use private keys which are stored securely with thin-edge.io.
- You can now use
tedge cert renew c8ywhen using a HSM (with the Cumulocity Certificate Authority Feature) - #3677 tedge connectshows information about the type of PKCS11 connection being used and the associated key's PKCS11 URI - #3623- Extended supported key types to include: EC SECP384R1 and SECP521R1 keys - #3631
🚀 Features
- certificates: avoid using months when displaying certificate duration - #3673
- cli: allow tedge user to set env variable when using sudo - #3688
- registration: add url flag to tedge cert download c8y - #3689
- profile: process configuration before software in device profile operations - #3685
- cli: add offline mode to tedge reconnect command - #3719
🐛 Bug Fixes
- cli: accept values starting with hypen in flags related to passwords - #3619
- aws|az: re-enable connect checks for aws and azure - #3654
- cli: redirect log outputs to stderr instead of stdout - #3658
- packaging: missing operation file c8y-remote-access-plugin when installed on Alpine Linux - #3669
- software: fix tedge-apt-plugin version mismatch error message - #3672
- fix: aws and az fail when no response on connection check - #3656
- cli: wrong message being shown on
system.tomlparse error - #3668 - installation: remove redundant raspberry pi sudoers rule - #3683
- entity_store: clear all retained entity messages on entity deregistration - #3681
- fix: clear entity twin data in entity store with empty retained message - #3699
- fix: no dynamic connection when deregister does nothing - #3697
- troubleshooting: add connection timeout when connecting to the local broker - #3702
- c8y: continue to de-duplicate incoming operations once operation is complete - #3728
- bridge: manually republish messages on built-in bridge reconnect - #3717
📓 Documentation
- hsm: Fill in fallback values for sh command blocks - #3611
- docs: fix screenshot branding logo - #3627
- docs: remove unreferenced images - #3636
- hsm: fix broken anchors in HSM / tedge-p11-server docs - #3638
- docs: update screenshots - #3637
- docs: remove unused/unreferences images and dev task - #3639
- telemetry: document support for using unix timestamps in telemetry data - #3649
- developer-exp: Add JSON schema for MEA MQTT messages - #3652
- docs: update Apama repository docs to use latest 2026 version - #3674
- developer-exp: update build instructions - #3676
- troubleshooting: document
tedge diag collectuser-guide - #3663 - certificates: add tip on how to download only the root certificate using openssl and awk - #3692
- entity_store: Entity management API documentation - #3659
- docs: remove apama docs from thin-edge.io docs - #3722
- aws: add permission to publish retained messages to AWS IoT Core policy - #3724
⛵ Refactor
- testing: Update tests to check for maximum message counts only when appropriate - #3615
- refactor: reinstate private key zeroisation - #3621
- refactor: use a single function to find key - #3622
- refactor: flush after calling write_all - #3614
- refactor: remove hardcoded temporary directory handling in LoggedCommand - #3630
- refactor: reduce the number of times we read tedge.toml - #3625
- refactor: remove redundant use_basic_auth checks - #3657
- mqtt: support dynamic MQTT subscriptions in
mqtt-channel/tedge-mqtt-ext- #3661 - refactor: run tests in CI with different temporary directory - #3726
- refactor: Revert "disable problematic tests to allow the CI changes to be merged" - #3727
- refactor: ensure /mnt has free space before running tests in CI - #3731
🔎 Testing
- c8y|testing: enable Cumulocity certificate-authority system tests - #3617
- security|testing|hsm: PKCS11 connect using RSA keys of all sizes - #3644
- tests: improve log assertion by filtering logs by time - #3705
- testing: improve self-signed certificate cleanup - #3706
- testing: fix system test formatting and linting - #3711
- testing: refactor test setup - #3712
- testing|hsm: Add tedge-p11-server compatibility suite - #3730
📋 Miscellaneous Tasks
1.5.1
What's Changed
All notable changes to this project will be documented in this file.
Thanks to everyone for providing reporting bugs in the last 1.5.0 release. This release resolves the reported bug fixes and also add the documentation related to some of the larger features, Cumulocity Certificate Authority, HSM Support and the HTTP Proxy Configuration.
Fun fact: This release brings up our 6000th commit in the project!
🐛 Bug Fixes
- troubleshooting|c8y|connectivity: support HTTP proxy in c8y remote access plugin - #3600
- mqtt|cli: ensure that
tedge mqtt pubfully publishes messages sent with QoS 2 - #3603 - hsm: pkcs11 signing with a wrong key and a ready check when
TedgeP11Clientis created - #3602
📓 Documentation
- firmware: rename Rugpi to Rugix - #3593
- connectivity: add instructions and tests on how to install thin-edge.io behind a proxy - #3596
- hsm: Add
tedge-p11-serverreference and updatehsm-support.md- #3597 - c8y|certificates: Cumulocity certificate authority documentation - #3590
- connectivity: Proxy configuration after installation - #3607
🔎 Testing
- testing: use new library keyword to get c8y domain - #3604
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.5.0..1.5.1
1.5.0
What's Changed
All notable changes to this project will be documented in this file.
✨ Highlights
Cumulocity Certificate Authority Support #3259 #3523
Enroll devices using the new Cumulocity Certificate Authority feature. The new Cumulocity functionality is still in the PUBLIC PREVIEW phase, however it should be rolled out to most public tenants relatively soon. Please contact your Cumulocity support if you have any questions about enabling it on your tenant.
The new enrollment capability allows thin-edge.io users to also wrap their own process to onboarding devices, through this simple yet secure mechanism.
Benefits of the new thin-edge.io integration with the Cumulocity certificate authority include:
- Easy device enrollment (using device specific one-time passwords)
- Automatic certificate renewal service (currently only for SystemD but a cron job could also be manually configured)
- Seamless upgrade path from self-signed certificates to a Cumulocity CA issued certificate (migrated automatically by the renewal service)
Hardware Security Module (HSM) support via PKCS#11 (cryptoki) Interface #3421
Support for accessing the device's private key stored in secure storage via the PKCS#11 interface (also called cryptoki). By storing private keys in a HSM it prevents the private key from being exposed or stolen by attackers.
The new component, tedge-p11-server, is service which allows the tedge-mapper to utilize the private keys for establishing a secure connection to the cloud without having to directly access the key itself.
Any HSM which has a PKCS#11 interface are supported, some examples of such modules are:
- USB based devices like NitroKey HSM 2, Yubikey 5
- TPM 2.0 (Trusted Platform Module)
- ARM TrustZone (via OP-TEE)
Entity Store HTTP API #3230 #3425
The tedge-agent now provides a new HTTP API endpoint which allows users/services to access and control the registration of entities such as child devices and services.
This makes it easier to build User Interfaces to query information about the which child devices and services are registered on the local thin-edge.io MQTT broker without having to have your own MQTT client.
- Register/Deregister
- List and query existing entities
- Update digital twin information on child devices and services (e.g. similar to the
/twinMQTT topic)
See the Documentation for more details.
HTTP Proxy support using CONNECT Tunneling #3531
thin-edge.io can now be used behind a HTTP/HTTPS proxy (provided the proxy supports HTTP Tunneling).
Note: The proxy support will require you to use the built-in bridge mode where the tedge-mapper connects to the cloud instead of mosquitto, however the built-in bridge will be the future default.
Configuring the HTTP/HTTPS proxy settings can be easily configured for the tedge.toml via the tedge config command:
tedge config set mqtt.bridge.built_in true
tedge config set proxy.address "http://1.2.3.4:8080"
tedge config set proxy.username "user"
tedge config set proxy.password "<password>"
tedge reconnect c8yNew command: tedge http #3357
New CLI command called tedge http which makes it very easy to access the new Entity Store API, and local Cumulocity proxy without having to worry about the exact port numbers of the different services, or what client authentication is required as the settings are automatically read from the tedge.toml file.
Examples
# Get list of entities (using the new Entity API endpoint)
tedge http get /te/v1/entities
# Create a new managed object via the local Cumulocity Proxy
tedge http post /c8y/inventory/managedObjects '{"name":"example"}' --accept-type application/json🚀 Features
- cli: support shell completions in
tedgecli - #3332 - configuration: support read-write device.id in tedge cert/connect - #3326
- configuration|mqtt|bridge: add MQTT keepalive_interval config to allow custom value per bridge - #3365
- configuration: allow environment variables to be reset by setting them to the empty string - #3497
- c8y|cli: log the auth method when running
tedge connect c8y- #3384 - telemetry: Allow name and type in inventory.json - #3419
- mqtt|cli: add optional break conditions to
tedge mqtt sub- #3445 - mqtt|cli: support retained-only flag in tedge mqtt sub - #3494
- cli|certificates: support CSR file formats from gnutls certtool - #3556
- c8y|childdevices: append the option whether to add c8y_IsDevice to child devices - #3560
- cli|certificates: validate new certificate on connect - #3551
🐛 Bug Fixes
- configuration|troubleshooting: ensure file transfer service always writes uploaded file - #3364
- cli|certificates: device.id is derived from device certificate if certificate exists - #3372
- cli: tedge mqtt panics on invalid MQTT topics - #3396
- yocto|packaging: fallback to systemctl command when debian helpers are not available - #3402
- software|firmware|profile: c8y operation fragments for firmware/software update and device profile - #3362
- packaging|installation: only warn if refresh-bridges fails during installation - #3410
- profile: make device profile
skipfield optional and skip operation fragment when it is set totrue- #3417 - c8y|aws|az|certificates: add device.csr_path to cloud profiles - #3441
- mqtt: subscribe to topics on reconnection when session persistence is not enabled or broken - #3462
- fix: skip chown for cert and key when using Basic Auth - #3479
- c8y: de-duplicate operations received in quick succession from c8y/devicecontrol/notifications - #3454
- c8y: use both mqtt and http address when validating connecting c8y tenant url - #3502
- aws|az: skip bridge status messages in aws/az mappers - #3505
- cli|certificates: improve accessibility of tedge cert show - #3527
- cli|certificates: tedge cert renew returning success exit code on error - #3525
- c8y: c8y mapper config should use the value of c8y.mqtt as mqtt endpoint - #3552
- mqtt|entity_store: clear retained entity twin messages on deregister - #3499
- cli|certificates: support relative path args when using tedge cert - #3564
- fix: Avoid clearing updated keys on twin update - #3570
- workflows: Overwritten workflow failure reason - #3583
- fix: Include name in tedge service registration message - #3592
📓 Documentation
- docs: rename Cumulocity IoT to Cumulocity - #3335
- docs: update links to Cumulocity documentation pages - #3334
- docs: update external urls which were being redirected - #3337
- c8y: add c8y tenant manager note to getting started guide - #3354
- c8y: add missing c8y argument to cloud connect command - #3379
- docs: fix Cumulocity username/password instructions - #3381
- c8y: use SmartREST 2.0 external id terminology instead of name - #3442
- c8y: add common connection error due to VPN - #3472
- c8y: move common errors section to its own subheader - ...
1.4.2
What's Changed
All notable changes to this project will be documented in this file.
🚀 Features
- installation|cli: Trigger tedge multicall with symlinks as well as sub-commands - #3313
🐛 Bug Fixes
- cli: cleanup empty profiles - #3310
- cli: tedge cert create-csr should use cloud profile's CN - #3316
- configuration: support symlinks in atomic file write methods - #3324
- cli: Update component crates descriptions - #3317
📓 Documentation
- doc: Add documentation example missing arg - #3320
⛵ Refactor
- refactor: Simplify command state update methods - #3309
- c8y: Simplify SmartREST publish topics - #3292
🔎 Testing
- testing: pretty print json payloads and disable robotidy to preserve leading whitespace - #3314
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.4.1..1.4.2
1.4.1
What's Changed
All notable changes to this project will be documented in this file.
🐛 Bug Fixes
- workflows: process non-versioned in-progress commands on startup - #3306
- workflows: Persist workflow definition of pending commands on start - #3307
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.4.0..1.4.1
1.4.0
What's Changed
All notable changes to this project will be documented in this file.
✨ Highlights
Cloud profiles
Support connecting thin-edge.io to multiple Cumulocity tenants. Check out the docs for more details.
Using workflows in custom operation handlers
Use the power of thin-edge.io workflows to handle the execution of custom operation handlers. Not only does this promote a more robust handling of the execution of the custom operation, but it also encourages users to implement a cloud-agnostic handler which enables you to trigger the operations from any cloud.
See the docs for more details.
Support uploading files to Cumulocity
A new subcommand has been added which allows users or process/s to upload a file to Cumulocity easily.
Example
Upload a csv file to Cumulocity as an event with an attached binary file.
tedge upload c8y \
--file "/opt/data/some_data.csv" \
--mime-type "text/csv" \
--type "tedge_data_logger_snapshot" \
--text "Data logger data" \
--json "{\"additionalData\":{\"application\":\"data-logger\"}}"See the reference page for all the options.
🚀 Features
- c8y: allow operation handlers to match on json payloads - #3144
- workflows: support reloading workflows at runtime - #3180
- c8y: support user topics when handling custom operation - #3189
- c8y: support Cumulocity SmartREST 1.0 - #3196
- workflows: add workflow support for custom operation handlers - #3225
- cli: add filtering to
tedge config list- #3264 - c8y: add c8y createBulk topics to bridge - #3286
- configuration|c8y: support Cumulocity legacy file upload/download operations - #3285
- feat: Support multiple cloud profiles - #3278
- c8y|cli: tedge upload c8y - #3274
🐛 Bug Fixes
- packaging: target incompatibility with armv6 package for raspberry pi - #3182
- c8y|bridge: remove duplicate subscription in c8y built-in bridge - #3188
- mqtt|c8y: Trim
reasonfield in "succeed custom operation" SmartREST message - #3179 - mqtt|c8y: replace hardcoded topic prefix for SmartREST templates when creating bridge config - #3198
- software: agent stops processing on ill-formed software_update command payloads - #3209
- c8y|bridge: Subscribe to C8Y topics using QoS 1 - #3201
- workflows: agent leaves interrupted operations in non-final state - #3210
- troubleshooting: show config set instructions in certificate error message - #3221
- c8y: c8y http proxy wrongly assumes any hostname is from the same tenant - #3222
- troubleshooting: tedge-agent error does not show which file does not exist - #3223
- fix: Don't fail if only some operations could not be loaded - #3236
- workflows: builtin workflows don't have to be removed - #3258
- fix: skip publishing error message if operation update is not required - #3266
- fix: ensure concurrent server always responds to shutdown signal - #3291
- c8y: split c8y JSON over MQTT messages using newline delimiter - #3302
📓 Documentation
- workflows: add missing variable available in workflow states - #3164
- firmware: add notes to firmware on-boarding instructions - #3181
- c8y: add required ports information for cloud connections - #3194
- monitoring: add tedge-watchdog decision page - #3193
- c8y: remove docs for measurements with units - #3245
- workflows: remove workflow warnings - #3287
- yocto|firmware: update yocto instructions to use new kas project location - #3298
⛵ Refactor
- refactor: reorder crates/core/c8y_api/src/smartrest/operation.rs - #3161
- configuration|c8y: add support to
define_tedge_configfor (optionally) multi-value fields - #3126 - refactor: flexible Authorization header type of HTTP request - #3190
- refactor: Merge log_manager crate under tedge_log_manager - #3215
- refactor: update crate dependencies - #3216
- c8y: simplify c8y_http_proxy - #3224
- certificates: Untangle certificate request, creation and renewal - #3268
- cli: use
CommonArgsfor common arguments - #3273 - refactor: Extract operation implementation details from
CumulocityConverter- #3260 - refactor: Extract
supported_operationsmodule fromc8y_api- #3277 - refactor: Create a module with SmartREST message id consts - #3282
🔎 Testing
- testing: add bridge health status keywords - #3167
- testing: format robotframework system tests - #3169
- mqtt|testing: check publishing of telemetry data whilst mapper is down - #3187
- monitoring|testing: Create a tedge-watchdog test suite - #3138
- testing: update robotframework-c8y library - #3276
📋 Miscellaneous Tasks
- developer-exp: update packages in dev container image - #3172
- developer-exp: add support for building against specific gnu libc versions - #3175
- configuration: Use
tempfilein config-manager and downloader to ensure tmpfiles are always deleted - #3178 - chore: Fix Rust 1.82 clippy lints - #3195
- mqtt|c8y: Improve validation of SmartREST payloads - #3191
- chore(deps): Bump crate-ci/typos from 1.26.1 to 1.26.8 - #3207
- troubleshooting|cli: Make
--debugflag overrideRUST_LOG- #3208 - developer-exp: Enable line numbers for logs when using RUST_LOG - #3211
- mqtt: Add a warning about clearing command metadata being unsupported - #3213
- feat: Group workspace crates first in top-level Cargo.toml and deduplicate yansi and toml dependencies - #3214
- troubleshooting: Attach topic to c8y message conversion error - #3217
- software|configuration: Change which download errors are retryable - #3229
- mqtt: wait for mosquitto to start rather than blindly sleeping in
tedge connect- #3246 - troubleshooting|cli: Add
--log-leveltotedgeandc8y-remote-access-plugin- #3254 - developer-exp: publish devcontainer image - #3265
- chore: fix rust 1.83 clippy lints - #3272
- troubleshooting|cli: Add
--log-leveltotedge-writeandtedge-apt-plugin- #3271
...
1.3.1
What's Changed
All notable changes to this project will be documented in this file.
🚀 Features
- profile: Support skipping operations in device profile - #3142
- troubleshooting: allow to init remote access plugin with non-standard user/group - #3131
- packaging: add tedge-apt-plugin as recommended dependency of tedge-agent - #3152
🐛 Bug Fixes
- monitoring: Ignore extra HealthStatus fields in service monitor - #3132
- registration: c8y mapper panics on unexpected registration message - #3134
- firmware|workflows: Capability message for firmware_update workflow - #3146
- configuration: Stop chowning in tedge-agent - #3148
- troubleshooting|c8y: check if log exists before trying to upload it - #3150
- packaging: add mosquitto as a weak dependency to tedge - #3151
- mqtt: Increase default MQTT max payload size to 256 MiB - #3130
📓 Documentation
- docs: Add tedge-write documentation page - #3116
- monitoring: publish pid as number instead of string - #3127
🔎 Testing
- aws|testing: extend AWS system tests using robotframework-aws library - #3097
- testing: update source to testing libraries - #3135
- testing: format code and add ci check for robotframework formatting - #3129
📋 Miscellaneous Tasks
- registration: Simplify entity auto-registration - #3139
Full Changelog: https://github.com/thin-edge/thin-edge.io/compare/1.3.0..1.3.1