All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- added modem_info feature to make modemmanager a conditioanl dependency
- fixed compilation error due to missing imports
- introduced modem info feature
- added functionality to query modem data
- added infos at startup: current root device and if a bootloader update occurred
- updated azure-iot-sdk to 0.11.10 to introduce configurable outgoing message confirmation timeout
- fixed sending watchdog notify in time
- updated dependencies in order to fix audit warnings
- updated azure-iot-sdk to 0.11.8 to introduce configurable do_work frequency and logging in azure-iot-sdk-c
- prolonged watchdog interval while running update validation
- removed multiline error log messages to get a more compact view in the journal
- updated azure-iot-sdk to 0.11.6
- bumped env_logger to 0.10
- logging: added sd-daemon logging priority prefixes to get different log levels in the journal
- update rust toolchain to 1.74
- fixed cargo.toml version
- tests: fixed clippy warning
- removed feature ssh_handling, ssh connection via ssh_tunnel still working
- fixed an issue with ssh tunnels were certificates were deleted early
- fixed ssh tunnel to enforce certificate based authentication
- fixed passing of errors to direct methods results
- ssh tunnel:
- fixed error in tests
- fixed error when sending device 2 cloud notifications by bumping azure-iot-sdk to 0.11.4
- tests: fixed clippy warnings
- reduced permissions for ssh keys and certificates
- fixed time stamp parsing causing flaky tests
- removed bogus debug prints in tests
- fixed RUSTSEC-2020-0071 (explicit
cargo update
)
- ssh tunnel: added ssh tunnel feature to access possibly NATed devices.
- fixed code format
- Changelog: fixed indentation
- bumped to azure-iot-sdk 0.11.0 which prevents potential deadlocks
- introduced signal handler to handle termination and shutdown twin properly
- fixed rust-toolchain.toml
- replaced channel/thread based event dispatching by async dispatching based on azure-iot-sdk 0.10.0
- introduced mockall crate for unit tests
- introduced cargo feature "mock"
- usefull for host testing
- automatically used by cargo test
- updated to rust toolchain to v1.65
- added abstraction layer
bootloader_env
for uboot and grub to support environment variable handling - update validation: fixed bug where root partition was switched on update validation fail
- systemd: removed enforcing reboot on errors
- fixed RUSTSEC-2023-0044
- updated to azure-iot-sdk 0.9.5
- changed omnect git dependencies from ssh to https url's
- added feature toggle for reboot direct method
- added feature reporting for wifi-commissioning-gatt-service
- improved error messages
- fixed cargo clippy error
- refactored and introduced feature toggles
- systemd::start_unit: added timeout handling
- systemd::wait_for_system_running: added timeout handling
- systemd::reboot: sync journal before reboot
- module version: also log the short git revision
- explicit
cargo update
to fix RUSTSEC-2023-0034
- fixed twin update handling when key is not present at all vs. key is null
- fixed GHSA-4q83-7cq4-p6wg (explicit
cargo update
)
- update validation: added check if system is running
- refactored service permissions, reboot, factory-reset, ssh-report and
update validation handling
- removed path activation handling for permission propagation
- added policy-kit configuration for accessing systemd via dbus for reboot and starting iot-hub-device-update
- added sudo configuration for safe fw_setenv/printenv usage
- added sudo configuration for writing ssh pubkey as user omnect
- successful start of
iot-hub-device-update
is not part of update validation
- allow service to use optional env file
/etc/omnect/omnect-device-service.env
, e.g. to setRUST_LOG=DEBUG
- improved readme
- pined time dependency to 0.3.19 since newer versions need rust 1.63
- added ssh direct methods: open_ssh, close_ssh, refresh_ssh_status
- updated azure-iot-sdk to 0.9.2
- fixed redundant locking on twin
- twin:
- refactored into main module and submodules:
- main module: src/twin/mod.rs
- submodules of twin: common.rs, consent.rs, factory_reset.rs, network_status.rs
- contains now handlers for: C2D messages, direct methods, and desired/reported properties
- added unittests
- don't report any network adapter in case no filter is set in desired properties
- refactored into main module and submodules:
- readme: prepared open sourcing repository
- introduced fallback update handling
- fixed bug when application didn't exit on Unauthenticated message
- report network status:
- switched to include filter
- fixed issue with empty filter
- report vectors of addresses
- added audit exception for RUSTSEC-2020-0071
- bumped to notify 5.1
- bumped to azure-iot-sdk 0.9.0
- switched to anyhow based errors
- report network status
- general user consent:
- only handle if list changed
- list items are case insensitive
- introduce rust-toolchain.toml to enforce same rust version as used by kirkstone
- updated tokio to 1.23 in order to fix cargo audit warning
- renamed crate from icsdm-device-service to omnect-device-service
- renamed from ICS-DeviceManagement to omnect github orga
- renamed crate from demo-portal-module to icsdm-device-service
- added direct method "reboot"
- fixed bug when async client does not terminate correctly
- improved logging for AuthenticationStatus changes
- log message with severity error on panics
- fixed report azure-sdk-version in twin
- updated to notify 5.0
- switched from forked sd-notify to new official release 0.4.1
- changed some debug messages to log level info
- report azure-sdk-version in twin
- log info message for azure-sdk-version
- bump to azure-iot-sdk 0.8.4
- start service after time-sync target to avoid time jumps during service start
- added info message for logging the package version
- fixed panic when closing message channel
- fixed panic when calling IotHubClient::from_identity_service
- fixed terminating on ExpiredSasToken
- bumped to latest azure-iot-sdk 0.8.3
- bumped to latest azure-iot-sdk 0.8.2
- fixed tokio dependency
- replaced std::thread by tokio for async tasks
- bumped to latest azure-iot-sdk 0.8.1
- bumped to latest azure-iot-sdk 0.8.0
- factory reset: optional restore wifi settings
- direct methods: return with error in case of file system failures
- fix bug in main loop when channel is closed by sender
- report cargo package version
- general:
- improved error logging and handling
- user consent:
- fixed handling of empty general consent in desired properties
- fixed opening file for reading
- factory reset:
- report new status "in_progress"
- user consent:
- report general consent status
- added user consent handling for "iot-hub-device-update"
- bumped to latest azure-iot-sdk 0.5.5
- firmware_reset_trigger_file: delete file content with OpenOptions "truncate"
- catch error message if fw_printenv command is not supported on the used platform
- rollback placeholder handling for formatting string, due to compatibility with rust toolchain < 1.56
- bumped to latest azure-iot-sdk 0.5.3
- evaluation of the uboot variable "factory-reset-status" optimized
- initial version