Cloud CMS Release 3.2.85

The following are the new features, enhancements and fixed issues for Cloud CMS 3.2.85 release.

Upgrade Considerations

Please review the upgrade considerations provided here:



  • Improvements to graceful termination of container due to out-of-memory exceptions. These are now pre-emptively detected and the running container is allowed to gracefully sigterm/shutdown more quickly. This solves for some edge cases where the JVM could potentially run out of memory ahead of the Kubernetes or ECS agent determining there was an OOM or memory limit tripped.


  • Improve find methods so as to reduce the number of DB operations and/or Elastic Search queries needed to support the ordered concatenation of result sets. The result is faster and more efficient find operations. The impact is particularly notable for increasingly larger result sets.


  • Optimize the GraphQL Node ID batch loader to utilize paginated reads while reducing counts and excess field loading.


  • Additional configuration options for all job types, allowing per-job customization of concurrency (both globally and per-platform for multi-tenant support) along with any additional properties. These new configuration options are loaded at system startup and can also be modififed and adjusted at runtime.
  • Adjusted the default configuration settings for typical jobs to provide for better job flow, reducing bottlenecks and improving out-of-the-box job execution throughput.
  • Added and improved service methods for pause, resume and bounce, allowing jobs to easily bounce from one container to another within the cluster, to ease the intended restart or forced migration of jobs due to containers being brought offline or crashing. This allows jobs to transition between servers, as needed, while executing or in the event of intended or unintended container downtime.


  • Refactored and improved support for local and distributed, cluster-wide locks so as to better take advantage of Hazelcast CP subsystem and reentrant locks. More rigid and dutiful handling of timeouts and retries.


  • Reduce the number of internal query calls that perform count operations so as to reduce drag on the database in several places. This results in faster operations and faster API throughput.


  • Improvements to method that retrieves node IDs for a given query so that it is paginated and performance optimized.


  • Each rule and/or behavior script now has access to the platformId for the repository, branch and node against which the script executes.
  • The platformId is now automatically applied to any platform-bearing actions that are spawned via the actions root-scoped object within an executing script. This ensures that any spawned child actions have access to the same platform ID for jobs reporting purposes.


  • The merge and transfer export/import system now matches nodes on tag values (in addition to _doc, QName and path) allowing tags to seamlessly merge between branches and upon release, publish or import.

User Interface

  • The application internal caches are now managed within IndexedDB to increase storage and improve performance while clicking through the editorial interface.

Bug Fixes


  • Fix so that dictionary event handlers are invoked properly on transaction commit. This ensures that all add and remove events trigger for all cases, keeping the dictionary state lock-step with the branch tip content for all creates, updates and deletes.


  • Fix so that thread local variables clean up in the correct order for an edge case that resulted in additional, errant logging when authenticating.
  • Fix so that behavior bindings running in parallel are better protected against concurrent updates to the bindings map.


  • Fix so that GraphQL cache state is properly updated on branch commit for cases where nodes are deleted.

Inline Links

  • Fix so certain null values do not prevent inline links from being parsed and populated.


  • Fix so that job kill operations work more consistently across the cluster.

Multi-Factor Authentication

  • Fix so that the trusted authenticator (using TOTP algorithm) works consistently for cases where the generated code may have lapses for up to N time periods).

Policy / Scripts

  • Fix so that dynamic policy models are correcly populated on a per-invocation basis ahead of firing through into the script service. This ensures that the model that the executing script sees is as accurate as possible.


  • Fix so that malformed search queries are detected earlier and thrown outright, preventing them from being processed by downstream search engines.


  • Fix so that the import sequence counter uses an incremental identifier that no longer based on insertion time so as to prevent non-deterministic ordering.

User Interface

  • Fix so that session storage is always cleared on logout.
  • Fix so that the MFA login process shows an informative message for cases where back-end API server communication fails.

Ready to Get Started?

Unlock your data with smart content services and real-time deployment

Try Gitana for free Ask for a demo