# Module Development

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

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

**Page:** 8

---

## [Ignition 8.3 Maven / Sonatype Repo artifact missing](https://forum.inductiveautomation.com/t/ignition-8-3-maven-sonatype-repo-artifact-missing/110848)

<div class="topic-metadata">

**Author:** [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Replies:** 4\
**Last updated:** [September 23, 2025, 5:31pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-maven-sonatype-repo-artifact-missing/110848 "2025-09-23T17:31:15Z")

</div>

I’m trying to get my module building under Gradle, it is complaining about a “ignition-laf:3.1.0-beta13” artifact that it can’t find: \> Could not find com.inductiveautomation.plaf:ignition-laf:3.1.0-beta13. Searched i…

---

## [Supply Pretty Name for API Enumeration Type](https://forum.inductiveautomation.com/t/supply-pretty-name-for-api-enumeration-type/110893)

<div class="topic-metadata">

**Author:** [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Replies:** 3\
**Last updated:** [September 23, 2025, 4:01pm UTC](https://forum.inductiveautomation.com/t/supply-pretty-name-for-api-enumeration-type/110893 "2025-09-23T16:01:58Z")

</div>

I'd like to provide a pretty name for an enumeration used in my extension point config. Overriding toString will show my pretty name in the UI and allow for selection + save, but the dropdown box doesn't load the curren…

---

## [Adding Method On Custom Module](https://forum.inductiveautomation.com/t/adding-method-on-custom-module/110819)

<div class="topic-metadata">

**Author:** [@Gunawan\_Hadikusumo](https://forum.inductiveautomation.com/u/Gunawan_Hadikusumo)\
**Replies:** 4\
**Last updated:** [September 23, 2025, 2:01am UTC](https://forum.inductiveautomation.com/t/adding-method-on-custom-module/110819 "2025-09-23T02:01:51Z")

</div>

Hi Dear, I am trying to understand on how the perspective custom module works. I took example perspective- component and try to do several modification in order to understand how thing works. So on messenger.props.json …

---

## [API Annotations, LabelKey?](https://forum.inductiveautomation.com/t/api-annotations-labelkey/110859)

<div class="topic-metadata">

**Author:** [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Replies:** 2\
**Last updated:** [September 23, 2025, 1:01am UTC](https://forum.inductiveautomation.com/t/api-annotations-labelkey/110859 "2025-09-23T01:01:12Z")

</div>

Is there a way to use a an i18n key for an extension point's config field label? I was expecting to find an @LabelKey annotation available, but that doesn't exist. I've tried using the @TitleKey, but that doesn't see…

---

## [Signing upgraded modules for 8.3](https://forum.inductiveautomation.com/t/signing-upgraded-modules-for-8-3/110831)

<div class="topic-metadata">

**Author:** [@james.vosler](https://forum.inductiveautomation.com/u/james.vosler)\
**Replies:** 9\
**Last updated:** [September 22, 2025, 9:27pm UTC](https://forum.inductiveautomation.com/t/signing-upgraded-modules-for-8-3/110831 "2025-09-22T21:27:16Z")

</div>

Has anything changed for signing modules for 8.3? I signed an upgraded module with the same tools that work for 8.1, but uploading the module has issues: Ignition standard 8.3.0 (b2025091510) modl contains certificate…

---

## [Settings Record to reference a database connection](https://forum.inductiveautomation.com/t/settings-record-to-reference-a-database-connection/110844)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 1\
**Last updated:** [September 22, 2025, 5:59pm UTC](https://forum.inductiveautomation.com/t/settings-record-to-reference-a-database-connection/110844 "2025-09-22T17:59:57Z")

</div>

For a module I try in a record to reference a database connection. What is the @FormField annotation to use ? FormFieldType.REFERENCE or FormFieldType.SELECT or other ? public record MySettingsResource( @FormC…

---

## [8.3, Issue Providing Device Extension Points](https://forum.inductiveautomation.com/t/8-3-issue-providing-device-extension-points/110843)

<div class="topic-metadata">

**Author:** [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Replies:** 5\
**Last updated:** [September 22, 2025, 5:30pm UTC](https://forum.inductiveautomation.com/t/8-3-issue-providing-device-extension-points/110843 "2025-09-22T17:30:11Z")

</div>

I'm updating an existing module to 8.3 and am struggling to get my device types to appear in the Create Device Connection page, using ignition-sdk-examples/opc-ua-device as an example. Here's my extension point: class …

---

## [Error at setup for Resource migration](https://forum.inductiveautomation.com/t/error-at-setup-for-resource-migration/110794)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 6\
**Last updated:** [September 19, 2025, 6:44pm UTC](https://forum.inductiveautomation.com/t/error-at-setup-for-resource-migration/110794 "2025-09-19T18:44:19Z")

</div>

Ignition 8.3 (no forum tag…) I migrated a module from 8.1. At setup I have the following error: Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "…

---

## [ConfigPanel in Ignition8.3](https://forum.inductiveautomation.com/t/configpanel-in-ignition8-3/110682)

<div class="topic-metadata">

**Author:** [@Grace\_Gan](https://forum.inductiveautomation.com/u/Grace_Gan)\
**Replies:** 2\
**Last updated:** [September 19, 2025, 1:43am UTC](https://forum.inductiveautomation.com/t/configpanel-in-ignition8-3/110682 "2025-09-19T01:43:59Z")

</div>

In v8.1, I use the ConfigPanel class to create a custom panel in the gateway, am having a look into v8.3 and it seems like it’s one of the things (out of many others potentially) that got removed, is there a replacement …

---

## [Intercepting Tag Reads for Historical Playback](https://forum.inductiveautomation.com/t/intercepting-tag-reads-for-historical-playback/110694)

<div class="topic-metadata">

**Author:** [@thimo\_van\_den\_broek](https://forum.inductiveautomation.com/u/thimo_van_den_broek)\
**Replies:** 8\
**Last updated:** [September 18, 2025, 5:42pm UTC](https://forum.inductiveautomation.com/t/intercepting-tag-reads-for-historical-playback/110694 "2025-09-18T17:42:12Z")

</div>

Hi , I’m currently working on a project for a customer where we want to implement a “SCADA replay” feature. The goal is to allow users to view historical data directly within the existing native screens—essentially repl…

---

## [\[IGN-14331\] Create Historian button does not get enabled with a SECRET](https://forum.inductiveautomation.com/t/ign-14331-create-historian-button-does-not-get-enabled-with-a-secret/110526)

<div class="topic-metadata">

**Author:** [@jpark](https://forum.inductiveautomation.com/u/jpark)\
**Replies:** 4\
**Last updated:** [September 17, 2025, 1:41am UTC](https://forum.inductiveautomation.com/t/ign-14331-create-historian-button-does-not-get-enabled-with-a-secret/110526 "2025-09-17T01:41:33Z")

</div>

Ignition 8.3-RC1 I have a custom module to create a historian. The only required field is the name. Once I add a SecretConfig field, the Create Historian button does not get enabled. I’ve tried setting the value to no…

---

## [Tag read from perspective module component](https://forum.inductiveautomation.com/t/tag-read-from-perspective-module-component/110656)

<div class="topic-metadata">

**Author:** [@Nathan\_Moore](https://forum.inductiveautomation.com/u/Nathan_Moore)\
**Replies:** 2\
**Last updated:** [September 16, 2025, 2:22pm UTC](https://forum.inductiveautomation.com/t/tag-read-from-perspective-module-component/110656 "2025-09-16T14:22:32Z")

</div>

Hi, Is it possible to do a tag read or programatically create a binding from the /web (react) portion of your module using typescript? My guess is that it would need to be done at the java gateway hook then passed to t…

---

## [How to check Secret password in DeviceExtensionPoint](https://forum.inductiveautomation.com/t/how-to-check-secret-password-in-deviceextensionpoint/110643)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 1\
**Last updated:** [September 15, 2025, 10:56pm UTC](https://forum.inductiveautomation.com/t/how-to-check-secret-password-in-deviceextensionpoint/110643 "2025-09-15T22:56:28Z")

</div>

Ignition 8.3 I try to check a password parameter has the minimal lenght in a DeviceExtensionPoint But at gateway startup I have a NPE on opcua module, on line Secret.create(deviceContext.getGatewayContext() because the…

---

## [Advice requested: Advice: Best way to integrate PTZ ONVIF camera into Ignition 8.3 (Vision)](https://forum.inductiveautomation.com/t/advice-requested-advice-best-way-to-integrate-ptz-onvif-camera-into-ignition-8-3-vision/110632)

<div class="topic-metadata">

**Author:** [@mjhosseinzade](https://forum.inductiveautomation.com/u/mjhosseinzade)\
**Replies:** 2\
**Last updated:** [September 15, 2025, 6:22pm UTC](https://forum.inductiveautomation.com/t/advice-requested-advice-best-way-to-integrate-ptz-onvif-camera-into-ignition-8-3-vision/110632 "2025-09-15T18:22:27Z")

</div>

Hi everyone I’m integrating PTZ cameras into an Ignition 8.3 (Vision) system and I need advice which development approach to choose. PTZ control (move, goto preset) snapshot capture (later stored in MongoDB) sc…

---

## [Module Release: MQTT to Event Streams Connector](https://forum.inductiveautomation.com/t/module-release-mqtt-to-event-streams-connector/110616)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 0\
**Last updated:** [September 15, 2025, 5:51am UTC](https://forum.inductiveautomation.com/t/module-release-mqtt-to-event-streams-connector/110616 "2025-09-15T05:51:59Z")

</div>

I have just released on GitHub an open module for connecting MQTT Topics to Event Streams. Connect to a topic on a broker using a filter string, every MQTT publish to that topic will generate an event that you can hand…

---

## [WebUIConfig and GatewayHook communication](https://forum.inductiveautomation.com/t/webuiconfig-and-gatewayhook-communication/110537)

<div class="topic-metadata">

**Author:** [@darren.steele](https://forum.inductiveautomation.com/u/darren.steele)\
**Replies:** 1\
**Last updated:** [September 11, 2025, 3:33pm UTC](https://forum.inductiveautomation.com/t/webuiconfig-and-gatewayhook-communication/110537 "2025-09-11T15:33:39Z")

</div>

Hi all, I’ve integrated the example WebUIConfigModule into my Ignition Module but I’m struggling with data exchange. How would I use my GatewayHook to query the data that is set in my WebUiConfig page? Or indeed, how …

---

## [Expression connect callback not working on active backup gateway after failover](https://forum.inductiveautomation.com/t/expression-connect-callback-not-working-on-active-backup-gateway-after-failover/110502)

<div class="topic-metadata">

**Author:** [@Sholom\_Ellenbogen1](https://forum.inductiveautomation.com/u/Sholom_Ellenbogen1)\
**Replies:** 32\
**Last updated:** [September 10, 2025, 7:00pm UTC](https://forum.inductiveautomation.com/t/expression-connect-callback-not-working-on-active-backup-gateway-after-failover/110502 "2025-09-10T19:00:31Z")

</div>

I have an ignition module that uses com.inductiveautomation.ignition.common.expressions.Expression to subscribe to expressions using connect(CommonContext var1, InteractionListener var2) I have a callback method I pro…

---

## [Error When Trying To Compile Perspective-Momentary-Button module example](https://forum.inductiveautomation.com/t/error-when-trying-to-compile-perspective-momentary-button-module-example/110437)

<div class="topic-metadata">

**Author:** [@john.hadikusumo](https://forum.inductiveautomation.com/u/john.hadikusumo)\
**Replies:** 5\
**Last updated:** [September 10, 2025, 6:35am UTC](https://forum.inductiveautomation.com/t/error-when-trying-to-compile-perspective-momentary-button-module-example/110437 "2025-09-10T06:35:26Z")

</div>

Hi guys, I just wondering if any of you have similar experience like what i had. I was trying to compile the example module from Ignition github repository. The name of the project as perspective-momentary-module , whic…

---

## [8.3 Gateway Config Secrets](https://forum.inductiveautomation.com/t/8-3-gateway-config-secrets/110445)

<div class="topic-metadata">

**Author:** [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Replies:** 4\
**Last updated:** [September 9, 2025, 4:27pm UTC](https://forum.inductiveautomation.com/t/8-3-gateway-config-secrets/110445 "2025-09-09T16:27:33Z")

</div>

Is there any examples of a gateway config with secrets (Device login passwords or similar) for 8.3? I have worked out most of the rest, I just seem to be missing something to enable the password to save.

---

## [Synthax and annotation in case of FormFieldType.SELECT, to enumerate possible value and default value](https://forum.inductiveautomation.com/t/synthax-and-annotation-in-case-of-formfieldtype-select-to-enumerate-possible-value-and-default-value/110417)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 1\
**Last updated:** [September 5, 2025, 5:28pm UTC](https://forum.inductiveautomation.com/t/synthax-and-annotation-in-case-of-formfieldtype-select-to-enumerate-possible-value-and-default-value/110417 "2025-09-05T17:28:23Z")

</div>

Ignition 8.3 I’m looking for the synthax and annotation in case of FormFieldType.SELECT, to enumerate possible value and default value @FormCategory("General") @FormField(FormFieldType.SELECT) @Label("...") @Required @…

---

## [8.3: drivers sampling Metrics](https://forum.inductiveautomation.com/t/8-3-drivers-sampling-metrics/110412)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 1\
**Last updated:** [September 5, 2025, 2:57pm UTC](https://forum.inductiveautomation.com/t/8-3-drivers-sampling-metrics/110412 "2025-09-05T14:57:13Z")

</div>

Ignition 8.3 In 8.1 driver implements of Driver interface, we have to Override getSamplingMetrics() //@Override public Optional\<SamplingMetrics\> getSamplingMetrics() { SamplingMetrics.AggregateStats aggregateStats…

---

## [8.3 : Implements of com.inductiveautomation.ignition.gateway.opcua.server.api.Driver interface](https://forum.inductiveautomation.com/t/8-3-implements-of-com-inductiveautomation-ignition-gateway-opcua-server-api-driver-interface/110408)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 3\
**Last updated:** [September 5, 2025, 2:03pm UTC](https://forum.inductiveautomation.com/t/8-3-implements-of-com-inductiveautomation-ignition-gateway-opcua-server-api-driver-interface/110408 "2025-09-05T14:03:19Z")

</div>

Ignition 8.3 I try to upgrade a 8.1 driver module that implements com.inductiveautomation.ignition.gateway.opcua.server.api.Driver interface. I have some issue with read and write method. pending.readValueId is n…

---

## [Developer Setup](https://forum.inductiveautomation.com/t/developer-setup/110396)

<div class="topic-metadata">

**Author:** [@Gunawan\_Hadikusumo](https://forum.inductiveautomation.com/u/Gunawan_Hadikusumo)\
**Replies:** 3\
**Last updated:** [September 5, 2025, 2:39am UTC](https://forum.inductiveautomation.com/t/developer-setup/110396 "2025-09-05T02:39:38Z")

</div>

Hi Dear, I am very interested to develop module for Ignition from scratch but i am stuck with several issues. One of the issue is on how to set Developer mode on the gateway. i am trying to follow the instruction on ht…

---

## [Read session props changes in the Perspective](https://forum.inductiveautomation.com/t/read-session-props-changes-in-the-perspective/110385)

<div class="topic-metadata">

**Author:** [@Mehrdad\_Telli](https://forum.inductiveautomation.com/u/Mehrdad_Telli)\
**Replies:** 4\
**Last updated:** [September 4, 2025, 7:14pm UTC](https://forum.inductiveautomation.com/t/read-session-props-changes-in-the-perspective/110385 "2025-09-04T19:14:14Z")

</div>

How do I read session props in the perspective module? I need to check and use theme changes.

---

## [Device implementation, managing system.opc.read request](https://forum.inductiveautomation.com/t/device-implementation-managing-system-opc-read-request/110382)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 3\
**Last updated:** [September 4, 2025, 6:05pm UTC](https://forum.inductiveautomation.com/t/device-implementation-managing-system-opc-read-request/110382 "2025-09-04T18:05:34Z")

</div>

Ignition 8.1, In a module driver implementing the Device interface\*\*,\*\* I’m looking for the method for managing system.opc.read responses. With AbstractTagDriver, we just have to override this method: @Override // rea…

---

## [Force Ignition tag to bad quality and null or False value](https://forum.inductiveautomation.com/t/force-ignition-tag-to-bad-quality-and-null-or-false-value/110308)

<div class="topic-metadata">

**Author:** [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Replies:** 3\
**Last updated:** [September 1, 2025, 2:59pm UTC](https://forum.inductiveautomation.com/t/force-ignition-tag-to-bad-quality-and-null-or-false-value/110308 "2025-09-01T14:59:20Z")

</div>

I have a driver module. It implements the Device When I disable the device or delete the device, I would like to pass all tags to BAD Quality and to set valeur of Boolean tags to False ou Integer tags to 0. I don’t fin…

---

## [\[IGN-14117\] Historian Profile Config](https://forum.inductiveautomation.com/t/ign-14117-historian-profile-config/110226)

<div class="topic-metadata">

**Author:** [@jpark](https://forum.inductiveautomation.com/u/jpark)\
**Replies:** 3\
**Last updated:** [August 29, 2025, 5:17am UTC](https://forum.inductiveautomation.com/t/ign-14117-historian-profile-config/110226 "2025-08-29T05:17:10Z")

</div>

Ignition 8.3 RC1 I’m trying to create a custom historian provider. Where can I find the historian profile config? ExtensionPointResourceForm form = new ExtensionPointResourceForm( HistorianExtensionPoint.get…

---

## [How to access user security levels when calling a module python script calls from Designer?](https://forum.inductiveautomation.com/t/how-to-access-user-security-levels-when-calling-a-module-python-script-calls-from-designer/110128)

<div class="topic-metadata">

**Author:** [@Tyler\_Dolan](https://forum.inductiveautomation.com/u/Tyler_Dolan)\
**Replies:** 1\
**Last updated:** [August 22, 2025, 9:14pm UTC](https://forum.inductiveautomation.com/t/how-to-access-user-security-levels-when-calling-a-module-python-script-calls-from-designer/110128 "2025-08-22T21:14:11Z")

</div>

I am able to access user security levels in our module when calling a python script from Perspective. However, when I call the same script function from the designer script console, SecurityContext.THREAD\_LOCAL.get() re…

---

## [How to use user security levels in a module?](https://forum.inductiveautomation.com/t/how-to-use-user-security-levels-in-a-module/109356)

<div class="topic-metadata">

**Author:** [@Tyler\_Dolan](https://forum.inductiveautomation.com/u/Tyler_Dolan)\
**Replies:** 2\
**Last updated:** [August 22, 2025, 7:38pm UTC](https://forum.inductiveautomation.com/t/how-to-use-user-security-levels-in-a-module/109356 "2025-08-22T19:38:21Z")

</div>

I am trying to use security levels to control who as access to the methods of the module's script API. I am able to get a user's security level configs through the following code ClientReqSession session = ClientReqSess…

---

## [Strange Window error](https://forum.inductiveautomation.com/t/strange-window-error/109963)

<div class="topic-metadata">

**Author:** [@Noah\_St\_Mark](https://forum.inductiveautomation.com/u/Noah_St_Mark)\
**Replies:** 1\
**Last updated:** [August 20, 2025, 7:31pm UTC](https://forum.inductiveautomation.com/t/strange-window-error/109963 "2025-08-20T19:31:16Z")

</div>

Hi Everyone, I have created a custom module to use a ICP2 G3 in circuit programmer using the manufacturer provided DLL. It launches beautifully and runs as expected. Though I am still in the testing phase. I have receiv…

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

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