All notable changes to the AWS IoT Device Client will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Device Client aborts on Red Hat Enterprise Linux ARM
- Device Client stability issues when receiving signal interrupts
- Device Client build failure with gcc v11
- Added support for AWS Managed Job Templates aka Standard Job Actions.
- Added validation checks for config file, cli inputs and empty job handler directory.
- Added support for creating PubSub files.
- Added support for enabling SDK logging using SDK and Config file
- Updated documentation for Named Shadow feature and use of thing-name across Device Client
- Updated docker image files to use latest code from SDK's submodule.
- Updated Device Client fatal error messages.
- Added support for Telemetry data.
- Added support for Named Shadow feature in Device Client.
- Resolved high CPU utilization issue.
- Updated SDK version which resolves security vulnerability issue, and issues causing Device Defender and Secure Tunneling failures.
- Added support for storing FP device config from FP Template in runtime-config file
- Support to pass parameters to the AWS IoT Fleet Provisioning RegisterThing MQTT request
- Resolved issue where missing pub sub sample files (publish file and subscribe file) would cause a seg fault
- Resolved issue where pub sub sample lost reference on the Default Publish Payload allocator, publishing a blank string
- Fixed a bug with the pub sub sample CLI config
- SDK logging now configurable via CLI or JSON
- Support for configuring Device Private Key via CLI and JSON for Fleet provisioning using CreateCertificateFromCsr API
- Added Pub/Sub Sample Feature
- Update job to "In Progress" after receive
- Shared Lib builds in Github Actions
- Add CodeDeploy config for integration test setup
- Doxygen Github Actions
- Readme Makeover
- Address cross-platform compatibility for ANSI color codes
- Properly stripping symbols on RELEASE builds
- Updated SDK version to fix shared lib builds
- Broken Doxygen URL in the Readme
- Fix Ubi8 and Al2 Dockerfile Openssl install
- Support for opening multiple tunnels at the same time
- Handling for secure tunnel OnConnectionShutdown
- Cross compilation toolchains for a number of platforms
- Log sanitization to minimize attack surface and protect against printf vulnerabilities
- Handling for empty json values, local keys and certificates
- Log messaging to indicate permission information to the user
- Ownership validation against required files
- Limitations to log output for Job child processes
- Exponential backoff retry for initial MQTT connection
- Recovery mode for Jobs feature to handle duplicate notifications received after connectivity loss
- Improved logging API startup behavior
- Support for transferring log queues between logger implementations when configuration changes
- README documentation to provide a better getting started experience
- String handling in utility functions to reduce risk of string related security vulnerabilities
- Improved CLI handling for feature enable/disable to maintain parity with .conf JSON file
- Device Client no longer requires presence of a configuration file as long as required values are provided via CLI
- Secure Tunneling SDK 16KB buffering issue. Previous Secure Tunneling implementation would encounter issues if data written to the buffer is larger than 16KB
- Device Defender reboot segfault. There was a known issue where rebooting the device while Device Defender is running as a service would trigger a segfault when the Device Client starts again after the reboot
- CMake build system
- CMake conditional compilation flags for reducing output executable footprint
- CMake support for automatically building the AWS IoT v2 SDK for C++
- Setup script for configuration automation and help installing the AWS IoT Device Client
- Valgrind debugging support added to setup.sh
- Configuration via CLI and JSON file
- Logger with both standard output and file-based logging implementations
- AWS IoT Jobs feature for execution of jobs on the device
- AWS IoT Secure Tunneling feature for establishing secure tunnels to the device
- AWS IoT Device Defender feature for publishing Device Defender metrics to AWS
- AWS IoT Fleet Provisioning feature for device provisioning
- Sample job documents and job handlers for examples of how to use the Jobs feature functionality
- Semantic versioning logic built into the CMake system which pulls information from Git
- Utility classes for operations on files and strings
- Google Test framework added for unit testing
- Doxygen support for building HTML and Latex documentation from source code
- Clang-format support via format-check.sh for verifying code will pass our CI Lint checks