| Document number | Revision |
| :-------------- | -------- |
| DOCU12527       | 1        |

***



# Highstage Sub applications


[TOC]

## Background

Highstage enables a single Highstage application to include a large number of additional sub applications. These sub applications are based on the same Highstage data- and codebase and allows for partial or full access to data and functionality in Highstage for various stakeholders through their own dedicated instance of Highstage.

![Web 1920 – 1](Images/Web%201920%20%E2%80%93%201.png)

In this article, you will be introduced to setting up, configuring and maintaining sub applications.



## Introduction

Sub applications allows for multi-tier access to existing data and functionality without granting access to the primary Highstage application.

Highstage comes bundled with a default Highstage application named *TS*. This is the primary entry point to Highstage for people within the organization. However, Highstage allows for up to 256 Sub-application to be used at the same time where each sub application can have it's own individual accessibility, security and layout configurations.

Sub applications enables administrators to customize explicit, unique and relevant Highstage experiences for particular groups, divisions or teams which only requires access to a subset of data or features in Highstage.



An example of usage of Highstage sub applications could be reflected in a configuration where the ***SALES*** department has access to a certain amount of data and ***ENGINEERING*** has access to some other data:

<img src="Images/Artboard%20%E2%80%93%203.png" style="zoom:50%;" />

The data accessibility can be customized for each individual sub application. It is also possible to create sub applications which has access to a subset of data and functionality of another Highstage sub application:

<img src="Images/Artboard%20%E2%80%93%204.png"  style="zoom:50%;" />



## Highstage default installation

In a default Highstage installation, the `ts` application is used the primary Highstage web application:

![image-20200526144555958](Images/image-20200526144555958.png)

> **Note:** Highstage installations are managed through *Internet Information Services (IIS) Manager on the designated server where Highstage is located.*



Each sub application is added as an additional application to the primary Highstage web application:

![image-20200526145409137](Images/image-20200526145409137.png)





## Installation

<div style="border-radius: 25px;
  background: #123456;
            color: white;
            text-align:center;
  padding: 5px;
            width: 100%;
            padding-bottom:10px">  <p><strong>Important!</strong></p>Installing new Highstage sub applications requires restarting the <i>Internet Information Services (IIS) Manager</i>. Ensure that no users are actively using Highstage whilst restarting IIS. We further recommend testing sub applications on a dedicated test server.</div>


The following instructions will guide you through the [*Installation*](#Creating a new Highstage sub application), [*Initial Setup*](#Initial setup of new Highstage sub applications) and [*Security configuration*](#Configuring *Security* and *Accessibility* for Highstage sub applications) of Highstage sub applications on the designated Highstage server *(requires server access)*.

> **Note: ** All guides must be completed for new sub applications but can be revisited individually for configuration of existing Highstage sub applications.



### Creating a new Highstage sub applications

1. Open *Internet Information Services (IIS) Manager* and expand *Sites* in the *Connections* menu:

![image-20200526155534367](Images/image-20200526155534367.png)

2. <kbd>Right Click</kbd> the *Highstage* web application and select *[Add Application...]*:

![image-20200526160156349](Images/image-20200526160156349.png)

3. Fill out the form with appropriate information about the new sub application:
   1. ***Alias:*** Name of the sub application
   2. ***Physical path:*** Path to the pre-existing `ts_WebApp` folder directory in your Highstage installation *(Path might be different in your installation)*.

![image-20200526160510489](Images/image-20200526160510489.png)

3. Click <kbd>OK</kbd> to create the new sub application:

![image-20200526160936543](Images/image-20200526160936543.png)

<div style="border-radius: 25px;
  background: #a2d593;
            color: black;
            text-align:center;
  padding: 10px;
  width: 100%;">  <strong>Success!</strong> You have successfully created a new Highstage sub application.</div>
***NOTE***: *The new sub application has not yet been configured. Please refer to the [Initial setup](#Initial setup of new Highstage sub applications) for instructions on how to make appropriate changes in your primary Highstage installation to support additional sub applications.*



---

### Initial setup of new Highstage sub applications

1. Access the  `TS_WebApp` folder in your Highstage installation  *(Path might differ for your Highstage installation - but can be found in the root directory of your Highstage installation folder or accessed directly from the IIS Manager)*:

![image-20200527170810948](Images/image-20200527170810948.png)

2. Create a new unique `tweak` folder to be used by the newly created sub application:


![image-20200527163454979](Images/image-20200527163454979.png)

You can take a copy of the existing `tweak` folder to include all preexisting customizations from your primary Highstage application or create a new `tweak` folder containing only the minimum required files and definitions to fully reconfigure the sub application.

>  *Click [here](Materials\xyz_tweak.zip) to download a tweak folder with all essential files and definitions to run the sub application.*



3. Open  `web.config.xml` located in the `TS_WebApp` folder and paste in the following:

```xml
<appSettings>
	<add key="xyz:TweakPath" value="A" />
	<add key="xyz:SchemaFile" value="B" />
	<add key="xyz:WebRootClient" value="C" />
</appSettings>
```

> **Important! ** Place the snippet within the existing `<configuration>` element in the `web.config.xml` file.



4. Please change the following values in the provided snippet accordingly:

   1. Replace all occurrences of `xyz` with the name of your sub application.
   2. Replace `A` with the path to the newly created *tweak* folder *(eg. `C:\HighStage\TurboStage\TS_WebApp\xyz_tweak`)*.
   3. Replace `B` with the name of the primary schema file located in the `tweak` folder *(eg. `xyc.custom.schema.xml`)*.
   4. Replace `C` with the designated entry URL to the sub application *(e.g. `https://company.highstage.net/xyz`)*.
   
   

> **Tip!**  Additional parameter can be configured, or existing parameters overwritten, for a sub application through additional `<add>` elements within the `<appSettings>` element as specified in *Step 3*. 
>
> ```xml
> <add key="SUBAPPLICATIONNAME:PARAMETER" value="VALUES" />
> ```
>
> Replace `SUBAPPLICATIONNAME` with the name of your sub application. Replace `PARAMETER` with the name of the Highstage parameter and `VALUE` with appropriate values. This enables you to configure parameters explicitly for the sub application without modifying the existing parameters in your primary Highstage installation.
>



5. Save and close the `web.config.xml` file.
6. Please reset the *IIS* by doing the following:
   1. Open a *Command Prompt* terminal.
   2. Type in `iisreset` and click <kbd>Enter</kbd>.

This command will make IIS reset all processes and reload the application pools. After this restart the new sub application will be loaded and can be configured:

![image-20200528101414551](Images/image-20200528101414551.png)



7. Open a browser window and navigate to the `URL` *(eg. `https:/company.highstage.net/xyz`)* associated with the newly created sub application as specified in *Step 4*:

![image-20200528103355219](Images/image-20200528103355219.png)

<div style="border-radius: 25px;
  background: #a2d593;
            color: black;
            text-align:center;
  padding: 10px;
  width: 100%;">  <strong>Success!</strong> You have made the initial setup of a new sub application in Highstage.</div>


---

## Configuration

The following instructions will guide you through the [*Security and Accessibility configuration*](#*Security* and *Accessibility*) and [*Content and Layout configuration*](#*Contents* and *Layout*) of existing Highstage sub applications.



### *Security* and *Accessibility*

#### Granting access to sub applications

> NOTE: All users and user groups who should have access to the sub application must be added to the parameter *LDapUserGroup* in the main Highstage application. Thus, they will have access to all Highstage applications (subapps) - and for each one sub application you can control what contents can be accessed and viewed.

#### Making data available in sub applications





**Notes**

1. Add any number of groups as values to the parameter `LdapUserGroups`.
2. Navigate to <kbd>SYSTEM</kbd> > <kbd>LDAP</kbd> > <kbd>ADSI (default)</kbd> and select *Replicate* to replicate all users and groups into Highstage.

This makes the listed users/groups available for use.



----

### *Contents* and *Layout*



***

![highstage_footer](.\Highstage\highstage_footer.png)