GLOW Installation Guide
GLOW Installation Guide
Contents
1. Checklist ............................................................................................................................................ 6
2. Prerequisite Requirements ......................................................................................................... 8
2.1 Do I need to install GLOW? .......................................................................................................................... 8
2.2 Software Requirements .................................................................................................................................. 8
2.3 Hardware Requirements.................................................................................................................................9
3. Installing GLOW Web Portals ..................................................................................................... 9
3.1 Configuring CargoWise One Registry Settings for Web Portals ....................................... 13
3.1.1 GLOW Portals Root URL ............................................................................................................. 13
3.1.2 GLOW Service URL ........................................................................................................................ 14
3.1.3 CargoWise One Service Root URL ...................................................................................... 14
3.2 Whitelisted Status Requests ..................................................................................................................... 15
3.3 HTTP/2 in IIS .......................................................................................................................................................... 15
4. Provisioning SSL Certificates ................................................................................................... 16
4.1 Check Certificate .............................................................................................................................................. 16
4.2 Install & Obtain Certificate ..........................................................................................................................17
4.2.1 From a Certificate Authority (CA)....................................................................................... 17
4.2.2 From Active Directory ............................................................................................................... 20
5. Web Server Required External Sites ...................................................................................... 32
5.1 GLOW access to external sites .............................................................................................................. 32
5.2 CargoWise access to GLOW .................................................................................................................... 33
6. GLOW Environment Configuration .........................................................................................33
6.1 GLOW forward / Outbound HTTP proxy .......................................................................................... 34
• DisableProxy: (true/false) ......................................................................................................................... 35
• Address: ................................................................................................................................................................. 35
• UserName/Password:.................................................................................................................................. 35
I am a self-hosted customer
Check SSL certificate provisioned for the root domain web address
Check /Glow
Entity Nudging
CDC
Entity Index
Glow URIs
Memory Usage
Schema Monitor
Check /Portals/wtg/status
/Glow/Logs/Logs
Other information:
Business Intelligence service tasks must be running in a timely manner for the Index
Service to detect changes
Any CargoWise web application or portal that runs on or uses the GLOW architecture and
infrastructure requires the installation of GLOW. These applications can include:
• The Advanced Data Automation Wizard (ADAW): A web-based importing tool that
can map multiple tables of data using a single-level or multi-level file and import .csv,
.xls and .xlsx files via a CargoWise web portal or the CargoWise desktop application.
(Advanced Data Automation Wizard Guide)
• CargoWise Web Portals: These are CargoWise web applications built via the GLOW
architecture. Some examples of CargoWise Web Portals include:
• eCommerce
• Transit Warehouse
• Customer Service Tickets
Note that on Windows, you must install Hosting Bundle (avoid x64 or x86) as highlighted
in snapshot below.
• Business Intelligence: the GLOW indexing service depends on the CDC (Change Data
Capture) service task enabled in the Audit Service. Please follow the steps outlined in
this update note. (Business Intelligence – Audit Database)
1. CargoWiseOneWebServerSetup.exe will:
• Install all required web component features.
• Install the CargoWise One Application Manager. This is required for automatic
upgrades of web components.
• Register the CargoWise One Administration module in IIS. This can be used to install
and configure CargoWise sites directly in the IIS Manager window.
5. Under Applications, check the box under Install beside the following Applications to install
the web components/applications. Each web component/application will then be
installed as a separate site in IIS.
Feel free to install other services as required as part of your CargoWise installation.
If web components need to be migrated from the legacy ediEnterprise version of CargoWise or if
more information on web component configuration is required, see Update Note on Web Tracker
This may take a few minutes to complete as it connects to the database and copies
the web component files to the web server.
9. Each checked Application with a different domain will list as a separate site under Sites.
Go to CargoWise One Registry > GLOW > Services > GLOW Portals Root URL. Check Override
Default and enter the Web Address of the GLOW Web Portals IIS site created.
If you have a different URL for external users, configure this setting as well.
Go to CargoWise One Registry > GLOW > Services > GLOW Service URL. Check Override Default
and enter the Web Address of the GLOW Web Services IIS site created.
Go to CargoWise One Registry > Web > Web Services > CargoWise One Services Root URL. Check
Override Default and enter the Web Address of the General/Shared Web Services IIS site
created.
The whitelist criteria are defined in the following CargoWise One Registry item:
Once Health Check Access IP White list has been configured, if the requestor IP meet the criteria,
then it will return GLOW service reports with description of each service.
The requestor must meet the whitelist criteria, otherwise “Details not available” will be shown.
The content returned in the body is intended to be human or machine readable so that
monitoring and alerting processes can be configured to report any issues.
Brotli's compression can be configured to enhance the overall performance. For this simply follow
the IIS guide from Microsoft.
If you want to support SSL off-loading, please ensure you follow the update note on
System Components - Web Services. This is to relieve the server of the burden of
decrypting and/or encrypting traffic sent via SSL.
If a valid certificate has been provisioned, the below message will appear. Since the connection is
secure, the following steps in the Installing SSL Certificates section are not required.
If a valid certificate has not been provisioned, the connection is not secure, and the below error
will appear. The Windows event log will also return an error stating “Could not establish trust
relationship for the SSL/TLS secure channel”. If this error occurs, continue to Obtain SSL
Certificate.
It is recommended that you obtain a valid certificate from Certificate Authority (CA)
Once the certificate has been obtained, ensure that a Certificate Signing Request (CSR) has been
generated and signed. Ensure the SSL certificate file is saved on the server where the CSR was
created
After launching IIS and run Server Certificates from the server home page, follow the below
sections for the certificate data type obtained from the CA.
• cer
• .p12, .pfx, .per
2. On the Specify Certificate Authority Response window, enter the following details:
Certificate file (.pfx): Select a .p12, .pfx or .per file.
Password: Enter the password for the file.
Select Certificate Store: Select Web Hosting.
4. The SSL certificate is now installed, and the connection should be secure with a valid
certificate when running the site on the browser
Warning: If using this certificate for a version of Edge Chromium or Chrome from 2020,
certificate obtained via this method may not be trusted.
1. Launch IIS and run Server Certificates from the server home page.
2. Under Actions, on the right of the Server Certificates screen, select Create
Domain Certificate…
6. Select Finish and the certificate from the Active Directory should appear in the Server
Certificates list.
2. After launching certmgr, go to Personal > Certificates. Right click the Certificates
folder and go to All Tasks > Advanced Operations > Create Custom Request…
5. On the Custom Request screen, make no changes as below and select Next.
6. On the Certificate Information screen, select the Details drop-down to view the
Custom Request details. Select Properties to load the Certificate Properties
window.
7. On the General tab, enter a Friendly Name and Description then select the
Subject tab.
10. Under Alternative name, change Type to DNS and enter in the domain as the
Value.
12. Select the Extensions tab and ensure the setup matches the below setup for Key
usage, Extended Key Usage (application policies) and Basic constraints.
15. Select Next and under “Where do you want to save the offline request?”, select a
location to save the certificate request.
The domain administrator should know the address of Active Directory Certificate
Services for your domain.
22. Go back Certificate Manager (certmgr), right click Certificates > All Tasks >
Import.
24. Select [Next] and select the certificate file that was downloaded from Microsoft
Active Directory Certificate Services.
25. Select Next and place the certificate in the same location that the certificate
request was made.
27. The SSL certificate is now installed, and the connection should be secure with a
valid certificate when running the site on the browser.
Firewall MUST be configured to allow access to and from GLOW, as otherwise, it may
impact functionality and the ability of WTG to provide support for any incidents raised
by the customer. (See Firewall Rules).
Since web servers can be firewalled for security reasons, these URLs need to be checked for
accessibility. A simple way of checking the accessibility of these URLs can be done by opening
them in a browser from the relevant server.
CargoWise One also relies on GLOW to import data using the Advanced Data Automation Wizard.
RDP servers running the CargoWise One Client must be able to reach the GLOW web service to
support this functionality.
The file contains a top-level node ‘Glow’, and child key/value pairs for various settings:
{
"Glow": {
"Proxy": { ".." },
"Logging": { ".." },
"Forwarding": { ".." }
}
}
GLOW back-end service and Portals will read this file when starting and use the settings for
different purposes.
We can check the configurations that is in use via /Glow/dev/configuration, or alternatively, click
the ‘Configuration’ link shown below on the /Glow/dev/login page.
It includes the requests from /Glow back-end service to Enterprise service, Error Reporting
service and other external services, and requests from /Portals front end service to /Glow back
end service and Error Reporting service.
• Configuration File
The proxy can be configured in the GLOW server configuration file location in
C:\ProgramData\WiseTech Global\Glow\config.json.
• Proxy Options
These are in section Glow -> HttpProxy:
Requests to a local host with a URI that contain a period will still use the proxy. To avoid
using a proxy in these cases, create an entry for the host in the BypassList
GLOW and Portals sites needs to be restarted for the new options to take effect.
A Load Balancer distributes the network traffic across multiple servers to ensure that no single
server is overloaded, and that traffic is redirected should any server experience downtime. Traffic
will be spread evenly and thus improve responsiveness when using the GLOW web portals.
If only one web server exists, load balancing is not required. However, it is recommended
to have more than one web server to improve performance when using the GLOW web
portals as well as to protect against a single failure point.
7.1 Requirements
• SSL Certificates: Required when using load balancers as traffic is often decrypted at
the load balancer.
• Load Balancer: Configure or set up a load balancer for the network. (See Example Load
Balancers: HAProxy)
The following load balancing algorithms are recommended to handle the traffic between the web
servers.
• Least Connection to direct traffic to the server with the fewest active connections to
clients. This will require Kafka to ensure timely push notifications and immediate index
synchronisation across all web servers.
• Balance First to direct traffic to the first server with free connection slots. Kafka is not
required in this configuration.
Where there is more than one web server, GLOW requires additional software to keep certain
processes synchronized, such as the GLOW indexing service. Key events that are required to be
shared between web servers use an external message queue based on Apache Kafka®.
To install and configure a Kafka cluster, please refer to the following steps from the
Apache Kafka® documentation: https://kafka.apache.org/quickstart
Example
Example
8. Indexing Service
GLOW includes a sophisticated index service to improve search performance in GLOW based
apps. The index is constructed automatically when GLOW is first installed and uses the Business
Intelligence CDC service for change detection to keep the index in step with the SQL Server
database.
The index service reads selected database records once and then satisfies any number of
complex searches without any additional database access. Index based searching is highly
performant and reduces database load.
8.1 Details
The GLOW Index Service (the Service) runs in every installed GLOW web server to ensure that
user requests are performant and can be serviced should any web server become unavailable in
a web cluster installation.
The index contains text searchable documents that have been curated into a flattened view of an
entity and its related entities and collections. The index configuration specifies the entities
(tables) to be indexed and the specific properties to be included as being searchable and/or
presented in results. These properties can be complex paths with calculations such as counts,
totals, averages etc. for collection properties.
When records are added, deleted, or edited in the SQL Server database, Change Data Capture
(CDC) – installed as part of the Business Intelligence Audit Database setup – will notify the
Service about relevant changes. These changed entities will cause the affected index documents
to be recalculated and updated. Generally, there will only be a short delay until the changed
source data is reflected in the index.
• Creating the index from existing records in the database. This happens when
GLOW is initially installed and again, when material changes are made to the
underlying schema or index configuration, or if there is a continuity break in the
CDC data.
• Once the index is fully populated, the time it takes for a subsequent change in the
database to be reflected in the index.
The index service then analyses the change data and re-queries the database to build any
replacement index documents dependent on that change.
On a normally loaded system, such changes should appear within seconds, however, heavily
loaded high transaction environments may experience longer delays before the index is
eventually made consistent with the database.
There are other events that cause the Service to reindex data:
• If there is a continuity break in the CDC data – say, by a reset initiated by the database
administrators – any affected table will be completely reindexed. This is necessary
because a continuity break means that the Service is unable to determine if the index is
a faithful representation of the source data.
• If the index configuration is altered during a software upgrade – say, because of a
schema change, or a redefining of the entity relationships and calculations – then the
affected tables will be indexed anew. That is, the existing index will be initialized and
then treated as though it is being indexed for the first time. This is necessary to ensure
that the Service has an index view of the data that is compatible with the configured
model of the data.
In the continuity break reindex scenario, the existing indexed documents will remain available for
searching. Any changes to the source data, will not be processed until the reindex has
completed. This means there may be a longer than expected delay until the index reflects the
current state of all the source data.
Self-hosted customers are advised to monitor their server infrastructure, resource consumption,
error logs and process backlogs in order to troubleshoot effectively.
If the service returns 503 (Service Unavailable), then one of the critical sub-systems or
dependencies is unavailable or erroring and the server is not able to serve requests.
Glow/dev/status provide more detailed information and can be accessed using staff login.
CDC is disabled.
An upgrade is Schedule an upgrade.
required.
CDC is disabled
Indexing or no scans have Contact WTG Support.
Service been performed.
CDC relies on
change data CDC scan has not
from CDC been performed
for more than ‘x’ Check that CDC Service Task is
minutes The enabled and is running without
status of the last errors.
scan is the
following: ‘status’
GLOW ServiceURI is
Ensure registry is setup
depends on empty or null
this for
CargoWise
One
EnterpriseServices
functionality
Service is Ensure Glow can hit the Service
such as
unreachable URI
eDocs,
Documents,
Ratings etc.
GLOW
nudges
CargoWise
One when
Exceptions are
saving Ensure the web server can
EntityNudging generally network
changes so reach Process Controllers
errors
that
workflow is
triggered for
example
These URIs
are used by
the CDC
{
subscriber,
GLOWServiceURI,
and Check the registry values have
GlowURIs GLOWPortalsURI,
CargoWise been populated
MobileServicesURI
One
} not populated
functions
that depend
on GLOW
Low free
memory can x% of system Take action to provide more
MemoryUsage impact the memory used, y% memory to the server or
performance available reduce contention
of GLOW
Checks that
GLOW
version is
Schema is
SchemaMonitor compatible Contact WTG Support
incompatible
with
database
version
This
manually
marks server
System- as This will only occur when WTG
Server is under
Maintenance- unavailable. Support have activated it after
maintenance
Mode WTG customer agreement
Support
function
only.
If an upgrade has completed but the web portal is still showing the system under maintenance
page like the one below,
Please check the service status at /Portals/wtg/status. If it indicates an error like “ ERROR (Glow
Portal): Portal version 23.9.27.132 does not match Glow Server version
23.9.27.162,” then try recycling the app pool to fix it.
Adding a browser plugin to format XML will make it easier to read these logs. In the above example, an exception
occurred in reading the database which corresponded to an upgrade being performed on the instance.
If you require help with diagnosing this information, please right-click on the browser page and
choose Save As to create a text file of the contents. The WiseTech GLOW team can help you
understand any errors that may appear in the GLOW Logs.
Ensure that the IIS Site Binding is not set to a specific IP but uses All Unassigned setting.
Firewall rules (next section) may also interfere with service URL reachability.
“We were unable to complete the last action because it was blocked by the server. This may be
due to a security policy of a firewall or web proxy. Please contact your system administrator.”
In non-interactive situations, such as the GLW service task, 403 errors may be present in the
service task logs.
If the above page does not appear, log into the web server, and restart the application pool for
the GLOW Service URL. After restarting the app pool, try opening the GLOW Service URL again to
see whether services are now working.
To ensure that the current IIS user has the modification permission on
folder “C:\ProgramData\WiseTech Global\CargoWiseOneWeb\EntityIndex” you need to open the
EntityIndex property dialog. If the permissions are missing you can add them by using the [Edit…]
button.
• <domain>_Glow
• <domain>_Portals
Click the Test button to test the connectivity of each service. You will see the
following message dependent on the outcome.
• Success: ‘Success - Remote service responded with successful status code: <status
code>’.
• Failure: ‘Failed - Remote service didn't return a successful status code. Status code
returned: <error code>’
Note: If you are still having issues outside of the application, try stepping through the GLOW
Troubleshooting Guide.