---
title: Ignition Digital Twins Broker - Beta
slug: solutions/ignition-digital-twins-broker-beta
docTags: 
createdAt: 2026-05-11T16:44:16.925Z
---

# Overview

The Ignition Digital Twins Broker allows Litmus Edge to act as a data source for an Ignition Gateway via Digital Twins by automatically converting Digital Twins to versioned Ignition UDTs and writes data in real-time to a specified tag provider.\\

:::hint{type="warning"}
This module is currently in **open beta.&#x20;**&#x54;his module is subject to breaking changes and functionality is **not guaranteed.**
:::

## Prerequisites&#x20;

- Ignition Gateway version 8.3.x with support for Java 17
- Litmus Edge version 4.x
- Open network connection between Ignition Gateway and Litmus Edge on ports:
  - **4222&#x20;**(NATS broker)&#x20;
  - **443&#x20;**(HTTPS for API)

# Installation/Upgrade

*The process of upgrading to a newer version of the module is identical to the installation process.*

1. Download the ignition module from the Litmus Central Portal
2. Log into your Ignition Gateway with Admin privileges
3. Navigate to **Platform->Modules->Install or Upgrade Module**
4. Select **Choose File&#x20;**&#x61;nd select the `Litmus-Edge-Broker-x.x.x.modl`and press **Install Module**
5. When prompted with the module certificate mark **I accept the module certificate&#x20;**&#x61;nd press **Trust Certificate**. Note, this will only happen on your initial installation of the module.
   1. *If you are prompted with an error reading "Module Certificate already Accepted" this is a known UI bug with Ignition. To resolve manually restart your Ignition Gateway and after restart you should be prompted to accept the module certificate and EULA again. After doing so the module will be correctly installed*
6. Read and accept the Litmus EULA.
7. Wait a few seconds, or refresh the page and you will be prompted with a **Gateway Restart Required&#x20;**&#x70;rompt at the bottom of your screen. When ready restart the gateway.

   After you restart the module should be installed and running. Verify by navigating to **Platform->System->Modules** and identifying the Litmus Edge Ignition Module is installed and marked as active.

# &#x20;Configuration

To run the module, you need to enable the NATS proxy and provide a NATS token and OAuth2.0 API client.

## Litmus Edge

1. Enable NATS proxy with read access to `system.>` service. Save the **Access Token.**
   - [Tokens](docId:1I-VglhCDoy_vjYI_AnnF)
2. Create an OAuth2.0 client with **View&#x20;**&#x70;ermissions for **Digital Twins** service. Save the **ClientID&#x20;**&#x61;nd **ClientSecret**
   - [How to Create and Use OAuth 2.0 Tokens in Litmus Edge](docId\:zkvk_9xfvPw32VtlJwRAl)

## Ignition Gateway

1. In the Ignition Gateway navigate to **Connections->Litmus Edge->DTwin Broker.&#x20;***If this page is not present this indicates the module is incorrectly installed.*
2. Fill in the associated fields and **Save Configuration**
   1. **Client ID&#x20;**&#x61;nd **Client Secret** use the OAuth2.0 API credentials
   2. **NATS API Key** uses the NATS Proxy **Access Token**&#x20;
   3. **Provider Name&#x20;**&#x73;pecifies which Ignition Tag Provider where the UDT models and Instances will be created. If no provider has a matching name, a managed tag provider will be created automatically&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/wA9Jk1CIoEh707x0H-fKJ_image.png" size="60" width="582" height="788" darkWidth="582" darkHeight="788" position="center" caption="Connected Config Menu" alt="config_menu" showCaption="true"}

3. Verify that the broker is **Connected&#x20;**&#x61;nd that the associated tag provider exists.&#x20;
   1. You can verify the tag provider has been created by navigating to **Services->Tags&#x20;**&#x6F;r via the **Ignition Designer**.

![tag\_provider](https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/QEZF0iPF_ccTTW6O41TMI_image.png "Created Tag Provider")

### Enabling TLS

In order to use TLS you must select **Verify TLS&#x20;**&#x69;n the configuration menu and provide a corresponding certificate. To read more on [Certificates](docId\:SmFLIYd4NSSlcyW2cajA_)

# Functionality

After connections all models and instances from the connected Litmus Edge will be automatically created in the specified Tag Provider. The tag provider can changed at anytime via the configuration module.

:::Paragraph{listStyleType="disc" indent="2"}
If the Tag Provider is a Managed Tag Provider created by the module, this tag provider will be automatically removed.
:::

:::Paragraph{listStyleType="disc" indent="2"}
User managed tag providers will persist, however module created UDTs and Instances will be removed when no longer using that Tag Provider.
:::

Models and Instances are synced in real-time - with all changes/upgrades being propagated automatically in Ignition.

## Model Tracking

Every Digital Twin model will have corresponding UDTs created on the **Version&#x20;**&#x61;nd **Schema&#x20;**&#x6F;f model.&#x20;

### Model Versioning

- Digital Twin model versions are named `{model_name}-v{version_number}` in Ignition.&#x20;
  - ex. A model named `InjectionMolder` with a version of 15 has a corresponding UDT of `InjectionMolder-v15`
- Outdated model versions are tracked if there exist corresponding Instances using those models. When instances are upgraded or deleted, out of date UDTs will be automatically deleted if they are no longer in use by any instance.

:::hint{type="info"}
On initial connection, some out of date instances may not have corresponding models. These are treated as **Orphaned Instances**.
:::

### Tracking Nodes and Arrays

- Digital Twin Node Arrays are represented by **Folders&#x20;**&#x77;ith child-elements being named based on their numerical index in the array
- Digital Twin Nodes are represent by **Folders&#x20;**&#x77;ith child-elements being named using the child name in the schema  &#x20;

## Instance Tracking

Instances are the source of data in Ignition - automatically subscribing to the associated NATS topics upon creation - reading data at the corresponding publishing interval.

### UDT Instances

Ignition Instances with corresponding UDT models will be created as UDT instance tags with the versioned model as their parent.&#x20;

### Orphaned Instances

If an instance is out of date when the module first connects to Litmus Edge it will be unable to retrieve the model schema. Because of this, the instance will exist as an **Folder&#x20;**&#x69;n Ignition as opposed to a **UDT instance**. Data will still be ingested as normal, and the Folder will become a UDT instance upon instance upgrade in **Litmus Edge.**

:::hint{type="info"}
Support for **Model Schema Inference** is planned&#x20;
:::

# Release Notes

## Beta v1.0.0

- Full Create/Update/Delete/Upgrade support for Models and Instances&#x20;
- Support versioning of UDTs to match DTwin Models
- Data Ingestion into UDT Instances

