Ignition internal Folder Structure

I thought we had some kind of reference page for this in the manual, but all I found was this, which is not quite the full story:

This old post of mine goes into more detail, though is a bit out of date:

Basically:
projects/ has an ignorable .resources/ folder.
All other folders in projects/ will be scanned - if they contain a valid project.json manifest, then they make up an Ignition project. The name of the project will be the literal name of the folder on disk.
Below each project directory, the next folder is the module ID, and the folder below that is the resource type ID. Those two folders make up a unique identifier for every Ignition project resource.

After that moduleID/typeID/ folder pair, things split into two paths.
If there is a resource.json file, then it is a so-called "singleton" resource - there can be either zero or one of any given singleton resource, and they have no name.
If there are any folders, they define the path to the given resource, ending with a folder that becomes the resource name and contains a resource.json file in it.

That resource.json file is described in the manual page linked above, but the most important entry is the files array that tells the resource system about the other files on disk.

So putting it all together:
data/projects/Test/ignition/global-props/resource.json
Is the path to a manifest file for the global-props resource (owned by the core Ignition platform, not any module) in a project named Test.

data/projects/CoolProject/com.inductiveautomation.perspective/views/myView/resource.json
Is the path to a manifest file for the myView Perspective view in a project named CoolProject.
By contrast,
data/projects/CoolProject/com.inductiveautomation.perspective/views/myFolder/myView/resource.json
Is the path to a manifest file for a view myView inside a folder myFolder in the same project.

The short answer to your question is:
Everything in that directory is important to you except the .resources/ folder.

2 Likes