Ignition module

Mantle

A Sparkplug B host application for Ignition 8.3 and later. Point it at your broker. Tags create themselves, get historized, and stay yours to customize. There is no second set of tags to maintain.

Cost
Free
License
Apache License 2.0, open source
Ignition compatibility
8.3.0 and later. The middle version digit must match the platform, so an 8.4 release will be a separate build.
Version
1.3.0
Download
Direct .modl file. No email, no form, no login. The module is signed by Joy Automation.
Support
Paid support and integration from Joy Automation. Optional, never required.
What it does

Three things, each tested on every commit

Every claim below is checked against a live Ignition gateway and a real Sparkplug edge node.

Tags create themselves

Every metric in a Sparkplug birth message (NBIRTH or DBIRTH) becomes an Ignition tag, laid out the way the wire is: [Sparkplug]Group/Node/Metric. Data type, engineering units, range and documentation carry across from the edge. Nothing is declared in advance, and nothing is re-declared when the edge changes.

Tags are historized by default

New tags get History Enabled and a history provider when they are created. Turn history off on a tag and it stays off. Metrics the edge flags as transient start with history off.

There is one set of tags

They live in a managed tag provider that persists tags and allows customization, so alarms, scaling, scripts, security and history settings go on these tags directly. They survive rebirths, reconnects and gateway restarts. Nothing has to be mirrored into a second tag tree.
Configuration

Almost nothing to configure

Configuration is where these setups go wrong, so there is very little of it. A broker URL is the only setting you have to fill in.

Where something is genuinely missing, Mantle tells you. A gateway with no tag historian records nothing, so Mantle reports that connection as a problem in the Status column of the page you configured it on, along with what to do about it. Silent data loss is the failure this module exists to prevent.

Security

Secure by default

  • Passwords are stored as Ignition secrets. Encrypted on disk, or referenced from a secret provider. Never stored as plain text.
  • TLS with ssl://, verified against the gateway's own trust store. A private plant certificate authority goes in data/certificates/supplemental/ once and serves every module, so there is no per-connection trust store to get wrong.
  • Mutual TLS. A client certificate and PKCS#8 key, read at connect time, so certificate renewals need no edit.
Testing

What has been tested, and what has not

Tested against a live Ignition 8.3.9 gateway and a real Sparkplug edge node on every commit.

Tested

  • The tag tree, data types, templates as UDTs, and a customized tag surviving a rebirth.
  • Writes in both directions, including a write to one UDT member leaving the others alone.
  • Deaths, killed nodes, keep-alive timeouts, broker restarts, and store-and-forward data landing in history stamped inside the outage.
  • TLS, authenticated brokers and mutual TLS, each with its negative case.
  • Three brokers: Mosquitto 2, EMQX 5 and HiveMQ CE (the broker the official Sparkplug conformance kit is built on). Two transports: TCP and WebSockets. Each is verified by real Sparkplug traffic arriving as tags.
  • Sparkplug conformance: 49 assertions of the Sparkplug Technology Compatibility Kit's host application profile pass and none fail, graded from the packets on the wire.
  • The published, signed .modl installing on a clean gateway with no developer flags. It is the same file this page links to.

Not yet tested

  • AWS IoT Core and Azure. Both negotiate TLS differently (ALPN) and need accounts to test against.
  • Secure WebSockets (wss://). WebSockets and TLS are each covered, but not the two together.
  • An edge with a badly skewed clock.
  • Sustained load.
Support

Free software, paid help if you want it

The software is free and always will be. If you want someone on the end of a phone for commissioning, a migration off another MQTT module, a broker that does not behave, or a feature you need, that is what Joy Automation sells.