Skip to content

Releases: telefonicaid/iotagent-node-lib

2.16.0

18 Jun 08:00
f01a7b7
Compare
Choose a tag to compare

This release removes support from Nodev10. Note that Nodev10 was deprecated in May 2021 according to the node release schedule. You are highly encouraged to use Nodev12 or newer.

Changes (since 2.15.0)

  • Add: more functions to JEXL transformations (#1052)
  • Add: db uri and options in mongo connection log INFO trace
  • Fix: prevent to update an entity with an empty payload
  • Fix: use getDeviceSilently in checkDuplicates to avoid raise a false mongo alarm.
  • Fix: expose getConfigurationSilently to enable retrieve a configuration without raise a false mongo alarm (#1007)
  • Fix: add getTypeSilently for device group and use in device registration to avoid false mongo alarm
  • Fix: check isNaN value in JEXL extractContext to avoid misbehaviours (#1066)
  • Fix: simplify contextAvailable for JEXL perser allowing null and undefined substitutions (#1053)
  • Fix: do not transform attribute value using attribute type after apply expression plugin JEXL (#1036)
  • Fix: use explicitAttrs defined in group is not defined at device level (#1045, #1016)
  • Fix: autoprovision feature, removing the relationship with appendMode (#1003)
  • Fix: autoprovision functionality not working as expected when configured at device/group level in NGSIv1 API (#1003)
  • Fix: appendMode not working in NGSIv2
  • Fix: apply NGSIv2 timestamp properly to array of entities
  • Fix: check expression context before apply it in entity_name (#1040)
  • Fix: check entityId is valid after apply expression in multientity plugin (#1039)
  • Fix: check access to data in fillService facility
  • Fix: use expressionLanguage defined in group is not defined at device level (#1027)
  • Fix: ensure service of groups, device and commands is stored in mongo in lowercase (#1023)
  • Fix: group command is not provisioned in device when entity_type is different (#1011)
  • Fix: avoid automatic conversion from geo:xxxx ('xxxx' diferent from 'json') to geo:json (reverts the work done in PR #854) (*)
  • Fix: update MongoDB accesses to use lean() for faster retrieval
  • Fix: PUT /iot/devices/:deviceId operation to implement proper update of entity_name and entity_type (#770)
  • Fix: Include @context on NGSI-LD subscription (#1019)
  • Upgrade underscore dep from 1.9.1 to 1.12.1 due to security vulnerability
  • Upgrade mongodb dep from 3.2.3 to 3.6.8
  • Upgrade mongoose dep from 5.7.5 to 5.7.7
  • Set Nodejs 12 as minimum version in packages.json (effectively removing Nodev10 from supported versions)

(*) Also included in 2.15.1

2.15.1

06 Apr 14:21
3eccf36
Compare
Choose a tag to compare

Changes (since 2.15.0):

  • Hotfix: avoid automatic conversion from geo:xxxx ('xxxx' diferent from 'json') to geo:json (reverts the work done in PR #854)

2.15.0

18 Feb 09:47
70dd0c2
Compare
Choose a tag to compare

This is the last version of the library supporting Nodev10. Note that Nodev10 will be deprecated in May 2021, according to the node release schedule. You are highly encouraged to use Nodev12 or newer.

Changes (since 2.14.0):

  • Add: return apikey in GET device if device was provisioned with explicit apikey (#977)
  • Add: allow update device apikey using Update (put) API (#978)
  • Add: defaultEntityNameConjunction config (env var IOTA_DEFAULT_ENTITY_NAME_CONJUNCTION) and configuration group API field for default entity_name conjunction (#944)
  • Add: prettier code formatting
  • Add: husky and lint-staged
  • Add: basic NGSI-LD support as experimental feature (#842)
    • Active measures
    • GeoJSON and DateTime, unitCode and observedAt NGSI-LD support
      • The NGSI v2 TimeInstant element has been mapped onto the NGSI-LD observedAt property
      • The NGSI v2 metadata.unitCode attribute has been mapped onto the NGSI-LD unitCode property
    • Multi-measures
    • Lazy Attributes
    • Commands
    • Mixed mode (based in ngsiVersion field in the provisioning API)
    • Support to linked data entities to enable the traversal of the nodes of the knowledge graph
  • Fix: ensure use proper expression parser in multientity plugin (#989)
  • Fix: ensure registrationId is updated when device with commands is updated
  • Fix: use null instead of ' ' as default attribute value in entity provisioned (#938)
  • Fix: Add support for lazy and internal_attributes in service notifications to Manager (#768)
  • Fix: combine multi-entity and expressions with duplicate attribute name, by enabling expression over object_id (which are not duplicated in a attribute mapping contrary to name) (#941)
  • Fix: bug in legacy and JEXL expression that was not converting "0" to 0
  • Fix: support for mapping different attributes to the same entity_name
  • Fix: Ensure GeoJSON is correctly encoded in NGSI-v2 requests (#961)
  • Update codebase to use ES6
    • Remove JSHint and jshint overrides
    • Add esLint using standard tamia presets
    • Replace var with let/const
    • Fix or disable eslint errors

2.14.0

16 Nov 11:02
6353cbd
Compare
Choose a tag to compare

Changes (since 2.13.0):

  • Add: enable use group commands in device and register it in iotagent-manager
  • Add: extends commands definition to add mqtt options (qos, retain)
  • Add: include findTypeSilently for groups to log some false errors as debug instead of alarm
  • Add: include description field in group schema
  • Add: include from in log context (#918)
  • Add: lax validation mode using IOTA_RELAX_TEMPLATE_VALIDATION (#920)
  • Fix: add missed expressionLanguage to deviceProvisioningServer
  • Fix: bad type in check expressionLanguage at device provision
  • Fix: Update internal attributes in Group update (#917)
  • Fix: Static attributes from service not applied if device has static attributes (#757)
  • Fix: IOTA_EXPLICIT_ATTRS env var was not working
  • Move Docker secret support inside the Node Application - remove Entrypoint (#885)

2.13.0

14 Sep 08:03
e5928b4
Compare
Choose a tag to compare

This release removes support from Nodev8. Note that Nodev8 was deprecated in December 2019 according to the node release schedule. You are highly encouraged to use Nodev10 or newer.

Changes (since 2.12.0):

  • Add: support for JEXL as expression language (#801, #687, #868)
  • Add: expressionLanguage to save/update device and group
  • Add: mongodb additional options (ssl and extraArgs) to be able to connect "MongoDB as a Cloud Service" (#859)
  • Add: template to allow metadata to be set via the Device API (#870)
  • Add: selectively ignore some of the measures (iotagent-json#416, iotagent-ul#372)
  • Fix: multientity when more than 2 attribute with same name and object_id (#877)
  • Fix: log always writing the same correlator id and transaction id (iota-json#426, iota-ul#326)
  • Fix: log device group error detail when group not found
  • Fix: fix and use fillService to fix logs in provision
  • Fix: some ngsi service log levels
  • Fix: listing service groups returns only a single service group (#894)
  • Fix: do not intercept error about DEVICE_GROUP_NOT_FOUND in checkApiKeyAndResource (#889)
  • Fix: do not intercept error about DEVICE_NOT_FOUND in findOrCreate and checkDUplicates device (#889)
  • Overall update of dev package dependencies
  • Set Nodejs 10 as minimum version in packages.json (effectively removing Nodev8 from supported versions)

2.12.0

07 Apr 14:21
be9cae2
Compare
Choose a tag to compare

This is the last version of the library supporting Nodev8. Note that Nodev8 was deprecated in December 2019, according to the node release schedule. You are highly encouraged to use Nodev10 or newer.

Changes (since 2.11.0):

  • Add: NGSIv2 metadata support to device provisioned attributes
  • Add NGSIv2 metadata support to attributeAlias plugin.
    Add mongodb authentication: IOTA_MONGO_USER, IOTA_MONGO_PASSWORD and IOTA_MONGO_AUTH_SOURCE (#844)
  • Fix: Error message when sending measures with unknown/undefined attribute
  • Fix: add null check within executeWithSecurity() to avoid crash (#829)

2.11.0

04 Nov 15:03
b16a564
Compare
Choose a tag to compare

Changes (since 2.10.0):

  • Add: NGSIv2 context forwarding (lazy attributes and commands) (#527)
  • Add: autoprovision (appendMode) in device and group provision (#805)
  • Add: configure multithreading using cluster nodejs module (through multicore config.js parameter or IOTA_MULTI_CORE environment variable).
  • Fix: avoid using throttling in subscriptions (both in NGSIv1 and NGSIv2 configurations)
  • Fix: deviceRegistrationDuration ignored in NGSIv2 registrations and subscriptions creation so they are created non-expirable
  • Fix: possible startup fail using IOTA_CB_ and IOTA_NORTH_ env vars due to uninitization of config object
  • Fix: using "append" instead of "APPEND" (which is deprecated) in NGSIv2 operations
  • Fix: allow blank as an override for defaultResource
  • Upgrade mongoose dependency from 5.5.4 to 5.7.5 due to security warning

2.10.0

13 Aug 08:40
03a00c4
Compare
Choose a tag to compare

Changes (since 2.9.0):

  • Set Nodejs 8 as minimum version in packages.json (effectively removing Nodev6 from supported versions)
  • Add: to use apikey to search group configuration at device registration time
  • Upgrade async dependency from 2.6.1 to 2.6.2
  • Upgrade body-parser dependency from ~1.18.3 to ~1.19.0
  • Upgrade moment dependency from ~2.22.2 to ~2.24.0
  • Upgrade moment-timezone dependency from ~0.5.21 to ~0.5.25
  • Upgrade mongodb dependency from 3.1.8 to 3.2.3
  • Upgrade mongoose dependency from 5.3.6 to 5.5.4
  • Upgrade query-string dependency from 6.2.0 to 6.5.0
  • Upgrade coveralls dev dependency from ~3.0.2 to ~3.0.3
  • Upgrade jshint dev dependency from ~2.9.6 to ~2.10.2
  • Upgrade mocha dev dependency from 5.2.0 to 6.1.4
  • Upgrade nock dev dependency from 10.0.1 to 10.0.6
  • Upgrade timekeeper dev dependency from 2.1.2 to 2.2.0

2.9.0

22 May 10:56
06d7dfc
Compare
Choose a tag to compare

This is the last version of the library supporting Nodev6. Note that Nodev6 was deprecated in April 2019, according to the node release schedule. You are highly encouraged to use Nodev8 or newer.

Changes (since release 2.8.1):

  • Set Nodejs 6 version in packages.json (effectively removing Nodev4 as supported version)
  • Add: new functions to set callbacks for removal of devices and groups (#735)
  • Add: support for authentication to NGSI subscription requests (#592)
  • Add: IOTA_AUTH_URL, IOTA_AUTH_CLIENT_ID, IOTA_AUTH_CLIENT_SECRET and IOTA_AUTH_TOKEN_PATH env vars
  • Add: handlers defined with setConfigurationHandler receive as argument the service, subservice, resource and apikey (#769)
  • Fix: process dies if reconnection to DB fails instead of remain in a zombie state (#772)
  • Fix: incomplete HTTPS support for NGSI subscriptions (#593)
  • Fix: user provider timestamp correctly propagated to mapped entities when multientity pluging is used (#748)
  • Fix: add ?type parameter in CB request updates to avoid potential entity ambiguities (#733)
  • Upgrade from logops 1.0.8 to 2.1.0
  • Upgrade from node-uuid ~1.4.1 to uuid ~3.3.2.

2.7.50

26 Apr 09:50
0d11ebf
Compare
Choose a tag to compare

An intermediate version between 2.7.0 and 2.8.1, corresponding to an snapshot of the code at commit 3c8860b (circa Dec 4th 2018, 13:01 CET)