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
descriptionStringOptional human description
versionInt!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)
onMessageStringLua 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.