Architecture
This software runs as a service under Windows. Prerequisite is NET 7 runtime:
https://dotnet.microsoft.com/en-us/download/dotnet/7.0
Prerequisites
Admin access to the target machine
On installation, administrator rights are needed for the service installation. The service context user will be chosen at installation, administration rights are needed at this point in time to install / register the windows service with the OS.
.NET Runtime 7.x.x
https://dotnet.microsoft.com/en-us/download/dotnet/7.0
Installer for x64 Windows:
https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-7.0.5-windows-x64-installer
Proposal
For the lifecycle of this software it is highly recommended to use a dedicated service domain user only for this product. This enables for fine-grained rights management and control.
Installation
The installation is UI-based and demands an installation path as well as a dedicted service user. In case you would want to run the Program as Local System, you need to put a valid user here and change that later, as this is not recommended.
Important files
There are two important files to the WebHookCaller Service:
- The config file "WebHookCaller.xml" located in the program installation directory
- The Url List File for calling the different targets. Standard is "UrlList.json" in the Program installation directory, this can be changed in the config though.
Config Values
Additional to the Common config values in [[Website Content]], this product knows the following entries:
Name | Value | Description |
---|---|---|
Proxy.IsEnabled | true/false | is a proxy server to be used? |
Proxy.Host | String | Hostname of the proxy server, with leading http(s) |
Proxy.Port | Integer | The port the proxy server is reachable at |
Proxy.Username | String | if applicable, the user name for the proxy |
Proxy.Password | String | if applicable, the password for the proxy |
UrlListJson | String | The file name of the ingested file relative to the executable |
Example:
<Proxy.IsEnabled>false</Proxy.IsEnabled>
<Proxy.Host>http://zproxy</Proxy.Host>
<Proxy.Port>9400</Proxy.Port>
<Proxy.Username></Proxy.Username>
<Proxy.Password></Proxy.Password>
<UrlListJson>UrlList.json</UrlListJson>
```
Full file example:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
<Common.ProductID>xx</Common.ProductID>
<Common.License>yy</Common.License>
<Common.MinimumLogLevel>Info</Common.MinimumLogLevel>
<Proxy.IsEnabled>false</Proxy.IsEnabled>
<Proxy.Host>http://proxy</Proxy.Host>
<Proxy.Port>9999</Proxy.Port>
<Proxy.Username></Proxy.Username>
<Proxy.Password></Proxy.Password>
<UrlListJson>UrlList.json</UrlListJson>
</Configuration>
```
Connections
This software needs the following connections, which need to be allowed in any devices securing the outbound and inbound traffic, like Firewalls:
Number | Direction | Source | Source Port | Destination | Destination Port | Protocol | Reason | Data submitted |
---|---|---|---|---|---|---|---|---|
1 | Outbound | WebHookCaller Host | - | https://svrgn.eu | 443 | https GET | License checks each day at 8 am | Product ID, License Key |
2 | Inbound | https://svrgn.eu | 443 | WebHookCaller Host | - | https RESPONSE | Response to license request 1 | Successful?, License Status, Product ID, Product Name, Checksum, Expiry Date, Payment ID (ignored), Customer Name (ignored), Customer EMail (ignored), License Limit, Site_Count, Activations left, Price ID (ignored) |
Also, as this software calls webhooks, the URLs in the UrlList.json config file need to be reachable from the server this product is installed.
User and rights
A domain service user dedicated for this service is recommended, e.g. "YOURCOMPANY/WebHooCaller-Service". The user needs read and write permissions only in the installation folder, as it writes the log and reads from the configuration and the destinations file.
Debugging
It is recommended to debug scenarios by starting the .exe file from file explorer directly to see the immediate output. The application will then behave like a console program.