# getAuditManager().addAuditProfileType alternative for 8.3

**URL:** <https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114>\
**Category:** Ignition 8.3 Early Access\
**Tags:** perspective\
**Created:** [August 22, 2025, 2:59pm UTC](https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114 "2025-08-22T14:59:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [August 22, 2025, 2:59pm UTC](https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114/1 "2025-08-22T14:59:30Z")

</div>

In a 8.1 module, we use this to create a custom audit profile type:

```java
this.context = gatewayContext;
type = new AuditLogSplitterType();
this.context.getAuditManager().addAuditProfileType(type);

```

I don’t find any equivalent in 8.3 sdk ?

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [August 22, 2025, 3:04pm UTC](https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114/2 "2025-08-22T15:04:08Z")

</div>

`com.inductiveautomation.ignition.gateway.audit.AuditProfileType::createProfile`

seems to be the solution for the create logic,

but I don’t find how to register the new AuditProfileType ???

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 22, 2025, 3:19pm UTC](https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114/3 "2025-08-22T15:19:29Z")

</div>

Implement `GatewayModuleHook::getExtensionPoints`, and return your implementation of `AuditProfileType` with any others, if applicable.

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [September 23, 2025, 10:00am UTC](https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114/4 "2025-09-23T10:00:07Z")

</div>

When I try to create my audit profil type, I have an error in the gateway UI but no error log in the gateway logger.  
I probably miss something.  
For other extension Point (device or slack alarm notification exemple), the settings record is provided to the constructor ?

I've tried to add in the GatewayHook::setup something like:

```java
this.context.getConfigurationManager().getResourceTypeMetaRegistry().register(AuditLogSplitterSettingsResource.META);

```

I added in the gatewayHook:

```java
    @Override
    public List<? extends ExtensionPoint<AuditLogSplitterSettingsResource>> getExtensionPoints(){
        try {
            logger.info("getExtensionPoints()");
            type = new AuditLogSplitterType();
            return (List<? extends ExtensionPoint<AuditLogSplitterSettingsResource>>) List.of(type);
        } catch (Exception e) {
            logger.error("getExtensionPoints() : ",e);
            return List.of();
        }
    }    

```

Record AuditLogSplitterSettingsResource

```java
public record AuditLogSplitterSettingsResource(
@FormReferenceType("com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig")
        @FormCategory("Audit settings")
        @FormField(FormFieldType.TEXT)
        @Label("TableName")
        @Required
        @DefaultValue("")
        @Description("")
        String tableName
)
{}

```

```java
public class AuditLogSplitterType extends AuditProfileType<AuditLogSplitterSettingsResource> {

	private Logger logger = LoggerFactory.getLogger(getClass());
    public static final String TYPE_ID = "AuditLogSplitter";

	public AuditLogSplitterType() {
        super(TYPE_ID,"AuditLogSplitter","Audit Log Splitter BYES");
		//super(TYPE_ID, "AuditLogSplitter.Name", "AuditLogSplitter.Desc");
	}

    @Override
    public AuditProfile createProfile(GatewayContext gatewayContext, String name, AuditProfileConfig auditProfileConfig, Optional<AuditLogSplitterSettingsResource> optional) throws Exception {
        logger.info("createProfile() : {}",name);
        AuditLogSplitter audit = new AuditLogSplitter(gatewayContext,name);
        return audit;
    }

    @Override
    public Optional<WebUiComponent> getWebUiComponent(ComponentType type) {
        return Optional.of(
                new ExtensionPointResourceForm(
                        AuditProfileType.RESOURCE_TYPE,
                        "AuditLogSplitterType",
                        TYPE_ID,
                        SchemaUtil.fromType(AuditProfileConfig.class),
                        SchemaUtil.fromType(AuditLogSplitterSettingsResource.class),
                        Set.of()));
    }
}

```

 ![chrome_auwNpS5PTY](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/5/954f1d1151304e4c43c1a0f7f39c386a18b98631.png)

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [September 23, 2025, 10:26am UTC](https://forum.inductiveautomation.com/t/getauditmanager-addauditprofiletype-alternative-for-8-3/110114/5 "2025-09-23T10:26:17Z")

</div>

I think I found the solution by adding in AuditLogSplitterType

```java
    @Override
    public Optional<Class<AuditLogSplitterSettingsResource>> settingsType() {
        return Optional.of(AuditLogSplitterSettingsResource.class);
    }

```
