Example of a complete app_info.json 

To make it easier for you to create a correct JSON file, you can use the following JSON schema:


  {
    "$schema": "https://raw.githubusercontent.com/PLCnext/App-Info-Schema/refs/heads/main/app-info-schema.json",
    "plcnextapp": {
        ...
    }
}
  

If you use a code editor that supports JSON schema (e.g. Visual Studio® Code), autocomplete and descriptions of the properties are added. You can find more information on JSON schema at GitHub.

The following shows the contents of an app description file in which all types of app parts are configured as examples.

Note: In the following example, these are optional app parts entries. Don't use them if they are not needed or if their configured files do not exist in the app-container, otherwise the app installation on the target may be refused because of detected configuration errors.

 

 {
     "$schema": "https://raw.githubusercontent.com/PLCnext/App-Info-Schema/refs/heads/main/app-info-schema.json",
     "plcnextapp": {
        "name": "Full Multipart App",
        "identifier": "00000000000000",
        "version": "Full20.0 (112.12 DemoVersion)",
        "target": "AXC F 2152",
        "minfirmware_version": "20.0.0",
        "manufacturer": "Phoenix Contact",
        "licensetype": "Free"
     },
     "engineerapp": {
        "folder": "/arp/PCWE"
     },
     "cmdtools":
     [
        {
        "path" : "/bin/DemoCmdTool"
        },
        {
        "path" : "<Path to cmd tool executable binary>"
        }
     ],
     "plcnextextensions" :
     [
        {
           "acfconfigpath" : "/PLCnextRuntimeDaemon.acf.config"
        },
        {
          "acfconfigpath" : "<path to PLCnext extension .acf.config file>"
        }
     ],
     "linuxdaemons" :
     [
        {
        "path" : "/bin/daemon1exe",
        "cmdargs" : "arg1 arg2 … argN",
        "starttime": "40"
        },
        {
        "path" : "<Path to daemon executable binary>",
        "cmdargs" : "<arg1 arg2 … argN>",
        "starttime": "99",
        "initScriptTemplate":"<Path to own template file>"
        }
     ],
     "sharedlibs":
     [
        {
        "libpath" : "/lib/sharedlib1.so"
        },
        {
        "libpath" : "<Path to shared library binary>"
        }
     ],
     "datastorage": {
        "persistentdata": true,
        "temporarydata" : true
     },
     "plcnextservices":
     [
        {
           "service": "<Service ID>",
           "action" : "EXCLUSIVE_ACCESS"
        },
        {
           "service": "WBM",
           "action" : "MUST_HAVE"
        },
        {
           "service" : "OPCUA",
           "action" : "MUST_NOT_HAVE"
        }
     ],
     "updateconfigs": {
           "autoupdate_enabled": <true/false>,
           "keep_persistentdata": <true/false>,
           "keep_temporarydata": <true/false>,
           "post_updatescript": "<Path to app update script>" 
        }
  }

 

 

 

 

 


• Published/reviewed: 2025-08-26 • Revision 21 •