How to Configurate and Run
The configuration should be performed customizing the following variables in the .env file:
- DATA_APP_ENDPOINT=192.168.56.1:8084/data DataAPP endpoint for receiveing data (F endpoint in the above picture)
- MULTIPART_EDGE=mixed DataAPP A-endpoint Content Type (choose mixed for Multipart/mixed or form for Multipart/form-data or http-header for Multipart/http-header)
- MULTIPART_ECC=mixed Execution Core Container B-endpoint Content Type (choose mixed for Multipart/mixed or form for Multipart/form-data or http-header for Multipart/http-header)
- Edit external ports if need (default values: 8086 for WS over HTTPS, 8090 for http, 8889 for B endpoint, 29292 for IDSCP2)
- Forward-To protocol validation can be changed by editing application.validateProtocol. Default value is true and Forward-To URL must be set like http(https,wss)://example.com, if you choose false Forward-To URL can be set like http(https,wss)://example.com or just example.com and the protocol chosen (from application.properties)will be automatically set (it will be overwritten! example: http://example.com will be wss://example if you chose wss in the properties).
- For websocket configuration, in DataApp resource folders, configure config.properties file, set following fields
server.ssl.key-password=changeit
server.ssl.key-store=/cert/ssl-server.jks
Or leave default values, if certificate and its password are correct.
Endpoints
The TRUE Connector will use two protocols (http and https) as described by the Docker Compose File. It will expose the following endpoints:
/proxy
to receive data incomming request, and based on received request, forward request to Execution Core Connector (the P endpoint in the above picture)
/data
to receive data (IDS Message) from a sender connector (the B endpoint in the above picture) Furthermore, just for testing it will expose (http and https):
/about/version
returns business logic version
Configuration
The ECC supports three different way to exchange data:
- REST endpoints enabled if WS_EDGE=false and WS_ECC=false
- IDSCP2 enabled if IDSCP2=true and WS_ECC = false For WS_EDGE=true (use websocket on the edge, false for REST on the edge)
- Web Socket over HTTPS enabled if WS_EDGE=true and WS_ECC=true and IDSCP2=false for configuration which uses web socket on the edge and between connectors.
For trusted data exchange define in .env the SSL settings:
- KEYSTORE-NAME=changeit(JKS format)
- KEY-PASSWORD=changeit
- KEYSTORE-PASSWORD=changeit
- ALIAS=changeit
How to Test
The reachability could be verified using the following endpoints:
- http://{IP_ADDRESS}:{HTTP_PUBLIC_PORT}/about/version
Keeping the provided docker-compose, for Data Provider URL will be:
- http://{IP_ADDRESS}:8090/about/version
For Data Consumer, with provided docker-compose file:
- http://{IP_ADDRESS}:8091/about/version
How to Exchange Data
For details on request samples please check following link Basic Data App Usage
Be sure to use correct configuration/ports for sender and receiver Data App and Execution Core Container (check .env file).
Default values:
DataApp URL: https://{IPADDRESS}:8084/proxy
"Forward-To": "https://{RECEIVER_IP_ADDRESS}:8889/data",
For WSS flow:
DataApp URL: https://{IPADDRESS}:8084/proxy
"multipart": "wss",
"Forward-To": "wss://ecc-provider:8086/data",
"Forward-To-Internal": "wss://ecc-consumer:8887",
WebSocket
On the following link, information regarding WebSocket Message Streamer implementation can be found here WebSocket Message Streamer library.
IDSCP2
Follow the REST endpoint or WS examples, put the server hostname/ip address in the Forward-To header (wss/https://{RECEIVER_IP_ADDRESS/Hostname}:{WS_PUBLIC_PORT}).