# Module Development

**URL:** https://forum.inductiveautomation.com/c/module-development/7.md?page=4

[Latest](https://forum.inductiveautomation.com/latest.md) · [Categories](https://forum.inductiveautomation.com/categories.md) · [Tags](https://forum.inductiveautomation.com/tags.md)

**Page:** 5

---

## [8.3 History Query in Client](https://forum.inductiveautomation.com/t/8-3-history-query-in-client/113467)

<div class="topic-metadata">

**Author:** [@cody.tamaki](https://forum.inductiveautomation.com/u/cody.tamaki)\
**Replies:** 1\
**Last updated:** [January 21, 2026, 11:06pm UTC](https://forum.inductiveautomation.com/t/8-3-history-query-in-client/113467 "2026-01-21T23:06:10Z")

</div>

It looks like an API I was using for tag history queries from the client has been deprecated. What is the replacement in a vision client for: GatewayConnectionManager.getInstance().getGatewayInterface().runTagHistoryQu…

---

## [How do I fix a import issue related to auth.idp.oidc.OidcAdapterConfig?](https://forum.inductiveautomation.com/t/how-do-i-fix-a-import-issue-related-to-auth-idp-oidc-oidcadapterconfig/113448)

<div class="topic-metadata">

**Author:** [@william.victorio](https://forum.inductiveautomation.com/u/william.victorio)\
**Replies:** 4\
**Last updated:** [January 21, 2026, 6:03pm UTC](https://forum.inductiveautomation.com/t/how-do-i-fix-a-import-issue-related-to-auth-idp-oidc-oidcadapterconfig/113448 "2026-01-21T18:03:44Z")

</div>

Im trying to import this lib import com.inductiveautomation.ignition.gateway.auth.idp.oidc.OidcAdapterConfig; but its not working. I already tried adding the dependencies into the build.gradle, and I added these lines…

---

## [Read-only Text Box on Module Config Page](https://forum.inductiveautomation.com/t/read-only-text-box-on-module-config-page/113189)

<div class="topic-metadata">

**Author:** [@jarvis.coghlin](https://forum.inductiveautomation.com/u/jarvis.coghlin)\
**Replies:** 1\
**Last updated:** [January 16, 2026, 8:46pm UTC](https://forum.inductiveautomation.com/t/read-only-text-box-on-module-config-page/113189 "2026-01-16T20:46:55Z")

</div>

I’m looking for a way to create a read-only text field in a config page for my module. I’ve figured out how to make a StringField and place it inside of a Category on the config page, but I don’t see a way to make it re…

---

## [Multi Node Workspace Example](https://forum.inductiveautomation.com/t/multi-node-workspace-example/62705)

<div class="topic-metadata">

**Author:** [@kgamble](https://forum.inductiveautomation.com/u/kgamble)\
**Replies:** 23\
**Last updated:** [January 12, 2026, 5:25pm UTC](https://forum.inductiveautomation.com/t/multi-node-workspace-example/62705 "2026-01-12T17:25:31Z")

</div>

Are there any public examples of modules that implement multiple Nav tree nodes for their designer workspace? i.e. Perspective has the Style workspace and the View workspace I have been using the TabbedResourceWorksp…

---

## [Not eligible for use with Ignition Maker Edition](https://forum.inductiveautomation.com/t/not-eligible-for-use-with-ignition-maker-edition/113129)

<div class="topic-metadata">

**Author:** [@Muti\_Gozel](https://forum.inductiveautomation.com/u/Muti_Gozel)\
**Replies:** 11\
**Last updated:** [January 12, 2026, 4:22am UTC](https://forum.inductiveautomation.com/t/not-eligible-for-use-with-ignition-maker-edition/113129 "2026-01-12T04:22:44Z")

</div>

Hi All, A while ago I developed a custom perspective module following the example at: https://github.com/inductiveautomation/ignition-sdk-examples/tree/ignition-8.3/perspective-component It was working without any is…

---

## [How to return MinMax aggregate results in custom historian?](https://forum.inductiveautomation.com/t/how-to-return-minmax-aggregate-results-in-custom-historian/112437)

<div class="topic-metadata">

**Author:** [@Eden.Mar](https://forum.inductiveautomation.com/u/Eden.Mar)\
**Replies:** 4\
**Last updated:** [January 6, 2026, 11:32pm UTC](https://forum.inductiveautomation.com/t/how-to-return-minmax-aggregate-results-in-custom-historian/112437 "2026-01-06T23:32:06Z")

</div>

I’m currently implementing the minmax aggregation for a custom historian, and I’ve run into an odd issue. I’m able to find the min and max aggregations individually without issue, but when I try to put them together, I’m…

---

## [Ignition 8.3.4 Nullability Annotations](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103)

<div class="topic-metadata">

**Author:** [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Replies:** 3\
**Last updated:** [January 6, 2026, 7:15pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-4-nullability-annotations/113103 "2026-01-06T19:15:04Z")

</div>

In Ignition 8.3.4, we've standardized our nullability annotations on JSpecify. As part of this change, we removed the JSR 305 (javax.annotation) and JetBrains (org.jetbrains.annotations) annotation dependencies from the …

---

## [Custom historian tags switching colors/values on a powerchart](https://forum.inductiveautomation.com/t/custom-historian-tags-switching-colors-values-on-a-powerchart/113080)

<div class="topic-metadata">

**Author:** [@awhoover](https://forum.inductiveautomation.com/u/awhoover)\
**Replies:** 2\
**Last updated:** [January 6, 2026, 2:25pm UTC](https://forum.inductiveautomation.com/t/custom-historian-tags-switching-colors-values-on-a-powerchart/113080 "2026-01-06T14:25:32Z")

</div>

I am in the process of creating a custom historian module for ignition 8.3. I am seeing a strange issue when reading data from an instance of my custom historian. When adding multiple tags to a power chart, the colors/va…

---

## [MQTT Vanilla Client Module](https://forum.inductiveautomation.com/t/mqtt-vanilla-client-module/105873)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 7\
**Last updated:** [January 5, 2026, 9:11pm UTC](https://forum.inductiveautomation.com/t/mqtt-vanilla-client-module/105873 "2026-01-05T21:11:16Z")

</div>

In case it is helpful to anyone, I have been developing a free MQTT client module based on the HiveMQ client libraries. It is relatively early development, but already it is able to connect to a TLS secured username/pass…

---

## [ManagedTagProvider Timestamp updates?](https://forum.inductiveautomation.com/t/managedtagprovider-timestamp-updates/113043)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 5\
**Last updated:** [January 5, 2026, 1:19pm UTC](https://forum.inductiveautomation.com/t/managedtagprovider-timestamp-updates/113043 "2026-01-05T13:19:54Z")

</div>

I have a managed tag provider set up, and I periodically update the tag values, not always changing them. Is the timestamp shown in Ignition based on last change or last update? It seems to not update the timestamp every…

---

## [How do you read a Perspective Session Custom Property from a Gateway Scoped Module?](https://forum.inductiveautomation.com/t/how-do-you-read-a-perspective-session-custom-property-from-a-gateway-scoped-module/113064)

<div class="topic-metadata">

**Author:** [@robert.t](https://forum.inductiveautomation.com/u/robert.t)\
**Replies:** 4\
**Last updated:** [January 5, 2026, 1:56am UTC](https://forum.inductiveautomation.com/t/how-do-you-read-a-perspective-session-custom-property-from-a-gateway-scoped-module/113064 "2026-01-05T01:56:48Z")

</div>

Hello, I am trying to retrieve a perspective session custom property from a gateway scoped module and I have tried to use an InternalSession like below with no success. UUID internalUUID = InternalSession.SESSION.get()…

---

## [DeveloperModuleLoadingServlet under Ignition 8.3?](https://forum.inductiveautomation.com/t/developermoduleloadingservlet-under-ignition-8-3/113062)

<div class="topic-metadata">

**Author:** [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Replies:** 12\
**Last updated:** [January 4, 2026, 11:30pm UTC](https://forum.inductiveautomation.com/t/developermoduleloadingservlet-under-ignition-8-3/113062 "2026-01-04T23:30:19Z")

</div>

Does this deployment facility still work in Ignition 8.3? The Gradle code I have (which replicates the Gradle code from https://github.com/inductiveautomation/ignition-module-tools) works under Ignition 8.0/8.1 but not u…

---

## [Ignition 8.3: Guidance/example on end-to-end WebUI / Gateway interaction](https://forum.inductiveautomation.com/t/ignition-8-3-guidance-example-on-end-to-end-webui-gateway-interaction/113054)

<div class="topic-metadata">

**Author:** [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Replies:** 6\
**Last updated:** [January 4, 2026, 9:21am UTC](https://forum.inductiveautomation.com/t/ignition-8-3-guidance-example-on-end-to-end-webui-gateway-interaction/113054 "2026-01-04T09:21:59Z")

</div>

I’ve been able to update my company’s module to function correctly under Ignition 8.3 except for the configuration UI. In other words, I’m successfully migrating the configuration from the old SQLite record stuff to the …

---

## [Ignition 8.3: RPC call works in Designer but not in (legacy) Client](https://forum.inductiveautomation.com/t/ignition-8-3-rpc-call-works-in-designer-but-not-in-legacy-client/113060)

<div class="topic-metadata">

**Author:** [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Replies:** 5\
**Last updated:** [January 4, 2026, 2:32am UTC](https://forum.inductiveautomation.com/t/ignition-8-3-rpc-call-works-in-designer-but-not-in-legacy-client/113060 "2026-01-04T02:32:50Z")

</div>

I’m close to the end of the conversion of my module from 8.0 to 8.3 compatible. I have an Ignition Vision component that makes an RPC call to my Gateway hook. It works great in Designer, but in Client (i.e. Ignition Vi…

---

## [artifactId perspective-gateway, perspective-common not found in 8.3?](https://forum.inductiveautomation.com/t/artifactid-perspective-gateway-perspective-common-not-found-in-8-3/110038)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 7\
**Last updated:** [January 2, 2026, 7:20pm UTC](https://forum.inductiveautomation.com/t/artifactid-perspective-gateway-perspective-common-not-found-in-8-3/110038 "2026-01-02T19:20:19Z")

</div>

I try to compile a module from 8.1 to 8.3 and perspective artifact can’t be found ?

---

## [Where are ByteUtilities gone?](https://forum.inductiveautomation.com/t/where-are-byteutilities-gone/113020)

<div class="topic-metadata">

**Author:** [@chi](https://forum.inductiveautomation.com/u/chi)\
**Replies:** 8\
**Last updated:** [December 30, 2025, 9:03pm UTC](https://forum.inductiveautomation.com/t/where-are-byteutilities-gone/113020 "2025-12-30T21:03:10Z")

</div>

I am searching for the 8.3 replacement for com.inductiveautomation.xopc.driver.util.ByteUtilities. It is mentioned in the 8.3 programmer's guide but there is no xopc package in the 8.3 api. Has this class been moved some…

---

## [The package com.inductiveautomation.ignition.gateway.util is accessible from more than one module](https://forum.inductiveautomation.com/t/the-package-com-inductiveautomation-ignition-gateway-util-is-accessible-from-more-than-one-module/113019)

<div class="topic-metadata">

**Author:** [@chi](https://forum.inductiveautomation.com/u/chi)\
**Replies:** 5\
**Last updated:** [December 30, 2025, 8:44pm UTC](https://forum.inductiveautomation.com/t/the-package-com-inductiveautomation-ignition-gateway-util-is-accessible-from-more-than-one-module/113019 "2025-12-30T20:44:28Z")

</div>

Hello, i have a problem importing some gateway packages after updating the compiler version to Java 17. I get the error: The package com.inductiveautomation.ignition.gateway.util is accessible from more than one module…

---

## [Event Streams Driver for generic ethernet TCP barcode readers](https://forum.inductiveautomation.com/t/event-streams-driver-for-generic-ethernet-tcp-barcode-readers/113001)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 1\
**Last updated:** [December 28, 2025, 7:28am UTC](https://forum.inductiveautomation.com/t/event-streams-driver-for-generic-ethernet-tcp-barcode-readers/113001 "2025-12-28T07:28:45Z")

</div>

Hi All, I have just released a very simple but useful driver for Event Streams in 8.3. This driver starts up a TCP server listening on a given port for any connections from a barcode reader. Any received barcodes are …

---

## [AlarmManager / AlarmListener – Good Practices](https://forum.inductiveautomation.com/t/alarmmanager-alarmlistener-good-practices/112997)

<div class="topic-metadata">

**Author:** [@Tiago\_Gomes](https://forum.inductiveautomation.com/u/Tiago_Gomes)\
**Replies:** 2\
**Last updated:** [December 26, 2025, 8:00pm UTC](https://forum.inductiveautomation.com/t/alarmmanager-alarmlistener-good-practices/112997 "2025-12-26T20:00:53Z")

</div>

Background I’ve been working with the standard Alarm Status Table component in Perspective and identified several performance bottlenecks that become critical in bandwidth-constrained environments: Full table retransm…

---

## [Event Streams Handler doesn't cause designer reload?](https://forum.inductiveautomation.com/t/event-streams-handler-doesnt-cause-designer-reload/112991)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 0\
**Last updated:** [December 25, 2025, 12:58am UTC](https://forum.inductiveautomation.com/t/event-streams-handler-doesnt-cause-designer-reload/112991 "2025-12-25T00:58:11Z")

</div>

If I register another Event Stream Source Design Delegate in a module then compile and install the module, Ignition sees the change in Designer Scope and prompts to reload the designer session. If I register an Event St…

---

## [Event Streams status and config change events](https://forum.inductiveautomation.com/t/event-streams-status-and-config-change-events/112983)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 2\
**Last updated:** [December 24, 2025, 11:11pm UTC](https://forum.inductiveautomation.com/t/event-streams-status-and-config-change-events/112983 "2025-12-24T23:11:46Z")

</div>

I am having a few issues with threads becoming orphaned when I change config on the Designer screens. I am not seeing where the change in config will send an event to the module to reinitialise the module with the update…

---

## [Metro ConnectionWatcher documentation](https://forum.inductiveautomation.com/t/metro-connectionwatcher-documentation/112919)

<div class="topic-metadata">

**Author:** [@patrick.klose](https://forum.inductiveautomation.com/u/patrick.klose)\
**Replies:** 8\
**Last updated:** [December 24, 2025, 5:42pm UTC](https://forum.inductiveautomation.com/t/metro-connectionwatcher-documentation/112919 "2025-12-24T17:42:41Z")

</div>

The public Javadoc describes the GatewayNetworkManager class, which includes several methods in its summary that return com.inductiveautomation.metro.impl.ConnectionWatcher objects, but I can’t seem to find any sort of d…

---

## [Creating a dynamic openapi schema](https://forum.inductiveautomation.com/t/creating-a-dynamic-openapi-schema/112955)

<div class="topic-metadata">

**Author:** [@Isaac\_Apodaca](https://forum.inductiveautomation.com/u/Isaac_Apodaca)\
**Replies:** 0\
**Last updated:** [December 23, 2025, 12:45am UTC](https://forum.inductiveautomation.com/t/creating-a-dynamic-openapi-schema/112955 "2025-12-23T00:45:36Z")

</div>

Hey Everyone, I'm creating a module and am looking to create a dynamic openapi schema based on a type. Something like this screenshot Depending on the type, the schema changes. Any guidance or examples for this kind…

---

## [queryHistory() functionality](https://forum.inductiveautomation.com/t/queryhistory-functionality/112735)

<div class="topic-metadata">

**Author:** [@Porter\_Ellis](https://forum.inductiveautomation.com/u/Porter_Ellis)\
**Replies:** 11\
**Last updated:** [December 19, 2025, 10:36pm UTC](https://forum.inductiveautomation.com/t/queryhistory-functionality/112735 "2025-12-19T22:36:51Z")

</div>

I am using queryHistory() in my module to retrieve historical data, then preprocess the data in a specific way before using it elsewhere in the module. I have found that preprocessing after getting the query return is ac…

---

## [EmailProfileManager send email / com.sun.mail.util.MailConnectException](https://forum.inductiveautomation.com/t/emailprofilemanager-send-email-com-sun-mail-util-mailconnectexception/112920)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 12\
**Last updated:** [December 19, 2025, 8:12pm UTC](https://forum.inductiveautomation.com/t/emailprofilemanager-send-email-com-sun-mail-util-mailconnectexception/112920 "2025-12-19T20:12:44Z")

</div>

Ignition 8.1.51 I use the following code to send email from a module, from Config\>Network\>Email Profiles test it's ok the email is well send and I received it, but from the code I have the following error: (profile C…

---

## [List Tag Providers](https://forum.inductiveautomation.com/t/list-tag-providers/27722)

<div class="topic-metadata">

**Author:** [@chuckcoughlin](https://forum.inductiveautomation.com/u/chuckcoughlin)\
**Replies:** 5\
**Last updated:** [December 18, 2025, 10:32pm UTC](https://forum.inductiveautomation.com/t/list-tag-providers/27722 "2025-12-18T22:32:06Z")

</div>

I am attempting to create user-selectable list of tag providers. private List getProviderList() { List result = new ArrayList\<\>(); GatewayContext context = ApplicationInstallerGatewayHook.getInstance().getContext(); …

---

## [Proper way of finding Resource using NamedResourceHandler](https://forum.inductiveautomation.com/t/proper-way-of-finding-resource-using-namedresourcehandler/112874)

<div class="topic-metadata">

**Author:** [@Eden.Mar](https://forum.inductiveautomation.com/u/Eden.Mar)\
**Replies:** 9\
**Last updated:** [December 18, 2025, 10:23pm UTC](https://forum.inductiveautomation.com/t/proper-way-of-finding-resource-using-namedresourcehandler/112874 "2025-12-18T22:23:00Z")

</div>

Hello, I’m building a custom alarm notification profile and I’m trying to search for the backing record for it. I have an extension point extending from AlarmNotificationProfileExtensionPoint, and a record NotificationCo…

---

## [Ignition 8.3.2 queryHistory() latency](https://forum.inductiveautomation.com/t/ignition-8-3-2-queryhistory-latency/112778)

<div class="topic-metadata">

**Author:** [@robert.t](https://forum.inductiveautomation.com/u/robert.t)\
**Replies:** 17\
**Last updated:** [December 18, 2025, 7:40pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-2-queryhistory-latency/112778 "2025-12-18T19:40:48Z")

</div>

Hello, I had a queryHistory() method that I was using in Ignition 8.3.1 that was querying 1000 tags which had a response time of approximately 2s, and I have upgraded my Ignition to 8.3.2 which caused the same method to…

---

## [TagRetirementList vs. BasicScanclassHistorySet](https://forum.inductiveautomation.com/t/tagretirementlist-vs-basicscanclasshistoryset/67566)

<div class="topic-metadata">

**Author:** [@nicholas.robinson](https://forum.inductiveautomation.com/u/nicholas.robinson)\
**Replies:** 5\
**Last updated:** [December 16, 2025, 9:56pm UTC](https://forum.inductiveautomation.com/t/tagretirementlist-vs-basicscanclasshistoryset/67566 "2025-12-16T21:56:48Z")

</div>

In our kafka tag history sink we send tag history records to kafka like this: @Override public void storeData(HistoricalData data) throws IOException { int pathIndex = 0; for (HistoricalData row…

---

## [How to refer to a custom resource for FormFieldType.Reference/FormReferenceType](https://forum.inductiveautomation.com/t/how-to-refer-to-a-custom-resource-for-formfieldtype-reference-formreferencetype/112816)

<div class="topic-metadata">

**Author:** [@Eden.Mar](https://forum.inductiveautomation.com/u/Eden.Mar)\
**Replies:** 8\
**Last updated:** [December 16, 2025, 6:59pm UTC](https://forum.inductiveautomation.com/t/how-to-refer-to-a-custom-resource-for-formfieldtype-reference-formreferencetype/112816 "2025-12-16T18:59:19Z")

</div>

Hello, I’m working on creating some custom alarm notification profiles and I’m trying to figure out how to reference the account settings from a custom record. I already have my extension points set up for my notificatio…

[Previous page](https://forum.inductiveautomation.com/c/module-development/7.md?page=3)

[Next page](https://forum.inductiveautomation.com/c/module-development/7.md?page=5)
