Skip to main content

Configuration File Structure

The Tag CICD Module stores its configuration in a JSON file on the Ignition gateway. This file contains all your export/import configurations and is used for both manual operations and automated tasks like startup imports.

File Location​

The configuration file is stored at the following location on your Ignition gateway:

data/modules/tag-cicd/export-config.json`

This path is relative to your Ignition installation directory. For example, on a typical Windows installation, the full path might be:

C:\Program Files\Inductive Automation\Ignition\data\modules\tag-cicd\export-config.json

File Format​

The configuration file is a JSON array where each item represents a tag export/import configuration:

[
{
"provider": "default",
"baseTagPath": "MyTags",
"sourcePath": "data/tags/mytags",
"exportMode": "individualFiles",
"collisionPolicy": "o",
"excludeUdtDefinitions": false
},
{
"provider": "Device",
"baseTagPath": "",
"sourcePath": "data/tags/device-tags.json",
"exportMode": "singleFile",
"collisionPolicy": "d"
}
]

Configuration Properties​

Each configuration object can contain the following properties:

PropertyTypeRequiredDescription
providerStringYesThe name of the tag provider (e.g., "default")
baseTagPathStringYesThe tag path to export from or import to (empty string for provider root, or _types_ for UDT Definitions)
sourcePathStringYesThe gateway file system path for export/import operations
exportModeStringYesThe export/import format: singleFile, individualFiles, or structuredByType
collisionPolicyStringYesHow to handle tag conflicts: a (abort), m (merge), o (overwrite), or d (delete and replace)
excludeUdtDefinitionsBooleanNoWhether to exclude UDT definitions when exporting (defaults to false)

Provider​

The name of the tag provider to export from or import to. This corresponds to the provider names visible in the Ignition Designer tag browser, such as default in a fresh Ignition installation.

Base Tag Path​

The starting point for export/import operations within the specified provider:

  • Empty string ("") - Export/import from the provider root
  • "MyFolder" - Export/import from a top-level folder named "MyFolder"
  • "MyFolder/SubFolder" - Export/import from a nested folder
  • "_types_" - Export/import UDT definitions (UDT instances are not included)
  • "_types_/MyFolder" - Export/import UDT definitions from a specific folder

Source Path​

The gateway file system path where tags will be exported to or imported from:

  • For file paths, include the file extension (e.g., data/tags/mytags.json)
  • For directory paths, no trailing slash is needed (e.g., data/tags/mytags)

The path is relative to the Ignition installation directory, but absolute paths are also supported.

Export Mode​

The format used for export/import operations:

  • singleFile - All tags in a single JSON file
  • individualFiles - Separate JSON file for each tag and folder, maintaining the hierarchy
  • structuredByType - Folder structure with tags.json and udts.json files in each folder

Collision Policy​

How tag conflicts are handled during import:

  • a (abort) - Abort the import if any tags already exist at the target path
  • m (merge) - Update properties of existing tags, preserving other properties
  • o (overwrite) - Replace existing tags completely with imported ones
  • d (delete and replace) - Delete all existing tags at the target path before importing

Exclude UDT Definitions​

Whether to exclude UDT definitions from export operations:

  • true - Do not export UDT definitions (the _types_ folder)
  • false or omitted - Include UDT definitions in exports

JSON Schema​

The module includes a JSON schema that defines the structure of the configuration file. This schema can be used for validation and editor auto-completion. The schema is available at:

docs/tag-cicd-config-schema.json

Here's the schema specification:

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Tag CICD Configuration",
"description": "Configuration for tag export/import with CI/CD support",
"type": "array",
"items": {
"type": "object",
"required": [
"provider",
"baseTagPath",
"sourcePath",
"collisionPolicy"
],
"properties": {
"provider": {
"type": "string",
"description": "The Ignition tag provider name"
},
"baseTagPath": {
"type": "string",
"description": "The base tag path to export from or import to"
},
"sourcePath": {
"type": "string",
"description": "The file or directory path to save tags to or import tags from"
},
"collisionPolicy": {
"type": "string",
"enum": [
"a",
"m",
"o",
"d"
],
"description": "The collision policy to use for imports (a=abort, m=merge, o=overwrite, d=delete-and-replace)"
},
"exportMode": {
"type": "string",
"enum": [
"singleFile",
"individualFiles",
"structuredByType"
],
"description": "The export mode to use for exporting and importing tags",
"default": "individual"
},
"excludeUdtDefinitions": {
"type": "boolean",
"description": "Whether to exclude UDT definitions (_types_ folder) when exporting",
"default": false
}
}
}
}

Managing the Configuration File​

While the configuration file is typically managed through the Designer interface, you can also edit it directly for advanced use cases:

  1. Manual Editing: Edit the JSON file directly using a text editor
  2. Version Control: Store the configuration file in your version control system
  3. Deployment Automation: Deploy the same configuration to multiple gateways
  4. Backup: Back up your configurations alongside your tag exports

Note: After manually editing the configuration file, you may need to restart the gateway, reload the module, or run the import function in the Designer for changes to take effect.

Export/Import Configuration Example​

Here's a comprehensive example showing different configuration scenarios:

[
{
"provider": "default",
"baseTagPath": "",
"sourcePath": "data/tags/all_tags",
"exportMode": "individualFiles",
"collisionPolicy": "o"
},
{
"provider": "default",
"baseTagPath": "ProcessTags",
"sourcePath": "data/tags/process_tags.json",
"exportMode": "singleFile",
"collisionPolicy": "m"
},
{
"provider": "default",
"baseTagPath": "UDTInstances",
"sourcePath": "data/tags/udt_instances",
"exportMode": "structuredByType",
"collisionPolicy": "d"
},
{
"provider": "default",
"baseTagPath": "_types_",
"sourcePath": "data/tags/udt_definitions.json",
"exportMode": "singleFile",
"collisionPolicy": "o"
}
]

This example configuration includes:

  1. Export/import of all tags using individual files
  2. Export/import of just the ProcessTags folder as a single file
  3. Export/import of UDT instances using the structured format
  4. Export/import of UDT definitions as a single file

Next Steps​

Now that you understand the configuration file structure, you can:

  1. Explore the Designer Features to create and manage configurations through the UI
  2. Learn about Export Modes to choose the best format for your needs