Releases: bytebeamio/uplink
v2.12.0
Significant Changes
- DEPRECATED:
kind
field inAction
struct is deprecated as it was unused, applications will BREAK if they expect this field to be a part of the action JSON message. - uplink now forwards errors faced when it is forced to retry a download, this improves observability into the agent.
- Downloader now retries a download post restart if it was discontinued only because of an uplink shutdown.
What's Changed
- fix: need not retry HTTP status errors by @de-sh in #332
- deprecate kind field in actions by @de-sh in #331
- fix: forward error messages triggering retry by @de-sh in #333
- refactor: downloader by @de-sh in #336 and #338
- feat: restart download post reboot by @de-sh in #335
Full Changelog: v2.11.0...v2.12.0
v2.11.0
Significant Changes
batch_size
replaces thebuf_size
field name in the config file for configuring a stream's batch size limit, configs using thebuf_size
term will continue to be supported for a while, so we request users of uplink to start transitioning their configuration files to using the correct term as soon as possible.- Downloader now supports sha256sum verification, if the action includes the relevant information.
- Precondition Checks allows users to configure a location in the filesystem against which uplink will verify if there is enough free space to both download and decompress the file into. This can be configured by including the following changes in your uplink config file:
- action_redirections = { update_firmware = "install_firmware" }
+ action_redirections = { update_firmware = "download_firmware", download_firmware = "install_firmware" }
+ [precondition_checks]
+ actions = [{ name = "update_firmware" }]
+ path = "/path/to/decompress"
[downloader]
- actions = [{ name = "update_firmware" }]
+ actions= [{ name = "download_firmware" }]
path = "/path/to/download"
What's Changed
- refactor: action registration by @de-sh in #325
- style:
batch_size
clarification by @de-sh in #326 - feat: verify file checksum using
sha256
by @de-sh in #323 - refactor: reorganize binary helpers and mod config by @de-sh in #324
- fix: calculate network for concerned period by @de-sh in #329
- feat: precondition checks as a feature by @de-sh in #322
Full Changelog: v2.10.0...v2.11.0
v2.10.0
Significant Changes
- Preferential ordering of streams during network recovery now allows certain streams to be pushed onto network quicker than others when recovering from a network incident, this can help users ensure that data on certain stream is not blocked due to large backlog on another stream. Configurable with the addition of a line into the config toml file as explained with the following example diff:
[streams.device_shadow]
topic = "/tenants/{tenant_id}/devices/{device_id}/events/device_shadow/jsonarray"
flush_period = 5
+ priority = 75
[streams.C2C_CAN]
topic = "/tenants/{tenant_id}/devices/{device_id}/events/C2C_CAN/jsonarray/lz4"
buf_size = 100
compression = "Lz4"
+ priority = 50
NOTE: Higher priority streams get pushed first, so in the above case the
C2C_CAN
stream will wait for data waiting on thedevice_shadow
stream. Please ensure that device configurations are updated such that streams containing more important real-time data gets pushed earlier than others. We have already configured theaction_status
stream to have the highest priority given it's importance to the working of the platform, the default config of which is now as follows:
[action_status]
topic = "/tenants/{tenant_id}/devices/{device_id}/action/status"
buf_size = 1
flush_period = 2
priority = 255 # highest priority for quick delivery of action status info to platform
- New metrics stream
uplink_serializer_stream_metrics
tracks per stream serialization and compression stats(sizes and times).
NOTE: this is different from
uplink_serializer_metrics
which tracks the serializer as a whole anduplink_stream_metrics
which tracks per stream stats on the data bridge.
- Uplink now ensures full graceful shutdown with all data on streams having disk persistence enabled being written onto disk during shutdown by force flushing their write buffers instead of waiting to overflow and hence getting dropped with the process exit. Similarly packets inflight/waiting for acknowledgement from broker are also saved onto disk and recovered during a restart event.
What's Changed
- feat: track disk space utilized by persistence by @de-sh in #312
- refactor: use
StreamConfig
inSerializer
by @de-sh in #296 - refactor: handle files on disk as
PersistenceFile
by @de-sh in #314 - chore: use workspace dependencies by @de-sh in #315
- refactor:
CtrlTx
to send control messages to various uplink components by @de-sh in #316 - feat: enable simulation on non-demo tenants by @pranavlpin in #317
- feat: extract out system stat collector by @de-sh in #318
- fix: ensure storages are force flushed during uplink shutdown by @de-sh in #311
- feat: persist inflight publishes and send on restart by @de-sh in #299
- feat: track stream-wise compression stats in serializer by @de-sh in #320
- feat: preferential ordering of streams during read from disk by @de-sh in #289
New Contributors
- @pranavlpin made their first contribution in #317
Full Changelog: v2.9.1...v2.10.0
2.10.0-rc
What's Changed
- feat: track disk space utilized by persistence by @de-sh in #312
- refactor: use
StreamConfig
inSerializer
by @de-sh in #296 - refactor: handle files on disk as
PersistenceFile
by @de-sh in #314 - chore: use workspace dependencies by @de-sh in #315
- refactor:
CtrlTx
to send control messages to various uplink components by @de-sh in #316 - feat: enable simulation on non-demo tenants by @pranavlpin in #317
- feat: extract out system stat collector by @de-sh in #318
- fix: ensure storages are force flushed during uplink shutdown by @de-sh in #311
- feat: persist inflight publishes and send on restart by @de-sh in #299
- feat: track stream-wise compression stats in serializer by @de-sh in #320
New Contributors
- @pranavlpin made their first contribution in #317
Full Changelog: v2.9.1...2.10.0-rc
v2.9.1
This patch fixes ActionResponse.action_id
serialization and includes other maintenance updates.
What's Changed
- cpp example by @amokfa in #300
- Merge uplink android by @amokfa in #301
- fix:
ActionResponse.action_id
serialization by @de-sh in #302 - refactor: directly deserialize as
Duration
by @de-sh in #303
Full Changelog: v2.9.0...v2.9.1
v2.9.0-android-rc
* fix typo * make utilities compile for android
v2.9.0
Significant Changes
- Downloads are continuously retried till the action gets timedout.
What's Changed
- feat: name threads when spawning by @de-sh in #292
- fix: continuous retry till timeout by @de-sh in #294
- fix: usize multiplication overflow on 32bit machines by @de-sh in #295
- refactor: remove timeout information from apps by @de-sh in #293
Full Changelog: v2.8.1...v2.9.0
v2.8.1-rc
v2.8.0
Significant Changes
- We now create and use
.downloaded
/.persistence
directories where uplink was started from when the user has not otherwise configured the path. - Uplink will check and ensure there is disk space to download file into, erring out otherwise.
- Uplink only retries downloads that failed due to network error, that too by continuing from where last attempt had failed at, instead of starting from scratch, but only upto 3 times.
- Code maintenance and readability improvements also included.
What's Changed
- docs: quickstart uplink by @de-sh in #266
- fix: retry only
reqwest
errors by @de-sh in #269 - fix: downloader thread error out without logline by @de-sh in #270
- fix: spawn generators to remove time skew by @de-sh in #272
- refactor:
TunshellSession
~>TunshellClient
by @de-sh in #273 - test: use
current_dir
, remove unused loop by @de-sh in #271 - refactor: reintroduce single device simulator as an uplink built-in by @de-sh in #274
- refactor: setup connections with bridge before spawn by @de-sh in #277
- feat: ensure disk has enough space to download file into by @de-sh in #268
- fix: simulator should send
action_status
to bridge asActionResponse
by @de-sh in #283 - feat: don't persist simulated streams in-memory by @de-sh in #284
- fix: timeout process as per config by @de-sh in #287
- refactor: split handling of data and actions by @de-sh in #279
- feat: try continuing partially downloaded files by @de-sh in #286
Full Changelog: v2.7.1...v2.8.0