Note
When a third-party module's vendor no longer exists
The storefront those modules were bought through has been switched off, and at least one substantial driver developer has stopped selling. Finding out what you depend on is a twenty-minute job — and it is worth doing before somebody picks a migration date.
- Migration
- Estate management
- Drivers
Two changes that compound
The first is that the Niagara Marketplace storefront no longer serves pages. Every path still tried on that domain — the seller list, a seller profile, a hosted product page — answers with a permanent redirect to one generic landing page on Tridium's own site. Not a 404, which would at least be honest: a redirect, so a link that pointed at a specific product now lands somewhere with no product on it. Those links are cited in documents that are still current, including seven rows of Tridium's own driver list whose only pointer to the software is a Marketplace URL.
The second is that vendors wind down, which is a normal business event rather than a scandal. The one worth noticing is the largest single third-party developer in that list, with around two dozen driver rows against its name. Its website is now a single page: consultancy only from January 2026, no further sales, and the domain itself advertised for sale. Nothing about that is wrong of them. Downstream it is arithmetic — two dozen legacy-protocol drivers, most of them the obvious commercial option for the protocol they speak, now have no vendor behind them and in due course no website either.
The exposure is not the vendor's, it is yours. A driver keeps working after its vendor stops trading. What stops is the next rebuild, the next signature, the next licence re-issue against a new Host ID, and the answer to the next protocol question — migration-shaped problems, not today-shaped ones.
The index that is still published
With the storefront gone, the surviving public catalogue of third-party Niagara drivers is a PDF: Tridium's Niagara Compatible Drivers & Applications, document reference 2025-0020, last updated July 2025. Each row gives the driver, its developer, a contact URL, the connection type, controller or Supervisor, and the minimum Niagara version. Its opening paragraph says Tridium has not tested all listed drivers, does not certify conformance, and that the list may not be comprehensive — all three worth taking at face value.
It is also thinner than it looks. Pull every domain printed in its For More Information column: 24 distinct ones, three of them Tridium's own. Of the 21 left, this is what they answer today.
| What the printed address does | Count |
|---|---|
| Serves a page | 14, including the one now reading “consultancy only, no further sales”. |
| No DNS record at all | 2. One is a single-letter typo of a live company's domain — its own kind of dead link. |
| Resolves, returns 404 | 1, at the root and at the exact path in the row. |
| Answers only past a TLS or bot-blocking failure | 4. One has an expired certificate; three refuse an automated client. Not counted as dead: the fault may be ours. |
So about one pointer in seven does not reach a page, on top of the seven rows aimed at the Marketplace. The document is the only index there is, but it cannot be your inventory: it tells you who wrote a driver, not what is in your station, and increasingly not how to reach them.
Listing what a station depends on
Four places hold the answer, and they do not hold the same answer.
- Software Manager, over a platform connection. The fastest look. Its columns are Part Name, Type, Installed Version and Avail. Version, with a Software Details command per row. There is no vendor column: it answers “what is installed”, not “whose is it”.
- The jars. Every module jar carries
META-INF/module.xml, whose root element hasmoduleName,vendorandvendorVersion— the only machine-readable vendor attribution there is. The same jar shows its signing state: a signed one has a.SFfile plus a.RSA,.DSAor.ECblock underMETA-INF/, andjarsigner -verify -verbose -certsprints the signer and the certificate's validity dates. - A station backup. A backup
.distis a zip whoseMETA-INF/dist.xmllists one<dependency name= vendorVersion= vendor=>per installed module, plus the<nre>and<vm>the host was running and itshostIdon the root element. It does not carry the jars: names, vendors and versions, but nothing to scan. - The licence and certificate folders. The host's
security/directory holds a<Vendor>.licenseper licensing vendor and a<Vendor>.certificateper vendor whose licences it accepts. Those filenames are the list of every vendor this host has a commercial dependency on, and each certificate carries anexpirationattribute worth reading: Tridium's own saysnever; a third party's need not.
Installed is not the same as used
The two numbers are rarely close, and conflating them turns a short list of real
problems into a long list of imaginary ones. A station's config.bog is
itself a zip containing a
file.xml, and that XML declares a short alias for every module it
references, as m attributes of the form m="b=baja", with
component types written against those aliases — t="b:Station". The
distinct m attributes are the modules the component tree genuinely
depends on.
unzip -p backup_<station>.dist stations/<station>/config.bog > config.bog
unzip -p config.bog file.xml | grep -o 'm="[^"]*"' | sort -u
On a publicly published demo backup — an AX-era one, but the container format has
not changed — dist.xml lists 514 installed modules
and config.bog references 13. Eleven of the 514 have a
vendor other than Tridium; exactly one of those eleven appears in the config.
That ratio is the normal case. Most of what is installed on a long-lived host arrived with a distribution or somebody's abandoned trial, and carries no risk because nothing points at it.
Where this undercounts. A module can be reached from a PX sheet, a ux widget, a program object or a template without appearing in the alias list. Treat the alias set as the floor of what is in use, not the ceiling, and check the PX files for widget modules separately.
Vendor strings do not sort themselves
The obvious way to find third-party modules is to filter the vendor attribute for
anything that is not Tridium. It reads better than it works. In that same backup the
field takes the values Tridium, Tridium Inc. and
Tridium, Inc., and separately both Vykon and
vykon — a brand of Tridium's own. A naive comparison puts four
Tridium modules in the third-party column and splits one vendor in two.
The fix is dull: normalise case and punctuation, keep an explicit list of the names that mean Tridium, and cross-check what is left against the module names in a clean installation of the same framework version. A name that appears in a stock install is Tridium's whatever its vendor string says.
What orphaned costs at the N5 boundary
A module already installed and licensed keeps running after its vendor closes. Four things break instead, all at a version change rather than on a date.
| What is needed | Why no vendor means no answer |
|---|---|
| A recompile | Niagara 5 moves the runtime off Java 8. Where the module or a bundled library needs a code change for that, the change has to be made in source, and the source is the vendor's. Decompiler output is not a supportable substitute. |
| A valid signature | Signing is already a load-time gate whose default refuses unsigned code, and it becomes mandatory with no grace period. A lapsed signing certificate needs re-signing, and the party who normally re-signs no longer exists. |
| A licence against a new Host ID | Third-party licence options do not travel with a controller replacement. The feature has to be re-issued against the new host, by the vendor, out of their own licence-generation process. There is no route to that from outside. |
| An answer about the protocol | A legacy serial driver exists because the protocol is under-documented. The edge cases lived with the vendor, and that is the part held in no file you have. |
Two of the four have a workaround and two do not. Knowing which of your modules sit in which row is the value of doing the inventory early.
Re-signing and re-building are different problems
These get collapsed into one, and should not be: one is achievable without the vendor and the other is not.
A jar's signature lives entirely in META-INF/. Replacing it touches no
class file and needs no source — strip the existing signature files and sign
again. So a module that needs only a fresh signature, where the code is fine
and the certificate has lapsed, is technically solvable with the vendor gone.
It is not free. You need the right to redistribute the jar, which is a licence-agreement question rather than a technical one; and the signature then asserts that you vouch for code you did not write and cannot read — a real position to occupy the first time it misbehaves on a live site. Decide that in writing, not during a commissioning week. A module that needs a code change is a different matter, and re-signing does nothing for it.
The options when the vendor is gone
In rough order of how often they turn out to be the right answer.
- Stay where you are, deliberately. Niagara 4.15 is the long-term-support release, supported to Niagara 4's end of life in Q3 2028. Where the only orphaned module drives plant already due for replacement inside that window, the answer is often to do nothing and write down why.
- Buy the source or the rights while someone is there to ask. A wind-down is the one window in which this is realistic, and it closes when the company does. It need not be an acquisition: a source escrow, a perpetual right to rebuild and re-sign for your own estate, or a paid handover of the build environment all solve it for less than a rewrite. Ask early, in writing.
- Second-source the driver. For the commoner legacy protocols — Johnson N2, Trane Comm3 and Comm4, Siemens FLN, Trend IQ, C-Bus, Allen-Bradley — check whether a stock driver or another developer in the current list covers it before assuming a rewrite. Sometimes the answer is a purchase order.
- Move the protocol out of Niagara. A gateway speaking the legacy bus on one side and BACnet/IP or Modbus TCP on the other turns a bespoke, orphaned driver into a stock one. It costs hardware and a panel visit and removes the dependency permanently — often the cheapest whole-life answer where the field devices are staying.
- Rebuild the driver against the protocol. Last, and a real option rather than a threat: the protocol is observable on the wire, and the existing station documents every point, address and conversion the old driver performed.
Archive it while the website is still up
The cheapest thing on this page and the most often skipped. Downloads, documentation and the licence-request route disappear with a vendor's domain, and a domain advertised for sale can start serving somebody else's content without notice. Four things, as files rather than bookmarks: every jar version you are entitled to, not only the installed one, because a rollback needs the old one; the user guide, release notes and point-mapping reference; the licence files and vendor certificates, with the Host ID each was issued against beside them; and the licence agreement, which decides whether re-signing or redistribution is open to you at all.
Which of your modules are in this position has a definite answer, and producing it is
the first step of any N5 scoping. The companion notes cover
what a static Niagara 5 module scan
actually finds and the order third-party
modules break in moving from N4 to N5. A directory listing of a modules/
folder, the jars, or a station backup is enough to get the table back: one row per module,
with its vendor, its signing state and a plain verdict. That scan is free. For the audit and
the porting work itself, see
Niagara 5 migration.
Related
Where this comes up in the work
Niagara 5 migration
Niagara 5 readiness audits and migration, including JACE 8000 to JACE 9000: which third-party modules survive the new runtime and mandatory signing.
Workbench tooling
Custom Workbench views and tools for repetitive Niagara work: bulk renaming and retagging, station audits, provisioning helpers and module inventories.
More notes
Other things worth writing down
What happens to third-party modules moving from N4 to N5
A module with no Niagara 5 build can stop the migrator outright, and one that has a build can still fail to load. What breaks, and why.
- Migration
- Estate management
- Module development
What a static Niagara 5 module scan actually finds
Reading a module's bytecode against Java 25 gives a per-module answer. What it finds, what it cannot tell you, and the false alarms it avoids.
- Migration
- Module development
- Estate management
What actually blocks an AX to N4 migration
A station cannot migrate until every module it uses has been refactored for Niagara 4 — and licences, users and permissions all change shape on the way.
- Migration
- Estate management
- Module development
Next step
Tell us the version, the hardware, and what it has to do.
You will get a written scope and a fixed price against it. If the honest answer is that you do not need us, you will get that instead.