Preserving Sideloaded Resources persisting in Gateway Backup

Hey Ignition Gurus,

Time and time again we are put in the situation where we have to sideload some jar/dll files into ignition/lib/* in order to gain connectivity with platforms that ignition does not support by default.

Up till now, we have just been putting these additions into maintenance manuals to ensure the customer doesn't get screwed when restoring a gateway backup on a new server.

However, in these scenarios, the application won't be restored.

  • If the manual gets lost
  • They simply don't read the manual
  • Sideloaded files are lost

Is there a proper way to keep sideloaded jars/dll in the ignition/lib files present in the gateway backups so we don't have to maintain instructions on how to include specific dependancies?

Get your LLM of choice to write you a module.

Well, the module won't end up in a gateway backup either, but it is a lot easier to tell a client to install such-and-such module. You can even write a gateway startup script that looks for a specific module ID and reports if it is missing from the install.

Another alternative is to use containerization and build it into the image. Something like:

# Example file structure
Dockerfile
modules/
jars/
FROM inductiveautomation/ignition:8.3.10

COPY modules/*.modl /usr/local/bin/ignition/user-lib/modules/

COPY jars/*.jar /usr/local/bin/ignition/lib/core/common/ # fits most use cases

I wish i could containerize, but unfortunately some of my dependencies are windows only ;(

That being said, I haven't thought of packaging a 1 click install script. This would be a lot easier than instructions for customer.