Added a new Modeling Agent to assist users in browsing OPC UA and SQL Connections and creating and editing Inputs, Models and Instances. Supports document uploads (e.g., Excel, P&ID PDFs) and allows users to iterate and review changes. Works with any LLM.
Added knowledge graph support for tracking dependencies among project configuration objects. Users can explore the Data Lineage Graph in the Usage tab, in addition to the existing tabular view.
Added graph MCP tools to allow agents to explore project configurations and data lineage through the configuration graph. Users can ask questions like “Where does the data on topic /line1/pump come from?”
Improved the performance of the PI System Connection for backfill and change-data-capture use cases. The PI Agent now uses PI SDK caching and supports a Parquet serialization format to reduce the query time for large datasets.
Added support for Lookup Maps to address use cases where SQLite or other databases were used to lookup metadata for assets, tags, etc. A Lookup Map can be configured from a source system (e.g., CSV, Database) or statically in the project and provides optimized key/metadata lookups in Instances and Pipelines.
Added OIDC support for single sign-on. Options now include SAML, Active Directory, and OIDC.
Enhanced MCP Config tools for configuring Connections, Inputs, Outputs, Models, and Instances, in addition to Pipelines. This allows agents to fully create and edit project configuration.
Enhanced the Pipeline AI Agent to better use Write New stages with correct output settings.
Added skills to the Pipeline AI Agent to better understand when and why to use different stages and patterns.
Added a tool to the Pipeline AI Agent to get the schema for specific stages, reducing tokens by removing the full pipeline schema from the context.
Enhanced the Pipeline AI Agent to work with input and instance parameters.
Added AARCH64 support for Intelligence Hub Docker images. Download the arm64.tar file.
Added Metadata support to the Namespace nodes. Nodes can now be assigned key/value pairs which can be used in Smart Query to more intelligently select nodes. For example, query for all data with isAsset=true.
Added a NATS Connection for subscribing and publishing to a NATS broker.
Added an i3X Client Connection with support for browsing, reading, subscribing, and historical data access.
Added support for streaming files on disk to cloud storage without loading the full file into memory, allowing pipelines to efficiently move large files to the Cloud. Support added to Databricks Storage, Microsoft OneLake, Azure Blob Storage, and Amazon S3.
Added Move and Delete Output types to the File Connector, allowing pipelines to decide when to move or delete files once processing is complete.
Added support for reading PI Digital State tables as a new Input type.
Changed the Docker base image from Alpine to an Ubuntu Linux-based Temurin image to remove issues with glib-c dependencies not working correctly.
Added Enum data type support to Models. Enums restrict an attribute to a known set of values, limiting what it can be.
Added optional version field to Models that can be configured and controlled by the user.
Added the ability to import UANodeSet and JSON Schema defined models as part of Git import deployments.
Added support for downloading configuration schemas (Connections, Pipelines, Models, etc.) from the Resource page. These can be used as resources to LLMs when creating project configuration.
Added the option on Read and Smart Query stages to handle “Good No Data” events. Previously, “Good No Data” would stop pipeline execution.
Added Event Path settings to the Write and Write New stages that allows the stages to select which part of the event to use for the write operation.
Added Path selection to Read and Merge stages, allowing the stage to control what part of the read is used for the event value.
Added the Expand Arrays option to the Model Stage to make it easier to model an event that is an array of objects and not require using a looping stage.
Added support for configuring the pipeline inbound queue size. Previously, it was hardcoded to 10k.
Enhanced High Availability (HA) with the ability to configure the heartbeat expirations for a cluster, providing more granular control of switchover.
Added a Max Message Received feature to the MQTT Connection that can be used with QoS 1 or 2 to limit the number of messages being processed and avoid data loss when pipeline processing can’t keep up with ingestion.
Added a Dynamic Overrides section to all Inputs for advanced cases where non-string fields like booleans, selects, and arrays need to be parameterized.
Enhanced Oracle CDC to build committed transactions in memory instead of relying on Oracle LogMiner, leading to consistent results when dealing with overlapping transactions.
Enhanced PI Event Frame reads to include parent ID, root ID, and path on every result, independent of the query. Root elements will not include a parent ID or root ID.
Added support for configuring checksum validation and URL addressing style for hosted S3 instances.
Enhanced the Project page to support manual import and export from Git, as well as automatic backup configuration.
Enhanced Docker support for HA by allowing HA configuration to be set via environment variables. Added /v2/livez and /v2/readz liveness and readiness endpoints for improved HA and Kubernetes support.
Improved audit reporting on remote hubs edited using central configuration by including the hub name and username in the audit log of the remote hub.
Added support for setting a hub’s display name. The display name is displayed in the browser tab name, the Intelligence Hub header, the dashboard, central hub, and OpenTelemetry as an attribute on all metrics and logs.
Added OpenTelemetry pull support, in addition to the existing push support.
Added service, host, and K8 metadata to OpenTelemetry metrics to improve observability in multi-hub deployments.
Enhanced Git deployment fragments to allow defining multiple files in a single import fragment.
Enhanced i3X ObjectTypes to include model and attribute descriptions.
Added support for using environment and system variables in output settings.
Improved read performance of Templated Inputs and Instances by caching template configuration. The cache is reset for any configuration change that impacts sources.
Enhanced the i3X Server with support for configuring pipelines to handle i3X Client History and Write requests.
Added support for subscribing to OPC UA Branches in parallel, speeding up the time it takes to bulk subscribe to branches when leveraging features like templating.
MCP Server configuration now uses a cache of connection tools for building the MCP Servers page. There is a Tool Refresh Period in Settings to refresh the cache.
Added the ‘format’ field to i3X JSON Schema types for numeric JSON types to improve interoperability.
Added Aliases field to Role. This field can be used instead of the Role name to match against external identity provider roles/groups and it allows spaces and special characters not allowed in Role Names.
Enhanced the OPC UA Connection with support for Basic128Rsa15, Basic256, Aes128_Sha256_RsaOaep, and Aes256_Sha256_RsaPss security policies.
When the user session expires, they are now shown a session timeout message and returned to original page after re-login.
Updated the JSON Schema import to better detect numeric type instead of defaulting to UInt64.
Enhanced the UI to auto-center pipelines when a pipeline is opened.
Updated the error messages reported by Write and Write New stages to show the error followed by the output configuration, making it easier to find the error message.
Added support for copying and modifying text in array-style fields in the UI. For example, the name of a PI Point can now be modified in-line.
Added hot key option to support using down-arrow on inline pipeline stage add menu.
Made general improvements to UI application, Configuration Server, and REST Data Server to support access using a reverse proxy without additional application configuration
Re-designed the Reference Panel and added a universal filter/search.
Enhanced Pipelines with the ability to add Trigger stages inline, similar to adding inline stages.
Enhanced the UI to show the stage configuration for stages that are added via drag-and-drop.
Added timestamp, path, and quality to Ignition reads when ‘Include Metadata’ is enabled.
Fixes:
Fixed an issue that could lead to multiple duplicate reads against the same input when using the Instance reference field with a unique path.
Enhanced reference path resolution logic to better reflect JavaScript-style referencing. Added support for interpreting bracketed paths, including empty quotes ([""]) and escaped quotes (["escaped\"quote"]).
Fixed an issue where the Filter Stage clear button would not clear attribute filters.
Fixed an issue where certain application failures would not exit with a bad status code. Now all application failures end with status code 1.
Fixed an issue where Sparkplug properties of type DateTime were not properly read when the ‘Include Properties’ option for Sparkplug inputs is enabled.
Fixed an issue where the tag page would not reload the tag list after bulk untagging an object.
Improved JSON Schema importing when title or id is missing.
Fixed an issue where enabling Redundancy mode would lead to multiple Pipeline start events.
Fixed an issue where Pipeline statistics could be negative due to miscalculated time.
Removed redundant warning message on startup for a missing intelligencehub-settings.json file.
Changed the startup "License not found ..." error log into a warning.
Fixed an issue that would cause all pipeline stages to be deleted during rapid save operations.
Fixed an issue where Instance Dynamic Template References would not be shown on the Usage tab.
Fixed an issue where Pipelines startup could be slow when using templated Flow Triggers.
Fixed an issue where the OnChange stage was changing some datatypes when Disk Persistence Mode is enabled, resulting in value changes. The following datatypes were affected:
Integer types, Int16, Int32, Int64 (and unsigned types) became Int64.
FP types, Real32 and Real64 became Real64.
DateTime became String.
Updated OPC UA Browse Loading dark mode style to match the rest of the product.
Fixed indexing bug that would cause indexing errors on 2-dimensional arrays used inside instance expressions. For example, when accessing [0] of a 2-d array [[1,2],[3.4]], the expression will now produce [1,2] where previously it would produce 1.
Fixed an issue where the original timestamp of a value could be changed to the current time on a write if the write is delayed by buffering. The original value timestamp is now preserved.
Fixed an issue that prevented AWS IoT SiteWise STS OAuth tokens from being refreshed.
Fixed an issue where an MSSQL connection using only a CDC Input would fail to recover after a disconnect. A default 5-minute socket timeout is now applied to CDC connections to prevent socket operations from hanging indefinitely. The timeout can be overridden via the JDBC connection string.
Fixed an off-by-one error in the Pipeline queue limit, where the maximum number of queued items was one less than the configured value (i.e., 10K was 9999).
Fixed an issue where i3X Subscriptions could silently stop delivering updates, with no error shown to the client after a configuration change triggered a namespace subscription refresh.
Disabled gzip for i3X SSE streams to avoid delayed delivery of data change events.
Fixed an issue where the service-installer-windows.out.log file could grow without bound if a pipeline is repeatedly logging the same error. Changed the <logmode> to ‘roll-by-size’ in the file service-installer-windows.xml to prevent unbounded growth for long-running services.
Fixed an issue where Event Triggers were not firing from broker queued QoS2 MQTT messages on startup.
Fixed an issue where AD usernames were treated in a case-sensitive manner during sign-in.
Fixed an issue where S3 Tables would repeatedly try/fail an unsupported operation when Store & Forward was enabled. Unsupported operations are no longer retried with Store & Forward.
Fixed an issue where UInt64 types would fail to write on Databricks Zerobus outputs.
Fixed a UI issue that causes the left navigation panel scrolling to stop working.
Updated Google Gemini Connection's to default to the 3.5-flash model.
Fixed an issue in the JSON Schema import that was defaulting large numbers to type UInt64, they will default to Int64 now.
Enhanced bulk model deletion to allow all models to be deleted in a single operation. Previously, models with child model references required parent models to be deleted first, preventing all models from being removed in one step.
Fixed PI Point and Asset reads when using both Interval and Indexing. If the final interval was partial, PI did not return a result, and the indexed end time was incorrectly set to the query end time rather than the end of the last complete interval.
Breaking Changes:
Added the ability to set custom OpenTelemetry Agent Properties via environment variables. Note: Enabling OpenTelemetry is now controlled by setting the environment variable `OTEL_AGENT_PROPERTIES` instead of modifying entry scripts.
When starting the Intelligence Hub via Docker, the ACCEPT_EULA=Y environment variable is now required; the runtime will not start if it is absent. Review theEnd User License Agreementbefore starting the product.
Changed PI Point and Asset reads to return “Good No Data” when the requested interval is greater than the time span between the start and end times. Previously, a partial interval was returned.
Fixed an issue with the EventTrigger when subscribing to OPC UA Branches, OPC UA Collections, and Sparkplug Inputs where the ‘All’ setting only returned changes. The trigger now returns all values (tags or metrics), including those that changed. The ‘Compressed’ option has been renamed to ‘Changed’.
Security Patch Updates:
The Intelligence Hub now sends X-Frame-Options: DENY and a CSP frame-ancestors 'none' directive on all responses, preventing the UI from being embedded in an iframe and mitigating clickjacking attacks.
All UI responses now include a strict Content-Security-Policy along with X-Content-Type-Options: nosniff. This mitigates cross-site scripting attacks/vulnerabilities.
The runtime's cross-origin resource sharing policy no longer reflects or wildcards request origins; it now enforces a same-origin policy by default, with an optional Allowed Origins list for trusted sites that can be configured in Application Settings.
Users are now automatically logged out when their associated user or role changes, so permission changes (such as an Administrator-to-Standard downgrade) take effect immediately rather than persisting until the next re-authentication.
Frontend:
CVE-2025-62718: Defect that allows improper hostname normalization when evaluating NO_PROXY rules to enable proxy bypass and server-side request forgery against internal services.
CVE-2026-39363: Defect that allows WebSocket connections without an Origin header to retrieve arbitrary files by bypassing filesystem access controls.
CVE-2026-39364: Defect allows crafted query parameters to bypass the server.fs.deny blocklist and retrieve sensitive files such as .env or certificates.
CVE-2026-39365: Defect that allows path traversal via .map request URLs to retrieve source map files outside the project root, bypassing filesystem restrictions.
CVE-2026-40175: Defect that allows CRLF sequences in HTTP headers to enable header injection, which can be chained with prototype pollution to achieve server-side request forgery or cloud credential exfiltration.
CVE-2026-42033: Defect that could allow prototype pollution from a co-dependency to enable silent interception and modification of JSON responses, or full hijacking of the underlying HTTP transport including credentials and headers.
CVE-2026-42034: Defect that allows streamed uploads to bypass the configured maxBodyLength limit when maxRedirects is set to 0, enabling unbounded upload sizes.
CVE-2026-42035: Defect that could allow prototype pollution from any dependency to inject arbitrary HTTP headers into outgoing requests.
CVE-2026-42036: Defect that allows streamed responses using responseType: 'stream' to bypass the configured maxContentLength limit, enabling unbounded downstream consumption.
CVE-2026-42037: Defect that allows CRLF sequences in a Blob's type property to inject arbitrary MIME part headers into multipart form-data request bodies.
CVE-2026-42038: Defect that allows IP aliases and loopback equivalents to bypass NO_PROXY rules via pure string matching, enabling server-side request forgery.
CVE-2026-42039: Defect that could allow deeply nested request data to trigger unbounded recursion, leading to denial of service.
CVE-2026-42040: Defect that allows the safe percent-encoding of null bytes to be reversed, enabling null byte injection into URL query strings.
CVE-2026-42041: Defect that could allow prototype pollution to suppress all HTTP error responses, causing status codes such as 401 and 403 to be treated as successful responses and bypassing authentication checks.
CVE-2026-42042: Defect that could allow prototype pollution to short-circuit the same-origin check, causing XSRF tokens to be sent to cross-origin servers.
CVE-2026-42043: Defect that allows crafted URLs to bypass NO_PROXY rules via RFC 1122 loopback subnet ranges, enabling server-side request forgery against internal services.
CVE-2026-42044: Defect that could allow prototype pollution to inject a custom JSON reviver, enabling invisible surgical modification of all parsed JSON API responses.
CVE-2026-42264: Defect that could allow prototype pollution to silently inject polluted config properties into every outbound HTTP request.
CVE-2026-59879: Defect that allows large index values passed to List operations to trigger an infinite loop or unbounded memory allocation, leading to denial of service.
CVE-2026-59880: Defect that allows keys sharing the same hash value to be exploited to trigger quadratic lookup times in Map and Set operations, leading to denial of service.
CVE-2026-53571: Defect that could allow NTFS alternate data stream paths and 8.3 short names on Windows to bypass server.fs.deny rules and expose sensitive files such as .env and certificates.
CVE-2026-53632: Defect that could allow UNC paths on Windows to trigger an outbound SMB connection, leaking the server's NTLMv2 hash to an attacker-controlled host.
CVE-2026-53550: Defect that allows repeated YAML aliases in a merge sequence to trigger quadratic CPU exhaustion, leading to denial of service.
CVE-2026-59877: Defect that allows a crafted schema with an unterminated option to trigger an infinite loop, leading to denial of service.
CVE-2026-6733: Defect that could allow an idle socket to be reused after a connection error, causing a subsequent request to be silently dropped or routed incorrectly.
CVE-2026-6734: Defect that allows a shared connection pool to route requests for multiple origins through the first origin's connection, enabling cross-origin credential exposure and potential HTTPS downgrade.
CVE-2026-9678: Defect that could allow a crafted Set-Cookie header to bypass cookie scope restrictions, enabling cross-origin cookie injection.
CVE-2026-9679: Defect that could allow cookies with crafted domain attributes to be sent to unintended origins, enabling credential leakage.
CVE-2026-9697: Defect that causes the requestTls option to be silently dropped, falling back to default certificate validation and allowing MITM attacks against custom CA configurations.
CVE-2026-11525: Defect that could allow a server to send an unbounded number of empty continuation frames, causing memory exhaustion and denial of service.
CVE-2026-40181: Defect that allows redirect paths starting with // to be reinterpreted as protocol-relative URLs, enabling open redirect to external domains.
CVE-2026-12143: Defect that allows CRLF sequences in field names or filenames to be injected into Content-Disposition headers, enabling header injection in multipart form requests.
CVE-2026-13149: Defect that allows consecutive non-expanding brace groups to trigger exponential CPU consumption, leading to denial of service.CVE-2026-42211: Defect that could allow an existing prototype pollution vulnerability to be chained with React Router internals to enable remote code execution.
CVE-2026-42342: Defect that allows crafted requests to trigger unbounded path expansion, causing excessive resource consumption and denial of service.
CVE-2026-53663: Defect that allows CSRF checks to be bypassed on certain requests, potentially enabling unauthorized state-changing actions.
CVE-2026-49356: Defect that allows a maliciously crafted URL comment to cause arbitrary file read from the host system.
Runtime:
CVE-2026-9828: Defect that could allow an attacker able to send crafted serialized data to instantiate unauthorized classes, bypassing the intended security restrictions.
CVE-2026-10532: Defect that could allow an attacker able to send crafted serialized data to instantiate Proxy objects, bypassing the intended security restrictions.
CVE-2026-8763: Defect that allows a trailing dot in email address or URI fields to bypass Name Constraints certificate path validation, potentially enabling certificate spoofing.
CVE-2026-58062: Defect that allows a stapled OCSP response to be accepted without being bound to the certificate being checked, potentially enabling revoked certificate acceptance.
CVE-2026-59638: Defect that enables CN-fallback hostname matching by default despite being documented as an opt-in, potentially enabling hostname verification bypass.
CVE-2026-59650: Defect that allows an unvalidated peer public key value to be used in the key agreement computation, potentially enabling a small-subgroup attack.
Amazon Redshift:
CVE-2026-8178: Defect that allows attacker-controlled JDBC connection properties with a datatype. prefix to be passed to Class.forName(), enabling arbitrary class loading and remote code execution.
Azure Event Hubs:
CVE-2026-66257: Defect that allows a pre-authentication attacker to send unbounded AMQP symbol values, causing resource exhaustion and denial of service.
CVE-2026-66273: Defect that allows a pre-authentication attacker to send excessively large AMQP type sizes or counts, causing unbounded allocation and denial of service.
CVE-2026-66274: Defect that allows a pre-authentication attacker to send deeply nested AMQP types, triggering a stack overflow and denial of service.
Databricks:
CVE-2026-56822: Defect that allows the SSL handshake completion event to be forwarded before asynchronous OCSP certificate validation completes, enabling use of unvalidated certificates.
CVE-2026-56821: Defect that allows certificate revocation checks to be bypassed due to improper validation of the revocation status response.
CVE-2026-59901: Defect that allows a malformed compressed stream to cause an infinite loop in the event-loop thread, leading to denial of service.
CVE-2026-59898: Defect that could allow protocol version confusion to cause incorrect message parsing or unexpected connection behavior.
CVE-2026-59899: Defect that could allow crafted input to cause unbounded memory consumption, leading to denial of service.
UNS Client:
CVE-2026-41242: Defect that allows arbitrary code injected into the type fields of protobuf definitions to execute during object decoding, enabling remote code execution.
CVE-2026-48712: Defect that allows deeply nested message payloads to trigger unbounded recursion during JSON conversion, leading to denial of service.
CVE-2026-54269: Defect that allows schema-derived field names that collide with internal runtime properties to trigger exceptions or unbounded recursion, leading to denial of service.
Kafka Connection:
CVE-2026-35554: Defect that could allow a buffer pool race condition to cause messages to be silently delivered to unintended topics, leading to data corruption or unauthorized data exposure.
Ignition Module:
CVE-2026-0636: Defect that allows crafted input to inject malicious elements into LDAP queries, enabling query manipulation.
CVE-2026-2950: Defect that allows array-wrapped path segments to bypass prototype pollution protections, enabling deletion of properties from built-in JavaScript prototypes.
CVE-2026-4800: Defect that allows untrusted options.imports key names to inject code, enabling arbitrary code execution at template compilation time.
CVE-2026-5588: Defect that allows an empty signature sequence to be accepted as valid, potentially enabling signature verification bypass.
CVE-2026-33228: Defect that allows crafted JSON input to leak a live reference to Array.prototype, enabling global prototype chain pollution.
CVE-2026-33532: Defect that allows deeply nested flow sequences to trigger unbounded recursion and a stack overflow, leading to denial of service.
CVE-2026-33672: Defect that allows crafted glob patterns to inject inherited method names into generated regular expressions, causing incorrect glob matching behavior.
CVE-2026-33894: Defect that allows non-canonical signatures to be accepted as valid, potentially enabling authentication bypass in applications relying on signature uniqueness.
CVE-2026-33895: Defect that allows forged signatures to pass validation for low public exponent keys, enabling signature forgery.
CVE-2026-33896: Defect that allows leaf certificates lacking basicConstraints extensions to act as certificate authorities, enabling forged certificate chains.
CVE-2026-5598: Defect that could allow non-constant time comparisons to leak private key material via a timing side-channel attack.
CVE-2026-6321: Defect that allows percent-encoded path separators and dot segments to be decoded before normalization, enabling path traversal and bypass of path-based security policies.
CVE-2026-6322: Defect that allows percent-encoded authority delimiters to be decoded during normalization, enabling host confusion attacks that bypass domain validation.
CVE-2026-44728: Defect that allows specially crafted input to cause the compiler to generate output that executes arbitrary code.
CVE-2026-9277: Defect that allows unescaped line terminators in shell operator tokens to be treated as command separators, enabling arbitrary command injection.
CVE-2026-13311: Defect that allows crafted input to trigger quadratic CPU consumption, leading to denial of service.
CVE-2026-13676: Defect that allows Unicode hostnames to be parsed differently, enabling host-based security policy bypass.
CVE-2026-14620: Defect that allows cross-site requests to trigger state-changing actions on internal developer endpoints without origin verification.
CVE-2026-14631: Defect that allows an unauthenticated peer to send a crafted request that terminates the entire Node.js process, causing denial of service.
CVE-2026-16221: Defect that allows backslash characters to be parsed differently, enabling host confusion and security policy bypass.
CVE-2026-18446: Defect that allows backslash-based URL authority introducers to be parsed without extracting a host, enabling host-based security policy bypass.
CVE-2026-40181: Defect that allows redirect paths starting with // to be reinterpreted as protocol-relative URLs, enabling open redirect to external domains.
CVE-2026-53666: Defect that could allow attacker-supplied input to trigger unexpected constructor execution during server-side rendering hydration, causing unintended outbound network requests.
CVE-2026-53668: Defect that allows crafted redirect links to redirect users to unexpected external sites or trigger cross-site scripting.
CVE-2026-53669: Defect that could allow attacker-supplied paths passed to navigation mechanisms to trigger unexpected external redirects.
CVE-2026-54466: Defect that allows a client to send an unbounded sequence of length-encoding bytes, causing the server to parse an ever-growing integer and leading to message corruption or denial of service.
CVE-2026-55602: Defect that allows a crafted Host header to match proxy routing rules via substring matching, enabling requests to be routed to unintended backend services.
CVE-2026-59869: Defect that allows a crafted YAML document with chained merge keys to trigger excessive CPU consumption, leading to denial of service.
CVE-2026-59879: Defect that allows large index values passed to List operations to trigger an infinite loop or unbounded memory allocation, leading to denial of service.
CVE-2026-59880: Defect that allows keys sharing the same hash value to be exploited to trigger quadratic lookup times in Map and Set operations, leading to denial of service.