# XML vocabulary reference

Use this reference to look up supported elements, their attributes, allowed child
elements and limits. The editor offers the same vocabulary as you write XML.

## EdgeApp XML vocabulary

This reference describes portable definitions. `${config:NAME}` bindings name values supplied by an EdgeApp installation; they never set those values.

### `<edge-app>` in document

Portable EdgeApp definition.

Attributes: `active`, `format`, `handle`, `log-level`, `name`.

Children: `<config-schema>`, `<description>`, `<exec-commands>`, `<handlers>`, `<http-routes>`, `<libraries>`, `<modbus-ports>`, `<mqtt-brokers>`, `<on-message>`, `<opcua-endpoints>`, `<snmp-devices>`, `<triggers>`.

### `<description>` in edge-app

Human-readable definition description.

This element accepts text or CDATA.

### `<config-schema>` in edge-app

JSON Schema for installation variables.

Prefer a schema root in urn:cococo:json-schema:1. Legacy JSON text or CDATA remains accepted. See the XML schemas manual.

### `<handlers>` in edge-app

Named Lua handlers.

Children: `<handler>`.

### `<handler>` in handlers

Named Lua handler source.

Attributes: `name`.

This element accepts text or CDATA.

### `<libraries>` in edge-app

Named reusable Lua libraries.

Children: `<library>`.

### `<library>` in libraries

Named reusable Lua source.

Attributes: `name`.

This element accepts text or CDATA.

### `<on-message>` in edge-app

Lua entry point for cloud invocation.

This element accepts text or CDATA.

### `<triggers>` in edge-app

Event sources wired to handlers.

Children: `<cron>`, `<file-created>`, `<file-deleted>`, `<tail>`.

### `<cron>` in triggers

Cron schedule trigger.

Attributes: `handler`, `name`, `schedule`.

### `<tail>` in triggers

File tail trigger.

Attributes: `handler`, `name`, `path`.

### `<file-created>` in triggers

File creation trigger.

Attributes: `handler`, `name`, `path`, `pattern`.

### `<file-deleted>` in triggers

File deletion trigger.

Attributes: `handler`, `name`, `path`, `pattern`.

### `<mqtt-brokers>` in edge-app

MQTT broker definitions.

Children: `<broker>`.

### `<broker>` in mqtt-brokers

One named MQTT connection.

Attributes: `client-id`, `keepalive-seconds`, `name`, `qos`, `url`, `username`.

Children: `<password>`, `<subscriptions>`, `<tls>`, `<will>`.

### `<subscriptions>` in broker

MQTT topic subscriptions.

Children: `<subscription>`.

### `<subscription>` in mqtt subscriptions

Topic filter and handler binding.

Attributes: `handler`, `topic`.

### `<tls>` in broker

MQTT TLS policy and installation bindings.

Attributes: `insecure-skip-verify`.

Children: `<ca-cert>`, `<client-cert>`, `<client-key>`.

### `<will>` in broker

MQTT last-will definition.

Attributes: `qos`, `retain`, `topic`.

Children: `<payload>`.

### `<payload>` in will

Last-will payload.

This element accepts text or CDATA.

### `<opcua-endpoints>` in edge-app

OPC UA endpoint definitions.

Children: `<endpoint>`.

### `<endpoint>` in opcua-endpoints

One named OPC UA endpoint.

Attributes: `name`, `reconnect-interval-ms`, `url`.

Children: `<auth>`, `<security>`, `<subscriptions>`.

### `<auth>` in opcua endpoint

OPC UA authentication policy.

Attributes: `mode`, `username`.

Children: `<password>`.

### `<security>` in opcua endpoint

OPC UA channel security policy.

Attributes: `mode`, `policy`.

Children: `<client-cert>`, `<client-key>`.

### `<subscriptions>` in opcua endpoint

OPC UA monitored nodes.

Children: `<subscription>`.

### `<subscription>` in opcua subscriptions

Monitored node and handler binding.

Attributes: `handler`, `node-id`, `queue-size`, `sampling-ms`.

### `<snmp-devices>` in edge-app

SNMP device definitions.

Children: `<device>`.

### `<device>` in snmp-devices

One named SNMP device connection.

Attributes: `host`, `name`, `port`, `retries`, `timeout-ms`, `version`.

Children: `<community>`, `<poll-groups>`, `<v3>`.

### `<v3>` in snmp device

SNMPv3 identity and security bindings.

Attributes: `auth-protocol`, `context-name`, `privacy-protocol`, `user`.

Children: `<auth-key>`, `<privacy-key>`.

### `<poll-groups>` in snmp device

SNMP polling schedules.

Children: `<poll>`.

### `<poll>` in snmp poll-groups

One SNMP poll and handler binding.

Attributes: `handler`, `interval-ms`, `name`.

Children: `<oid>`, `<walk>`.

### `<oid>` in snmp poll

Fixed OID read.

Attributes: `label`, `value`.

### `<walk>` in snmp poll

OID subtree walk.

Attributes: `label`, `value`.

### `<modbus-ports>` in edge-app

Modbus transport definitions.

Children: `<port>`.

### `<port>` in modbus-ports

One named Modbus transport.

Attributes: `baud-rate`, `data-bits`, `host`, `name`, `parity`, `port`, `serial-path`, `stop-bits`, `transport`.

Children: `<slaves>`.

### `<slaves>` in modbus port

Modbus slave definitions.

Children: `<slave>`.

### `<slave>` in modbus slaves

One slave unit.

Attributes: `name`, `unit-id`.

Children: `<poll-groups>`.

### `<poll-groups>` in modbus slave

Modbus polling schedules.

Children: `<poll>`.

### `<poll>` in modbus poll-groups

One Modbus poll and handler binding.

Attributes: `handler`, `interval-ms`, `name`.

Children: `<read>`.

### `<read>` in modbus poll

Typed Modbus address read.

Attributes: `address`, `byte-order`, `function`, `label`, `quantity`, `scale`, `type`, `word-order`.

### `<exec-commands>` in edge-app

Permitted local commands.

Children: `<command>`.

### `<command>` in exec-commands

One executable with arguments, outputs, environment settings and limits.

Attributes: `max-stdout-bytes`, `name`, `path`, `timeout-ms`.

Children: `<arg>`, `<env>`, `<output>`.

### `<arg>` in exec command

One command-line argument.

This element accepts text or CDATA.

### `<output>` in exec command

One named temporary output.

Attributes: `name`.

### `<env>` in exec command

One clean environment entry.

Attributes: `name`.

This element accepts text or CDATA.

### `<http-routes>` in edge-app

Inbound HTTP route definitions.

Children: `<route>`.

### `<route>` in http-routes

Method, path, handler, auth, and limits.

Attributes: `handler`, `max-body-bytes`, `method`, `path`, `timeout-ms`.

Children: `<auth>`.

### `<auth>` in http route

Explicit route authentication policy.

Attributes: `mode`.

Children: `<credential>`, `<token>`.