Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Gateway Proxy is a standalone application to be deployed separately. The proxy enables communication to an outbound server through it's REST API. If a request is send to it’s endpoint it will forward the request http endpoint at /proxy/stream. Requests to this endpoint will be forwarded to upstream servers.

The proxy is build on top of Spring Boot. It's connection routing aware and offers authentication via OAuth20, Oauth10A, a Bearer Token forward mechanism and fixed headers.

...

By default the proxy only works for outbound connections to URLs configured in the connection-routing-.yml file. All other requests are blocked. Setting the environment variable PROXY_ALLOW_UNKNOWN_TARGETs to true allows requests to be proxied to all target URLs.

...

Logging verbosity can be controlled by an environment variable called PROXY_GATEWAY_LOG_LEVEL. Set this to DEBUG for full verbosity and to INFO for more concise logging output.

Running the

...

Application

The application is also provided as a docker container at registry.mid.de/smartfacts/smartfacts-gateway-proxy:latest. A docker-compose.yml file can be used to run the gateway proxy in a Docker environment and provide volumes to inject SSL certificates and a connection-routing.yml file. The following example docker-compose.yml file exposes the proxy on port 8418 of the docker host. It uses the certificates stored in /tmp/certificates. It uses the connection-routing.yml file at /tmp/connection-routing.yml

Docker Compose configuration file

Code Block
languageyaml
services:
    gateway-proxy:
        image: registry.mid.de/smartfacts/smartfacts-gateway-proxy:<VERSION>
        ports:
            - 8418:8080
        environment:
            - USE_SYSTEM_CA_CERTS=1
        volumes:
            - /tmp/cacerts:/certificates
            - /tmp/connection-routing.yml:/opt/smartfacts-gateway-proxy/connection-routing.yml

Starting the docker container

Change to the directory containing the docker-compose.yml configuration file. In order to access the MID Docker registry you need an access token from MID.

...

Code Block
languagebash
#> docker login registry.mid.de
#> docker compose up gateway-proxy

Proxy HTTP Endpoint

The proxy application exposes the endpoint /proxy/stream to relay HTTP GET, POST, PUT, DELETE, PATCH and HEAD requests. Only requests to outbound servers that are configured in the connection-routing.yml configuration file are allowed by default. This behavior can be controlled by the environment variable PROXY_ALLOW_UNKNOWN_TARGETS.

...