Skip to content

Latest commit

 

History

History
91 lines (85 loc) · 4.87 KB

CHANGELOG.md

File metadata and controls

91 lines (85 loc) · 4.87 KB

Change Log

1.1.2 (2018-02-24)

  • A large number of bug fixes as well as stability and performance improvements.
  • Three security vulnerabilities disclosed by Maximilian Hils have been patched.
  • New config option UDP_CONNECTION_REQUEST_PORT to specify binding port for UDP connection requests.
  • New config option DATETIME_MILLISECONDS to strip milliseconds from dateTime values.
  • New config option BOOLEAN_LITERAL to use 1/0 or true/false for boolean values.
  • Parameter values that cannot be parsed according to the reported type now show a warning message.
  • Virtual parameter scripts now use the variable 'args' instead of the special 'TIMESTAMPS' and 'VALUES' variables. The content of the args array is: {declare timestamps}, {declare values}, {current timestamps}, {current values}.
  • Virtual parameter value types are now inferred from the JavaScript type if the returned value attribute is not a value-type pair.
  • Show a fault when a virtual parameter script doesn't return the required attributes.
  • Redis is now optional (and disabled by default), reducing the complexity of scalable deployments.
  • Better detection of cyclical presets resulting in fewer faults for complex provisioning scripts.
  • Math.random() is now deterministic on per-device basis. A function has been added to allow specifying a seed value (e.g. Math.random.seed(Date.now())).
  • Overload spikes are now handled gracefully by refusing to accept new sessions temporarily when under abnormal load.
  • Added log messages for session timeouts, connection drops, and XML parsing errors.
  • Date.now() now takes an optional argument to specify "time steps" (in milliseconds). This can be used to ensure a group of parameters are all refreshed at the same time intervals.
  • Only the non-default configuration options are now logged at process start.
  • Faults caused by errors from extensions now show a cleaner stack trace.
  • Exit main process if there are too many worker crashes (e.g. when DB is down).
  • Updated dependencies and included a lockfile to ensure installations get the exact dependencies it was tested against.

1.1.1 (2017-03-23)

  • Avoid crashing when connection request credentials are missing.
  • Show a warning instead of crashing when failing to parse parameter values according to the expected value type.
  • Add missing "Registered" event.
  • Fix bug where in certain cases many more instances than declared are created.
  • Fix parameter discovery bug when declared path timestamp is 1 or is not set.
  • Fix preset precondition failing when testing against datetime parameters and certain other parameters like _deviceId._ProductClass.

1.1.0 (2017-03-10)

  • Provisions enable implementing dynamic device configuration or complex device provisioning work flow using arbitrary scripts.
  • Virtual parameters are user-defined parameters whose values are evaluated from a custom script.
  • Extensions are sandboxed Node.js scripts that are accessible from provision and virtual parameter scripts to facilitate integration with external entities.
  • Support for UDP/STUN based connection requests for reaching devices behind NAT (TR-069 Annex G).
  • Presets can now be scheduled using a cron-like expression.
  • Presets can now be tied to specific device events (e.g. boot).
  • Presets precondition queries no longer support "$or" or other MongoDB logical operators.
  • Faults are no longer a part of tasks but are now first class objects.
  • Presets are now assigned to channels. A fault in one channel only blocks presets in that channel.
  • New API CRUD functions for provisions, virtual parameters, and faults.
  • New config options for XML output.
  • API responses now include "GenieACS-Version" header.
  • Graceful shutdown when receiving SIGINT and SIGTERM events.
  • Support SSL intermediate certificate chains.
  • Supported Node.js versions are 6.x and 7.x.
  • Supported MongoDB versions are 2.6 through 3.4.
  • Expect performance differences due to major under the hood changes. Some operations are faster and some are slower. Overall performance is improved.
  • GenieACS will no longer fetch the entire device data model upon first contact but will instead only fetch the parameters it needs to fulfill the presets.
  • Logs have been overhauled and split into two streams: process log (stderr) and access log (stdout). Also added config options to dump logs to files rather than standard streams.
  • Connection request authentication credentials are picked up from the device data model if available. config/auth.js is still supported as a fallback and now supports an optional callback argument.
  • Custom commands have been removed. Use virtual parameters and/or extensions.
  • Aliases and value normalizers (config/parameters.json) have been removed. Use virtual parameters.
  • The API /devices/<device_id>/preset has been removed.
  • Rarely used RequestDownload method no longer supported.
  • The TR-069 client simulator has moved to its own repo at https://github.com/zaidka/genieacs-sim