← API reference
CANONICAL TYPE REFERENCE

EdgeAppState

A tenant-scoped integration edgeApp template installable on N controllers

Unique identifier

handleString!

Wire id used for bridge reconciliation; unique per tenant

nameString!

Display name

Optional human description

Monotonic per (tenant, handle). Drafts hold the version they'll claim at publish time; publishing freezes it.

Lifecycle position — DRAFT (mutable) / PUBLISHED (frozen, latest) / DEPRECATED (frozen, older).

Triggers in this edgeApp

Handlers in this edgeApp

Reusable Lua snippets, loaded by handlers via bridge.loadLib

External MQTT broker subscriptions (template shape; secrets live on the installation)

External OPC UA endpoints (hybrid-bridge §29; credentials/PEMs may be ${config:NAME} templates)

External SNMP devices (hybrid-bridge §32; community/auth/priv may be ${config:NAME} templates)

Modbus ports (hybrid-bridge §33; auth-free protocol)

Exec commands declared by the edgeApp (hybrid-bridge §34; gated by the controller's policy)

HTTP inbound routes (hybrid-bridge §36; auth credentials are redacted)

onMessageString

Lua entry point for cloud invocations via local.edgeApp.invoke (nil if not invokable)

Optional JSON Schema describing the shape of an installation's variables

Cloud-forwarding level for bridge.log.* calls (default INFO)

isActiveBoolean!

Whether this edgeApp is included in installation pushes

createdAtString!

Creation timestamp (ISO8601)

updatedAtString!

Last update timestamp (ISO8601)

View exact SDL
"""
A tenant-scoped integration edgeApp template installable on N controllers
"""
type EdgeAppState {
  """Unique identifier"""
  id: EdgeAppID! @iac_identity(assignedBy: SERVER) @iac_computed
  """Wire id used for bridge reconciliation; unique per tenant"""
  handle: String! @iac_forcesReplace
  """Display name"""
  name: String!
  """Optional human description"""
  description: String
  """
  Monotonic per (tenant, handle). Drafts hold the version they'll claim at publish time; publishing freezes it.
  """
  version: Int! @iac_computed
  """
  Lifecycle position — DRAFT (mutable) / PUBLISHED (frozen, latest) / DEPRECATED (frozen, older).
  """
  status: EdgeAppStatus! @iac_computed
  """Triggers in this edgeApp"""
  triggers: [EdgeAppTrigger!]! @iac_validate(with: ["edge-app-triggers"])
  """Handlers in this edgeApp"""
  handlers: [EdgeAppHandler!]!
  """Reusable Lua snippets, loaded by handlers via bridge.loadLib"""
  libraries: [EdgeAppLibrary!]!
  """
  External MQTT broker subscriptions (template shape; secrets live on the installation)
  """
  mqttBrokers: [EdgeAppMQTTBroker!]!
  """
  External OPC UA endpoints (hybrid-bridge §29; credentials/PEMs may be ${config:NAME} templates)
  """
  opcuaEndpoints: [EdgeAppOPCUAEndpoint!]!
  """
  External SNMP devices (hybrid-bridge §32; community/auth/priv may be ${config:NAME} templates)
  """
  snmpDevices: [EdgeAppSNMPDevice!]!
  """Modbus ports (hybrid-bridge §33; auth-free protocol)"""
  modbusPorts: [EdgeAppModbusPort!]!
  """
  Exec commands declared by the edgeApp (hybrid-bridge §34; gated by the controller's policy)
  """
  execCommands: [EdgeAppExecCommand!]!
  """HTTP inbound routes (hybrid-bridge §36; auth credentials are redacted)"""
  httpRoutes: [EdgeAppHTTPRouteOutput!]!
  """
  Lua entry point for cloud invocations via local.edgeApp.invoke (nil if not invokable)
  """
  onMessage: String @iac_artifact(language: LUA)
  """
  Optional JSON Schema describing the shape of an installation's variables
  """
  configSchema: JSON
  """Cloud-forwarding level for bridge.log.* calls (default INFO)"""
  logLevel: EdgeAppLogLevel
  """Whether this edgeApp is included in installation pushes"""
  isActive: Boolean!
  """Creation timestamp (ISO8601)"""
  createdAt: String! @iac_computed
  """Last update timestamp (ISO8601)"""
  updatedAt: String! @iac_computed
}

One stable address across all schema views. Follow a field’s type to explore connections between domains.