Skip to main content
Skip table of contents

General

Depending on the application type, whether it is a web application, desktop, or hybrid, you need to provide different information in the General tab. When you select both web and desktop options two General tabs appear, one for Web version configuration and another for Desktop version configuration.

General configuration tabs

Web version configuration

URL patterns

The URL match patterns have the following structure:

<scheme>://<host><path>

The URL match patterns can contain wildcards, but a port number cannot be specified.

The system forces the use of a wildcard for the scheme *://<host><path>, so it always matches both HTTP and HTTPS.

The user administrating the business applications views and enters patterns with a simplified structure:

<host><path>

Internally, all the software components must handle the full URL match patterns, including the scheme: 

<scheme>://<host><path>

Pattern validation logic

The application configuration module uses the following set of rules to verify the pattern before saving it:

  1. The user must enter at least one URL match pattern.

  2. Today specifying a scheme like http://</code> or <code>https:// is not supported, it must be *://

  3. If the user does not specify *:// the form will automatically add the *:// prefix.

  4. If the user enters a URL with a port number, the form will display an error message.

  5. The host component can start with *. followed by part of the fully qualified domain name (FQDN). Note that this pattern also matches a hostname that is exactly the expression entered after the *. wildcard.

  6. The host component must end with a complete and valid domain name if it starts with a *. wildcard.

  7. The host component can just contain a local hostname (for example, no domain name) if it does not start with a *. wildcard. This is to support internal web applications that do not use FQDN.

  8. You must specify the path with at least /*. If the user does not enter a path, the form logic appends /* to match all paths.

  9. The path must end with a * wildcard. If the path does not, the form logic appends * to the pattern.

  10. The path can not contain more than one * wildcard.

  11. The pattern must not contain a query string (?...). If the user enters a URL with a query string, an error message appears.

  12. The pattern must not contain a fragment (#...). If the user enters a URL with a fragment, an error message appears.

  13. Validation logic prevents patterns that intersect each other across all the applications.

  14. The entire match pattern must validate as a standard URL after adding an http:// prefix and replacing all wildcards with arbitrary words. For example, if the user enters the pattern *.example.com/foo/* the expanded form http://www.example.com/foo/bar can be easily validated using a standard URL validation library.

  15. Entering only a domain name for a host part like example.com is valid. It will not match, however, the URL name with a hostname like www.example.com.

  16. The form logic auto-corrects the pattern entered by the user, it does this immediately after the textbox loses focus, and the user interface allows the user to see the change before the form is submitted.

  17. A pattern intersects another pattern if at least one URL that is matched by both patterns exists. Explicitly, patterns A1 and B1 intersect if all of the following conditions are true:

    1. After trimming the eventual wildcard from the beginning of the host parts, A1.host ends with B1.host or B1.host ends with A1.host.

    2. After trimming the wildcard from the end of the path, A1.path starts with B1.path or B1.path starts with A1.path.

Examples of valid patterns

  1. www.example.com/* matches all URLs that start with http://www.example.com/ or https://www.example.com/.

  2. *.example.com/* matches example.com, www.example.comintra.example.com, support.intra.example.com, …

  3. *.intra.example.com/* matches intra.example.com, support.intra.example.com, ...

  4. example.com/* matches only *://example.com/*.

  5. www.example.com/foo/* matches all URLs that start with *://www.example.com/foo/.

  6. myintranet/* is a valid pattern for an internal application.

  7. www.example.com/foo/* is an existing app match pattern. In this case, the following patterns can be used for any of the applications:

    1. *.example.com/bar/*

    2. www.example.com/foobar/*

    3. *.another-example.com/foo/*

    4. test.example.com/foo/*

Examples of invalid patterns

  1. www.example.*/*

  2. https://*.example.com/*  because of the scheme

  3. www.*.com/*

  4. www.*.example.com/*

  5. www.example.com/foo?bar query string components are not supported

  6. */*

  7. www.example.com/foo#bar hash components are not supported in the application URL

  8. *.example:1234.com/* because of the port (use *.example.com/* instead, all ports are supported)

  9. *.example.com/#foo

  10. *example.com/* no dot following the star in the host component

  11. www.example.com/foo/*/bar/* only one wildcard is allowed in the path.

  12. *.customer.*.example.com/* only one wildcard is allowed in the host part.

  13. www.example.com/foo* is an existing app match pattern. In this case, you cannot use the following intersecting patterns for any of the applications:

    1. *.example.com/foo/*

    2. www.example.com/foobar/*

    3. www.example.com/fo*

    4. www.example.com/foo/bar/*

Examples of auto-corrected patterns

  1. www.example.com changes to *://www.example.com/*

  2. www.example.com/ changes to *://www.example.com/*

  3. www.example.com/foo/ changes to *://www.example.com/foo/*

  4. www.example.com/foo changes to *://www.example.com/foo/*

  5. example.com changes to *://example.com/*

  6. *.example.com changes to *://*.example.com/*

A specific use case for non-standard ports

The corporate document management system is accessed using the following URL:

https://prod.doxydoc.local:32890/start.php

During the business application configuration, the pattern that must be used is shown below:

*://prod.doxydoc.local/start.php*

Collect URLs

URL table is one of the widgets displayed on the dashboard for Speed and Reliability. By default, the system does not store URLs, as they may contain private or sensitive information, especially in custom-written applications. If this is not a concern, we recommended activating the Collect URLs check box as it helps with Key pages configuration. Refer to the Key pages documentation for more information.

  • When you enable Collect URLs, users with appropriate permissions can view the individual URLs that employees visit.

  • When you disable it, the system does not collect any URLs at the extension level.

  • The system renders a truncated URL to preserve data privacy using a sanitizer.

Sanitizing URLs

Whenever possible, Nexthink sanitizes all collected URLs to conceal sensitive information. This is done in an attempt to remove personal data, potential configuration secrets and certain query string patterns.

A URL (Uniform Resource Locator) is a string that serves as a unique identifier for a web resource. A URL consists of four primary components:

  • The origin includes the scheme ( http or https), the domain name ( http://nexthink.com ), and the port number (80 or 443), for example, https://nexthink.com:443 .

  • The pathname specifies the exact location of the resource on the server, for example /company/about-us

  • The hash is an optional component of the URL that stores information for the browser, such as the current state of the web page or user preferences. It also begins with a hash (#) and is followed by a string, for example #__next.

  • The query parameters are optional pairs of keys and values that provide additional information to the server. They start with a question mark (?) and are separated by ampersands (&), for example, ?nexthink%5BrefinementList%5D%5BresourceType%5D%5B0%5D=Webinar

Examples of general codes the system uses to sanitize an application’s URL:

[code]

Description

[uuid]

Universally Unique Identifier (3c9dee20-52e9-4ff7-b2ee-e672342bce56 )

[id]

id number - sequence of alphanumeric numbers staring with / and ending with either / or ?. Non numeric characters must be one of the following  ., ,,_ ,-. Other characters must be numeric.

[json]

{"?????????"} formatted sequence where ????????? may contain any word, digit, or any of the following characters %, \, ., ,, :,_ ,-

[gib]

identification number, for example: the email id which comes after the identification number: http://outlook.office.com/mail/inbox/id/ in MS Outlook in MS Outlook in MS Outlook.

[hex]

hexadecimal value - sequence of at least 15 consecutive alphanumeric values in hexadecimal range: a-f and 0-9. 

[int]

integer value - sequence of at least 4 consecutive digits.

If any part of the origin, pathname, or anchor matches any of the global patterns, the system replaces it with the corresponding tag enclosed in square brackets.

Examples:

  • https://community.nexthink.com/s/profile/0052p00000BURowAAH sanitized with [hex]:
    https://community.nexthink.com/s/profile/[hex]

  • https://outlook.office.com/mail/inbox/id/AAQkAGJhYmFkMTUxLTQ5NzgtNDNlZi1iZDkzLTQ2YzEwNDIwYzA0YgAQAKafeoP2TMVDozSlcBq2JGU%3D sanitized with [gib]:
    https://outlook.office.com/mail/inbox/id/[gib]

Examples of query parameters

The query parameters are systematically sanitized. The system replaces each key-value pair with [key]

For example:

  • https://confluence.intra.nexthink.com/pages/viewrecentblogposts.action?key=AppExEP sanitized with [key]
    https://confluence.intra.nexthink.com/pages/viewrecentblogposts.action?[key]

  • https://nexthink.com/resources/reports?nexthink%5BrefinementList%5D%5BresourceType%5D%5B0%5D=Whitepaper sanitized with [key] https://nexthink.com/resources/reports?[key]=Whitepaper

Soft navigations

Activating soft navigations enables the measurement of the speed of asynchronous page loads where the browser does not load a new page. They are very common in single-page applications (SPA). Soft navigations measure the time it takes a page to stabilize. Refer to the Speed documentation for more info.

Some web applications work in such a way that the page is never completely stable due to background processes. In such cases, soft navigation measurements can report longer than usual page load times. This is why soft navigations are disabled by default. Turn the feature on only when you verify that the application page is stabilized.

Campaign

Nexthink Applications makes it possible to connect with existing campaigns.

Setting up Campaigns

To make the connection, pick the unique identifier (UID) from Campaigns and paste it into the Engage campaign UID text field of the application configuration screen. Note that an Engage campaign license is required.

You can also access the UID value by choosing Campaigns from the main menu and selecting the campaign you wish to connect to from the list. You can locate the UID of the campaign as part of the URL.

Finding UID in Portal

Once the campaign is linked, the Sentiment tab on the Applications page becomes visible. Note that you must have the right permissions to access it.

Clicking on the Sentiment tab opens the relevant Campaigns dashboard in a new tab.

Desktop version configuration

Enter the exact name of a binary and press Enter. An autocomplete helps you enter the binary name properly by providing suggestions when you start typing. You cannot include the same binary in multiple applications. An error message will appear after you press the Save application button. Nexthink recommends limiting the number of configured applications to a maximum of 100.

Select Make dashboard device centric in the Desktop Version Configuration section to change the dashboard orientation from employee to device centric.

Make dashboard device centric option

When selected, the Employees, Crashes per employee, and Employees with crashes widgets are switched to Devices, Crashes per devices, and Devices with crashes. Additionally, the Metrics table changes accordingly.

Desktop application dashboards with the device centric setting enabled


RELATED TASKS

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.