Murano Development 
Murano enable advanced users to customize IoT behavior entirely. From an existing application, Iot-Connectors or build a whole new experience from scratch.
IMPORTANT: This page targets advanced Murano users.
If your account doesn't display discussed features, please upgrade your Murano account tier.
Table of Contents
- What is a Murano Solution?
- Create a blank application
- The Solution Management page
- Get Started
- Links
Customizing Micro-verticals Applications
Micro-verticals Applications provided by Exosite such as Exohome & Exosense do not enable script customization to avoid any breaking changes. Reach our support for more information. Good news, both application provides built-in customizable branding, dash-boarding & data-transformation. Check it out on the relevant pages:
Keep in mind that if you manage the device connectivity, you make any advanced data manipulation in the IoT-Connector itself.
What is a Murano Solution
A solution is a Cloud software hosted on Murano. It handles data from devices or end-users.
It contains a set of scripting logic and micro-services configuration.
Both Murano Applications & IoT-Connector are solutions with a different set of scripts & configuration.
Murano micro-services provides operations and events which can be consumed by the solution scripting logic.
- Operations are function which can be call from scripting. Example: sending an email with
Email.send({..})
. - Events are trigger which executes a scripting logic. Example: handling an incoming message from a device.
Murano is an event-based system. This means the scripting logic execution is always triggered by an incoming event. Events are always emitted by a micro-service configured for the solution.
To start on Murano development we suggest you to get familiar with the various components from the Murano solution page.
Create a blank application
First follow the next steps:
- Click on the
Create Application
button and give a name & domain (Be careful the domain is globally unique).
- Done! You will see the new entry on the Application list. Click on it to access the management page.
Solution Management page
The Murano User Interface provides an interactive way to manage and update a solution.
Micro-services (including IoT-Connectors) configuration interacting from or by the scripting
Scripting resources shared across events
The solution public API definition
Public static files usable for website resources (Eg. Html, CSS & image)
End-Users & Roles
Private static files management (Eg. Firmware binaries)
See what is happening on the solution
General configuration & usage. For IoT-Connectors also contains the connectivity settings.
For IoT-Connector Products only:
Get Started
Go through the Getting Started guide and refer to below link for more details.
The Scripting reference
The next step is to discover the capabilities provided by the Murano services.
The Micro-Services reference
Also see the services guides for concrete usage examples. And if you want to integrate another 3rd party API refer to:
Add your own Micro-Service
From this point you are ready to have a look to our Application Quickstart for a full end-to-end example. Then get your development environment ready with the tools presented in next section.
The Tools
Once you know the basic, there is 3 different ways to do development on Murano:
1. On the UI editor
Suitable for quick tests, learning & troubleshooting. Create an endpoint return some values, have fun. Check out the above link for the different sections tutorials. Once you are familiar with the system you probably should consider using one of the following development method.
2. Murano-Cli
The Murano-Cli enables you to develop on your local computer using your favorite IDE and when ready push your code live to Murano.
3. Murano Solution Template & Github CICD
In most cases you should set in place state-of-the-art development & practices with our seamless Murano Github Template & CICD integration
Links
A few guides for some common development case.
General
Micro-Services
- Send Notifications (Twilio, Email)
- Build API for external Apps (Webservice)
- Record logs & metrics (Keystore)
- Social media Authentication (Gatekeeper)
- Azure Event Hub (Eventhub)
- Rule (Rule)
- Bring your own relational DB (Postgresql)
- Solution Permissions Management Service (Spms)
- [Time-Series Storage (Tsdb) - Coming soon]
- [Solution-to-Solution communication (Interface) - Coming soon]