Authoring Exchange Elements

This guide is designed to show you how to author your own Exchange Elements for private use.

Note: This feature is currently available for Professional and Enterprise Businesses only.

Table of Contents

Element Types

Downloadable Content

Businesses can provide downloaded content for consumption by other business users. Each element has the ability to reference a single downloadable file.

Solution Template with Github

Solution templates are self-contained project contains all files scripts & services for your solution to be deployed. You can use it to build custom Application or Product Connector, manage your code source cleanly and deploy them automatically to Murano.

Follow the Murano Github Template & CICD guide & Create a New Exchange Element from it.

Read more on the Documentation for the Getting Started Solution Template

OpenAPI Integration Service

Integration services are external API interfaces connected to Murano and made available in Exosite's Solution Scripting environment.

Exosite follows the spirit of open APIs and uses the Swagger API development framework as the scaffold for the OpenAPI Integration Service. Swagger is a popular API development framework that uses a set of properties defined in the Swagger Specification, extended by Exosite, to describe the interface to another service. Exosite's Open API integration service then reads that description file and automatically generates bindings that can be used in Exosite's Solution Scripting system. This service is the tool that is responsible for all of the service functions Exosite provides in the Scripting environment.

To get started with the OpenAPI Integration Service you will need to be partially familiar with the Swagger Specification and close to the API, or API documentation, of the service that you want to connect to Murano. The process itself is representing the API of the service you would like to connect as a Swagger specification.

As an example service please take a look at this small Dark Sky weather service integration: Notice that the service specification has four main sections.

API Information

This Sections includes a summary of the integration along with attendant information about where more information can be found what format and encoding expectations a consumer of this service should expect.

  version:      "0.2"
  title:        Dark Sky Weather Service Integration
  description:  |
                ## Use Dark Sky to get weather forecasts and historical weather data.
                This is a Murano Service integration with
                [Dark Sky]( to allow your Murano solution
                to get weather forecasts and historical weather data. [Powered by Dark Sky](
    name:       Exosite Support

Service Configuration Parameters

This is a special section Exosite extended from Swagger to make service configurations available through the Murano UI. Services like this Dark Sky service need to be configured with an API token in order to function.

  - name:         auth_token
    description:  Dark Sky Authentication Token
    type:         string
    format:       password
    required:     true


This is the real body of the service specification where the endpoints of the Dark Sky service are defined and combined into a Murano solution scripting environment operation.


    > parameters:

        - calls
      operationId:  forecast
      summary:      Make a request to Dark Sky
      description:  Fetch a weather forecast or get historical weather data based of input latitude and longitude

                    --#ENDPOINT GET /darksky/weather
                    weather_data = Darksky.forecast({lat_and_long_or_time = '44.977753,93.265011'})
      > parameters:


The definitions section can be used by reference objects in order re-use specification code. If elements of the spec are copied and pasted more than once, they can be set here and reused.

The greatest detail about all these sections can be read in the Swagger Specification.

Access to create new or extend additional services is currently only available to authorized accounts. If you want to learn more, or want to get started, feel free to contact us. You can do this from either the 'Support' or 'Developer Forum' tabs at the top of this page.

For information on examples, quickstarts, and schema definitions visit the Murano Services OpenAPI documentation

Authoring a New Exchange Element (Professional & Enterprise Tiers Only)

To author a new Exchange Element, you will need to visit the Exchange Authoring form and fill out all fields accordingly.

  1. Go to the Authoring Form:

  2. Add a Unique Element Name:

  3. Choose Element Type:

    • Solution Template Note: When a Solution Template type is chosen, a public GitHub repo URL is required.

    • Service Template Note: When an Service Template type is chosen, a URL linking to a .YAML or .YML configuration file is required. If you are linking to a .YAML in GitHub, choose "raw" before copying the URL. For help on creating a .YAML configuration file for your service, please see Murano Services OpenAPI Documentation

  4. Select an access level: Choose who can see your element.

    • Public: Anyone will be able to add and use your element
    • Network (Enterprise-only): Only members of businesses in your business network can see and use the element (see Managing Your Business Network for more information)
    • Private: Only members of the publishing business can see and use the element

      Element access levels

  5. Short Description: Give a brief overview of the element. As you add your short description, the Live Preview card will be updated on the right.

  6. Image: The thumbnail will be used on the Element card, and once added to this form, the live preview will update accordingly. The thumbnail image must be fixed at 200x150 pixels.

  7. Full Item Description: Provide as much content as necessary to fully detail what the element is and what it provides businesses that choose to use the element.

  8. Included Capabilities: Use this area as a high-level bulletpoint explanation of the element.

  9. Contact: Provide the desired point-of-contact businesses can use if they need to contact the author of the element.

  10. Attachment Upload: When authoring a content download element, use this Attachment Upload feature to include the content this element will supply. The element can only support a single attachment. If multiple files are required, a ZIP file can be uploaded instead.

  11. Preview [button]: This button will open a dialog modal that shows what the Element's details page will look like using the current form field values, color, and detail image.

  12. Add To Exchange [button]: Use this button when you are ready to publish your new element. The element will show up in the Catalog, available for selection.

  13. Next Steps: After adding the element to Exchange it will be available in the Exchange Catalog. Browse to the element in the Catalog, and use the "Add" or "Enable" button on the element details page. The newly created element will also be visible in the Manage Tab within the IoT-Marketplace. See Adding Exchange Elements Guide for more details. To share your element with other businesses, please contact support.

Public Exchange and 3rd Party Publishing

In addition to publishing Elements to a Business Network, users are able to publish Exchange Elements that are available to the public. While the process of publishing Elements this way remains the same, some additional fields are now required when setting the Element's Access field to "Public".

The additional required fields are Thumbnail Image, Full Item Description, Included Capabilities, and Contact.

Publishing an Element also displays the Business that created it, regardless of the access level the publisher sets. If the Element is made public, the publishing business will be visible to all users and businesses that have access to the Exchange.

Once an Element is made public, users outside of the publisher's business and network will be able to add and use it within their businesses. See Adding 3rd Party Managed Solutions for more details.