Releases: telefonicaid/iotagent-node-lib
2.14.0
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
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
andextraArgs
) 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
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
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
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
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
2.8.1
This is the last version of the library supporting Nodev4. Note that Nodev4 was deprecated time ago, according to the node release schedule. Following also this schedule, note also that Nodev6 will be removed soon, just after April 2019. You are highly encouraged to use Nodev8 or newer.
Changes (since release 2.7.0):
- Add: extends OAuth2 authentication to support integration with FIWARE Keyrock IDM (#663)
- Add: implements OAuth2 authentication as part of device provisioning requests (#663)
- Add: uses provisioned timezone to generate TimeInstant values (#672)
- Add: missed conf env vars about authentication (#704)
- Add: timestamp in device and group provision (#655)
- Add: protocol in device provision if not provided (#652)
- Fix: conf env var about contextbroker host
- Fix: use trust and cbHost from deviceGroup (#685)
- Fix: multientity multimeasure with the same att name
- Fix: missing support for device=true in the delete service endpoint (see #596)
- Fix: timestamp is now included just in non empty (more than id and type) multienty entitites
- Fix: object_id fields are not introduced in CB requests by alias plugin (#660)
- Fix: isDomain is not used anymore for context availability registration (#701)
- Fix: checks ISO8601 timeinstants provided by devices (#679)
- Fix: corrects linting and includes npm run lint in travis CI
- Fix: mosquitto.conf.example file not found by iot/mosquitto Dockerfile (#554)
- Upgrade: logops dependence from 1.0.0 to 1.0.8
- Upgrade: async dependence from 1.5.2 to 2.6.1
- Upgrade: body-parser dependence from ~1.11.0 to ~1.18.3
- Upgrade: express dependence from ~4.11.2 to ~4.16.4
- Upgrade: jison dependence from 0.4.17 to 0.4.18
- Upgrade: moment dependence from ~2.19.4 to ~2.22.2
- Upgrade: mongodb dependence from 2.2.35 to 3.1.8
- Upgrade: mongoose dependence from 4.13.12 to 5.3.6
- Upgrade: mustache dependence from 2.2.1 to 3.0.0
- Upgrade: query-string dependence from 4.3.4 to 6.2.0
- Upgrade: request dependence from 2.39.0 - 2.81.0 to 2.88.0
- Upgrade: underscore dependence from ~1.7.0 to ~1.9.1
- Ensure precise dependencies (~=) are used in packages.json
- Remove: XML related code, dependencies and files (#691)
- Remove: old unused dependencies (sax, grunt, closure-linter-wrapper)
Note that release 2.8.0 was never released. There was a wrong publishing in NPM registry with that number, so we withdrawed it and step directly to 2.8.1.
2.7.0
Changes (since release 2.6.0):
- Add: allow NGSIv2 for updating active attributes at CB, through configuration, supporting all plugins (Timestamp Compression, Timestamp Processing, Expression Translation, Attribute Alias, Event, Bidirectionality and Multientity) (#527)
- Add: supports NGSIv2 for device provisioning (entity creation and context registration) at CB (#527)
- Add: casting attribute's values to JSON native types (activable by config.autocast)
- Add: support HTTPS requests toward Keystone (if url is used in the authorization configuration)
- Add: support OAuth2 provider as authentication backend (#591)
- Add: support for HTTPS requests toward CB (if IOTA_CB_URL is used) (#578)
- Add: support HTTPS requests toward IOTAManager (if IOTA_IOTAM_URL is used) (#578)
- Add: log mongo error before raise alarm (#577)
- Add: configuration service is exposed as part of the module
- Fix: Check boolean config fields against right boolean value
- Fix: IOTA_SIGLE_MODE, IOTA_APPEND_MODE, IOTA_POLLING_EXPIRATION, IOTA_POLLING_DAEMON_FREQ env vars are now taken into account (previously there were ignored)
- Fix: IOTA_MONGO_RETRIES and IOTA_MONGO_RETRY_TIME env vars are now taken into account (previously there were ignored)
- Fix: automatic device provisioning by means of Configuration Group fails due to a bug in findConfigurationGroup function (#544)
- Fix: static attributes seem not supported in Configuration Group provisioning (#550)
- Fix: documentation and examples, using correctly "attributes" field in the Configuration API instead of "active" (#558)
- Fix: correctly return 404 when asking to remove a not existing device (#585)
- Fix: Context broker environment variables are correctly loaded
- Fix: GET call to northbound group endpoint returns multiple services (#604)
- Fix: timestampProcessPlugin supports processing an array of NGSI entities in NGSIv2 (#621)
- Fix: undefined MONGO-ALARMS in logs due to a bad mongo query. (#630, #577)
- Fix: multientity ngsiv1 duplicated attributes in entity (#627)
- Fix: match attributes by object_id using multientity plugin and alias in ngsiv2 (#629)
- Fix: check foundGroup count in generateDuplicateHandle (#633)
- Fix: allow provision device entity with multientity attributes (#628)
- Fix: multientity with multiple measures in ngsiv2 (#635)
- Fix: aligns expression plugin and config.autocast casting (#643)
- Fix: replace context by ctx name var to avoid weird collisions
- Upgrade mongodb dependency version to 2.2.35
- Upgrade mongoose dependency version to 4.13.12
2.6.0
Changes (since release 2.5.0):
- Upgrade mongoose dependence version to 4.13.3 (*)
- Fix command name in some commands logs at debug log level
- Fix bug in mergeArrays function of deviceService, precluding updates to work when internalAttributes of type Array were used (#571)
(*) Also in release 2.5.1