Murano Custom Development
Advanced business accounts can build custom application solutions and IoT Connectors on the Murano Platform.
IMPORTANT: This page targets Advanced Exosite Accounts.
If your account doesn't display discussed features, please upgrade your Exosite account tier.
Customizing Off-the-Shelf Applications
Micro-verticals Applications provided by Exosite such as Exohome & Exosense do not enable change the solution code, scripting, etc to avoid any breaking changes. Reach our support for more information.
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
- 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 Applicationbutton 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:
Go through the Getting Started guide and refer to below link for more details.
The next step is to discover the capabilities provided by the Murano services.
Also see the services guides for concrete usage examples. And if you want to integrate another 3rd party API refer to:
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.
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.
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
A few guides for some common development case.
- 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]