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 Vision Client), I receive the following string back when I try to use the RPC interface:
com.inductiveautomation.ignition.common.rpc.RpcException: Unable to invoke gateway function 'com.seeq.ignition.seeq-configuration.getSeeqServerURL' - client is missing required permission
Any ideas?
What does your RPC implementation on the gateway look like?
Do you have a line like: @RpcDelegate.RunsOnClient(clientPermissionId = ClientPermissionsConstants.UNRESTRICTED)
1 Like
It looks like this:
import com.inductiveautomation.ignition.common.rpc.RpcInterface;
/**
* The RPC interface that the Gateway part of the Seeq module supports. This interface is used from the Designer and
* Client components to retrieve certain configuration information.
*/
@RpcInterface(packageId = "seeq-configuration")
public interface IgnitionModuleConfiguration {
/**
* The URL of the Seeq Server that the module is pointed at.
*
* @return the URL of the Seeq Server that the module is pointed at
*/
String getSeeqServerURL();
}
If I try to add the line you mention to the interface I get a warning/error:
warning: Cannot find annotation method 'clientPermissionId()' in type 'RunsOnClient': class file for com.inductiveautomation.ignition.gateway.rpc.RpcDelegate not found
That's the common scoped Interface, im talking about the gateway implementation of that interface?
Ah OK (that error I encountered should have clued me in, gateway-api isn’t loaded in Client runtimes).
That did it! I added that line to the implementation and I’m golden. Thank you.
1 Like
I'm currently working through some of the same mechanisms for some modules right now, so it was on the top of my brain as a result.
1 Like