Skip to content

Releases: bytebeamio/uplink

2.14.1 data upload bugfix

22 Oct 09:04
Compare
Choose a tag to compare
  • Pinned rumqttc to a previous version

v2.15.1-events-rc

07 Oct 10:53
Compare
Choose a tag to compare
v2.15.1-events-rc Pre-release
Pre-release

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

  • feat: store events in sqlite, delete only on ack by @de-sh in #360

Full Changelog: v2.15.0...v2.15.1-events-rc

v2.15.1

23 Sep 15:00
Compare
Choose a tag to compare
v2.15.1 Pre-release
Pre-release

What's Changed

v2.15.0

16 Sep 10:12
Compare
Choose a tag to compare
v2.15.0 Pre-release
Pre-release

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:

  1. On device bus supporting micro-services on the edge architecture.
  2. 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

29 Aug 06:34
Compare
Choose a tag to compare
v2.14.1 Pre-release
Pre-release

Significant Changes

  1. 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
  1. 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 with tokio::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

09 Jul 11:56
Compare
Choose a tag to compare

Significant Changes

  1. 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

20 Jun 10:35
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v2.12.2...v2.13.0

v2.12.2

17 May 08:41
Compare
Choose a tag to compare

What's Changed

  • feat: allow stoppage of downloader to free up network by @de-sh in #341
  • fix: update deserialize utility by @de-sh in #345

Full Changelog: v2.12.1...v2.12.2

v2.12.1

10 May 14:04
a410693
Compare
Choose a tag to compare

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

05 Apr 13:53
Compare
Choose a tag to compare

Significant Changes

  • DEPRECATED: kind field in Action 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