How do I export my data from Cradle so it is sanitised?

Occasionally 3SL support may ask you for a sanitised export of your data to help diagnose a problem. What  exactly does this mean and how do you sanitise your data?

Sanitised Data

In Cradle sanitised data an export of your data, where all the sensitive data is sanitised or removed.

To sanitise the data we convert characters to x so for example the line:

Cradle® is our requirements management and systems engineering software tool that integrates your entire project lifecycle in one, massively scalable, integrated, multi-user product.

Would become

xxxxxxx xx xxx xxxxxxxxxxxx xxxxxxxxxx xxx xxxxxxx xxxxxxxxxxx xxxxxxxx xxxx xxxx xxxxxxxxxx xxxx xxxxxx xxxxxxx xxxxxxxxx xx xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxxxx xxxxxxxxxx xxxxxxxx

In a sanitised export the following attributes will be sanitised using the method described above:

  • All item names (except for data definition names – data definitions in models)
  • The comment and description attributes
  • All text frames contents
  • Every symbol name
  • All change history contents


  • All binary frames (such as embedded Word documents) do not appear in the export file at all (as they cannot be sanitised they are simple removed)

Sanitisation option essentially allows a customer to produce a sanitised export file that can be sent to another organisation (3SL). This allows the recipient to reproduce the sender’s Cradle database in ALL respects EXCEPT for the critical (and therefore sensitive) data content. Sanitising your data via an export only effect the contents of the export file and DOES NOT effect your live project.

How do I export my data from Cradle so it is sanitised?

Sanitising you data during export is quite simple all if you are exporting via the WorkBench there is a check box called “Sanitise Data” in the export dialog which you just need to enable.

Screen shot of sanitise option
Sanitise Option in Export Dialog

You can also sanitise your data when exporting via c_io all you need to do is add a -sanitise flag to your command for example:

c_io -login MANAGER,MANAGER,DEMO -export myfile.exp -type all -sanitise

After you export you will be able to open the export file in an editor. You can then see that your data has been replaced with x’s

Screenshot of sanitsised data in an import file
Sanitised Data in Import File

Or you can import the export file into a test project and look at the data in WorkBench.

Sanitised Data in WorkBench
Sanitised Data in WorkBench

For further information on sanitising your data in Cradle please see the following section in our online help.

Can I see a hierarchy diagram in Web Access ?

Drawing HIDs (Hierarchy Diagrams) in Cradle.

You can show a hierarchy diagram in Web Access, but first of all it needs to be set up.

You can create dynamic and static HIDs in WorkBench. By right clicking the item of interest and then following Links->Hierarchy Diagram (HID) . Once displayed the properties for the diagram and the item types on it can be set.

If you want to return to these display settings, this ‘template’ can be saved.

The diagram will expand as defined in the settings and show in the item tab. The ‘Save’ option will now be available for the diagram itself. At the top of the HID Sidebar there is the option to make the HID static this results in the entire diagram being saved as a frozen snap shot. Leaving it un-ticked the diagram will remain dynamic. Next time you open the diagram all the links will be checked and redrawn. This is most useful when tracking how your project items and their links are growing.

Setting up a HID (Hierarchy Diagram) in Cradle and saving
Setting up a HID

Running Saved HIDs

Now that the named HID exists, it can be run from the Project Sidebar under the Hierarchy (HID) node in the project tree . You can run a query to return HIDs in the same way you can any other item type. If you write a query that returns only one HID item, it can be added to a phase with a run query and open item action. This makes it easy to control what users see and use from the project phases.

Web Access

Once you have a named HID available in Cradle it can be run from the sidebar in Web Access. The main item form will show a hierarchy diagram in Web Access. Additionally the ‘expand diagram’ icon allows the user to see the diagram in a separate scrollable window.

Demonstrating a hierarchy diagram (HID) shown in Cradle's Web Access
HID in Web Access

Ensuring our customers have the help/support they need


Whether you are a current or prospective customer we want to ensure all our customers (current and future) have the support they need this coming year.

We are committed to your successful use of Cradle and provide a range of support services to ensure that Cradle delivers optimal benefit to your projects.


Prospect Support

We’ll help you get your evaluation up and running and assist with questions on setting up for your company’s process.

Single User Products

These extremely competitively priced products come with 7 days active support. After that you can use the LinkedIn discussion groups, online help, online videos and bundled user manuals. Users may upgrade to any point.point releases denoted by their licence, e.g. 7.3 users may install 7.3.1 and 7.3.2

Enterprise Support

Enterprise products with maintenance are covered by unlimited active support from 3SL and their partners. They also have access to online material as above. Users can upgrade for free to any later product versions during their maintenance period. Users with Named User Licensing are able to request a number of user changes each year for free. Additional licences for extra features or personnel may be purchased at any time.

Product Re-instatement.

Whilst we wish all our customers have continued use for Cradle, we do understand that some long term projects go through design quiet phases. It may be that during these lulls following product design/development or test software tools are ‘parked’.  3SL will endeavour to re-instate any old projects and bring users up to the latest version of Cradle once the maintenance gap is filled, or a later version of the product purchases. We strive to ensure a full upgrade path and compatibility of all you historic Cradle data.


We can supply a number of off the shelf Cradle training courses. However, to ensure you get the best benefits from these, we will consult with you to tailor the course for your company’s needs.

Bespoke Development

Whilst Cradle offers a full suite of products that cover most of our customers needs, some functionality requests are very bespoke. For example if you are using the WebAccess product and require customised pages with your company logo, you’re free to alter the templates. If, however, you have not got the expertise in-house, 3SL would undertake funded work to do this. Custom applications and new product features are also undertaken and 3SL will be happy to discuss your requirements.


Our UK technical support help-desk is available from 09:00 until 17:00 UK time (GMT/BST), Monday to Friday and excluding UK national holidays.

You can contact the help-desk by any of the following:

Tel: +44 (0) 1229 838867
Fax: +44 (0) 1229 870096
Post: Support
Suite 2
22a Duke Street
Barrow in Furness
Cumbria, LA14 1HH

Please log all questions, concerns, problems and requests with the 3SL Support Department as above. You’ll be given a call reference and can then use this to keep track of its progress.

Don’t worry if your not in the UK, customers outside the UK can log calls with the Support Department as above, or with their local support representatives, either local 3SL support or local 3SL partner support, as appropriate. Our partners bring the additional benefits of speaking your language and being in your time zone. They have full assistance from 3SL and the complete range of Cradle products. Please see the Contacts Page for additional contact information.

For more information on our support and services please see the following page of our website.


What’s a dangling cross reference?

Dangling Cross Reference

These are cross references in the Cradle database where one or both items at the end of the reference are missing.

It goes without saying that if you have item A linked to item B and then delete item B, the link between A and B should disappear. In usual operations this is true and this is what Cradle will do.

However, it is possible to create a dangling cross reference when importing partial data from other projects or backups. Say for example you have exported all your Definition items (one of which is item A) and separately all your cross references.  (including the one to item type Constraints one of which is item B). Into a new project you import all the cross references and then the Definition items. You plan to create new constraints. If one is not created called B there will be a dangling cross reference in the new project.

Finding and Rectifying Cross Reference Problems.

Cross Reference Integrity Checker

Dangling cross references are just one of the  anomalies that can be detected using the cross reference integrity checker. This is run from the Project ribbon.

There are a number of tests which can be selected and these are shown below.

Once a problem has been identified, it can be fixed, deleted or exported for editing as appropriate. The availability of these will depend on both the problem and the current user’s privileges.

The cross reference integrity checker and report
Cross Reference Integrity


Dangling cross referencesDetects cross references whose from or to item do not exist.
Duplicate cross references (A-B and B-A)Cross references are considered to be duplicates if a cross reference exists from item A to item B and another exists from item B to item A and they both share the same link type.
Reversed hierarchical cross referencesDetects cross references that are between items where the from item has an identity that suggests it to be the child of the to item.
Cross references to be reversedDetects cross references that are invalid according to the current link rules but which, if reversed, become valid.
Cross references needing a new link typeDetects cross references that are invalid according to the current link rules but which become valid if their link type is changed and where there is only one link type that is valid for the cross reference.
Invalid cross referencesDetects cross references that are invalid according to the current link rules.
Cross reference cardinalityDetects cross references whose cardinality does not match the current link rules.
AllWill perform all the above integrity checks.


Dangling xrefs can cause issues with performance when items have been deleted. If item A was linked to item B, then item B got deleted. There would be a dangling xref which isn’t linking any items, creating extra data. If another item B was then created. It would then be linked back with item A. Which could potentially cause problems?

For full information on the settings see the help on Cross Reference Integrity

Article Updated 04/02/2019 – Added performance section

What’s a cradle.ini or .cradlerc file?

Preferences and Settings

The cradle.ini file on Windows® or .cradlerc file on Linux® is a configuration file holding the settings for Cradle.
The top half of the file contains all the default settings (commented out) so you can always see the values ‘as shipped’. It isn’t a file for the every day user, but is something the system administrator may delve into to control users’ experience.

The values are per installation so the file is located in the %CRADLEHOME%\bin\exe\windows or $CRADLEHOME/bin/exe/[linux-ia32|linux-x86_64] directory. The settings will apply to all the clients that connect. So if you set your date display preference to DD/MM/YY all users will see this.

image of cradle.ini file with date setting highlighted
The cradle.ini / .cradlerc file

Further details on cradle.ini or .cradlerc are shown in the Cradle help on the startup file.

Local Settings

Users can override most of these default settings through their preferences. These are stored on a per user basis. This means that a user located in, say the USA can choose to show their date as MM.DD.YY. This will be their preference regardless of their Cradle username or project. They don’t have to change their files manually. Users can alter their settings via the Preferences button on the Home ribbon. However should admin need to get at them, their files are located in %CRADLEHOME%/admin/definitions/personal/NETWORK_USERNAME. These files are either non existent (if a user has never overridden a preference), or are just a delta of the differences between theirs and the default file. Therefore, don’t worry when there is not much in them.

Trouble shooting

If a user can’t see a new setting that’s been applied by the system administrator, it may be that they already had an override in their personal settings and this will continue to apply until they either set their personal value to match the global, or their personal copy of the cradle.ini or .cradlerc file is deleted.

Preserve Your Settings

We would recommend backing up your system cradle.ini or .cradlerc file.

Can I enforce a company password policy?

Password Options

There are a number of options available to control a user’s password.  These meet the majority of policies our customers have asked for.
In the Users Settings section of the project schema setup the management can set the policy that users must adhere to.

control over password policy
Password Settings

This can include

  • Use password ageing
  • 3 login failures
  • Warn of password expiry
  • Enforce minimum password size
  • Enforce password format
  • Enforce unique passwords in cycles
  • Users can change password only once/day
  • Force users to change password
  • Password must contain at least one uppercase character
  • Password must contain at least one lowercase character
  • Password must contain at least one numeral
  • Password must contain at least one special character ` ! $ ^ * ( ) _ + – = { } [ ] : @ ~ ; < > ? . /|
  • Passwords may not match usernames (case insensitive comparison)

Does a user get told why their password is wrong?

When entering the password field, the box will remain with a red border until the password matches the criteria. The ℹ symbol will bring up a dialog telling you what’s causing the rejection. This will enable the user to select a password that matches your company password policy.

Password policy highlighting / reporting
Password Entry

What if a User forgets?

A user with MODIFY_USER privilege  can reset the user’s password by logging in and entering the User Setup dialog. If the user’s account has been disabled because of too many wrong attempts it can be re-enabled here too.

What if we can’t remember an administrator’s account password?

If you are trying to reset a User’s password and can’t remember the password of the user with MODIFY_USER privilege, you could sign on as the database manager account  MANAGER. This account has all privileges including ACCESS_BYPASS and can be used to reset any of the users.

What if we can’t remember the MANAGER account password?

This super user account should be carefully guarded. Some clue or encrypted version of the password should be locked away in a safe or special password manager on a closed system depending on your company password policy. However, all is not lost, you will need to speak with your IT department, to get someone with access to the raw data files. Then you will need to contact 3SL support who will be able to assist in resetting the passwords to a new known value.

Can 3SL tell us what the passwords are?

No, sorry. The password file does not work like that. They would only be able to reset them to something new (which you’d be advised to get each user to change as soon as they  next login)

What are the alternatives?

You could use LDAP authentication and then the passwords the user has to enter will match the policy set for your LDAP server.

Can I check for frames that don’t contain digits?

Regex – Regular Expression

A RegEx (Regular Expression) is a pattern matching method often used in text searches and data processing. Cradle supports Regex matches in a number of query elements, so it is possible to perform complex searches on your data. This article gives an example of the use of Regexes in frames.


The mocked up example describes just one of the ways a user could search the text frames of their items achieve particular results.

bed1Single BedroomCustomer roomsSingle person room of basic standard – en-suite shower
bed2Double BedroomCustomer roomsA 2 person occupancy room, shared bed en-suite shower
bed3Twin BedroomCustomer roomsA 2 person occupancy room, single beds, en-suite shower
bed4Luxury BedroomCustomer roomsA 1 or 2 person occupancy room double bed, en-suite with bath and shower.
bed5Night Staff RestStaff rooms1 person
store1Cleaning storeroom

The data in the table above used a Cradle Note called Bedroom and was produced by running the automatic query “BEDROOM – All”. Then the resulting  table was published to HTML. There were no regexes in frames applied to the initial query.

Queries with Regexes in Frames

    • Simply entering “TEXT” as the Name of the frame to search and running the query will bring back bed1-bed5. The item store1 has no content to compare so can’t match.
    • Entering bath in the Regexes field and re-running will return bed4  this is the most basic case the text typed in is simply found as a direct match.
    • If you want to find the incomplete items and find those with a blank frame using the Cradle extension of <null> in the Regexes field will return store1 as this has nothing in the frame.
    • If we want the query to find those that have not used a digit  in the description (This may be important if the output is parsed by some other program) it is possible to use a regex character class [[:digit:]] . This will find all the elements containing a digit ≍ [0-9]. However, if we want the elements that don’t contain numbers, we can use the second Cradle extension of ! to negate the result, hence ![[:digit]] will return bed1 as it used the word ‘single’ rather than a digit for its occupancy value.
    • Cradle also allows comma separated logical combinations of regexes in frames. Using the Venn diagram symbol you can select whether these are AND or OR combinations. Switching to AND and then using the regex [[:digit:]],![[:alpha]] would bring back items where the frame contained digits and no alphabetic characters.
screenshots of results using regexes in frames in Cradle
Regexes in Frames

Exploring Regexes

A simple way of testing whether your regex will give you the results you want is to use a test program is a good example. This allows you to quickly tweak your statement, and run it against various test data.
Cradle uses the PCRE ‘flavour’ internally.
The Cradle help system has further information on regexes

How can I create the same report each month?

Report Definitions

Like many settings a report’s setup can be saved. This creates a report definition file that can be stored in the Project, User, User Type, Team or Personal areas. It can then be recalled by each user that is permitted to see those ‘directories‘.

The report definition can hold the content definition and design layout of the report.

Example – A query based report.

In this example ‘Alan’ has set up an Item Summary report based on the Test – All query. This has been saved as Monthly test report and the output shown in a browser. The example shows a selected Style, and the Options that have been selected elements that are required in the report columns.

Saving a report definition from the Report Inspector
Save Report Definition

A different user ‘Peter’ does not have the permission to create or alter definitions, but can still run the report each month as it has been added to the Project’s phases.

running a report from the phase tree
Report from a Phase

Phases/Definition Sidebar

You have users that are not permitted to access definitions directly. They might be the user that needs to trigger the report each month, then there are two ways they can access it. Opening the Definitions sidebar and drilling down to Reports -> Project the report could be triggered from here. Alternatively it could  be added as a phase. Users accessing the phase sidebar can then select and run the report definition directly without access to the report definition itself.


You’ll need the CREATE_DEFS privilege to be able to edit the report definition.



Environment Variable or Command-line Switch Stack-tracing

As with many complex products Cradle monitors its internal operation and on the rare occasion that something goes wrong it writes information to a log. CRADLE_ERRORSTACK controls how much information is logged internally and output on these occasions.

If in the unfortunate case a Cradle tool crashes, there will often be a log produced in the %CRADLEHOME%\logs\errors directory. This will enable 3SL Support to diagnose simple cases such as a lack of memory on the machine. If the case is more complex, the development team may need to know at which point the program was processing at the time the error occurred. CRADLE_ERRORSTACK will enable additional internal logging that will output a simple execution stack trace into the log. This can aid diagnosis and resolution.

Switching Stack Trace On and Off

CRADLE_ERRORSTACK is an environment variable. You can set it via the control panel’s Advanced system settings (see the screenshot).

In Linux if you are editing the environment config files bashrc, profile, etc for either the system /etc/profile or the user ~/.bashrc then use:


Or as we now set CRADLEHOME in /etc/profile.d/ you can put the ‘CRADLE_ERRORSTACK=true’ variable in this file.

Or you could start the Cradle tool from within a command shell, (On Windows®) press windows key type cmd and then in the shell set CRADLE_ERRORSTACK=true, then launch the tool e.g. "%CRADLEHOME%\bin\exe\windows\work.exe". You can also set a -errorstack parameter to your command line option, i.e. work.exe -errorstack to start WorkBench with the stack on.

Turning on CRADLE_ERRORSTACK environment variable
Environment Variables

Should I leave CRADLE_ERRORSTACK on?

Generally there is no need to leave the stack trace on all the the time. There is a small performance hit if you do, so unless you are having problems we don’t advise you leave it enabled.

What if that still does not sort the issue?

3SL Support may ask you to turn on tracing which produces a complete execution trail from the product. This has a large overhead and uses disk space and is only in used in the very trickiest of issues. Rest assured, it’s unlikely you’ll have to use  it, but if you do there is a post here that explains tracing.

Article UpdateD

27/04/2021 – Using CRADLE_ERRORSTACK in Linux

Do I Need a New Security Code when Moving Machines?

When do I need a New Cradle Security Code?

We are often asked “Do I need a new security code?”. Obviously, if you are wanting to upgrade from one major release to another e.g. 6.n to 7.n  a new code will be needed. You would also need a code from one Cradle point version to another, for example Cradle-7.2 to 7.3.

shows the contents of a configuration file
Configuration File


The other case is when moving your Cradle Database Server (CDS). If you have changed, or are planning to change your server there are two main points to consider and these are discussed below.

Has Your Machine’s MAC Address Changed?


If the MAC address on your new machine is different from you old machine, then yes, you will need a new Cradle Security Code. Please see the section below on how to request a new code.


If your machine’s MAC address has not changed then you do not need a new security code.  Your existing code will continue to work on the new machine.

How to Request a New Cradle Security Code?

C:\Program Files\Cradle\bin\exe\windows\c_hostid.exe

If you require a new security code please send an email to containing the MAC address of you new machine and the Cradle Version you require a code for. You can run the Cradle utility Host ID from the start menu or C:\Program Files\Cradle\bin\exe\windows\c_hostid.exe

How to Install a New Security Code?

Once you have received a new, please refer to this blog post or this page in the Cradle Help for more information on how to install it on your new machine.