Releases: astarte-platform/astarte
Releases · astarte-platform/astarte
v1.0.2
Second Astarte 1.0 maintenance release.
CHANGELOG
Changes since v1.0.1:
Added
- [realm_management] Accept
retention
andexpiry
updates when updating the minor version of an
interface. - [astarte_realm_management_api] Allow synchronous requests for interface creation, update
and deletion using theasync_operation
option. Default to async calls. - [astarte_housekeeping_api] Allow synchronous requests for realm creation and deletion
using theasync_operation
option. Default to async calls.
Fixed
- [realm_management] Accept allowed mapping updates in object aggregated interfaces without
crashing. - [astarte_appengine_api] Handle server owned datetimearray values correctly.
Changed
- [astarte_housekeeping] Allow to delete a realm only if all its devices are disconnected.
Realm deletion can still only be enabled with an environment variable (defaults to disabled). - Update CA store to 2022-03-21 version.
v1.0.1
First Astarte 1.0 maintenance release.
CHANGELOG
Changes since v1.0.0:
Added
- [data_updater_plant] Add handle_data duration metric.
- [doc] Add documentation for AstarteDefaultIngress.
- [doc] Add deprecation notice for AstarteVoyagerIngress.
- [doc] Add documentation for the handling of Astarte certificates.
Changed
- [doc] Remove astartectl profiles from the possible deployment alternatives.
Fixed
- [astarte_appengine_api] Correctly serialize events containing datetime and array values.
- [astarte_appengine_api] Do not fail when querying
datastream
interfaces data withsince
,to
,sinceAfter
params if result is empty. Fix #552. - [astarte_appengine_api] Consider microseconds when using timestamps. Fix #620.
- [astarte_appengine_api] Don't crash when removing an alias with non-existing tag. Fix 495.
- [astarte_trigger_engine] Correctly serialize events containing datetime and array values.
- [astarte_data_updater_plant] Don't crash when receiving
binaryblobarray
anddatetimearray
values. - Update Cyanide BSON library, in order to fix crash when handling ill-formed BSON arrays.
v1.0.0
Astarte v1.0.0 release.
CHANGELOG
Added
- Add support for volatile triggers on interfaces with object aggregation.
Changed
- Document future removal of Astarte Operator's support for Cassandra.
- Log application version when starting.
Fixed
- [astarte_appengine_api] Fix the support for
null
values in interfaces, the fix contained in1.0.0-rc.0
was incomplete.
Other Changes Since v0.11
Added
- [astarte_appengine_api] Add
/v1/<realm>/version
endpoint, returning the API application version. - [astarte_realm_management_api] Add
/v1/<realm>/version
endpoint, returning the API application version. - [astarte_pairing_api] Add
/v1/<realm>/version
endpoint, returning the API application version. - [astarte_housekeeping_api] Add
/v1/version
endpoint, returning the API application version. - [astarte_housekeeping] Allow deleting a realm. The feature can be enabled with an environment variable (defaults to disabled).
- [astarte_data_updater_plant] Declare custom exchanges when an AMQP trigger is loaded.
- [appengine_api] Add metadata to device
- [trigger_engine] Allow configuring preferred http method (such as
PUT
orGET
) (see #128). - [trigger_egnine] Add optional support to custom http headers, such as
Authorization: Bearer ...
(see #129). - [data_updater_plant] Handle device hearbeat sent by VerneMQ plugin.
- [data_updater_plant] Deactivate Data Updaters when they don't receive messages for some time, freeing up resources.
- [appengine_api] Support SSL connections to RabbitMQ.
- [data_updater_plant] Support SSL connections to RabbitMQ.
- [trigger_engine] Support SSL connections to RabbitMQ.
- Default max certificate chain length to 10.
- AMQP trigger actions (publish to custom exchanges) as an alternative to http triggers actions.
- Ensure data pushed towards the device is correctly delivered when using QoS > 0.
- [realm_management_api] Allow installing device-specific and group-specific triggers. To do so, pass the
device_id
orgroup_name
key inside thesimple_trigger
. - [data_updater_plant] Add support for device-specific and group-specific triggers.
- Add support for device error triggers.
Changed
- [astarte_realm_management] Make
amqp_routing_key
mandatory in AMQP actions. - Update documentation for backing up and restoring Astarte.
- Update documentation for Operator's uninstall procedure.
- [astarte_e2e] Client disconnections are responsible for triggering a mail alert.
- Run tests against RabbitMQ 3.8.14 and ScyllaDB 4.4-rc.4 / Cassandra 3.11.10.
- Update dependencies to latest available versions (see
mix.lock
files). - Update Elixir to 1.11.4 and OTP to 23.2.
- Rename device
metadata
toattributes
. This requires a manual intervention on the database, see the Schema Changes documentation for additional information. - [astarte_housekeeping_api] Remove format check on Cassandra datacenter name when a realm is created, the datacenter is just verified against the one present in the database.
- [housekeeping] Increase the delay between connection attempts to 1000 ms, for an overall number of 60 attempts.
- [data_updater_plant] Default the total queue count to 128, de facto exploiting multiqueue support.
- [data_updater_plant] Default the queue range end to 127.
- Update Phoenix to version 1.5.
- Rework metrics to reduce the clutter while monitoring astarte services.
- [realm_management] Allow updating doc, description and explicit_timestamp within mappings when bumping an interface minor.
- Remove postgresql dependency in
docker-compose
, make CFSSL stateless. - Update Operator's documentation for install/upgrade/uninstall procedures.
- [appengine_api] Always return an object when GETting on object aggregated interfaces.
- Replace Conform and Distillery with Elixir native releases.
- Remove the
ASTARTE_
prefix from all env variables. - [realm_management_api] Triggers http actions are now validated.
- [realm_management_api] It is now possible to omit the
device_id
in adevice_trigger
. This is equivalent to passing*
asdevice_id
. The old behaviour is still supported.
Fixed
- [astarte_appengine_api] Don't crash when an interface contains
null
values, just show them asnull
in the resulting JSON. - [astarte_realm_management] Fix log noise due to Cassandra warnings when checking health (see #420).
- [astarte_e2e] Fix alerting mechanism preventing "unknown" failures to be raised or linked.
- [astarte_appengine_api] Allow retrieving data from interfaces with parametric endpoint and object aggregation (see #480).
- [astarte_appengine_api] Encode binaryblob values with Base64 even if they are contained in an aggregate value.
- [astarte_trigger_engine] Encode binaryblob values with Base64 even if they are contained in an aggregate value.
- [astarte_appengine_api] Fix regression that made it impossible to use Astarte Channels.
- [astarte_appengine_api] Fix bug that prevented data publishing in object aggregated interfaces.
- [astarte_appengine_api] Fix regression that prevented properties to be set before the first connection of a device.
- [astarte_realm_management] Fix a bug that prevented AMQP triggers to be correctly installed.
- [astarte_data_updater_plant] Mark device as offline and send device_disconnected event when forcing a device disconnection.
- [astarte_data_updater_plant] Fix bug that blocked queues when trying to disconnect an already disconnected device.
- Make sure devices are eventually marked as disconnected even if they disconnect while VerneMQ is temporarily down (see #305).
Removed
- [appengine_api] Remove deprecated not versioned socket route.
v1.0.0-rc.0
First Astarte v1.0.0 release candidate.
CHANGELOG
Added
- [astarte_appengine_api] Add
/v1/<realm>/version
endpoint, returning the API application version. - [astarte_realm_management_api] Add
/v1/<realm>/version
endpoint, returning the API application
version. - [astarte_pairing_api] Add
/v1/<realm>/version
endpoint, returning the API application
version. - [astarte_housekeeping_api] Add
/v1/version
endpoint, returning the API application
version.
Changed
- [astarte_realm_management] Make
amqp_routing_key
mandatory in AMQP actions. - Update documentation for backing up and restoring Astarte.
- Update documentation for Operator's uninstall procedure.
Fixed
- [astarte_appengine_api] Don't crash when an interface contains
null
values, just show them as
null
in the resulting JSON. - [astarte_realm_management] Fix log noise due to Cassandra warnings when checking health
(see #420).
v1.0.0-beta.2
Second Astarte v1.0.0 beta.
CHANGELOG
Fixed
- [astarte_e2e] Fix alerting mechanism preventing "unknown" failures to be raised or linked.
- [astarte_appengine_api] Allow retrieving data from interfaces with parametric endpoint and object
aggregation (see #480). - [astarte_appengine_api] Encode binaryblob values with Base64 even if they are contained in an
aggregate value. - [astarte_trigger_engine] Encode binaryblob values with Base64 even if they are contained in an
aggregate value.
Changed
- [astarte_e2e] Client disconnections are responsible for triggering a mail alert.
- Run tests against RabbitMQ 3.8.14 and ScyllaDB 4.4-rc.4 / Cassandra 3.11.10.
- Update dependencies to latest available versions (see
mix.lock
files). - Update Elixir to 1.11.4 and OTP to 23.2.
- Rename device
metadata
toattributes
. This requires a manual intervention on the database,
see the Schema Changes
documentation for additional information.
v1.0.0-beta.1
First Astarte v1.0.0 beta.
CHANGELOG
Fixed
- [astarte_appengine_api] Fix regression that made it impossible to use Astarte Channels.
- [astarte_appengine_api] Fix bug that prevented data publishing in object aggregated interfaces.
- [astarte_appengine_api] Fix regression that prevented properties to be set before the first
connection of a device. - [astarte_realm_management] Fix a bug that prevented AMQP triggers to be correctly installed.
- [astarte_data_updater_plant] Mark device as offline and send device_disconnected event when
forcing a device disconnection. - [astarte_data_updater_plant] Fix bug that blocked queues when trying to disconnect an already
disconnected device.
Added
- [astarte_housekeeping] Allow deleting a realm. The feature can be enabled with an environment
variable (defaults to disabled). - [astarte_data_updater_plant] Declare custom exchanges when an AMQP trigger is loaded.
Changed
- [astarte_housekeeping_api] Remove format check on Cassandra datacenter name when a realm is
created, the datacenter is just verified against the one present in the database. - [housekeeping] Increase the delay between connection attempts to 1000 ms, for an overall number
of 60 attempts. - [data_updater_plant] Default the total queue count to 128, de facto exploiting multiqueue support.
- [data_updater_plant] Default the queue range end to 127.
- Update Phoenix to version 1.5.
- Rework metrics to reduce the clutter while monitoring astarte services.
- [realm_management] Allow updating doc, description and explicit_timestamp within mappings when
bumping an interface minor. - Remove postgresql dependency in
docker-compose
, make CFSSL stateless. - Update Operator's documentation for install/upgrade/uninstall procedures.
v0.11.4
Astarte v0.11.4 release.
CHANGELOG
Fixed
- Avoid creating an
housekeeping_public.pem
directory ifdocker-compose up
doesn't find the
housekeeping keypair. - [trigger_engine] Correctly handle triggers on binaryblob interfaces, serializing value with base64
like appengine does. - [data_updater_plant] Consider
database_retention_ttl
when inserting data on device owned
aggregate interfaces. - [realm_management] Do not allow
value_change
,value_change_applied
andpath_removed
triggers on datastreams. - [realm_management] Do not allow
/*
as match path when usingvalue_change
and
value_change_applied
. (workaround to #513). - [trigger_engine] Update certifi to 2.5.3 (includes 2020-11-13 mkcert.org full CA bundle).
v0.11.3
v0.11.2
Astarte v0.11.2 release.
CHANGELOG
Added
- [trigger_engine] Add
ignore_ssl_errors
key in trigger actions, allowing to ignore SSL actions
when delivering an HTTP trigger action. - [trigger_engine] Update certifi to 2.5.2
- Update Elixir to 1.8.2
Changed
- [appengine_api] Remove
topic
from channel metrics.
v1.0.0-alpha.1
First Astarte 1.0.0 alpha release
CHANGELOG
Fixed
- Make sure devices are eventually marked as disconnected even if they disconnect while VerneMQ is
temporarily down (see #305).
Changed
- [appengine_api] Always return an object when GETting on object aggregated interfaces.
- Replace Conform and Distillery with Elixir native releases.
- Remove the
ASTARTE_
prefix from all env variables. - [realm_management_api] Triggers http actions are now validated.
- [realm_management_api] It is now possible to omit the
device_id
in adevice_trigger
. This is
equivalent to passing*
asdevice_id
. The old behaviour is still supported.
Added
- [appengine_api] Add metadata to device
- [trigger_engine] Allow configuring preferred http method (such as
PUT
orGET
)
(see #128). - [trigger_egnine] Add optional support to custom http headers, such as
Authorization: Bearer ...
(see #129). - [data_updater_plant] Handle device hearbeat sent by VerneMQ plugin.
- [data_updater_plant] Deactivate Data Updaters when they don't receive messages for some time,
freeing up resources. - [appengine_api] Support SSL connections to RabbitMQ.
- [data_updater_plant] Support SSL connections to RabbitMQ.
- [trigger_engine] Support SSL connections to RabbitMQ.
- Default max certificate chain length to 10.
- AMQP trigger actions (publish to custom exchanges) as an alternative to http triggers actions.
- Ensure data pushed towards the device is correctly delivered when using QoS > 0.
- [realm_management_api] Allow installing device-specific and group-specific triggers. To do so,
pass thedevice_id
orgroup_name
key inside thesimple_trigger
. - [data_updater_plant] Add support for device-specific and group-specific triggers.
- Add support for device error triggers.