Releases: bytebeamio/uplink
Releases · bytebeamio/uplink
v2.3.0
Significant Changes
- Persistence is now configurable on a per-stream basis. We have moved from using a single on-disk persistence module for all streams, to now handling persistence on a per-stream basis, allowing the user to configure uplink to persist certain streams onto disk to ensure significant data is not lost due to network/system crash, while handling the rest with a volatile(in-memory) persistence that can only handle less severe network outages. The following is a diff of changes in config structure.
- [persistence]
- path = "/path/to/dir"
- max_file_count = 3
- max_file_size = 10485760 # bytes
[streams.stream_name]
topic = "/stream/topic"
buf_size = 100
+ persistence = { path = "/path/to/dir", max_file_count = 3, max_file_size = 10485760 }
[streams.another_stream]
topic = "/another/stream/topic"
buf_size = 100
+ persistence = { path = "/path/to/dir" } # uses default values for max_file_size and max_file_count
Recommendation: while it is possible to have different paths for each stream, users are recommended to use the same path for all streams, as uplink creates sub-folders per stream, and the path configured is only used as a directory to house sub-folders per stream, using the stream's name as it's own.
OTAInstaller
is a new built-in action handler in uplink that can be configured to extract an already downloaded tarball and run an entry shell script(update.sh
). diff for example changes that can be added to user's config for enabling this feature is provided below:
+ [ota_installer]
+ path = "/path/to/temp/ota" # temporary location where tar-balls can be extracted into for execution of `update.sh`
+ actions = ["install_firmware"] # actions that can trigger an installation
+ uplink_port = 5555 # pre-configured uplink port to which the shell script can connect to send further updates while executing
- Configure network timeouts for ensuring timely delivery of messages and a failure response otherwise:
[mqtt]
+ network_timeout = 30 # seconds
What's Changed
- feat:
VerString
choose from version names by @de-sh in #190 - feat: implement
OTAInstaller
by @de-sh in #193 - feat: use axum instead of rouille by @de-sh in #196
- doc: update downloader comments by @de-sh in #197
- wait for clients in action routes buffer by @de-sh in #192
- fix: mandate content-length in downloader action's payload by @de-sh in #195
- fix: don't remove files, improve downloader error by @de-sh in #198
- fix: do not reset timeout on action responses by @de-sh in #191
- feat:
network_timeout
in config by @de-sh in #201 - fix: duplicate timestamp key in serialized JSON by @de-sh in #206
- "fix: revert #206, more testing needed" by @amokfa in #210
- feat: enable targetted termination by @de-sh in #211
- doc: improve documentation in lib.rs and serializer.rs by @de-sh in #213
- argonaut workflow Setup : by @argonautbot in #215
- feat: serializer module code improvements by @de-sh in #214
- fix: uplink logger success response, use bridge, stream config by @de-sh in #205
- feat: tool to analyze backlog files in persistence by @de-sh in #208
- feat: add error trace by @de-sh in #212
- fix: optionalize installer by @de-sh in #220
- feat: separate out loggers by @de-sh in #222
- fix: clear current action only if it triggered error by @de-sh in #219
- fix: tracing filter by @de-sh in #226
- feat: per-stream compression and optional disk persistence by @tekjar in #231
Full Changelog: v2.1.0...v2.3.0
v2.3.0-expo
What's Changed
- feat: use axum instead of rouille by @de-sh in #196
- doc: update downloader comments by @de-sh in #197
- wait for clients in action routes buffer by @de-sh in #192
- fix: mandate content-length in downloader action's payload by @de-sh in #195
- fix: don't remove files, improve downloader error by @de-sh in #198
- fix: do not reset timeout on action responses by @de-sh in #191
- feat:
network_timeout
in config by @de-sh in #201 - fix: duplicate timestamp key in serialized JSON by @de-sh in #206
- "fix: revert #206, more testing needed" by @amokfa in #210
- feat: enable targetted termination by @de-sh in #211
- doc: improve documentation in lib.rs and serializer.rs by @de-sh in #213
- argonaut workflow Setup : by @argonautbot in #215
- feat: serializer module code improvements by @de-sh in #214
- fix: uplink logger success response, use bridge, stream config by @de-sh in #205
- feat: tool to analyze backlog files in persistence by @de-sh in #208
- feat: add error trace by @de-sh in #212
- fix: optionalize installer by @de-sh in #220
- feat: separate out loggers by @de-sh in #222
- fix: clear current action only if it triggered error by @de-sh in #219
- feat: implement lz4 compression by @de-sh in #204
- feat: allow configuring per-stream persistability by @de-sh in #207
Full Changelog: v2.2.0-rc...v2.3.0-expo
v2.3.0-rc
What's Changed
- feat: use axum instead of rouille by @de-sh in #196
- doc: update downloader comments by @de-sh in #197
- wait for clients in action routes buffer by @de-sh in #192
- fix: mandate content-length in downloader action's payload by @de-sh in #195
- fix: don't remove files, improve downloader error by @de-sh in #198
- fix: do not reset timeout on action responses by @de-sh in #191
- feat:
network_timeout
in config by @de-sh in #201 - fix: duplicate timestamp key in serialized JSON by @de-sh in #206
- "fix: revert #206, more testing needed" by @amokfa in #210
- feat: enable targetted termination by @de-sh in #211
- doc: improve documentation in lib.rs and serializer.rs by @de-sh in #213
- argonaut workflow Setup : by @argonautbot in #215
- feat: serializer module code improvements by @de-sh in #214
- fix: uplink logger success response, use bridge, stream config by @de-sh in #205
- feat: tool to analyze backlog files in persistence by @de-sh in #208
- feat: add error trace by @de-sh in #212
- fix: optionalize installer by @de-sh in #220
- feat: trigger shutdown procedures on sigterm by @de-sh in #217
- feat: separate out loggers by @de-sh in #222
- feat: current action persistence on abrupt shutdowns in #216
Full Changelog: v2.2.0-rc...v2.3.0-rc
v2.2.0
v2.2.0-rc
v2.1.0
Significant Changes
- Configuration for uplink has changed a bit, most significantly the concept of an Action Route replaces named actions, i.e. an application must provide information about the actions it can consume as follows:
Action Route {
name: Name of the action,
timeout: Period in seconds from start of action execution, after which an uncompleted action can be deemed to have failed, i.e. timedout, default is 60 seconds.
}
Example diff of changes in config.toml
What's Changed
- fix: action definition in sim config generator by @de-sh in #172
- rename stats -> system_stats by @amokfa in #170
- fix: launch loggerinstance by @amokfa in #173
- fix: compile on mac by @amokfa in #174
- feat: handle all demo actions with simulator by @de-sh in #176
- fix: use proper log levels by @amokfa in #181
- fix: clippy by @amokfa in #182
- fix: processor stats stream name by @amokfa in #179
- fix: update action timeout when responses are received by @amokfa in #184
- fix: use process.cmd[0] if available instead of process.name by @amokfa in #183
- feat: complete actions with no redirection by @de-sh in #178
- fix: tunshell bugfix by @amokfa in #186
- fix: log minimal stuff at info level by @amokfa in #185
Full Changelog: v2.0.0...v2.1.0
v2.1.0-rc
What's Changed
- fix: action definition in sim config generator by @de-sh in #172
- rename stats -> system_stats by @amokfa in #170
- fix: launch loggerinstance by @amokfa in #173
- fix: compile on mac by @amokfa in #174
- feat: handle all demo actions with simulator by @de-sh in #176
- fix: use proper log levels by @amokfa in #181
- fix: clippy by @amokfa in #182
- fix: processor stats stream name by @amokfa in #179
- fix: update action timeout when responses are received by @amokfa in #184
- fix: use process.cmd[0] if available instead of process.name by @amokfa in #183
- feat: complete actions with no redirection by @de-sh in #178
- fix: tunshell bugfix by @amokfa in #186
- fix: log minimal stuff at info level by @amokfa in #185
Full Changelog: v2.0.0...v2.0.1-rc
v2.0.0
What's Changed
- feat: docs and cleanup by @bmcpt in #93
- fix: set default values for persistence config if missing by @de-sh in #95
- feat: add onfigurable blacklist to
stream_metrics
by @de-sh in #96 - feat: global config to bypass uplink metrics collectors by @de-sh in #97
- refactor: move bins, strict delinting policy, rm/update deps by @de-sh in #101
- feat: detail missing file in error message by @de-sh in #102
- Improve logs by @tekjar in #106
- fix: tests broken by changes in
FileDownloader
by @de-sh in #126 - feat: refactor
StatCollector
andProcess
withBridgeTx
by @de-sh in #125 - feat: rename
_count
fields by @de-sh in #128 - fix: don't remove file before finishing read by @de-sh in #99
- fix: use
BridgeTx
in simulator by @de-sh in #130 - feat: multiple tcp ports, one per app re-design by @de-sh in #131
- fix: proper use of configurations for process and downloader apps by @de-sh in #135
- feat: allow user to config forwarding actions by @de-sh in #132
- feat: use checksum to handle file corruption by @de-sh in #129
- fix: simulator configs by @de-sh in #142
- feat: nest config for mqtt client by @de-sh in #145
- feat: uplink fleet simulation by @de-sh in #144
- feat: allow reloading tracing filter over http by @de-sh in #136
- fix: set
Config.apis.enabled = false
by default by @de-sh in #148 - feat: improve
simulator.sh
cli messaging by @de-sh in #150 - fix: default stream topics by @de-sh in #149
- fix: remove hardcoded device json files by @de-sh in #151
- fix: add step to download device auth file by @de-sh in #152
- fix: store downloaded file with
file_name
by @de-sh in #153 - feat: android ci by @amokfa in #159
- fix: delete data at old location before downloading by @amokfa in #165
- Document required log lines by @amokfa in #162
- fix: ignore old file delete error by @amokfa in #166
- feat: allow configuring per action timeouts by @de-sh in #156
- feat: respond with uplink occupied failure by @de-sh in #168
- fix: don't return
action_rx
for empty name list by @de-sh in #160
New Contributors
Full Changelog: v1.6.1...v2.0.0
v2.0.0-rc1
What's Changed
Full Changelog: v2.0.0-rc...v2.0.0-rc1
v2.0.0-rc
What's Changed
- feat: docs and cleanup by @bmcpt in #93
- fix: set default values for persistence config if missing by @de-sh in #95
- feat: add onfigurable blacklist to
stream_metrics
by @de-sh in #96 - feat: global config to bypass uplink metrics collectors by @de-sh in #97
- refactor: move bins, strict delinting policy, rm/update deps by @de-sh in #101
- feat: detail missing file in error message by @de-sh in #102
- Improve logs by @tekjar in #106
- fix: tests broken by changes in
FileDownloader
by @de-sh in #126 - feat: refactor
StatCollector
andProcess
withBridgeTx
by @de-sh in #125 - feat: rename
_count
fields by @de-sh in #128 - fix: don't remove file before finishing read by @de-sh in #99
- fix: use
BridgeTx
in simulator by @de-sh in #130 - feat: multiple tcp ports, one per app re-design by @de-sh in #131
- fix: proper use of configurations for process and downloader apps by @de-sh in #135
- feat: allow user to config forwarding actions by @de-sh in #132
Full Changelog: v1.6.1...v2.0.0-rc