Remote Workers and Cradle – Connecting with SSH Tunnels

Your company is using Cradle, but you’re a remote worker – how do you connect to the Cradle server?

If you have the Cradle client utilities installed locally without a local CDS then one method, if you have an externally accessible Linux/Unix system is SSH tunnels.

To use SSH tunnels you need to “lock down” the Cradle server to use specific ports, so they’re not randomly allocated from a wide pool.  You can do this in the $CRADLEHOME/admin/ports file.

Make a note of the internal IP address of the Cradle server – we’ll use CDS_IPADDR later in this post to reference this address. (In this test environment it is 192.168.11.168)

Cradle Configuration Changes

As an example of a small Cradle system with 6 users we can configure the ports file as such. (We’re setting ports for each possible user and an extra)

CDS_UDP_PORT_NUMBER = 23960
TOOL_UDP_PORT_NUMBER = 23961
PRJMAN_UDP_PORT_NUMBER = 23962

CDS_TCP_TOOL_PORT_NUMBER   = 16161
CDS_TCP_PRJMAN_PORT_NUMBER = 16162
UTILITIES_TCP_PORT_NUMBER   = 16163-16169
WBENCH_TCP_PORT_NUMBER      = 16170-16176
CWS_TCP_PORT_NUMBER         = 21211-21217
PRJMAN_TCP_PORT_NUMBER      = 16177

This ports file needs to be copied to all the clients using this CDS.

Putty Configuration Changes

Now we can look at configuring the SSH tunnels. To do this we’ll be using PuTTY – probably the most popular Windows SSH client.

First off, click on the Category Session and enter the hostname or IP of the externally accessible box in the Host Name field.
Now expand the category SSH and click on Tunnels.
For each of the ports configured in Cradle we need to add an entry.
So, for the first one:
Source port  23960
Destination CDS_IPADDR:23960
You can leave the radio buttons alone (set to Local & Auto)
Now click the Add button.

In the Forwarded Ports box you should now have an entry similar to:
L23960     192.168.11.168:23960

Repeat this for all the other ports and we end up with a Forwarded ports section which looks like (if you scroll up and down):

Cradle Putty Tunnel Settings

L23960 192.168.11.168:23960
L23961 192.168.11.168:23961
L23962 192.168.11.168:23962
L16161 192.168.11.168:16161
L16162 192.168.11.168:16162
L16163 192.168.11.168:16163
L16164 192.168.11.168:16164
L16165 192.168.11.168:16165
L16166 192.168.11.168:16166
L16167 192.168.11.168:16167
L16168 192.168.11.168:16168
L16169 192.168.11.168:16169
L16170 192.168.11.168:16170
L16171 192.168.11.168:16171
L16172 192.168.11.168:16172
L16173 192.168.11.168:16173
L16174 192.168.11.168:16174
L16175 192.168.11.168:16175
L16176 192.168.11.168:16176
L16177 192.168.11.168:16177

Click back on the category Session, then add a name to the Saved Sessions and click on Save – so we don’t have to do this again.

If you now click on Open and login to the Linux host.
You can now use your local Cradle client with it pointed to the CDS as being on your local IP.

While you have this SSH session active, you will be able to access the CDS over the SSH tunnels.

How do I find information on the keyboard shortcuts?

Preferences

There are the usual operating system shortcuts  such as <ctrl> + C and <ctrl> + V to cut and paste text. Users can see and set the additional Cradle keyboard shortcuts in their user preferences.

These preferences are first drawn from the system wide cradle.ini/cradle.rc file. If you alter any of them for your own needs, they are saved in your personal user preferences as a difference between the system setting and you chosen value. Thereby balancing consistency between users, whilst allowing flexibility when needed.

This menu is selected from the tab Home -> Preferences

view of the keyboard shortcuts tab in the preferences dialog
Cradle Keyboard Shortcuts

Keyboard

The Cradle shortcuts are mainly based around diagram drawing operations. This can speed up productivity considerably. For example; you don’t have to keep moving your mouse cursor to a menu,  just to switch between say drawing and selecting.

More information about keyboard shortcuts can be found in the Cradle Help . Similarly the reset of the user preference details can also be set in the same dialog.

 

Using Mailsend for Sending Alerts

Email Alerts

In our article Email Alerts! In Cradle  we discussed using Mailsend utility so you can use SMTP rather than MAPI to send emails alerts. We touched briefly on the configuration within Cradle of using the utility. In this post, we’ll be expanding on that. Providing an example of a Mail Relay within the Cradle environment rather than talking directly to a company SMTP server.

Why use a relay?

sending and receiving email based on rawpixel.com on Pexels
Mailsend

So why shouldn’t we configure all the Cradle clients to talk directly through Mailsend to a company mail server?
For starters, the company mail server may be locked down to only accept SMTP emails from specific hosts, and so wouldn’t accept SMTP connections from every Cradle desktop client.

Using a relay means that the company mail server only needs to accept SMTP connections from a single host, the mail relay, as all the Cradle Mailsend desktop clients talk via the relay.

So, how do we setup a relay

Its as simple as installing the relay software and configure it. Currently we use Postfix in installations where we need a relay as we’re usually using Linux as a Cradle Database Server. Postfix is a package available on most/all Linux distributions.

Then its just a case of configuring it to accept incoming connections from the Cradle desktop clients. We lock this down to a subnet of IP addresses. Then set the relay host to being the company mail server which will deliver the email alerts. In this example we’re using Postfix to Cradle clients on 2 subnets, and the localhost. The cradle.ini/cradle.rc files then points to the relay host and not the company mail server.

eg.

# cradle.rc
MAIL_HOST = cradle.example.com
MAIL_PORT = 25


# Postfix main.cf
myhostname = cradle.example.com
inet_interfaces = all
inet_protocols = all
mynetworks = 192.168.0.0/24, 192.168.1.0/24, 127.0.0.1
relayhost = [mail.example.com]:25

Batch File Startups & Shortcuts

There are a number of options that you can use when starting tools. WorkBench for example can be started connecting to a specific CDS. Sometimes, specific environment variables must be set. This is where using a Windows batch file startup is useful.

Windows Batch Files

A batch file is a short script, a list of commands that are run as if you had executed them from the command line. It could be that you want to connect to a company driver, run WorkBench and then exit. You may want to run a specific query on a specific project with the UI in a particular language.

batch file content
Command Batch Files

Examples

Run WorkBench in English connecting to a particular server.

@rem starting Cradle WorkBench in English on UK_3SL_07 server
set CRADLE_UI_LANG=en_gb
start "Cradle WorkBench" "%CRADLEHOME%\bin\exe\windows\work.exe" -cds UK_3SL_07

Or you can run WorkBench, with the company documents drive connected.

rem starting Cradle WorkBench with documents drive
echo Mapping network drive...
net use z: \\UK_3SL_07\company
if errorlevel 1 (
echo Unable to use shared folder \\UK_3SL_07\company
echo Quitting!
exit /b
)
"%CRADLEHOME%\bin\exe\windows\work.exe"
net use z: /delete

You can even, run WorkBench, logging in and showing a query with a French UI.

@rem starting Cradle WorkBench in French and run query
set CRADLE_UI_LANG=fr
start "Cradle WorkBench" "%CRADLEHOME%\bin\exe\windows\work.exe" -action queryrun -query "Design - linked Test" -qloc project -login NISHMA,nishma,WOSY

Once you save the batch file, you can execute it from the File Manager, or a Shortcut, or as we’ve illustrated by double clicking the icons on the desktop.

Shortcuts

Windows desktop shortcuts can be created to directly run WorkBench. You’ll be able to set all the command line options, but won’t be able to do anything like connecting a drive.

Simply drag the WorkBench icon from the WindowsStart menu‘ onto your desktop. Right click and select Properties then add any options to the command line in the Target field. This example shows how we log into the DEMO project really quickly.

running WorkBench from a shortcut
WorkBench shortcut

Command Line Options for WorkBench

If you run WorkBench from the command line with a -help option,

C:\”%CRADLEHOME%\bin\exe\windows\work.exe” -help

you’ll be shown all the values that can be entered into a command line call.

list of command line options for WorkBench
WorkBench Command Line Options
usage: work.exe [options]
options are:
   [-cds]
   [-display ]
   [-login ,,]
   [-noldap]
   [-nobanner]
   [-ro]
   [-action {itemview | queryrun}]
   for itemview:
      -pduid [-version ] [-draft ]
      [-form -floc ]
   for queryrun:
      -query -qloc
      [-view -vloc ]
   where loc is one of:
      system automatic project usertype team user personal
   [-errorstack]
   [-ver]
   [-help]

These values can be used in a direct shortcut , or in the command entered into he batch file.

Cross References in a Baseline

Cross References in a Baseline

The easiest description of a baseline is, a holding area for information owned by the project, i.e. how the database/items were at a particular point in time. There are both items and cross references in a baseline. The more cross references you have the larger the files will be. This means that if you do have many Baselines, you could find significant space being used on the server.

Are Baselines Taking Up a Lot of Server Space?

In our latest release of Cradle 7.4, cross references are separated from the other files when a baseline is closed. The cross references in each one are now placed in separate uniquely identified folders. Each folder has an alphanumerical identity, dependent on the length of the name for the baseline. This is twice the length of the baseline name.

The Baseline Folders
The Baseline Folders containing the Cross Reference folders.

Inside each of these folders are 4 files containing the cross references and their attributes. The files will be different sizes depending on the number of cross references that existed at the time the baseline was taken.

Baselines Cross Reference Folders
Baselines Cross Reference Folders

Folder Maintenance.

As these are individual baselines, a user can then zip these folders and remove them from the Baseline folder. Taking the four older folders, they total approximately 232KB on disk. If a user zips each folder it comes to 3KB each. If zipped into 1 file it comes to 9KB and so a saving of over 220KB.

Baselined Cross Reference Folder Zipped
Baselined Cross Reference Folders after zipping

Most databases are much later than this and so the space saving could be much larger. The user could also move the zipped files to a different server if required and so saving more space.

The only downside to doing this, is that if a user wishes to use Baseline Mode to see the cross references in a baseline, they will not instantly be there. Therefore, should the cross references be required in the future, just unzip the file into the original folder. Once the file is unzipped, a user can set the Baseline Mode and they will see the old cross references.

Related Articles

For a longer more in depth description of Baselines and Configuration Management click here.

 

Remote Workers and Cradle – Network Address Translation

Your company is using Cradle, but you’re a remote worker – how do you connect to the Cradle Database Server (CDS)?

With Network Address Translation – the IT administrator, where the CDS is located, can modify their firewall to redirect specific external ports to a local server.

Make a note of the internal IP address of the CDS – we’ll use CDS_IPADDR later in this post to reference this address. (In this test environment it is 192.168.11.168).

Cradle Configuration Changes

As an example of a small Cradle system with 6 users, we can configure the ports file as such.  We’re setting ports for each possible user (6) and an extra – so thats 7 ports in each range. To make it easier setting the firewall rules – so we have less rules to setup, we’ve got all the ports in UDP and TCP specific consecutive blocks, which is different to how we have them in the Cradle Help – https://www.threesl.com/cradle/help/

CDS_UDP_PORT_NUMBER = 23960
TOOL_UDP_PORT_NUMBER = 23961
PRJMAN_UDP_PORT_NUMBER = 23962

CDS_TCP_TOOL_PORT_NUMBER   = 16161
CDS_TCP_PRJMAN_PORT_NUMBER = 16162
UTILITIES_TCP_PORT_NUMBER   = 16163-16169
WBENCH_TCP_PORT_NUMBER      = 16170-16176
PRJMAN_TCP_PORT_NUMBER      = 16177

This ports file needs to be copied to all the clients using this CDS.

Firewall Config Changes

The IT administrator can now edit their firewall rules to redirect the external IP ports to the internal CDS.  As part of these rules they can set it so that only specific remote IP addresses are permitted to access these redirected ports.

I’m using pfSense as the example firewall in this case, and adding separate rules for each Cradle Port.
pfSense Cradle NAT Rules

Through the application of Network Address Translation, the remote worker now uses their locally installed Cradle client installation and talks to the Cradle Database Server, as if it is on the Cradle site’s external IP address – which they need to configure as their CRADLE_CDS_HOST address.

Article Updated

28/06/2021 – Use of port ranges in firewall rules.

Can I install Toolsuite with Office 365 (CTR)?

Toolsuite

Cradle Toolsuite is compatible with both 2013 and 2016 Office 365. To see all Toolsuite compatibility see this page. Toolsuite should work with Office 365 the same as with a normal Office install. Occasionally there are problems due to issues with Office 365 not always with Toolsuite.

Document Loader, Document Publisher and Spellchecker make up Toolsuite
Document Loader, Document Publisher and Spellchecker make up Toolsuite

Office Updates

Recently there was an issue with an update to Office 365 which stopped our InstallShield correctly detecting the installed version. This issue has been fixed by changing our detection routine in a patch release. If you are seeing this issue with your original install files, please download the latest files and try again. Unfortunately this could happen again as we have no control over these updates. All 3SL can do is update our routines as and when this comes to our attention.

Occasionally when Office is updated and when newly installed, it requires you to Accept new terms. If you have not done this then you will see an Error when trying to start Toolsuite applications.

  • Error instartup: Object reference not set to an instance of an object

Windows 10 Updates

Since a Windows 10 update earlier this year everything is running slower on may different Microsoft™ Windows flavours. Word can open slower and this can cause issues if you are trying to publish a document. There is no work around for this except to keep trying to publish. Check this blog for more information but the summary so far is:

  • With Windows 10 on newer silicon (2016-era PCs with Skylake, Kabylake or newer CPU), benchmarks show single-digit slowdowns, but we don’t expect most users to notice a change because these percentages are reflected in milliseconds.
  • Aklso on Windows 10 on older silicon (2015-era PCs with Haswell or older CPU), some benchmarks show more significant slowdowns, and we expect that some users will notice a decrease in system performance.
  • Windows 8 and Windows 7 on older silicon (2015-era PCs with Haswell or older CPU), we expect most users to notice a decrease in system performance.
  • Windows Server on any silicon, especially in any IO-intensive application, shows a more significant performance impact when you enable the mitigations to isolate untrusted code within a Windows Server instance. This is why you want to be careful to evaluate the risk of untrusted code for each Windows Server instance, and balance the security versus performance trade-off for your environment.

Connection or Server Issues

Occasionally the Microsoft server or the connection is down (DownDetector) and this can also cause issues with the Office and Toolsuite. There is no work around for this except patience. Once the connection/server is fixed and up and running you should have no issues with Toolsuite.

Subscription and MSI installs

Having a mix of subscription and Microsoft Installer based MS Office installs can cause detection issues during a Toolsuite install. For example the user has a click-to-run Office 2013  installed but a Microsoft Installer version of MS Project or Visio™. This has been fixed by altering how we detect the architecture of the Office applications.

Mixed Office Versions

It is recommended in our install guides not to have mixed Office environments. For example you may have MS Office 2010 but Project 2016. These type of environments can cause install issues. Even once an install is successful there can be application issues including the loading and publishing documents.

 

August 2018 Newsletter

Shhhh, It’s a Secret

Photo by Based on image from Tayeb MEZAHDIA from Pexels
Secret

Hack Green “Secret” Nuclear Bunker is no longer a secret. (Although some Sat Navs still have difficulty finding it!). The level of secrecy and ‘need to know’ that was maintained during the cold war is quite incredible. For most of us it’s not every day that we work with information that is that high in confidentiality. However, it is much more common that we deal with different levels of information depending on our role within a company. This could be personal information that may have a GDPR aspect, or financial information to which we are not privy, or confidential design information which as a sub-contractor we are not allowed to see.

When managing a project it is important to ensure each  team member is only shown information that they are authorised to see.

Cradle provides many ways to control which information
can be seen by each team member’.

  • Classification – This is a top level filter. You may only see items that match or are lower than your own classification.
  • Ownership/Privileges – A team hierarchy and the allocation of user privileges ensures that users can only access appropriate sets of information.
  • Item Types/Skills – If a user defined  item type is assigned a skill, and a user does not posses that skill they are unable to see any items of that type.
  • Frames/Skills – Frames within an item can be restricted to users with a particular skill.
  • Categories/Skills – Categories can be hidden from direct view for users without a skill.

It is impossible to print a single document and allow some staff to see some pages and some pictures and others to see different ones. However, when you arrange your project in a tool, this control can be achieved quite easily. If you’d like advice on setting up Cradle to meet your needs, check out the help pages, if you are under maintenance contact support@threesl.com for advice or sign up for a training course.

Cradle Latest Version

If you’ve not tried the following features yet, here are some highlights from the blog.

  • Start page enhancements. Creation of Start Pages is even faster with a copy facility for panels and entries. This is helpful when you want to list a number of very similar commands and just tweak each one. Start Pages are a good way to customise your user interface and provide the necessary commands to a user as soon as they open WorkBench.  It is possible to create different pages for different users or types of user. We know that sometimes Cradle’s comprehensive nature can be a little overwhelming for the occasional user. Using start pages to ensure your teams are shown the most appropriate set of actions for their daily work, removes any confusion. Combined with a phase tree to arrange stages/areas of your project end users can be guided to the information they need quickly and efficiently.
  • Split xrefs – We have to admit that this may not be the most exciting enhancement for many users, but for those that frequently create baselines it provides a speed enhancement and disk management benefit. The state of the cross references in a project are recorded each time a baseline is taken. Now they are created in separate directories, in a smaller file format. If you don’t intend to use Baseline Mode earlier directories could even be archived off from you main storage.

Charity

User 3SL30 for a £30 discount see https://www.threesl.com/blog/birthday-voucher-30/ ‎
Discount code

There is still time to use the special “Secret (not!) Birthday Discount” offer of £30 off single user prices and licences. Or  those buying Cradle Enterprise licences can choose to donate £30 per licence bought to a charity of their choice. Ts&Cs apply

Review Us!

If you are using Cradle in your projects, or if you have recently evaluated Cradle, please consider reviewing 3SL and Cradle on Capterra. It only takes 2-3 minutes, and we would really appreciate your feedback.

Social Media

Twitter

tweet from Penn State University
Penn State Inspiration

We love keeping an eye on what’s new with our customers and what’s changing in the engineering community. Strange that inspiration for better data controls should come from Mayonnaise…..

And on a lighter note we celebrated our neighbouring county’s special day with a cuppa! Yorkshire Day

YouTube

If you’d like to watch some explanatory and how-to videos about Cradle don’t forget to check and follow our YouTube channel here.

How do I change the text size in the Cradle UI?

Many of us spend long periods of time working at our computer screens. Consequently, eye strain can become a serious problem. Also, we can sometimes be more productive if we can maximise the amount of information shown. Hence, changing the text size used in the Cradle UI can help in both of these cases, and in several other situations as well.

Maximised Data Display Area

Read articles covering how to maximise the screen area available to display information or drawings.

For comparison, if you use all of the tips described in that other blog post, the UI will have a maximised data display area and will appear like this:

normal text size in 3SL Cradle RM SE Tool
Display in Normal Text

Increase Text Size

You can increase the size of text used in the UI by setting the Text size user preference to Large:

set large text size in 3SL Cradle RM SE Tool
Set Large Text Size

You must re-start WorkBench after making this change.

Using the larger text, the above query and view will be shown like this:

large text size in 3SL Cradle RM SE Tool
Display in Large Text Size

Decrease Text Size

You can decrease the size of text used in the UI by setting the Text size user preference to Small:

set small text size in 3SL Cradle RM SE Tool
Set Small Text Size

You must re-start WorkBench after making this change.

Using the smaller text, the above query and view will be shown like this:

small text size in 3SL Cradle RM SE Tool
Display in Small Text Size

Uses

Cradle provides several options to maximise the screen area used to display information. You can change a user preference to change the size of text used throughout the UI.

You can use these in combination to:

  • Simply see bigger text and reduce the risk of eye strain
  • Reduce the risk of eye strain and also maximise the display area so you do not reduce the amount of information shown in the UI
  • Use smaller text because you are using a low display resolution and Cradle is using text that is needlessly large for your display
  • Reduce the size of text and also maximise the display area because you have a large screen and good eyesight and you must have the maximum possible data visible, particularly when you are using multiple panes to display multiple sets of information at the same time

Tree Style

You can find items in a Cradle database by running a query. For example, you can use the pre-defined queries in the Quick Access Bar at the bottom of the UI. Once the query has run, the results are shown in a display style. Tree style is one of the four styles available:

A view is used to specify which parts (attributes) of the items will be shown. A display style controls how these attributes will be displayed, and the facilities that are available to you.

Tree Style

This is the second most frequently-used of the display styles after table style. It displays each item as a node in a tree, with a set of columns for the other attributes:

display items using tree style in 3SL Cradle RM SE Tool
Items Shown in Tree Style

There are two views used to display trees:

  • A view that specifies the contents of the node shown in the tree. You specify this view in the schema for the item type.
  • A view that specifies the attributes shown in columns to the right of the tree

To have items displayed in this style:

  • Specify it in the query to be run:
choose tree style in a query in 3SL Cradle RM SE Tool
Specify Tree Style in a Query
  • Also, select it from the Context group in the Home tab:
choose tree style in the UI in 3SL Cradle RM SE Tool
Choose Tree Style in the UI Ribbon
  • Or, right click and choose Style -> Tree from the context-sensitive menu
  • Finally, press <CTRL> and 4

Facilities

  • Use the left mouse button to select individual items
  • You can select a groups of items by selecting the first and then pressing <SHIFT> and the left mouse button to select the end of the group
  • Press <CTRL> and the left mouse button to select or de-select individual items
  • You can shrink and widen the display columns. Move your cursor to the edge of a column heading and the cursor will become a pair of arrows. Press, drag and release the left mouse button to change the column’s width.
  • You can follow cross references by expanding the tree node for the item. Cradle will find all cross references to and from the item, select which cross references to use, and display the items at the other end of these cross references as new nodes in the tree.
  • Use drag-and-drop items between trees to create cross references between the items
  • Drag-and-drop items inside a hierarchy of the same type of items to reorder that hierarchy and automatically rebuild the hierarchical numbering within it

You can expand a tree node by:

  • Click its + button
  • Select the text of the tree node and press: +
  • Select the text of the tree node, right click, and choose Expand from the menu
  • Double click on the text of the tree node

You can collapse a tree node by:

  • Click its button
  • Double-click on the text of the tree node
  • Select the text of the tree node and press:
  • Select the text of the tree node, right click, and choose Collapse from the menu

Advantages

The advantages of tree style are that it is:

  • The simplest way to explore items and their relationships
  • A convenient method to create cross references
  • The easiest way to reorganise a hierarchy of items

If you want to do anything with cross references between items, or to work in a hierarchy of items, then this is the best display style to use.

Disadvantages

The disadvantages of tree style are that:

  • It provides a limited ability to display information
  • You cannot edit information directly

Summary

Tree style is the most convenient method to work with cross references within a set of items and between one set of items and other sets of information.

Therefore, we recommend this style whenever you need to work with cross references between items and inside hierarchies.