Kindling - a collection of tools to help with Ignition

Hey Paul, I'm getting the below error when trying to install the latest version (v1.3.1.0) from the download from the "Install and Launch" button (Kindling). OS Windoze 10

Failed to install https://github.com/inductiveautomation/kindling/releases/latest/download/kindling.appinstaller due to error: Deployment of package Kindling_1.3.1.0_x64__7xmkzvcbwxh2t with package origin Unknown failed because no valid license or sideloading policy could be applied. A developer license (Getting a developer license for Windows 8 Consumer Preview | Microsoft Learn) or enterprise sideloading configuration (Sideload Apps with DISM | Microsoft Learn) may be required.

I'm able to run with the zip though. Looking pretty snazzy now compared to before :star_struck:

Edit: I'm using it to look at what queries failed to execute in a quarantine XML. I want to remove some of the queries in it and reimport it to try again without some of the dodgy queries. It'd be cool to be able to do this from Kindling if possible?

Hi Paul,

Great tool! Very easy to just generate a diagnostic bundle and see everything you need to see.

For gateway backups, am I missing an easy way to view tags? I see some config information in the TAGCONFIG table, but was wondering if there would be an easy way to browse tags like in the designer.

Use-case being, say I have a gateway backup but no good place to restore it at the moment to view the tags within. But I could potentially fire up Kindling and see what I need. Thanks!

That's a pretty cool suggestion, and I had a use case the other day for it, however I suspect the work involved would be not insignificant to add it into kindling. In my case, I'd want to be able to export tag json from it. I had a large project that I wanted to grab a UDT definition from

3 Likes

That would be great. Export UDTs and tags from a backup easily.

1 Like

If we're exporting UDTs and tags, it would be great to have an option to apply AlphaNumComparator to make said JSON export diffable.

This is an understatement :smile:

To turn a config.idb back into a tag tree is to essentially rewrite Ignition's own tag loading logic, bugs/backwards compatibility shims/warts and all. Some folks from our support team have their own internal fork of Kindling and have been working on a tag export related tool, but I've deliberately shied away from doing that work myself, because it's a massive headache. At some point they may choose to 'upstream' their work, though :man_shrugging:

EDIT:
Not to say that it isn't a very compelling idea :smile: I'd love to do it, but it may have to wait for 8.3, where the structure of things is reflected on the filesystem rather than having to parse the IDB and sort/rank things in just the right way.

11 Likes

Hi Paul,

This tool is AWESOME...came across this while trying to dip into a troublesome S&F data cache that just wouldn't backfill. One question - I'm able to open the data cache file and see my data (943 entries), though the preview at the bottom of Kindling only returns results for the 1st row of my data - does this mean something is corrupted with the 942 subsequent entries? I wasn't able to find any log or anything to tell me if there's an error somewhere in the data cache file.
Again, much appreciated and great work!

The preview will update as you select different rows in the top table.

Thanks for getting back to me so quick! That's what I was trying, I'd select a different row, but the preview wouldn't refresh with that row's data. Similarly, when I first open the data file, I select one of the other rows, and nothing populates.

Are you able to direct message me the file?

Hey Paul,

Just DM'd you - thanks!

Kindling 1.4.0 has been released :partying_face:

Highlight features include translation bundle editing:

You can import a translation export from Ignition, then either edit it inline in Kindling or (more likely) copy it out to Excel via the Copy TSV button in the bottom right corner. Make your changes, paste the bundle back in, then re-export into Ignition's proprietary format. Not the smoothest workflow, but better than nothing until 8.3 :smiley:

And thanks to the incredible reverse engineering work of the support apps team, IDB tag viewing and export:

For developers (including module authors) dealing with 8.3's new restrictions on Java serialization, there's a new java serialization viewer tool that simply loads raw binary from files and attempts to parse it and explain what it contains:

As a temporary measure until the next release with fully reworked .gwbk parsing, detected 8.3 gateway backups will throw up a warning in Kindling, though basic archive related functionality will still work:

Thanks again to new/existing contributors including @Spencer_Lommel1 and @Eric_Byrd for their work on this release! (And @kcollins1 and @jcoffman for their help on the release pipeline!)

12 Likes

Anyone interested in 8.3 compatibility should keep an eye on this issue:

And, if you have any fun ideas, drop them as a comment :smiley:

5 Likes

Wooo I’ve been waiting for this release!

Looking forward to helping out with some awesome new features with the release of 8.3

Hi,

From a backup I can see on the config file the java heap space but can I modify it before restore it on my server?

Is there a way to edit the backup file before.

Best regards,

Gabriel

Not within Kindling (at the moment). But gateway backups are just zip files - you can open them in any archive tool, make modifications to any files inside, then zip it back up and change the file extension back to .gwbk.

1 Like

If you run your workstation with a competent operating system, there's no need to change file extensions. When I click on a gateway backup in dolphin, it opens in ark. :man_shrugging:

5 Likes

For those of us stuck with unfortunate operating systems - something like 7-zip can also properly recognize and open the .gwbk as a zip archive.

3 Likes

Hmm, just tried to open a java serialized gateway event script and ended up with
```
Error opening C:\Program Files\Inductive Automation\Ignition\data\projects\deviceconnupdate\ignition\event-scripts\data.bin: Invalid STREAM_MAGIC 0x8075, should be 0xAC ED
java.lang.IllegalArgumentException: Invalid STREAM_MAGIC 0x8075, should be 0xAC ED
at deser.SerializationDumper.parseStream(SerializationDumper.java:107)
at io.github.inductiveautomation.kindling.serial.SerialViewPanel.(SerialViewer.kt:33)
at io.github.inductiveautomation.kindling.serial.SerialViewer.open(SerialViewer.kt:66)
at io.github.inductiveautomation.kindling.MainPanel.openFiles$lambda$48$lambda$47$lambda$46(MainPanel.kt:386)
at io.github.inductiveautomation.kindling.MainPanel.openOrError(MainPanel.kt:357)
at io.github.inductiveautomation.kindling.MainPanel.openFiles(MainPanel.kt:385)
at io.github.inductiveautomation.kindling.MainPanel.fileMenu$lambda$25$lambda$23(MainPanel.kt:255)
at io.github.inductiveautomation.kindling.utils.Action.actionPerformed(Action.kt:42)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1029)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1073)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6621)```

Most project level resources are gzipped Java serialized data - try manually un-gzipping it before opening it with Kindling.

Could probably make that smarter :person_shrugging:

1 Like