Murano Release, July 4, 2017




The release notes below are intended to provide descriptions of any new features, improvements, and bug fixes included in this release of Exosite’s Murano platform. Where applicable, an explanation of the user impact is provided, as well as any additional information that may be useful.


  • We extended support for the “require” call in scripting. Now, if a module is referenced as “local module = require modulename”, only the cached result will be returned; whereas, if a module is referenced as “local module = modulename()”, the result of a new execution of the module will be returned.
  • A “CIK” authentication type has been introduced to support device-side software that does not differentiate between uppercase and lowercase characters for authentication credentials. The CIK authentication type limits authentication credentials to “a-f” and “0-9” as valid characters.
  • We continue to improve the ways in which devices can authorize with Murano. We added a “Password” type of authentication to the HTTP device API and added support for “Token” type authentication in the One Platform compatibility layer.  


  • The term “module” has been introduced as an alias for “library” in scripting and route references. Going forward, although library will continue to exist, we will use the term “module” in documentation and examples. For example, route.libraries -> route.modules.
  • In order to allow more flexible naming schemes for module-name implementation, module names referenced by “require” statements in scripting can now contain a period (“.”).
  • Websockets now supports the use of the parameter “path” in URLs. Previously, the term “path” was a reserved word and could not be used as a parameter.


  • Fixed a problem where Applications could still receive log information from Products even after the Product association was removed.
  • When a high number of Product lookup queries came from Applications, the resulting cache misses caused the Application to sometimes miss Product events. This has been fixed.
  • The incorrect encoding of double colons (“::”) by the Keystore.command() has been fixed. Previously, any instances of double colons were stored and returned as “"%3A%3A".
  • Fixed an issue where multiple uses of “require” in a single line of scripting code would cause the script execution to fail. This was sometimes used to enable hybrid local/cloud development environments.
  • Fixed a concurrency issue with the Timer service where Timer.sendAfter calls would intermittently fail with a 500 code when trying to override an existing timer.
  • Made a correction to Scripts.trigger() return codes: when Scripts.trigger() is called with an invalid event handler ID; it now returns a 404 instead of a 502.
Have more questions? Submit a request