DriveWorks Pro 17: Integration Theme Settings [send feedback...]

Integration Theme Settings

After installing the Integration Theme some Configuration and Connection settings need to be applied.

There are two configuration files:

  • DriveWorksConfig.xml (base file)
  • DriveWorksConfigUser.xml (user file)
The base file ships with DriveWorks and must not be edited.

Any future upgrades to DriveWorks may include additional parameters within the base file.

The user file (and all customizations within it) will remain untouched during uninstallation or re-installation.

To customize any future enhancements to the base file just copy the required xml into the user file.

The base file can be found in the following location:

C:\ProgramData\DriveWorks\[Version]\Live\Themes\Integration\DriveWorksConfig.xml

  • If the Integration Theme has not been selected from Theme Configuration (see To Select the Theme in Personal Web Edition (DriveWorks Administrator) or Live (DriveWorks Live)) the user file will not exist.

    In this instance:

    1. Make a copy of the base file, in the same location.
    2. Rename it DriveWorksConfigUser.xml
    3. Edit the DriveWorksConfigUser.xml with your required Configuration Settings and Connection Settings as below.
  • If the Integration Theme has been selected from Theme Configuration the DriveWorksConfigUser.xml file will exist, and will include the Configuration setting - StaticFilesPath element.

    In this instance:

    1. Edit the DriveWorksConfigUser.xml with your required Configuration Settings and Connection Settings as below.

Not all Configuration Settings or Connection Settings need to be copied into the DriveWorksConfigUser.xml file.

Any settings that do not exist will be read from the base file.

Configuration Settings - DriveWorksConfigUser.xml file

Configuration Settings require to be included within the following element:

<configuration>

---Copy the required xml below within these elements---

</configuration>

Copy the xml from each required setting element below within these elements.

corsOrigins

This is a list of Origins that are permitted to make Cross Origin Requests.

Origins are URLs of websites that you wish to allow a request to be made from.

Example DriveWorksConfigUser.xml file - corsOrigins Settings
<corsOrigins>
    <origin1>*</origin1>
</corsOrigins>

By default this is set to * meaning all origins can make requests.

This should be changed to a single URL, for example:

<corsOrigins>
    <origin1>http://google.com</origin1>
</corsOrigins>

To block all requests leave the value blank, for example:

<corsOrigins>
    <origin1></origin1>
</corsOrigins>

To allow requests from multiple sources add additional origin elements, for example:

<corsOrigins>
    <origin1>http://google.com</origin1>
    <origin2>http://microsoft.com</origin2>
    <origin3>http://driveworks.co.uk</origin3>
</corsOrigins>

specificationTimeout

The length of time in minutes that a specification is allowed to remain inactive before it is timed out.

This defines how long to wait before timing out of a Specification.

This is per started Specifications (you can start multiple specifications running within the same group within the same session.)

To set your preferred timeout value, include the following:

<specificationTimeout>20</specificationTimeout>

Where 20 is changed to your preferred value.

groupTimeout

The length of time in minutes that a group is allowed to remain inactive before it is timed out.

This defines how long to wait before timing out of a Group (It will cancel associated Specifications).

This is per started Groups (you can connect to multiple groups within the same session).

To set your preferred timeout value, include the following:

<groupTimeout>20</groupTimeout>

Where 20 is changed to your preferred value.

sessionTimeout

The length of time in minutes that a session is allowed to remain inactive before it is timed out.

This defines how long to wait before timing out of a Session (It will cancel associated Groups and Specifications).

Live Licensing

When a session ends the license will expire (be returned) a short time after.

Licenses can only return in whole minutes and not seconds.

Setting the SessionTimeout to 1.5 mins would end an inactive web session after 90 seconds, the live license would expire after 120 seconds.

To set your preferred timeout value, include the following:

<sessionTimeout>20</sessionTimeout>

Where 20 is changed to your preferred value.

staticFilesPath

The directory from which additional static files are to be served.

The .html and .css files for the examples landing page are located here.

serveDocumentation

Set this to true if you want to enable the /help endpoint. This includes access to the server API and the Client SDK documentation.

It is recommended that this is set to false in a production environment.

To set your preferred value, include the following:

<serveDocumentation>true</serveDocumentation>

Where true is changed to your preferred value.

maxRequestBodySize

(Only required if using the Upload Control)

The maximum allowed request body size in bytes.

By default the value is 30,000,000 bytes (around 28mb); this can be changed as required to accommodate large file uploads if desired.

This line can be removed or commented out - by doing so, the limit will be disabled entirely (i.e. making the request body size unlimited)

To set your preferred value, include the following:

<maxRequestBodySize>30000000</maxRequestBodySize>

Where 30000000 is changed to your preferred value.

Connection Settings - DriveWorksConfigUser.xml file

Connection Settings require to be included within the following element:

<connections>

---Copy the required xml below within these elements---

</connections>

Shared Group Connection

To set up a connection to the Shared Group, include the following:

Group Alias

A Group Alias is a saved connection that can be easily retrieved using the Client SDK and the Server API.

<sharedGroupAlias name="ConnectionOne" serverAddress="localhost" groupName="MyGroup" username="Admin" password="password">

Where:

  • name is the name to give to the group alias.

    Change the value ConnectionOne to the name to give to the group alias.

  • serverAddress is the name of the machine running Pro Server.

    Change the value localhost to the name of the machine running Pro Server.

  • groupName is the name of the Group to login to.

    Change the value MyGroup to the name of the machine running Pro Server.

  • username is the Username to use by default.

    Change the value Admin to the Username to use by default.

    Default credentials are defined here to ensure the client side code is very secure.
  • password is the Password to use by default.

    Change the value password to the Password to use by default.

Individual Group Connection

To set up a connection to an Individual Group, include the following:

Group Alias

A Group Alias is a saved connection that can be easily retrieved using the Client SDK and the Server API.

<individualGroupAlias name="ConnectionTwo" path="C:\DriveWorks\MyGroup.drivegroup" username="Admin" password="password">

Where:

  • name is the name to give to the group alias.

    Change the value ConnectionTwo to the name to give to the group alias.

  • path is the path to the Individual Group file.

    Change the value C:\DriveWorks\MyGroup.drivegroup to the path to the Individual Group file.

  • username is the Username to use by default.

    Change the value Admin to the Username to use by default.

    Default credentials are defined here to ensure the client side code is very secure.
  • password is the Password to use by default.

    Change the value password to the Password to use by default.

Permissions

Because the Integration Theme is a request service the ability to list and edit all constants, variables and macros has been blocked (for security reasons).

However there may be instances where access to certain constants, variables and macros is required.

As such, you need to explicitly set what constants, variables and macros are visible to what teams (and if they can edit them).

This does not affect the ability of constants, variables and macros to be run as designed within a project.

Permissions require to be included within the following element:

<connections>
    <sharedGroupAlias OR individualGroupAlias> --Taken from above--
        <permissions>

        ---Copy the required xml below within these elements---

        </permissions>
    </sharedGroupAlias OR /individualGroupAlias>
</connections>

To set up permissions, include the following:

<project name="Project1">
    <variable name="variable1">
        <team name="Team1" />
    </variable>
    <constant name="constant1">
        <team name="team2" canEdit="true"/>
    </constant>
    <macro name="MyMacro">
        <team name="team1"/>
    </macro>
</project>

Where:

  • name (attribute of the project element) is the name of the project that contains the variable, constant or macro that is required to have permission.

    Change the value Project1 to the name of the required project.

  • name (attribute of the variable element) is the name of the variable.

    Change the value variable1 to the name of the variable.

    Multiple variables must be listed separately. For example:
    <variable name="variable1">
        <team name="Team1" />
    </variable>
    <variable name="variable2">
        <team name="Team1" />
    </variable>
    • name (attribute of the team element of the variable element) is the name of the team that has permission.

      Change the value Team1 to the name of the team.

      Multiple teams must be listed separately. For example:
      <team name="Team1" />
      <team name="Team2" />
      <team name="Team3" />
  • name (attribute of the constant element) is the name of the constant.

    Change the value constant1 to the name of the constant.

    Multiple constants must be listed separately. For example:
    <constant name="constant1">
        <team name="Team1" />
    </constant>
    <constant name="constant2">
        <team name="Team1" />
    </constant>
    • name (attribute of the team element of the constant element) is the name of the team that has permission.
      • Change the value Team1 to the name of the team.

      • Change the value of the canEdit attribute to true to allow the constant to be edited by the user (applies to the constant element only).

      Multiple teams must be listed separately. For example:
      <team name="Team1" canEdit="true" />
      <team name="Team2" canEdit="true" />
      <team name="Team3" canEdit="true" />
  • name (attribute of the macro element) is the name of the macro.

    Change the value MyMacro to the name of the macro.

    Multiple macros must be listed separately. For example:
    <macro name="macro1">
        <team name="Team1" />
    </macro>
    <macro name="macro2">
        <team name="Team1" />
    </macro>

Example of Custom DriveWorksConfigUser.xml file

The following is an example of a typical DriveWorksConfigUser.xml file, with specific settings included.

The settings that are not included will be taken from the DriveWorksConfig.xml file.

<configuration>
    <sessionTimeout>15</sessionTimeout>
    <specificationTimeout>10</specificationTimeout>
    <serveDocumentation>false</serveDocumentation>
    <maxRequestBodySize>30000000</maxRequestBodySize>
    <connections>
        <sharedGroupAlias name="DriveWorks" serverAddress="PROSERVER" groupName="MyGroup" username="Admin" password="">
            <permissions>
                <project name="Canopy">
                    <variable name="Discount">
                        <team name="Sales" />
                    </variable>
                    <constant name="DiscountApplied">
                        <team name="Sales" canEdit="true"/>
                    </constant>
                </project>
            </permissions>
        </sharedGroupAlias>
    </connections>
</configuration>

See also

Integration Theme

How To: Configure DriveWorks Live For IIS

How To: Make Your Website React To Specification Events With The Integration Theme

Table of Contents