Releases: bytebeamio/uplink
v2.16.2
v2.16.1
2.16.0
Significant changes
-
Remove action timeouts everywhere
Actions will not be timed out by uplink anymore. Timeouts and cancellation will have to be done from the dashboard. Uplink will just move messages to various applications and won't have any other logic built into it. -
Delete persistence data if it is for the wrong project.
If a device is reprovisioned to another project and had data saved in persistence at that time, uplink used to attempt pushing that data to cloud which fails because the device credentials have changed. This caused problems during startup.
2.14.1 data upload bugfix
- Pinned rumqttc to a previous version
v2.15.1-events-rc
Significant Change
Data Events ensure that all data pushed to it's API is either stored on disk awaiting ack from broker or successfully delivered to the broker and thus accessible on the platform. Please ensure that whatever data you send through this is significantly low frequency as not to overwhelm the uplink setup, i.e. use only with critical data streams. To setup, add the following to uplink config:
[events]
enabled = true
port = 1234
Now you should be able to send HTTP requests such as following curl example and the request will only be acked if uplink was able to store into sqlite or push the packed onto the network:
curl -X POST http://localhost:1234/event -d "{\"stream\": \"event_stream\", \"sequence\": 1, \"timestamp\": $(date +%s%3N), \"some\": \"data\"}" -H 'Content-Type: application/json'
What's Changed
Full Changelog: v2.15.0...v2.15.1-events-rc
v2.15.1
What's Changed
- Drops dependency on
openssl
by cleaning uptunshell-client
dependencies
Full Changelog: v2.15.0...v2.15.1
v2.15.0
Significant Changes
Edge Services
With this release, uplink can also works as a platform for multiple apps running on the same device to communicate with each other, performing computation that would otherwise have to be performed in the cloud. This is supported by the following two feature additions:
- On device bus supporting micro-services on the edge architecture.
- Joins on data streams now allows configuring de-sampling and joining of data from different streams as received on bus before being pushed to the cloud.
Both of these features can be enabled and configured by adding the following to the config.toml:
[bus]
port = 1883
console_port = 3030
joins = { output_streams = [
{ name = "location", construct_from = [
{ input_stream = "gps", select_fields = [
"latitude",
"longitude",
] },
{ input_stream = "altimeter", select_fields = [
"altitude",
] },
], push_interval_s = 60, no_data_action = "null", publish_on_service_bus = true },
{ name = "device_shadow", construct_from = [
{ input_stream = "device_shadow", select_fields = "all" },
], push_interval_s = "on_new_data", no_data_action = "previous_value", publish_on_service_bus = true },
{ name = "example", construct_from = [
{ input_stream = "stream_one", select_fields = [
"field_x",
"field_y",
] },
{ input_stream = "stream_two", select_fields = [
{ "field_z" = "field_x" },
] },
], push_interval_s = 120, no_data_action = "previous_value", publish_on_service_bus = false },
] }
- Support for remotely updating uplink config with an
update_uplink_config
action.
What's Changed
- feat: support json uplink configs by @de-sh in #355
- feat:
update_uplink_config
by @de-sh in #357 - feat: on-device bus with
rumqttd
and data joiner on uplink by @de-sh in #348
Full Changelog: v2.14.1...v2.15.0
v2.14.1
Significant Changes
- Allow configuring default buffer size for backlog management in serializer, instead of using the default 10MB, decreases unnecessary RAM hogging.
# Configure uplink to only allocate 1KB of backlog buffer by default
default_buf_size = 1024
- Allow configuring max number of data streams that uplink can batch, instead of a hardcoded limit of 20, this allows users to be more in control of their on-device setup.
# Configure uplink to allow upto 100 data streams
max_stream_count = 100
NOTE: When using TOML to configure, keep these configs at the top of the file to avoid config mismatch.
What's Changed
- feat: write storage to human readable file by @de-sh in #352
- fix: configurable default backlog buffer size by @de-sh in #353
- test: integration to
tests/
, serializer withtokio::test
by @de-sh in #354 - refactor: separate out
DeviceConfig
by @de-sh in #356 - fix: allow configuring
max_stream_count
by @de-sh in #358
Full Changelog: v2.14.0...v2.14.1
v2.14.0
Significant Changes
- New http endpoint on uplink console allows user to figure out if upstream connection to broker is alive or closed.
# Configure uplink to expose console
[console]
enabled = true
port = 3333
# Poll status of uplink when not in network
$ curl -X GET http://localhost:3333/status
{"connected":false}⏎
# Poll status of uplink when not in network
$ curl -X GET http://localhost:3333/status
{"connected":true}⏎
What's Changed
- feat: endpoint for uplink connection status by @de-sh in #350
- feat: retry tcpapps bind after failure
Full Changelog: v2.13.0...v2.14.0
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