Windward Connect and the S5WebAPI Services

Windward Software Systems has two API’s that are required in order to send data to our central Log Analytics storage account on Azure.

Windward Connect is a service that handles the transport of the information produced by the S5WebAPISvc. The S5WebAPISvc builds the log information as calls are processed and then sends the information to Windward Connect.

For this process to function, the two services need to be configured correctly using their respective INI files.

For WindwardConnect.exe, the INI file must be located in the same path that is indicated in the Windows Environment Variable – S5INIPath. If the Environment Variable is not present on the machine, it needs to be added and set to the path the WindwardConnect.ini file is located.

Once the path information is correctly configured, the WindwardConnect.ini file must be edited to set the correct IP Address, Port, Workspace Id and LogKey values.

Here is a sample of a WindwardConnect.ini file:

[GatewayService]
CloudReadServiceBusInfoAPI=https://integrationplatformapilive.azurewebsites.net/api/WindwardConnectInfo
SerialNumber=123456
IsTraining=false
DatasetPath=X:/S5WebAPItoWebLog/data
WorkSpaceId=44df25ae-174a-405a-af42-0d4eca557896
LogKey=KQhSjHNR5HnYIVpn264euhmjq2NZVMuvZr+qq+UK6gM3mcnG+WVsID+Rsdrz1z8X7APH51O8vOVYWKLKXOSFWA==
IpAddress=127.0.0.1
Port=2020
ClientUnique=123456

[WindwardConnectReleaseDev]
CloudReadServiceBusInfoAPI=https://integrationplatformapilive.azurewebsites.net/api/WindwardConnectInfo
SerialNumber=123456
IsTraining=false
DatasetPath=X:/S5WebAPItoWebLog/data
WorkSpaceId=f2e7b9b1-76c4-40f2-be58-a43c3db89a73
LogKey=uhLv/Xn/Q3I+Uq9JVvhk6k7c7QiACKLByq22gzb7E0W/aaY+ifRRAhT8F42JuSHP0TvC9e6qBp0x5V62aMSC2A==
IpAddress=127.0.0.1
Port=2021
ClientUnique=JFD_RELEASEDEV

The file in this sample has two sections, [GatewayService] and [WindwardConnectReleaseDev]. The first section contains the default information for a live deployment of our Integration Platform and should only be used for that purpose. The second section is a sample of our Log Analytics configuration, so we will be looking at it in more detail.

The first matter of great importance is the name of the section. The name of the section must match the name of the Service that will be created on the computer. Our method of installation and un-installation depend on the name of the service. In our sample, the name is [WindwardConnectReleaseDev], therefore the service installed will be named the same.

Two BAT files are included in the WindwardConnect folder, one named ScriptRunnerAsServiceInstall.bat and the other named ScriptRunnerAsServiceUnInstall.bat. Looking at the contents of these files, we see the service is named explicitly in the files. We also see the path to the WindwardConnect.exe file. Both values must match the actual name and locations for files on the computer.

ScriptRunnerAsServiceInstall:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /ServiceName=“WindwardConnectReleaseDev”
E:\S5Release\bin\WindwardConnect\ScriptRunnerService\WindwardConnect.exe
pause

In the Un-install, only the name of the Service is required.
ScriptRunnerAsServiceUnInstall:
sc delete “WindwardConnectReleaseDev”
pause

It is very important that these values match and that they are not edited while the Service is installed. Changes in these files could prevent the un-install from working, leaving an orphaned process on the machine. This must be avoided!

The second matter of great importance is the contents of the WindwardConnect.ini file. There are values that must be left as they are and others that need to be set to specific values.

[WindwardConnectReleaseDev]
CloudReadServiceBusInfoAPI=https://integrationplatformapilive.azurewebsites.net/api/WindwardConnectInfo
SerialNumber=123456
IsTraining=false
DatasetPath=X:/S5WebAPItoWebLog/data
WorkSpaceId=f2e7b9b1-76c4-40f2-be58-a43c3db89a73
LogKey=uhLv/Xn/Q3I+Uq9JVvhk6k7c7QiACKLByq22gzb7E0W/aaY+ifRRAhT8F42JuSHP0TvC9e6qBp0x5V62aMSC2A==
IpAddress=127.0.0.1
Port=2021
ClientUnique=JFD_RELEASEDEV

The lines below must be set the correct values to direct the information to the Log Analytics storage account.
WorkSpaceId – This value comes from the Azure Log Analytics workspace that we want the logs written.
LogKey – This value comes from the Azure Log Analytics workspace that we want the logs written.
IpAddress – This is typically a local IP Address by default, but it can be set to a true IP Address on the client’s network
Port – This number is the port on which WindwardConnect and S5WebAPISvc communicate, it must NOT be in use by any other process or service on the machine.
ClientUnique – This an alpha-numeric value that uniquely identifies the specific customer within the workspace.

The S5WebAPISvc.ini file also needs the IpAddress and Port settings, they must match the settings that are in the WindwardConnect.ini file for the two services to communicate.

You can enable and disable the logging levels by adjusting the “Y”.

Here is a sample of the S5WebAPISvc.ini file:
[System Five Web API Service]
Service Name=S5WebAPIService_Release
Log Success Events=Y
Log Error Events=Y
Log Warning Type Events=Y
Log Information Type Events=Y
Log Audit Success Events=Y
Log Audit Failure Events=Y
Log Payload to File=Y

[System Five Database]
Directory=E:\S5Release\Data
Serial=20000
Department=0
Terminal=8
TerminalName=Inventory
Identifier=Inventory

[HTTP]
Port=212
Session Timeout=30

[HTTPS]
Port=-1
Session Timeout=30
Cert File=
Key File=
Root Cert File=

[Swagger Publishing]
Enable Swagger Publishing=Y
Port=8001
SessionTimeout=30

[Log Analytics]
Server Address=127.0.0.1
Server Port=2021

This file contains information about the name of the service, what information to log, the port number API is published on and the Port that the Swagger documentation is published on, data that is used and finally, the Log Analytics – Server Address and Server Port (These are the value from the IpAddress and Port in the WindwardConnect.ini file).

The values for the WorkSpaceId and the LogKey are specific to the Log Analytics workspace on Azure. We currently have several workspaces setup for internal use and one for production use. We need to ensure that we keep our development and testing information on the internal workspaces and leave the production workspace(s) for our customers.

When setting up a machine, physical or VM, for use by a developer or QA personal, always use the following:
WorkSpaceId: f2e7b9b1-76c4-40f2-be58-a43c3db89a73
LogKey: uhLv/Xn/Q3I+Uq9JVvhk6k7c7QiACKLByq22gzb7E0W/aaY+ifRRAhT8F42JuSHP0TvC9e6qBp0x5V62aMSC2A==

These values are from the Windward Cloud directory – DefaultWorkspace-8f9f7012-648e-4bda-b8d4-f556780e3431-EUS under the DevOps – System Five on Cloud subscription in the defaultresourcegroup-eus Resource Group, location in East-US.

NONE OF THIS INFORMATION SHOULD BE SHARED OUTSIDE THE COMPANY!