i3X

The i3X Client Connection allows for connecting to an i3X server and browsing i3X Objects and ObjectTypes, as well as reading current value and history, and subscribing for value changes.

Connection Settings

Base URL

The full base URL for the i3X server. Ex. https://127.0.0.1:8885/i3x/v1. Note this must include the i3X version v1 which is a mandatory part of the URL given the spec.

Authentication Type

Valid options are None and Bearer Token.

SettingDescription
NoneNo authentication is used.
Bearer TokenRequires the Token setting to be set.

Subscription Mode

i3X servers can support subscriptions using either streaming (SSE) or sync. Set this at the connection level given the server capabilities and your preference.

Subscriptions are only used when i3X inputs are referenced in Pipeline Event Triggers. In both cases the connection creates a single subscription on the i3X server and adds Objects for all referenced inputs to that subscription.

Sync

The connection calls the /sync method at the configured poll interval to retrieve all updates since the last /sync call.

Stream

The connection opens an SSE stream and receives updates as they occur in the i3X server.

Input Settings

The connection supports browsing the i3X server for Objects starting at the root.

There are two types of inputs; Current Value and History.

Type: Current Value

Current Value inputs read or subscribe to the latest value of one or more Objects.

Element Source

Current Value can read a single Object, multiple Objects, or all Objects of an ObjectType.

  • Single Object: Use Find to browse for the Object. When read, the payload includes the value of the Object.
{
	"id": 1,
	"name": "John Doe",
	"department": "Engineering",
	"joinDate": "2024-01-15T00:00:00.000Z"
}
  • Multiple Objects: Use Find to select one or more Objects. The results are returned as an array of the reads under a value attribute.

Note: The value attribute is required because the Objects could return values of objects, primitive types, or arrays. Adding the value attribute helps encapsulate the different types.

[
    {
        "value": {
          "id": 1,
          "name": "John Doe",
          "department": "Engineering",
          "joinDate": "2024-01-15T00:00:00.000Z"
        }
    },
    {
        "value": {
          "id": 2,
          "name": "Jane Smith",
          "department": "Marketing",
          "joinDate": "2023-11-20T00:00:00.000Z"
        }
    },
    {
    "value": 2.2
    }
]
  • Object Type: Use Find to browse the server ObjectTypes and select one. On the first read the connection queries for all Objects of the ObjectType and caches the elementIds. This list of elementIds is used in the read or subscription.

Use the Cache Interval setting to control how often the connection refreshes the list of elementIds for the ObjectType. The read payloads are returned in the same shape as the Multiple Objects query.

Max Depth

This setting controls the depth of composed objects included in the read and is sent directly to the server. Note this only traverses the HasComposition relationship, and not HasChildren. Defaults to 1, meaning no components.

Include Metadata

When enabled, the read payload includes value under a value attribute with additional i3X metadata at the root.

{
	"elementId": "myElementId",
	"typeElementId": "type:myType",
	"displayName": "myDisplayName",
	"quality": "Good",
	"timestamp": "2026-08-05T13:10:40.863Z",
	"value": {
		"id": 1,
		"name": "x",
		"department": "Engineering",
		"joinDate": "2024-01-15T00:00:00.000Z"
	}
}

Type: History

History inputs allow reading the history of one or more Objects from a start time to an end time.

Start Time / End Time

The start and end time for the query in ISO 8601 format. Example: 2026-08-05T13:28:00Z

[
  {
  "elementId": "Plant.Production.Line01.RawMaterial",
  "values": [
        {
          "value": {
            "state": "Running",
            "beltweight": {
              "feedRate_kgpm": 37.49038446869582,
              "totalizer_kg": 13027.845367715383,
              "load_kg": 49.9927259130069
            }
          },
          "quality": "Good",
          "timestamp": "2026-07-31T17:41:50.3750000Z"
        },
        {
          "value": {
            "state": "Running",
            "beltweight": {
              "feedRate_kgpm": 37.48595174865745,
              "totalizer_kg": 13025.976199054008,
              "load_kg": 49.98937258908177
            }
          },
          "quality": "Good",
          "timestamp": "2026-07-31T17:41:50.3750000Z"
        }
    ]
  }
]

Output Settings

Outputs are currently not supported.