Releases: HiberGlobal/api
0.58
0.58 (2020-09-24)
This release is mostly a bug fix and performance release.
Changes
EventService
- Fixed the event bundled counts. They were changed to an approximation in 0.54, which needed some nuance.
Now, event bundles are only approximated when there are large numbers of events.
Bugfixes
- Set up for improved stale detection on modems. In a next release, this will be used for better stale detection.
- Fix a bug where organization avatars could not be retrieved.
- Add more (performance) monitoring and data caching.
0.57
0.57 (2020-09-10)
This release introduces a number of new event fields and the option to stream events from child organizations.
Changes
EventService
-
Added
modem_external_device_id
to all modem events:ModemUpdatedEvent
ModemLocationUpdatedEvent
ModemStaleEvent
ModemActivatedEvent
ModemMessageDelayedEvent
ModemMessageCannotBeParsedEvent
ModemClaimedEvent
The field was already present on some modem events, so this was mostly a change for consistency.
-
Added
updated_at
toModemLocationUpdatedEvent
with the time the modem sent the message with the new location.The event time it the time the location was updated on the server, which was misleading,
given the possible delay between the modem sending the message and the server processing it. -
Added
child_organizations
toEventStreamRequest
, to allow a client to stream events from its child organizations.
Some limitations apply, for example related to filtering on tags or publishers, which only works for
the current (parent) organization.
0.55
0.55 (2020-08-11)
This release introduces the option to transfer modems without their data.
Changes
ModemTransferService
- Added type
TransferModemsRequest.DataTransferMode
and fieldTransferModemsRequest.date_transfer_modem
to indicate what should happen with modem data like messages and events when it is transferred.
The current options are to include or exclude everything, but more granular options will be added later.
0.54
0.54.2 (2020-08-10)
This is a minor release with a few more performance improvements and some bug fixes.
Changes
ModemService
- Dead, damaged and lost modems are now filtered out by default.
ModemTransferService
- Fixed a bug that would cause some transfer to be stuck in transit, returning an error when trying to receive them.
0.54 (2020-08-06)
This release contains a lot of performance improvements.
You may see some calls return a time out error if they would take a long time before.
This allows us to conserve resources and trace which calls need to be optimized.
Changes
EventService
- Some event bundles now have an approximated count, to avoid them timing out.
In the next few releases, we will optimize this to provide accurate counts whenever possible within the timeout.
0.53
0.53 (2020-07-27)
Changes
DashboardService
- Performance fixes for message counts.
EventService
- Added
OrganizationCreatedEvent.avatar
with the avatar for the created organization. - Limited
ModemMessageDroppedEvent
to messages using Hiberband.
OrganizationService
- Added
Organization.avatar
andCreateOrganizationRequest.avatar
. - Added
GetOrganizationAvatar
request to fetch avatars for organizations.
ModemService
- Added
ListModemsRequest.include_missing_group_parents
which when set adds missing group parents
to theListModemsRequest.Response.group_parents
. - Added
Grouped
andListModemsGrouped
to list modems in a grouped structure.
Currently, the only grouped structure is the gateway and its connected devices. - Performance fixes for
- message counts;
- listing messages when filtering on source.
ModemTransferService
- Added
TransferModemsRequest.Response.mark_received_automatically_failed
to indicate whether the
transfer was successfully marked received when requested, so we don't have to rollback the transfer.
If this field is false, the transfer needs to be marked as received manually in the receiver organization.
0.52.3
0.52.3 (2020-07-13)
This release contains a collection of performance fixes.
- Performance optimizations in the message processing pipeline.
- Much of the pipeline is now asynchronous, instead of processing in the context of the API request.
This means API requests will finish faster, and bucketing can be applied to message processing.
Backpressure is still available through the processes, so if the message processing would get overloaded,
requests will get delayed eventually. - Where before, the request would not finish until the message event was produced, this is no longer connected.
Keep this in mind when expecting an event before the end of the request.
There may be a delay of up to 30 seconds between the request and the event, depending on system load, timing
and request size.
- Much of the pipeline is now asynchronous, instead of processing in the context of the API request.
Changes
UserService
- Bugfix:
UserSelection.search
now also matches user ids.
Bugfixes
UserSelection.search
also matches user ids.Pagination.Result
next and previous are now unset instead of assigned an empty object when not available.
0.52 (2020-07-06)
(added for completion, since 0.52.3 is a bugfix release)
This release contains a few minor additions and some bugfixes.
Changes
AWSIoTService
- Added
created_by
, containing the user id of the user who created this publisher, toAWSIoTConfiguration
.
MQTTService
- Added
created_by
, containing the user id of the user who created this publisher, toMQTTPublisher
.
SlackIntegrationService
- Added
created_by
, containing the user id of the user who created this publisher, toSlackPublisher
.
WebhookService
- Added
created_by
, containing the user id of the user who created this publisher, toWebhook
.
Other
- Added
created_by
, containing the user id of the user who created this publisher, toPublisher
(the generic publisher object used in events).
Bugfixes
- Fixed a bug where some message would not generate message events, because of a bug in the changes that introduced
the newModemMessageBodyReceivedEvent
andModemMessageBodyParsedEvent
types.
No data was lost, and the events will be generated by the system after the update.
0.52
0.52 (2020-07-06)
This release contains a few minor additions and some bugfixes.
Changes
AWSIoTService
- Added
created_by
, containing the user id of the user who created this publisher, toAWSIoTConfiguration
.
MQTTService
- Added
created_by
, containing the user id of the user who created this publisher, toMQTTPublisher
.
SlackIntegrationService
- Added
created_by
, containing the user id of the user who created this publisher, toSlackPublisher
.
WebhookService
- Added
created_by
, containing the user id of the user who created this publisher, toWebhook
.
Other
- Added
created_by
, containing the user id of the user who created this publisher, toPublisher
(the generic publisher object used in events).
Bugfixes
- Fixed a bug where some message would not generate message events, because of a bug in the changes that introduced
the newModemMessageBodyReceivedEvent
andModemMessageBodyParsedEvent
types.
No data was lost, and the events will be generated by the system after the update.
0.51
0.51 (2020-06-29)
This release introduces automatic assignment rules for modem message body parsers.
These rules can be used to assign body parsers to modems across organizations, based on criteria like
tags, manufacturers and peripherals.
Changes
DashboardService
- Fixed a few comments.
EventService
-
Added two new modem message events:
ModemMessageBodyReceivedEvent
is a simplified version of theModemMessageReceivedEvent
that
doesn't have aMessage
object. Instead, it only hasmessage_id
,sent_at
andbody
.
This is useful for the cases where you need a lighter format and are not using body parsing.ModemMessageBodyParsedEvent
is an event that is produced for each message, for each body parser.
If you assign 3 body parsers to modem, they all try to parse the message. Every success produces this event.
This is useful for the cases where you're only interested in the parsed body.- For each of these events, an
EventType
has been added tobase.proto
- For all three message events, an example json has been added under
event-json-examples
.
In the future, more examples for other event types will be placed there.
-
Added new body parser events:
MessageBodyParserEvent.CreatedEvent
is produced when a new body parser is created.MessageBodyParserEvent.UpdatedEvent
is produced when a body parser is updated.MessageBodyParserEvent.DeletedEvent
is produced when a body parser is deleted.MessageBodyParserEvent.AssignedEvent
is produced when a body parser is directly assigned to a modem.MessageBodyParserEvent.UnassignedEvent
is produced when a body parser is removed from to a modem.MessageBodyParserEvent.AutomaticAssignmentEvent.CreatedEvent
is produced when a new automatic assignment rule
for body parsers is created.MessageBodyParserEvent.AutomaticAssignmentEvent.UpdatedEvent
is produced when an automatic assignment rules for
for body parsers is updated.MessageBodyParserEvent.AutomaticAssignmentEvent.DeletedEvent
is produced when an automatic assignment rules for
for body parsers is deleted.- For each of these events, an
EventType
has been added tobase.proto
-
Added a new event
UserValidationUpdatedEvent
when user validation has been updated. -
Fixed a few imports and comments.
ModemService
-
ModemMessage.ParsedBody
was updated to reflect the changes to body parsers:- Added
parser_identifier
toParsedBody
. This field contains a globally unique identifier
for the body parser used to parse the message body. - The
parser_id
is now deprecated in favour of theidentifier
. - Wrapped
result
anderror
in aoneof
, since only one can be present.
- Added
-
Added
UpdateModemStatusRequest.modem_selection
to update the status for multiple modems at the same time.- Deprecated the single modem field
UpdateModemStatusRequest.modem_number
, since the selection covers that case.
- Deprecated the single modem field
-
Fixed a few imports and comments.
ModemMessageBodyParserService
-
Deprecated the assignment-related calls in favour of the new
ModemMessageBodyParserAssignmentService
:- Deprecated
ListAssignedParsers
andListAssignedParsersRequest
- Deprecated
AssignToModems
andAssignModemMessageBodyParserToModemsRequest
- Deprecated
RemoveFromModems
andRemoveModemMessageBodyParserFromModemsRequest
- Deprecated
-
Updated
ModemMessageBodyParser
to match the new global body parser usage better:- Added
identifier
toModemMessageBodyParser
, a globally unique identifier for the body parser. - Added
organization
toModemMessageBodyParser
, to show who owns the body parsers. - Deprecated
id
inModemMessageBodyParser
in favour of theidentifier
. - [B] Dropped
ModemMessageBodyParser.AvailableToChildOrganizations.parser_id_for_child_organizations
in favour of the newidentifier
.
- Added
-
Updated
ModemMessageBodyParserSelection
to match the changes toModemMessageBodyParser
:- [B] Removed
SelectIdentifier
and its related field. - Added
identifiers
to search on identifiers. - Deprecated
ids
inModemMessageBodyParser
in favour ofidentifiers
. - Renamed
exclude_provided_parsers
toonly_owned_parsers
. - Renamed
providers
toowner_organizations
.
- [B] Removed
-
Added
ListModemMessageBodyParsersRequest.exclude_content
to not fill the content of the returned body parsers
(either thecontent_ksy
orsimple_parser
fields). -
Updated
UploadModemMessageBodyParserRequest
,UpdateSimpleModemMessageBodyParserRequest
,
RenameModemMessageBodyParserRequest
andUpdateChildOrganizationAvailabilityRequest
to match the changes
toModemMessageBodyParser
:- Added
identifier
and deprecatedid
.
- Added
-
Updated
TestModemMessageBodyParserRequest
to match the changes toModemMessageBodyParser
:- [B] Removed the
SelectIdentifier
-based field. - Added
identifier
.
- [B] Removed the
ModemMessageBodyParserAutomaticAssignmentService
-
Added
ModemMessageBodyParserAutomaticAssignmentService
to manage automatic assignment rules for body parsers.These rules can be used to automatically assign body parsers to modem that match specific criteria.
For example, all modems with tag "parse-this" and a peripheral "sensor": "water-sensor-brand-x" can be
assigned a parser for the data format for that peripheral.Criteria can be used and combined in a multitude of ways, but here are a few notable uses:
- assign a parser to tag, so assigning it to modems is as easy as adding a tag to that modem
- assign a parser to peripheral, so each modem with that peripheral gets that parser by default
- blacklisting a parser from a tag, so you can set that tag to exclude a modem from being assigned that parser
- blacklisting a parser from a set of modems, so you can exclude a set of modem from being assigned that parser
- add a parser to devices you manufacture, and apply this to child organizations, so that all of your
customers' modems are automatically assigned that parser
ModemMessageBodyParserAssignmentService
- Added
ModemMessageBodyParserAssignmentService
to assign body parsers directly to modems and
list assignments based on direct assignments to modems and the result of applying automatic assignment rules.
TokenService
- Added the
created
Token
toCreateTokenRequest
, so the output is more that just the token string.
Backwards incompatible changes
- [B] Removed
SelectIdentifier
and its related field fromModemMessageBodyParserSelection
.
Use the newidentifier
field instead. - [B] Dropped
parser_id_for_child_organizations
fromModemMessageBodyParser.AvailableToChildOrganizations
.
Use the newidentifier
field instead. - [B] Removed the
SelectIdentifier
-based field fromTestModemMessageBodyParserRequest
.
Use the newidentifiers
field instead.
0.50
0.50 (2020-06-18)
Changes
ModemService
- Fixed a bug when listing child organizations that could cause incomplete data.
TokenService
- Removed
override_allow_no_permissions
fromCreateTokenRequest
andUpdateTokenOrganizationPermissionsRequest
.
The API would check whether a token was created with or updated to an empty set of organization permissions.
This was confusing to users, and since permissions can easily be updated, we opted to remove it.
EmailNotificationPreferencesService
- Fixed a bug where a user without the
PUBLISHERS
permission would not be able to update their email preferences.
0.49.1
0.49.1 (2020-06-04)
Changes
ModemService
- Added
gateway_info
toModem
, with gateway-specific information, iff the modem is a gateway. - Added
connected_device_info
toModem
, with specific information, iff the modem is a connected device.
This replaces theconnected_to_gateway
andexternal_device_ids
fields onModem
, which are now deprecated.