Releases: bytebeamio/uplink
v2.13.0
Significant Changes
Actions can now be remotely cancelled on device by using a new "name": "cancel-action"
action. When configuring uplink on startup, if the field "cancellable"
is set to true
for an action route, uplink will forward "cancel-action"
actions to the handler on the configured route.
What's Changed
- feat: action cancellation by @de-sh in #339
- Simulator: increased timeout by @Inventor77 in #346
- fix: mark parallel actions as failed on restart by @de-sh in #349
- fix: push all actions no matter what by @de-sh in #347
- fix: action cancellation state loss by @de-sh in #351
New Contributors
- @Inventor77 made their first contribution in #346
Full Changelog: v2.12.2...v2.13.0
v2.12.2
v2.12.1
Brief: Bug fixes within downloader that ensures that uplink delivers on the minimum expectations for features such as continuation post restart and deletion of file on timeout.
What's Changed
- fix: delete downloaded file on action timeout by @de-sh in #340
- fix: duration in seconds missing fractions by @de-sh in #342
- fix: bad file descriptor by @de-sh in #343
- fix: downloader retry on DNS at startup by @de-sh in #344
Full Changelog: v2.12.0...v2.12.1
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