Skip to content

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

Written September 2026

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 doesCount
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.

  1. 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”.
  2. The jars. Every module jar carries META-INF/module.xml, whose root element has moduleName, vendor and vendorVersion — the only machine-readable vendor attribution there is. The same jar shows its signing state: a signed one has a .SF file plus a .RSA, .DSA or .EC block under META-INF/, and jarsigner -verify -verbose -certs prints the signer and the certificate's validity dates.
  3. A station backup. A backup .dist is a zip whose META-INF/dist.xml lists one <dependency name= vendorVersion= vendor=> per installed module, plus the <nre> and <vm> the host was running and its hostId on the root element. It does not carry the jars: names, vendors and versions, but nothing to scan.
  4. The licence and certificate folders. The host's security/ directory holds a <Vendor>.license per licensing vendor and a <Vendor>.certificate per vendor whose licences it accepts. Those filenames are the list of every vendor this host has a commercial dependency on, and each certificate carries an expiration attribute worth reading: Tridium's own says never; 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 neededWhy 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

More notes

Other things worth writing down

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.