Tenants

Tenants

InterFormNG2 is cloud enabled, and as a part of that it is prepared to run multiple, isolated environments on the same installation of InterFormNG2. These isolated environments are called tenants.

 

When setting up multiple tenants on a single installation you should consider the workload of the installation. If there are many, small, not busy tenants, then that will work fine, but if the tenants are busy or are processing very large documents, then you should limit the number of tenants in an installation and distribute the tenants across multiple installations.

 

The tenant settings are covered here.

These environments are called a tenant. For a normal non-cloud installation a single tenant should be sufficient, and only one tenant is supported with a normal license code.

You need to have access to a tenant, in order to work with the resources, designer and workflow for this specific tenant.

You can setup an image to identify the tenant e.g. via a company logo.

 

A new, standard installation is delivered with a tenant called home. In a new installation the user, default has access to this tenant.

You can also  delete a tenant.

You can work with the tenants, and create new tenants (if your InterFormNG2 license enables this), if you are signed on as a system administrator:

 

Here you need to select the Settings ribbon and Manage tenants:



 

Then this is shown:



 

Here you see the list of tenants, that has been created. On the left you can add a new tenant by clicking the blue + Add tenant icon on the bottom left.

You can add/change/remove users access to the tenant as either a system admin or as a tenant admin.

Use these links to see explanations of the system admin and tenant admin roles.


You can change multiple settings of a tenant. In order to do that you first need to hover the mouse pointer over the tenant and then click this icon on the very right:
 
Then you see this pop-up window:

And now you can the tenant settings below:
Setup an image for a tenant

It is possible to assign an image to a tenant. This image is shown on the overview of available tenants when a user signs on to InterFormNG2. An image can help to identify the right tenant faster and avoid that the user selects the wrong tenant by mistake.


Other tools like the display name, initials and colors can also be used in order to ensure that each tenant stands out from the other, but that is described in the section below.

Before you upload the image the recommendation is to first convert the image into the png format and scale the image, so that it is up to  300x300 pixels. It is a very good idea to pad the image with extra pixels to fit that squared size in order to avoid stretching of the image.

Then you can load the image from the edit tenant screen. Here you just click this icon:

- and then a pop-up window with File Upload as below is shown:

Here you simply select the image to use and click Open.  If an image was previously selected for the tenant, then this new image will be used instead.

Now the image is shown both when a tenant is selected at sign on and it is also shown in the upper right corner, when a user is signed on to the tenant:




Setup initials, colors and display name for a tenant

It is not possible to rename a tenant, but you can setup a display name for a tenant and in that way display the tenant as a different name. The display name for the tenant can be setup, if you select manage tenants as the system admin. This is explained below.


Setup initials for the tenant

When you are signed on to a tenant, then the first two characters of the tenant are shown in the top right corner like below:
Here we are signed on to the tenant called Home, so Ho is shown. If you want a different 2 character abbreviation/initials to be shown, then you can set that as the initials on the tenant settings:



Above the tenant initials was set to be Hm and the Submit icon was clicked to save the change. The result is shown in the top right corner.

Setup colors for the tenant

First you need to click the Reset Swatches icon in order for the possible colors to be shown as below. After you have done that you can click the Add Color icon to add extra colors to the available colors. Finally you can select the color for the text and the background by clicking the color from the Swatch list and then click Submit:


With the selection above the background of the text will be grey and the text will be dark blue.

Display name

The next property that you can set for a tenant is the display name. It is in InterFormNG2 not possible to rename a tenant, but you can change the display name. That means, that the folder structure of the files will remain unchanged, but the new name of the tenant will be shown in the web interface.

If the display name is empty the Tenant ID is used as the tenant name, but if the display name is filled out, then this name will be used instead.
Setup of tenant repositories

If you click Manage tenants as shown above, then you can edit the list of repositories of the tenant with marked icon:


If the field Resource locations is empty, then InterFormNG2 will use the normal default repository as selected via the INTERFORMNG2_HOME environment variable in the subfolders under /resources/<tenant> e.g. C:\ProgramData\InterFormNG2\resources\home 


Now you can edit the list of repositories to search for Library resources e.g. to use resources from Github.

Notes
Note: You can also store the resources in a database.

If you refer to a resource in InterFormNG2, then the location set 1 will be searched and then all of the other locations sets until the resource is found. When a changed resource is to be saved, then InterFormNG2 will try to save it in location set 1 and if it is not possible e.g. because it is write protected, then it will try the other location sets in sequence.


When you click the marked icon above, then you will see this:

This is the interface of a wizard, that can help you do setup multiple locations (repositories) for the InterFormNG2 resources. 

Here you see these parameters:

Protocol
Here you refer to the kind of location, that you want to define. The possible values are:
Type
Description
File system location
The wizard can be used for referring to a directory within the {INTERFORMNG2_HOME} directory (where the data of InterFormNG2 is stored). This location set can be read only or full read/write.
Resource databases reference
Refer to a database for storing the resources. Here you refer to an existing database resource definition. This location set can be read only or full read/write.
Github repository
Refer to input resources stored in Github. Refers to an existing Github server definition. A Github connection is read only.
Custom (no wizard)
Type in the location set. Here you have access to define the path freely.
Please notice, that the first 3 location types makes use of a wizard to help you to setup a correct location set, where the custom protocol use no wizard, but you can here freely setup the location.

Below is help for each of the protocol types

File system location

If you select this protocol, then you will see this:

To the right of the Location URI you have two icons. First you should click the rightmost icon:

When you click this icon, then this pop-up window will be shown:

(The actual contents will vary depending on your setup).
This pop-up window shows the folders of the InterFormNG2_Home directory, which is where the InterFormNG2 data is stored. It is highly recommended to first create a new dedicated directory and then load this list to be able to see and select it. In the image above I previously created the directory, New_location, which I here choose to select and then click the Select icon.

Now this is shown:

If you want an additional directory within the selected directory, that holds the name of the tenant, then you can now click the other icon on the right:
When you click this icon the text /{_TENANTID_} is inserted. That will make InterFormNG2 create a sub-directory with the same name as the tenant.

Before you click Submit you should first consider the read only option for this location set. After you click Submit you will see this:
So here you can see the current search list of repositories for the tenant and the location set, that you just added. The /{_CONTENTTYPE_} creates subdirectories for each of the resource types as for the normal resource directory.

Resource databases reference

You will see the pop-up window below if you select the protocol type, Resource databases reference:

Here you can select a resource database, that you have previously defined and decide if this database is read only or full read/write.
Finally click Submit to add this location set. After you click submit you will see this:


Github repository

It is possible to read resources from a Github server, which you have already setup if you select the protocol type, Github repository.
The pop-up window looks like this:

Here you select this Github server with this icon:

And you can add a reference to the tenant name like for the File system location with this icon:

Custom

If you select the protocol called custom, then you can freely type in a reference to any of the resource types above, but you need to write a path, which fits the required syntax without the wizard. You need to also to include the 'R' as described below if the location set should be read only.

 

You can however setup a prioritized search list of various repositories.

The search list consists of a type and path for each repository, and each repository are delimited with a semicolon (;).

  1. Type
    Possible types are:
    file: This indicates a folder in a file system with full rights to the tenant.
    fileR: This indicates a folder in a file system with read only access for the tenant.
    github: A github directory.
    databaseR: Read only database resource mapping.
  1. Path
    The path to the repository. As a part of the path you can use these tokens/variables:
    {_TENANTID} and {_CONTENTTYPE_}
    InterFormNG2 will replace these with the current tenant and the current object type as listed in the Library. If you want to keep the same structure of extra repositories as in the normal, standard repository  on windows, then you can use this as a reference:
    file:C:/ProgramData/InterFormNG2/resources/{_TENANTID_}/{_CONTENTTYPE_}
    If you e.g. use this as the resource locations above:
    file:C:\ProgramData\InterFormNG2\resources\{_TENANTID_}\{_CONTENTTYPE_};github:MyGithub/{_CONTENTTYPE_}
    - then InterFormNG2 will first search in the local folder(s) for the resource, that you are using, and if not found, then the resource will be taken from the Github definition from a folder, that match the type of object e.g. template or document as listed in the Library section.

If the same resource is found in multiple repositories, then the first found will be used i.e. in the example above: If the same template is found both locally and in Github, then the local template will be used.


Write protecting a template-distribution while allowing user to change and delete templates

The repository setup described above can be used e.g. by ERP vendors in situations, where they want to supply the customers with a standard-distribution of templates and other resources while allowing the customers to edit, customize and delete e.g. the templates from the web-interface of InterFormNG2

 

Such a scenario can be created with this repository setup:

file:C:\ProgramData\InterFormNG2\resources\{_TENANTID_}\{_CONTENTTYPE_};
fileR:C:\ProgramData\InterFormNG2\resources_shipped\{_TENANTID_}\{_CONTENTTYPE_}

With the setup above the customer can open all resources found in resources_shipped, but since this repository is write protected the change resources are always saved into the normal resources as this is the first repository listed. Also if the customer decides to edit an already changed template, then the changed template from reources will be opened for edit.

 

A special effect of this is, that the customer can delete any resource - but only if the resource is found in the resources. So if e.g. that there is a template with the same name and path in both resources and resources_shipped, then the customer can delete the template once. Then the template still exists, but now it is the template from resources_shipped, that is used and shown. If the customer then tries to delete the same template again, then the user gets this error message:


Cannot delete /<template name>: Status is not OK - like below:

NGRepositories0001

 


Delete tenant

A tenant can be deleted by the system administrator by using the delete icon button on the tenants list (After you select Manage tenants on the upper left) :


 

A confirmation dialog will appear, and here you have to type the text "delete" to confirm deletion.


Be very aware that the tenant deletion procedure will delete everything related to that tenant, including resources, workflows, settings and logs. Also, all users that only have access to this one tenant will be deleted. The deletion is non-reversible, so it may be a good idea to make a tenant export beforehand.

Also note that if custom resource locations are defined for the tenant, all writable locations will be deleted. Only locations marked as read-only (with fileR:) will be left untouched. Before deleting the tenant, check the resource location setting and update as needed.

 

When the deletion procedure has completed, it is a good idea to look at the system audit log. If any part of the tenant deletion procedure failed, then it will be reported in the audit log as a warning. If any warnings are displayed related to the tenant deletion, some manual procedure may be needed to remove anything that is still left of the tenant data.

 

If the system is configured to use an external database, then the tenant deletion procedure is not able to drop the tables and databases belonging to the tenant. This step can be done afterwards by a database administrator.






    • Related Articles

    • Settings

      The settings of InterFormNG2 are set in two levels: Settings for system level. These settings are used globally on the InterFormNG2 installation - for all tenants. Settings for tenant. These are the settings for one specific tenant/environment. It is ...
    • Tenant image

      If you have an installation with multiple tenants, then it can be a good idea to add an image for each tenant in order to quickly identify the tenant. If you attach an image for the tenant, then the tenant overview can look like this: Above you can ...
    • User groups for versioning

      If you intend to use versioning in InterFormNG2 and you also want to use approvals, then you need to define user groups in InterFormNG2 to setup authorities for changes and approvals as below. User groups are defined once for all tenants, so they can ...
    • Sign on to InterFormNG2

      The default port number used by InterFormNG2 is 8086, but that can be changed in the configuration. After starting the InterFormNG2 process in either windows or IBM i, you can sign on to InterFormNG2 with a user ID and password. In a new installation ...
    • Storing settings and resources in a database

      The InterFormNG2 settings and resources are as default stored in files in the file system, but it is possible to store the settings and resources in a database instead. This is covered in the sections referenced below: •Settings in a database •Users ...