Summary
The CERTInext caplugin DLL fails to load inside the AnyCA REST Gateway image 25.4.0 (chart anygateway-rest 1.0.1) with a missing-type error against Keyfactor.AnyGateway.IAnyCAPlugin.
Steps to reproduce
- Deploy AnyCA REST Gateway
25.4.0 (chart anygateway-rest 1.0.1).
- Stage and load `CERTInext/bin/Release/net10.0/CERTInextCAPlugin.dll` (built locally from the current `main` of this repo) into the gateway pod's `/app/Extensions//` directory.
- POST a CA registration to `/AnyGatewayREST/config/configuration` referencing the plugin.
Actual behavior
Gateway returns HTTP 500 with body `{"ErrorCode":"0x80131509"}`. Gateway pod logs show:
```
Could not load type 'Keyfactor.AnyGateway.Extensions.IDomainValidatorFactory'
from assembly 'Keyfactor.AnyGateway.IAnyCAPlugin, Version=3.2.0.0, Culture=neutral, PublicKeyToken=0ed89d330114ab09'.
at System.Signature..ctor(...)
at System.Reflection.RuntimeConstructorInfo.<get_Signature>g__LazyCreateSignature|21_0()
at System.Reflection.RuntimeConstructorInfo.GetParameters()
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.<>c.b__27_0(...)
```
The plugin's manifest references the type `Keyfactor.Extensions.CAPlugin.CERTInext.CERTInextCAPlugin` whose constructor (directly or transitively) depends on `IDomainValidatorFactory`. That interface does not exist in the version of `Keyfactor.AnyGateway.IAnyCAPlugin` shipped in gateway image 25.4.0.
Expected behavior
The DLL loads cleanly on a supported gateway version.
Plugin metadata
From `integration-manifest.json` on `main`:
```json
{
"gateway_framework": "24.2.0",
"release_dir": "CERTInext/bin/Release"
}
```
The declared framework target is `24.2.0`, but the plugin code currently consumes a type (`IDomainValidatorFactory`) that exists in a NEWER framework. Either the `gateway_framework` field is out of date OR the plugin needs to either back-port off `IDomainValidatorFactory` or pin its `Keyfactor.AnyGateway.IAnyCAPlugin` NuGet to a version that contains the type.
Environment
- AnyCA REST Gateway image: `keyfactor.jfrog.io/kyfuseng-release/command/anygateway-rest:25.4.0`
- Helm chart: `anygateway-rest-1.0.1`
- Plugin build target framework: `net10.0`
- Plugin DLL size: 171520 bytes (built locally from `main`)
- Discovered via the kfclab lab orchestrator's generic plugin pipeline; orchestrator itself is plugin-agnostic, so the failure surfaces in the gateway pod cleanly.
Suggested fix
Pin or bump the `Keyfactor.AnyGateway.IAnyCAPlugin` NuGet reference in `CERTInext/CERTInext.csproj` to a version that includes `IDomainValidatorFactory`, and update `integration-manifest.json#gateway_framework` to match the matching gateway release. Alternately, refactor the plugin to make `IDomainValidatorFactory` an optional dependency.
Summary
The CERTInext caplugin DLL fails to load inside the AnyCA REST Gateway image
25.4.0(chartanygateway-rest 1.0.1) with a missing-type error againstKeyfactor.AnyGateway.IAnyCAPlugin.Steps to reproduce
25.4.0(chartanygateway-rest 1.0.1).Actual behavior
Gateway returns HTTP 500 with body `{"ErrorCode":"0x80131509"}`. Gateway pod logs show:
```
Could not load type 'Keyfactor.AnyGateway.Extensions.IDomainValidatorFactory'
from assembly 'Keyfactor.AnyGateway.IAnyCAPlugin, Version=3.2.0.0, Culture=neutral, PublicKeyToken=0ed89d330114ab09'.
at System.Signature..ctor(...)
at System.Reflection.RuntimeConstructorInfo.<get_Signature>g__LazyCreateSignature|21_0()
at System.Reflection.RuntimeConstructorInfo.GetParameters()
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.<>c.b__27_0(...)
```
The plugin's manifest references the type `Keyfactor.Extensions.CAPlugin.CERTInext.CERTInextCAPlugin` whose constructor (directly or transitively) depends on `IDomainValidatorFactory`. That interface does not exist in the version of `Keyfactor.AnyGateway.IAnyCAPlugin` shipped in gateway image 25.4.0.
Expected behavior
The DLL loads cleanly on a supported gateway version.
Plugin metadata
From `integration-manifest.json` on `main`:
```json
{
"gateway_framework": "24.2.0",
"release_dir": "CERTInext/bin/Release"
}
```
The declared framework target is `24.2.0`, but the plugin code currently consumes a type (`IDomainValidatorFactory`) that exists in a NEWER framework. Either the `gateway_framework` field is out of date OR the plugin needs to either back-port off `IDomainValidatorFactory` or pin its `Keyfactor.AnyGateway.IAnyCAPlugin` NuGet to a version that contains the type.
Environment
Suggested fix
Pin or bump the `Keyfactor.AnyGateway.IAnyCAPlugin` NuGet reference in `CERTInext/CERTInext.csproj` to a version that includes `IDomainValidatorFactory`, and update `integration-manifest.json#gateway_framework` to match the matching gateway release. Alternately, refactor the plugin to make `IDomainValidatorFactory` an optional dependency.