Knime server API IP address restriction


My Knime Server’s access is currently restricted by IP Address. I have an API that I would like to access from an online source (HTTP call in PowerApps to call the Knime workflow). However, PowerApps is not connecting to the server and I suspect it is because the origin of the call (Wherever PowerApps is running) isn’t from a recognized IP address.

The error message from PowerApps is: BadRequest . Http request failed with status code ‘ConnectFailure’ and status message: ‘Unable to connect to the remote server’.

I made a call to the same API in Google colab and got the follow error:

TimeoutError Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/urllib3/ in _new_conn(self)
158 conn = connection.create_connection(
→ 159 (self._dns_host, self.port), self.timeout, **extra_kw)
TimeoutError: [Errno 110] Connection timed out

I have tested the API both from local python and with Postman the it works fine.

My question is, is there a setting that allows any location to use the API vs just from registered IP locations. Thanks.

Hi @vsung

This is more of a networking issue. All access to the server (whether via AP or API or Webportal) is going to be via REST (by default ports 8080/8443). So in this case if only certain IP ranges are able to access the server, then the API call would have to be coming from a machine using one of the allowed IPs. To gain access for other IPs, you would have to modify the firewall to allow them in.

1 Like

Ok, if I wanted to access the API from powerflow, I’d have to find the IP for powerflow and modify the firewall to allow it to make the REST API call right?

As a follow up, is there a way just to deploy one workflow and API such that it is not IP restricted? I am working with PowerApps and I’m not sure we can have direct access to what the IP is.

Hi @vsung ,

It seems in your current configuration, yes you will need to find the IP address that powerflow is coming from and add that to the allowed list. I don’t believe this is necessarily a KNIME restriction at the moment and more of a networking one. I don’t think there is a way to deploy one workflow and api with any IP restrictions.