---
title: "config.json"
id: "config-json"
project: "MES User Manual"
url: "https://docs.sepasoft.com/articles/user-manual/config-json"
updated: 2026-09-25T18:58:35Z
---

# config\.json

**Sepasoft MES Module Suite**

# Configuration Settings

The following settings are stored in the MES module resources in the Ignition gateway data directory:

&lt;Ignition data directory&gt;/config/resources/core/productiongateway/

Unix = data/config/resources/core/productiongateway/&lt;feature&gt;/config.json

The examples below illustrate valid configuration values. Replace example names, identifiers, paths, and values with those appropriate for your system.

* [production-settings/config.json](/articles/user-manual/config-json/a/h2__460966460)
* [enterprise-settings/config.json](/articles/user-manual/config-json/a/h2__2053318804)
* [task-route-settings/config.json](/articles/user-manual/config-json/a/h2__421714494)
* [mes-meta-data/config.json](/articles/user-manual/config-json/a/h2_2045429449)

* * *

## production-settings/config.json

MES module settings for the user source, analysis database, analysis cache, and permissions for editing MES scripts.

```json
{
  "analysisDatasourceName": "AnalysisDB",
  "analysisQueryCacheExpireDuration": 300,
  "analysisReadLockTimeout": 30,
  "authProfileName": "default",
  "authProfileAutoSync": true,
  "authProfileRefreshRate": 3600,
  "cacheInactiveMesObjectThreshold": 60,
  "cacheMaxMesObjectCount": 10000,
  "requiredRolesEditScripts": [
    "Administrator",
    "MESEngineer"
  ]
}
```


| Name | Type | Description |
| --- | --- | --- |
| analysisDatasourceName | string | Name of the Ignition database connection that stores historical analysis data. Multiple sites can share one analysis database for enterprise reporting. Stop production runs before changing this setting. Example: "AnalysisDB". |
| analysisQueryCacheExpireDuration | number | Number of seconds to keep analysis query results in cache. A larger value can reduce database load but increases the amount of time before new production data appears in analysis results. Example: 300 keeps results in the cache for five minutes. |
| analysisReadLockTimeout | number | Number of seconds to wait for the analysis engine when its configuration is being updated. Configuration updates can occur when equipment, equipment modes, equipment states, counters, or additional factors change. Example: 30. |
| authProfileName | string | Name of the Ignition user source used by the MES modules. Example: "default". A named user source is also valid, for example "EnterpriseUserSource". |
| authProfileAutoSync | boolean | When true, MES personnel are automatically synchronized with users in the configured user source. Example: true. |
| authProfileRefreshRate | number | Number of seconds between automatic user synchronizations. Used only when authProfileAutoSync is true. Minimum value: 300. Example: 3600 synchronizes users once per hour. |
| cacheInactiveMesObjectThreshold | number | Number of seconds an MES object can remain unaccessed in the cache before it is eligible to be removed. If the cache reaches its maximum size, objects can be removed sooner. Example: 60. |
| cacheMaxMesObjectCount | number | Maximum number of MES objects held in the cache. Increasing this value can reduce database reads but requires more memory. Example: 10000. |
| requiredRolesEditScripts | array of string | Roles allowed to edit MES event scripts in the Designer. A user must have at least one of the listed roles. An empty list allows users with any role to edit MES event scripts. Only the Enterprise Root can change this setting. Example: ["Administrator", "MESEngineer"]. |

* * *

## enterprise-settings/config.json

Settings that define where the gateway resides in the enterprise hierarchy and control advanced synchronization, retention, and monitoring behavior.

```json
{
  "enterprise": true,
  "parentGateway": "0:0:ParentGateway",
  "enterpriseGateway": "EnterpriseGateway",
  "equipmentServerSettings": [
    {
      "parentEquipmentPath": "Enterprise\\Site1",
      "equipmentName": "ProductionLine1",
      "equipmentUUID": "11111111-2222-3333-4444-555555555555"    
    }
    
  ],
  "knownChildGateways": [
    {
      "serverId": "0:0:ChildGateway",
      "equipmentServerSettings": [
        {
          "parentEquipmentPath": "Enterprise",
          "equipmentName": "Site2",
          "equipmentUUID": null        
        }
        
      ]
      
    }
    
  ],
  "localGateway": "0:0:LocalGateway",
  "previousLocalGateway": "0:0:PreviousGatewayName",
  "uniqueGatewayIdentifier": "SITE1",
  "isDataRetentionEnabled": true,
  "retentionPeriodInDays": 365,
  "verticalSyncLoopTime": 60000,
  "verticalSyncMaxPendingSaves": 10000,
  "threadCount": 4,
  "maxSyncKeys": 1000,
  "objectSyncCheckInterval": 15,
  "objectSyncChangeCount": 10000,
  "maxArtifactSizeKB": 10000,
  "isMonitoringEnabled": true,
  "isMonitoringDebugEnabled": false
}
```


| Name | Type | Description |
| --- | --- | --- |
| enterprise | boolean | Specifies whether the gateway is the Enterprise Root. When true, the gateway is the root of the enterprise. An Enterprise Root must have exactly one equipment item, and that item must have a name. Example: true. Use false for a non-root gateway. |
| parentGateway | string | Gateway Network address of the gateway's parent. An empty value means the gateway has no parent. A non-root gateway with a parent must also have equipment settings configured. Example: "0:0:ParentGateway". Use "" for a gateway without a parent. |
| enterpriseGateway | string | Name of the Enterprise Root gateway. Example: "EnterpriseGateway". |
| equipmentServerSettings | array | Equipment settings that place the gateway in the enterprise equipment tree. Equipment paths must be unique across gateways. An empty list is valid when the gateway is not part of an enterprise. |
| parentEquipmentPath | string | Parent equipment path for this gateway's equipment item. Example: "Enterprise\\Site1". |
| equipmentName | string | Local equipment name. Example: "ProductionLine1". |
| equipmentUUID | string | Optional equipment UUID. Example: "11111111-2222-3333-4444-555555555555". May be null. |
| knownChildGateways | array | Child gateways already known to this gateway, including equipment settings recorded for each child. An empty list indicates that no child gateways are recorded. |
| serverId | string | Gateway Network server ID of the child gateway. Example: "0:0:ChildGateway". |
| equipmentServerSettings | array | Equipment settings recorded for that child. |
| parentEquipmentPath | string | Parent equipment path for the child equipment item. Example: "Enterprise". |
| equipmentName | string | Equipment name recorded for the child. Example: "Site2". |
| equipmentUUID | string | Optional equipment UUID for the child. May be null. |
| localGateway | string | Current Gateway Network server ID for the local gateway. Example: "0:0:LocalGateway". |
| previousLocalGateway | string | Gateway Network server ID used by this gateway before its most recent local address change. Example: "0:0:PreviousGatewayName". An unchanged gateway might contain "". |
| uniqueGatewayIdentifier | string | Identifier used as a prefix for automatically generated lot numbers. It also distinguishes users originating from different gateways. The same identifier cannot be used by two gateways within the same enterprise. Example: "SITE1". |
| isDataRetentionEnabled | boolean | Enables or disables the data-retention cleaner. Example: true. |
| retentionPeriodInDays | number | Number of days to retain data. -1 means data is never deleted based on age. Example: 365. Use -1 to retain data indefinitely. |
| verticalSyncLoopTime | number | Interval, in milliseconds, at which the gateway sends values to its parent gateway. Allowed range: 100 to 3600000. Example: 60000. |
| verticalSyncMaxPendingSaves | number | Maximum number of value records that can wait to be saved during vertical synchronization. Minimum value: 1000. Example: 10000. |
| threadCount | number | Number of threads used for enterprise processing. Allowed range: 1 to 8. Example: 4. |
| maxSyncKeys | number | Maximum number of tag collectors checked during one synchronization pass. Minimum value: 10. Example: 1000. |
| objectSyncCheckInterval | number | Number of seconds between checks for MES object changes that need to be sent to other gateways. Allowed range: 1 to 3600. Example: 15. |
| objectSyncChangeCount | number | Maximum number of MES object changes sent during one synchronization pass. Allowed range: 1000 to 100000. Example: 10000. |
| maxArtifactSizeKB | number | Maximum artifact size, in kilobytes, handled by enterprise synchronization. Allowed range: 1 to 1048574. Example: 10000. |
| isMonitoringEnabled | boolean | Enables or disables MES monitoring. Example: true. |
| isMonitoringDebugEnabled | boolean | Enables or disables MES monitoring debug output. Example: false. |

* * *

## task-route-settings/config.json

Settings that determine which gateway executes analysis tasks and which gateway executes runtime tasks. An empty gateway name means the local gateway performs that work.

```json
{
  "analysisGatewayName": "0:0:AnalysisGateway",
  "runtimeGatewayName": "0:0:RuntimeGateway"
}
```


| Name | Type | Description |
| --- | --- | --- |
| analysisGatewayName | string | Gateway Network name of the gateway that hosts analysis tasks. Example: "0:0:AnalysisGateway". Use "" to run analysis tasks on the local gateway. |
| runtimeGatewayName | string | Gateway Network name of the gateway that hosts runtime tasks. Example: "0:0:RuntimeGateway". Use "" to run runtime tasks on the local gateway. |

* * *

## mes-meta-data/config.json

Settings that identify the gateway in MES metadata.

```json
{
  "changesetEnabled": true,
  "gatewayUUID": "12345678-abcd-4abc-9def-123456789abc"
}
```


| Name | Type | Description |
| --- | --- | --- |
| changesetEnabled | boolean | Specifies whether the gateway records MES object change sets. Example: true. |
| gatewayUUID | string | Stable UUID that identifies the gateway. The UUID is stored with MES metadata and recorded on change-log entries so changes originating from different gateways can be distinguished. If an ID does not already exist, the gateway uses the UUID associated with its enterprise equipment or generates a UUID. Example: "12345678-abcd-4abc-9def-123456789abc". Each gateway should have its own UUID. |

**Sepasoft MES Module Suite**