Skip to content

Releases: telefonicaid/iotagent-node-lib

4.9.0

22 Aug 10:23
35ccd6f
Compare
Choose a tag to compare

This is the last version of the library supporting Nodev16 and Nodev18. Note that Nodev16 and Nodev18 were deprecated in September 2023 and April 2025 respectively, according to the node release schedule. You are highly encouraged to use Nodev20 or newer.

Changes (since 4.8.0)

  • Add: support NGSI-LD QueryEntities endpoint for lazy attributes (#1722)
  • Add: support for NGSI-LD valueType and more NGSI-LD sub-property types (new config server.ldSupport.datatype and associated env var IOTA_LD_SUPPORT_DATA_TYPE) (#1723)
  • Fix: store as lastMeasure just orignal measure when is provided (#1669)
  • Fix: init express trust proxy to proper fill from field of domain logger
  • Fix: fill from log field with real IP

4.8.0

23 May 10:21
a9edb42
Compare
Choose a tag to compare

Changes (since 4.7.0)

  • Add: notification-based commands (#1455)
  • Add: allow define headers in device commands (iotagent-json#873)
  • Add: index for Device model based on {service: 1, subservice: 1, id: 1, apikey: 1} (#1576)
  • Fix: Duplicated Devices when burst measures to non provisioned Device (iotagent-json#865)
  • Fix: modified JEXL transformations (toisostring, gettime, parseint, etc.) to return null instead of NaN when some unexpected situation occurs (#1701)

4.7.0

03 Feb 10:56
da46dda
Compare
Choose a tag to compare

Changes (since 4.6.0)

  • Add: store (and recover) previous jexlctxt and make available in current jexlctxt (#1690)
  • Add: option to force to use CB flow control with new API field useCBflowControl at group and device device level (#1420)
  • Add: useCBflowControl config setting (IOTA_CB_FLOW_CONTROL env var) to set CB flow control behaviour at instance level (#1420)
  • Add: allow remove last measure in device
  • Add: store last measure in device (by id, apikey, service and subservice) and new API field storeLastMeasure at group and device levels (#1669)
  • Add: storeLastMeasure config setting (IOTA_STORE_LAST_MEASURE env var) to set default store last measure behaviour at instance level (#1669)
  • Fix: set polling and transport for autoprovisioned devices
  • Upgrade express dep from 4.19.2 to 4.21.2
  • Upgrade mongodb devdep from 4.17.1 to 4.17.2
  • Upgrade mongoose dep from 5.13.20 to 8.9.5 (solving vulnerabilies CVE-2024-53900 and CVE-2025-23061) (#1674)

4.6.0

18 Sep 14:33
871a394
Compare
Choose a tag to compare

Changes (since 4.5.0):

  • Add: openmetrics-compatible /metrics endpoint in nortbound API (#1627)
  • Add: new JEXL transformations for including into an array keys that have a certain value: valuePicker and valuePickerMulti
  • Add: attribute metadata and static attributes metadata added to jexl context (#1630)
  • Add: /iot/groups API endpoints (as equivalent to /iot/services) (#752)
  • Fix: service header to use uppercase in case of update and delete (#1528)
  • Fix: Allow to send to CB batch update for multimeasures for NGSI-LD (#1623)
  • Upgrade body-parser dep from 1.20.0 to 1.20.3
  • Deprecated: /iot/services API routes
  • Remove: push-based stats (including stats section in config file)

4.5.0

11 Jun 08:27
4925602
Compare
Choose a tag to compare

Changes (since 4.4.0)

  • Fix: do not propage TimeInstant when explicitAttrs is empty array (#1606)
  • Fix: update device using previous device apikey to avoid error when apikey is updated (iotagent-json#833)
  • Fix: allow send multiple measures to CB in a batch (POST /v2/op/update) and sorted by TimeInstant when possible, instead of using multiples single request (iotagent-json#825, #1612)
  • Fix: default express limit to 1Mb instead default 100Kb and allow change it throught a conf env var 'IOTA_EXPRESS_LIMIT' (iotagent-json#827)
  • Fix: accept 201 status code from context broker with NGSI-LD interface when first measure is sent and device is created in it (#1617)

4.4.0

26 Apr 11:09
c3f4d7e
Compare
Choose a tag to compare

WARNING: note that the change allow devices with the same device_id in the same service and subservice but different apikey (#1589) is not backward compatible. Take into account it may impact in existing deployments.

Changes (since 4.3.0):

  • Add: allow devices with the same device_id in the same service and subservice but different apikey (#1589)
  • Add: process JEXL expressions in metadata attributes (#1598)
  • Fix: TimeInstant mapped from attribute overrides default behaviours (#1557)
  • Fix: reduce information showed handling errors to just config flags (#1594)
  • Upgrade pymongo dep from 4.3.3 to 4.6.3
  • Upgrade express dep from 4.18.1 to 4.19.2

4.3.0

27 Feb 13:31
ffbf863
Compare
Choose a tag to compare

Changes (since 4.2.0):

  • Add: POST /iot/op/delete operation to delete multiple devices at once (#1578)
  • Add: log and return device/group information when EntityGenericError, TypeNotFound, DeviceNotFound, BadTimestamp, BadGeocoordinates, CommandNotFound, GroupNotFound, MissingAttributes, DuplicateDeviceId and DuplicateGroup errors (iotagent-json#815)
  • Fix: store device subscriptions updates (#1086)
  • Fix: badtimestamp error should not progress to ContextBroker
  • Hardening: simplify implementation so typeInformation contains global config values (#1515)

4.2.0

30 Jan 15:36
250200e
Compare
Choose a tag to compare

Changes (since 4.1.0):

  • Add: progress non expected id and type in measures under measure_ prefix

4.1.0

08 Jan 15:03
4cb3983
Compare
Choose a tag to compare

Changes (since 4.0.0):

  • Add: include apikey in queries to memory registry for groups
  • Add: transport and endpoint to Group model (#1542)
  • Fix: store commands from Group at Device level at provision device time
  • Fix: log device id when BadTimestamp error (*)

(*) Also in hotfix version 4.0.1

4.0.1

29 Nov 11:27
e29a720
Compare
Choose a tag to compare

Hotfix for version 4.0.0

Changes (since 4.0.0):

  • Fix: log device id when BadTimestamp error