Skip to content

Releases: HiberGlobal/api

0.58

24 Sep 11:35
Compare
Choose a tag to compare

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

10 Sep 15:14
Compare
Choose a tag to compare

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 to ModemLocationUpdatedEvent 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 to EventStreamRequest, 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

11 Aug 12:16
Compare
Choose a tag to compare

0.55 (2020-08-11)

This release introduces the option to transfer modems without their data.

Changes

ModemTransferService
  • Added type TransferModemsRequest.DataTransferMode and field TransferModemsRequest.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

10 Aug 15:29
Compare
Choose a tag to compare

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

27 Jul 15:17
Compare
Choose a tag to compare

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 and CreateOrganizationRequest.avatar.
  • Added GetOrganizationAvatar request to fetch avatars for organizations.
ModemService
  • Added ListModemsRequest.include_missing_group_parents which when set adds missing group parents
    to the ListModemsRequest.Response.group_parents.
  • Added Grouped and ListModemsGrouped 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

13 Jul 15:33
Compare
Choose a tag to compare

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.

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, to AWSIoTConfiguration.
MQTTService
  • Added created_by, containing the user id of the user who created this publisher, to MQTTPublisher.
SlackIntegrationService
  • Added created_by, containing the user id of the user who created this publisher, to SlackPublisher.
WebhookService
  • Added created_by, containing the user id of the user who created this publisher, to Webhook.
Other
  • Added created_by, containing the user id of the user who created this publisher, to Publisher
    (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 new ModemMessageBodyReceivedEvent and ModemMessageBodyParsedEvent types.
    No data was lost, and the events will be generated by the system after the update.

0.52

06 Jul 11:45
Compare
Choose a tag to compare

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, to AWSIoTConfiguration.
MQTTService
  • Added created_by, containing the user id of the user who created this publisher, to MQTTPublisher.
SlackIntegrationService
  • Added created_by, containing the user id of the user who created this publisher, to SlackPublisher.
WebhookService
  • Added created_by, containing the user id of the user who created this publisher, to Webhook.
Other
  • Added created_by, containing the user id of the user who created this publisher, to Publisher
    (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 new ModemMessageBodyReceivedEvent and ModemMessageBodyParsedEvent types.
    No data was lost, and the events will be generated by the system after the update.

0.51

29 Jun 12:47
Compare
Choose a tag to compare

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 the ModemMessageReceivedEvent that
      doesn't have a Message object. Instead, it only has message_id, sent_at and body.
      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 to base.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 to base.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 to ParsedBody. 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 the identifier.
    • Wrapped result and error in a oneof, since only one can be present.
  • 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.
  • Fixed a few imports and comments.

ModemMessageBodyParserService
  • Deprecated the assignment-related calls in favour of the new ModemMessageBodyParserAssignmentService:

    • Deprecated ListAssignedParsers and ListAssignedParsersRequest
    • Deprecated AssignToModems and AssignModemMessageBodyParserToModemsRequest
    • Deprecated RemoveFromModems and RemoveModemMessageBodyParserFromModemsRequest
  • Updated ModemMessageBodyParser to match the new global body parser usage better:

    • Added identifier to ModemMessageBodyParser, a globally unique identifier for the body parser.
    • Added organization to ModemMessageBodyParser, to show who owns the body parsers.
    • Deprecated id in ModemMessageBodyParser in favour of the identifier.
    • [B] Dropped ModemMessageBodyParser.AvailableToChildOrganizations.parser_id_for_child_organizations
      in favour of the new identifier.
  • Updated ModemMessageBodyParserSelection to match the changes to ModemMessageBodyParser:

    • [B] Removed SelectIdentifier and its related field.
    • Added identifiers to search on identifiers.
    • Deprecated ids in ModemMessageBodyParser in favour of identifiers.
    • Renamed exclude_provided_parsers to only_owned_parsers.
    • Renamed providers to owner_organizations.
  • Added ListModemMessageBodyParsersRequest.exclude_content to not fill the content of the returned body parsers
    (either the content_ksy or simple_parser fields).

  • Updated UploadModemMessageBodyParserRequest, UpdateSimpleModemMessageBodyParserRequest,
    RenameModemMessageBodyParserRequest and UpdateChildOrganizationAvailabilityRequest to match the changes
    to ModemMessageBodyParser:

    • Added identifier and deprecated id.
  • Updated TestModemMessageBodyParserRequest to match the changes to ModemMessageBodyParser:

    • [B] Removed the SelectIdentifier-based field.
    • Added identifier.
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 to CreateTokenRequest, so the output is more that just the token string.

Backwards incompatible changes

  • [B] Removed SelectIdentifier and its related field from ModemMessageBodyParserSelection.
    Use the new identifier field instead.
  • [B] Dropped parser_id_for_child_organizations from ModemMessageBodyParser.AvailableToChildOrganizations.
    Use the new identifier field instead.
  • [B] Removed the SelectIdentifier-based field from TestModemMessageBodyParserRequest.
    Use the new identifiers field instead.

0.50

18 Jun 14:29
Compare
Choose a tag to compare

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 from CreateTokenRequest and UpdateTokenOrganizationPermissionsRequest.
    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

04 Jun 13:35
Compare
Choose a tag to compare

0.49.1 (2020-06-04)

Changes

ModemService
  • Added gateway_info to Modem, with gateway-specific information, iff the modem is a gateway.
  • Added connected_device_info to Modem, with specific information, iff the modem is a connected device.
    This replaces the connected_to_gateway and external_device_ids fields on Modem, which are now deprecated.