Cascade CMS 8.1.1

This release contains a number of bug-fixes and a few improvements to Asset Comment and a few developers APIs including our query API, Velocity tools, and a new JSON-based REST-like API.

  View Requirements

New and Improved APIs

We've released version 1 of a brand new JSON-based REST-like API that lets you make web services calls to Cascade CMS in a format -- JSON -- that will work with a variety of languages including JavaScript, .NET, PHP, Java, Python with minimal set-up required. Check it out!

We've added new tools to our Velocity API and improvements to our query API:

  • $_ListTool.reverse($list) - reverse a list
  • $_ListTool.removeNull($list, "metadata.title") - remove all elements that don't have given property in given list (or the property exists but its value is null) and returns them as a new list
  • $_ListTool.toList($array) added just in case user has an array and would like to be able to reverse it or remove null
  •  $_PropertyTool.outputFirstNotEmpty($property1, $property2, $property3, $property4), for example $_PropertyTool.outputFirstNotEmpty(page.metadata.title, page.metadata.displayName,, page.getStructuredData("label").textValue) - display title, display name, name or data definition label field, whichever is populated first
  •  $asset.label - return display name, title, or name, whichever is populated first -- basically shorthand for the $_PropertyTool.outputFirstNotEmpty for Display Name, Title, and System Name specifically.
  •  $query.hasMetadata('category', ['value1', 'value2']) - query for assets whose metadata field has either value1, or value2 or both (if it's checkbox or multiselect). Allows providing any number of values.
  •  $_SortTool.sort($list) - fix the bug so that it can sort other objects than just XML elements
  •  It is now possible to sort by structured data and dynamic metadata fields by providing their name or path, for example #set($sorted = $_SortTool.sort($assets, "metadata.dynamicFields(myDynamicField).value")) or #set($sorted = $_SortTool.sort($pages, "structuredDataNode(myField).textValue"))

We've also fixed an issue in our SOAP Web Services API that was preventing reading of Blocks where the underlying Data Definition had been modified.

Asset Comments to the forefront

We are really proud of the Asset Comments feature we added in Cascade CMS 8. So, we've made it a little more prominent in 8.1.1 including a badge showing the total number of comments on the asset.

asset comments


  • Added: new JSON-based REST-like API
  • Improvement: Sort drafts by last modified by default in My Content
  • Improvement: Make Asset Comments more prominent and easily accessible in the action menu
  • Improvement: additions to the query and Velocity tool APIs
  • Improvement: an automatic vertical resizer to the editor
  • Improvement: Changed wording of Advanced Submit modal to better clarify intention of Submit and Check Content & Submit options.

Issues fixed

  • Fixed: re-worked right flyout panel to improve keyboard accessibility
  • Fixed: Issues with timestamps on draft overwriting alert
  • Fixed: Compare with Current functionality missing for Working Copy view
  • Fixed: Accessibility issues in data definition group controls, broadcast messages and datepickers
  • Fixed: Workflow Definition 'allowReassignments' checkboxes lose their value if you click on the workflow builder first when editing
  • Fixed: Left navigation and Folder content tables don't update when assets are moved, renamed, copied, or deleted
  • Fixed: Locator Tool: Accessing a page's structured data via the Cascade API can result in LIE
  • Fixed: Wysiwyg dropdown menus not keyboard accessible
  • Fixed: Custom values in dropdowns do not persist on subsequent edits
  • Fixed: assets that don't render properly saved in user history cause subsequent pages to fail to load
  • Fixed: Invalid broken links reported when a create draft changes site
  • Fixed: Can't get to assets when "Asset Tree Display" preference is set to "Folders only"
  • Fixed: Web Services: Blocks can not be read if underlying Data Definition has a field added to it
  • Fixed: Application version no longer appears in flyout menu
  • Fixed: Update submit flow for index blocks to match flow used by other asset types in Site Content area.
  • Fixed: TinyMCE: Source editor initializes with stacked content and scrolling incorrect when in full screen
  • Fixed: TinyMCE: source editor styling issues due to cached styles between upgrades that should have been cache invalidated
  • Fixed: Format Editing UI: previewing a very large Index Block causes draft submission to fail

First Time Installation?

Be sure to import our default database schema prior to installing Cascade CMS for the first time. Then follow our standard installation instructions.

Upgrade Steps

  1. Shut down your currently running Cascade CMS instance.
  2. Before you upgrade, we strongly recommend that you back-up your production database. as well as set up a test instance and perform a trial run of the upgrade. All customers are entitled to a test license for this purpose.
  3. Read the release notes and upgrade guides for all releases between your version and the latest version.
  4. Cascade CMS 8 requires a full installation.
  5. Certain versions require that specific steps be taken during the upgrade process. Be sure to read over any and all items that apply to the version to which you are upgrading:

Cascade CMS 8 will not run if any content or site management components still exist in the Global area. Please review the prepration guide.

Cascade CMS 8 will not run in any other version of Tomcat except Tomcat 8 at this time. For this reason, use of the full installer during upgrade is required. ROOT.war upgrades are not supported.

As of this release, Java 8u40 or later is now required to run Cascade. The OS X, Linux, and Windows packages all ship with Java 8 JREs included for easy execution. If you're using the ZIP installer or the ROOT.war, you'll need to ensure you're pointing the application to a Java 8 JRE. See this page for instructions on updating Cascade to point to a JRE.

Organizations that use the ROOT.war upgrade method and are using SQL Server or Oracle are required to upgrade their drivers using the steps below:

    SQL Server Users
  • Download jtds-1.3.1.jar from the jTDS web site
  • Replace the file tomcat/lib/jtds-1.2.5.jar with the jtds-1.3.1.jar file
    Oracle Users
  • Download ojdbc7_g.jar from the Oracle web site
  • Replace the file tomcat/lib/ojdbc14_g.jar with the ojdbc7_g.jar file

7.12.5 and later do not support SQL Server 2005. This version of Cascade will no longer start against SQL Server 2005. Please upgrade to a supported version

All other versions of SQL Server must be running above compatibility level 80. To view and/or change the current compatibility level of your database, follow the instructions in this article: SQL Server: View or Change the Compatibility Level of a Database. We recommend setting the compatibility level to 100.

Organizations that use the ROOT.war upgrade method and are upgrading to 7.12.3 or later must follow these steps:

  • If running in a load balanced environment, check to see if the file tomcat/conf/ehcache.xml exists on each node. If this file exists, please contact support [at] prior to performing the upgrade. If the file does not exist, proceed with the upgrade as usual.
  • If not running in a load balanced environment, remove the file tomcat/conf/ehcache.xml prior to performing the upgrade.

Organizations that use the ROOT.war upgrade method and are upgrading from 7.12.1 or earlier to 7.12.2 or later and use MySQL 5.6 must manually update the driver library in tomcat/lib folder from mysql-connector-java-5.1.18-bin.jar to mysql-connector-java-5.1.31-bin.jar. The file mysql-connector-java-5.1.31-bin.jar can be obtained by downloading ZIP version of Cascade CMS.

Organizations that use the ROOT.war upgrade method and are upgrading from 7.10.1 or earlier to 7.10.2 or later must remove the ehcache-core-*.jar and slf4j-api-*.jar from the ${CATALINA_BASE}/lib of Tomcat.

Organizations upgrading to 7.8.2 or above for the first time may notice a delay during the initial startup accompanied by messages like these in the log file:

2014-01-01 11:53:25,405 INFO  [OptimizeDatabaseServiceImpl] Clearing orphaned assets...
2014-01-01 11:53:25,405 INFO  [OptimizeDatabaseServiceImpl] Clearing orphaned Data Definition nodes...
2014-01-01 11:54:09,508 INFO  [OptimizeDatabaseServiceImpl] Deleted 7 orhpaned Data Definition nodes
2014-01-01 11:54:09,508 INFO  [OptimizeDatabaseServiceImpl] Repeating the operation until there are no more orhaned nodes to delete
2014-01-01 11:54:57,350 INFO  [OptimizeDatabaseServiceImpl] Deleted 14 more orhpaned Data Definition nodes
2014-01-01 12:02:30,529 INFO  [OptimizeDatabaseServiceImpl] Repeating the operation until there are no more orhaned nodes to delete
2014-01-01 12:02:58,724 INFO  [OptimizeDatabaseServiceImpl] Deleted 0 more orhpaned Data Definition nodes
2014-01-01 12:02:58,725 INFO  [OptimizeDatabaseServiceImpl] Finished clearing 224 orphaned Data Definition node record(s)
2014-01-01 12:02:58,725 INFO  [OptimizeDatabaseServiceImpl] Fixing Structured Data with missing owner entity property
2014-01-01 12:03:29,712 INFO  [OptimizeDatabaseServiceImpl] Found 211 broken Structured Data nodes
2014-01-01 12:03:32,451 INFO  [OptimizeDatabaseServiceImpl] Fixed a total of 9 assets with broken Structured Data nodes
It is important that the Cascade CMS process not be stopped during this time. Once the orphaned Data Definition nodes have been removed, the application will start up normally.

If you are upgrading from Cascade CMS 7.4.1 or later, you should rebuild search indexes after the upgrade is complete and the application is running. To do so, navigate to System Menu -> Utilities -> Search Indexing, check the Rebuild Index? checkbox and then click Submit.