# Entry in Platform \> Configured Items

**URL:** <https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806>\
**Category:** Module Development\
**Created:** [February 6, 2026, 10:49am UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806 "2026-02-06T10:49:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mpderbec](https://avatars.discourse-cdn.com/v4/letter/m/bbe5ce/32.png) [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Post date:** [February 6, 2026, 10:49am UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/1 "2026-02-06T10:49:24Z")

</div>

I’m checking to make sure my mental model for the Ignition 8.3 config experience is correct.

Our module has registered its own configuration page under the Connections section (Seeq \> Settings).

I noticed that under the Platform section, there’s also an entry for “Seeq Settings” and I’m not sure what causes that. Should I do something in my module code to remove that? Or do something to cause a “Configure” hyperlink to appear on the right?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/2/725160a6afdb9e8ca1b1c83f0ced5005a32eb2a9.png)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 6, 2026, 4:49pm UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/2 "2026-02-06T16:49:26Z")

</div>

Okay, so there's a few concepts to unpack here.

Most fundamentally, what you're looking at on the "Overview" page is surfaced by the new to 8.3 [`EntityManager`](https://files.inductiveautomation.com/sdk/javadoc/ignition83/8.3.0/com/inductiveautomation/ignition/gateway/model/entity/EntityManager.html) API.

As mentioned in the Javadoc there:

> **NOTE:** the entity system is _automatically_ aware of the configuration Resource system. Any resources that have a [`ResourceTypeMeta`](https://files.inductiveautomation.com/sdk/javadoc/ignition83/8.3.0/com/inductiveautomation/ignition/gateway/config/ResourceTypeMeta.html) registered will automatically be included in the configuration entity.

That's why you have _an_ entry automatically.  
It looks like the link to the configure section is attached to whether your `Category` definition has is providing a set of `ResourceType`s - which it isn't unless you've changed the code since you posted it here: [Ignition 8.3: Controlling placement of nav entries](https://forum.inductiveautomation.com/t/ignition-8-3-controlling-placement-of-nav-entries/113736) 😃

That default behavior, linking based on associated resource types, is ultimately decided by the [`DefaultResourceEntityDelegate`](https://files.inductiveautomation.com/sdk/javadoc/ignition83/8.3.0/com/inductiveautomation/ignition/gateway/config/DefaultResourceEntityDelegate.html) we're creating for you in [`DefaultResourceTypeMeta.Builder`](https://files.inductiveautomation.com/sdk/javadoc/ignition83/8.3.0/com/inductiveautomation/ignition/gateway/config/DefaultResourceTypeMeta.Builder.html) - if you don't provide or customize one, the no-arg constructor of the default resource entity delegate is used, but you can also provide your own or customize it via `withEntityDelegate` or `buildEntityDelegate` on your type meta builder.

> [@mpderbec](#):
>
> Should I do something in my module code to remove that? Or do something to cause a “Configure” hyperlink to appear on the right?

The general recommendation is to have it show up on the platform overview page (which is deliberately meant to be "absolutely everything on this particular gateway"), with customization as needed to tweak the behavior.

---

<div class="post-metadata">

**Author:** ![mpderbec](https://avatars.discourse-cdn.com/v4/letter/m/bbe5ce/32.png) [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Post date:** [February 10, 2026, 7:08pm UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/3 "2026-02-10T19:08:01Z")

</div>

Hey Paul, I’m stabbing around but feeling lost.

I would love for there to be a Configure hyperlink on the right that takes the user to my settings page… Here’s what my resource code looks like, what do I need to add?

```python
    public static final ResourceTypeMeta<IgnitionModuleConfigurationV2> RESOURCE_TYPE_META =
            ResourceTypeMeta.newBuilder(IgnitionModuleConfigurationV2.class)
                    .resourceType(RESOURCE_TYPE)
                    .categoryName("Seeq Settings")
                    // Call buildGson if you need to register any custom
                    // JsonSerializer/Deserializer classes.
                    // You may omit this call to use default GSON serialization.
                    // .buildGson(gson -> gson.registerTypeAdapter(
                    // IgnitionModuleConfigurationV2.class,
                    // new CustomSettingsGsonEncoder()
                    // )
                    // )
                    // You must call this to opt-into the route system
                    .buildRouteDelegate(routes -> routes
                            .configSchema(IgnitionModuleConfigurationV2.class)
                            .openApiGroupName("Seeq")
                            .openApiTagName("settings")
                    )
                    // The status delegate is optional.
                    // It allows you to associate metrics and healthchecks with
                    // instances of your resource
                    .buildStatusDelegate(status -> status
                            .instanceMetric("throughput", "mymodule.%s.throughput")
                            .instanceHealthCheck("status", "mymodule.%s.status"))

                    // The 'reference delegate' is used to register any properties in
                    // your resource that are references to other properties.
                    // Each reference property needs a reference finder that knows how
                    // to match references as well as create updated copies of your resource
                    // used for when the referenced resource is renamed.
                    // In this example, pretend the "bar" property is the name of another
                    // resource of type BAR_RESOURCE_TYPE.
                    // .buildReferenceDelegate(refs -> refs
                    // .referenceProperty("bar", refFinder -> refFinder
                    // .targetType(BAR_RESOURCE_TYPE)
                    // .match((mySettings, name) -> mySettings.bar().equals(name))
                    // .onUpdate((mySettings, newName) ->
                    // new MySettingsResource(mySettings.foo(), newName)
                    // )
                    // )
                    // )
                    .build();

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 10, 2026, 8:50pm UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/4 "2026-02-10T20:50:11Z")

</div>

What does your `Category` definition look like?

---

<div class="post-metadata">

**Author:** ![mpderbec](https://avatars.discourse-cdn.com/v4/letter/m/bbe5ce/32.png) [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Post date:** [February 11, 2026, 2:20pm UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/5 "2026-02-11T14:20:37Z")

</div>

Here’s all the relevant code I think around categories:

```python
        this.context.getConfigurationManager().getResourceTypeMetaRegistry()
                .register(IgnitionModuleConfigurationV2.RESOURCE_TYPE_META);

        // Register GatewayHook.properties by registering the GatewayHook.class with BundleUtils
        BundleUtil.get().addBundle("Seeq", this.getClass(), "Seeq");

        this.context.getConfigurationManager().getResourceTypeMetaRegistry()
                .register(IgnitionModuleConfigurationV2.RESOURCE_TYPE_META);

        this.configHandler = SingletonResourceHandler.newBuilder(
                        IgnitionModuleConfigurationV2.RESOURCE_TYPE_META
                )
                .context(this.context)
                .onChange(seeqSettingsRecord -> {
                    this.settingsChangedEvent.set();
                })
                .build();

        SystemJsModule jsModule =
                new SystemJsModule("com.seeq.ignition.SeeqSettings", "/res/seeq/seeqSettings.js");

        this.context.getWebResourceManager().getNavigationModel().getConnections()
                .addCategory("seeq", cat -> cat
                        // See https://forum.inductiveautomation.com/t/ignition-8-3-controlling-placement-of-nav-entries/113736
                        .position(120)
                        .label("Seeq")
                        .addPage("Settings", page -> page
                                .position(0)
                                // Note the second parameter is the name of the JS component that was exported
                                .mount("/seeq/settings", "SeeqSettings", jsModule)
                        )
                );

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 11, 2026, 4:22pm UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/6 "2026-02-11T16:22:21Z")

</div>

> [@paul-griffith](#):
>
> It looks like the link to the configure section is attached to whether your `Category` definition has is providing a set of `ResourceType`s

Use the `addAssociatedResourceType` on your category builder instance, and the default entity delegate should see that automatically and figure it out.

If that doesn't automatically work, you could provide your own `ResourceEntityDelegate` from your `ResourceTypeMeta`; I would strongly recommend extending `DefaultResourceEntityDelegate` and overriding `buildEntity` or maybe just `configureNavigation`.

The former method looks like this, which is why I'm guiding you to adjusting your category:

```java
  protected Entity buildEntity(GatewayContext context, ResourceTypeMeta<?> meta) {
    EntityBuilder builder = new EntityBuilder(meta.getResourceCategoryName(Locale.getDefault()));

    builder.description(desc -> configureDescription(meta, desc));

    context
        .getWebResourceManager()
        .getNavigationModel()
        .findNavLocationForResourceType(meta.getResourceType())
        .ifPresent(
            location ->
                // This means we've found a navigation location for this resource type, so we can
                // add a navigation link
                builder.navigation(
                    location.path().getPathComponent(0),
                    nav -> configureNavigation(meta, location, nav)));

    configureDiagnostics(context, meta, builder);
    configureChildren(context, meta, builder);

    return builder.build();
  }

```

Where the `findNavLocationForResourceType` function is ultimately walking all categories, pages, and tabs to find a reference for a given resource type.

---

<div class="post-metadata">

**Author:** ![mpderbec](https://avatars.discourse-cdn.com/v4/letter/m/bbe5ce/32.png) [@mpderbec](https://forum.inductiveautomation.com/u/mpderbec)\
**Post date:** [February 11, 2026, 7:55pm UTC](https://forum.inductiveautomation.com/t/entry-in-platform-configured-items/113806/7 "2026-02-11T19:55:31Z")

</div>

Bingo! Here’s my new code, and now the Configure link shows up and works perfectly.

```python
        this.context.getWebResourceManager().getNavigationModel().getConnections()
                .addCategory("seeq", cat -> cat
                        // See https://forum.inductiveautomation.com/t/ignition-8-3-controlling-placement-of-nav-entries/113736
                        .position(120)
                        .label("Seeq")
                        .addPage("Settings", page -> page
                                .position(0)
                                .addAssociatedResourceType(IgnitionModuleConfigurationV2.RESOURCE_TYPE)
                                // Note the second parameter is the name of the JS component that was exported
                                .mount("/seeq/settings", "SeeqSettings", jsModule)
                        )
                );

```
