All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Extend interface mappings charset to support name prefixed with underscore
- Introspection triggers are part of device triggers. Expose an API closer to other triggers.
- Add delivery policies to triggers.
- Handle array values when decoding simple events
- Don't treat structs as object aggregations when decoding simple events
- Update dependencies and Elixir version to 1.11
- If
database_retention_policyis set to:no_ttl,database_retention_ttlmust not be set. (See #51)
- Correctly handle SimpleEvents JSON encoding even when they contain an object aggregation with a binaryblob value.
- Return an error instead of crashing when the endpoint is not present within a mapping.
- Add
exchangetoAMQPTriggerTargetproto. This will allow to send events to any user defined AMQP exchange (see #351). - Add additional options to
AMQPTriggerTargetsuch aspriority,expirationandpersistent. - Add support for device-specific and group-specific triggers.
- Add
DeviceErrorEventtoSimpleEvents, allowing to react to a device error.
- It is now possible to omit the
device_idin adevice_trigger. This is equivalent to passing*asdevice_id. The old behaviour is still supported.
- Correctly handle binaryblob value deserialization in events.
- Test against Elixir 1.8.2.
- Add support for aggregated server owned interfaces.
- Correctly handle parametric endpoints regardless of the ordering, so that overlapping endpoints are always refused. (See #2)
- Restrict the use of
*asinterface_nameonly toincoming_datadata triggers. - Allow hyphens in
interface_name. Both the top level domain and the last domain component must not contain hyphens. (#7)
- Handle empty
bson_valueinTriggers.SimpleEvents.Encoder, avoiding crashes when an empty bson value is sent as event (e.g. unset).
astarte,systemand all names starting withsystem_are now reserved realm names.- Add
database_retention_policyanddatabase_retention_ttlmapping attributes.
- Add timestamp field to SimpleEvent protobuf.
- Fix interface validation: object aggregated properties interfaces are not valid.
- Fix interface validation: server owned object aggregated interfaces are not yet supported, hence not valid.
- Fix endpoint placeholder regex used in Mapping.normalize_endpoint.
- Fix overlapping endpoints detection, it was allowing some corner case overlappings.
- Interface name
deviceis reserved now.
- Correctly support Bson.Bin struct.
- False positive overlapping endpoints were detected, EndpointsAutomaton now handles them as valid.
- Correctly serialize triggers on the special "*" interface and device.
- Add limit to 64K for string and blobs, 1024 items for arrays.
- Add value validation code for any Astarte type.
- First Astarte release.