Guide

Installation

If you are part of the Early Adopter Program and wish to update your environment with this first production release of the Discngine LiveDesign Connector for Pipeline Pilot, please consult the changelog first. Indeed, changes that have been made to the components of the Pipeline Pilot collection can lead to a backwards compatibility break on your existing protocols. Then, follow the upgrade guide rather than this installation guide.

The Discngine LiveDesign Connector for Pipeline Pilot package contains:

  • ldconn: the Pipeline Pilot collection developed to interact with LiveDesign into Pipeline Pilot protocol,
  • A BIOVIA® Pipeline Pilot server 2018 or above.
  • A Schrodinger® LiveDesign server 8.9, 8.10, 8.11 or 9.0.

You will also need to have:

  • ssh access to the Schrodinger® LiveDesign server, with rights to edit the nginx conf and restart nginx server,
  • access to BIOVIA® Pipeline Pilot server and rights to install packages on it and restart Apache server.
  1. On the Pipeline Pilot server, place the ldconn folder of the package in <PP Installation>\PPS\apps\discngine\.

  2. Open the command line prompt as an administrator from the windows start menu (Right click > execute as administrator) and change the directory to [scitegic_root]\bin (or [scitegic_root]/linux_bin if you are on a Linux server).

  3. Install the Discngine LiveDesign Connector collection executing the following command:

    .\pkgutil.exe -i discngine/ldconn

  4. Restart the Apache server:

    • open the Pipeline Pilot server administration page
    • navigate to Setup > Manage Server in the left pane
    • press the "Restart Apache" button
  5. The Package components and the application need some information about your LiveDesign environment. You can set the values directly into the parameters of the component, but we highly recommend to set the global properties declared for the package. To do so:

    • open the Pipeline Pilot server administration page
    • navigate to Setup > Global Property in the left pane
    • Here is the list of properties:
Property Description Required Default Value
LiveDesignServerUrl URL of your Live Design server, e.g. https://ldserver.yourcompany.com. Yes
LiveDesignVersion The version of your Live Design server (values available are listed in compatibility documentation). Yes 8.11
Delimiter String delimiter used internally. Do not change it unless you have issues. Yes !!_!!
LicenseKey Your Licence key for the Pipeline Pilot Gadget. Yes
VerifySSL Whether you want want to check SSL certificate when using Pipeline Pilot Components. Set to False if you use a self-signed certificate or if you are not using SSL. Yes
DefaultProjectName Name of the LiveDesign project that will be used by components by default (only used by deprecated components). No Global
DefaultProjectID ID of the LiveDesign project that will be used by components by default. Yes 0
GadgetMenuPath Path of the file that will be used as Gadget menu. Yes $(SharedPublicDir)/Discngine/composer/menu.json

First make sure you can access your LiveDesign server via ssh.

  1. ssh to the server then create a ldconn.conf file in nginx's endpoints.d folder
cd /etc/nginx/endpoints.d
touch ldconn.conf
  1. Paste the following in the ldconn.conf file (replace the placeholders with the url of your Pipeline Pilot server):
location /discngine/ldconn/ {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass https://<server-url>:<port>/discngine/ldconn/;
        proxy_read_timeout 600;
}

# we use this location so that we can empty out POST requests before passing
# them on to LD's "about" endpoint.
# This is used to control the validity of the Session Token
location /livedesign/ppproxy_auth/ {
        internal;
        proxy_pass $scheme://localhost/livedesign/api/about;
        proxy_pass_request_body off;
        proxy_set_header Content-Length "";
}

location /livedesign/ppproxy/ {
        set $authorization $http_authorization;
        set $basic_auth $http_authorization;
        set $delimiter "";
        set $ldsession "";

        # first we check that the user has a valid LiveDesign Session Token
        # This step is optional and you can skip it if you don't want to perform the check.
        auth_request /livedesign/ppproxy_auth/;

        # $is_args will be truthy if request has query args.
        # In this case we want to append our config
        if ($is_args) {
                set $delimiter "&";
        }

        # Extract ld_session token which will be needed on PP side to authenticate user
        # on LiveDesign.
        if ( $http_cookie ~ "JSESSIONID=([^;]*)" ) {
                set $ldsession $1;
                set $args "${args}${delimiter}ldsession=${ldsession}";
        }

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Authorization $authorization;

        # Enable these options if you want to prevent persistent PP sessions on LiveDesign
        #proxy_hide_header       Set-Cookie;
        #proxy_ignore_headers    Set-Cookie;

        proxy_pass https://<server-url>:<port>/;
        proxy_read_timeout 600;
}
  1. Restart nginx:
sudo service nginx restart
  1. In the LiveDesign Admin Panel, under FEATURE CONFIGURATION, go to Properties. In the CUSTOM_GADGETS section, add an entry for the Discngine Gadget:
{
   // ... other gadgets
   "BIOVIA Pipeline Pilot Gadget by Discngine": "/discngine/ldconn/"
}

To allow a fine control of the actions a user can perform, the Gadget uses a system of permission. Theses permissions are set on Pipeline Pilot end. To control these permissions, on the Pipeline Pilot Administration server, go to Security > Permissions. Three different permissions exist: LDCONN_ADD, LDCONN_EDIT, LDCONN_DELETE. Alternatively, a group Discngine/LiveDesin Connector/Administrators is available and encompasses all above permissions. To control which users belong to this group, on the Pipeline Pilot Administration server, go to Security > Groups.

Permission Name Description
LDCONN_ADD Ability to register new protocols in the Gadget
LDCONN_EDIT Ability to edit protocols already registered in the Gadget
LDCONN_DELETE Ability to remove protocols previously registered in the Gadget

If you plan on using the Gadget and register new protocols, make sure you have the correct permissions set for you.