Cloud CMS Release 3.2.77
Published on 05/14/2022
The following are the new features, enhancements and fixed issues for Cloud CMS 3.2.77 release.
Upgrade Considerations
Please review the upgrade considerations provided here: https://www.cloudcms.com/documentation/docker/upgrades/3-2-77.html
Enhancements
Binary Storage
- Enhancements to how binary files are stored to make more efficient use of bulk copy and write.
- Binary Storage operations now log more efficiently and with greater detail.
GraphQL
- GraphQL was refactored to make use of purely asynchronous, non-blocking IO. The result is faster implementation of the GraphQL API that features lower CPU utilization and lower memory requirements.
Java Driver
- Added
driver.setPaths()
anddriver.getPaths()
methods to make it easy for customers to enable the acquisition of path information on API calls that return nodes or node result maps. - Renamed the
archive.publish()
method toarchive.markAsTemplate()
so as to be forward-consistent with Cloud CMS 4.0. - Renamed the
archive.unpublish()
method toarchive.unmarkAsTemplate()
so as to be forward-consistent with Cloud CMS 4.0.
Server-Side Scripting API
- Added a
branch.getRootNodeId()
method to retrieve the root node of a branch. - Added a
node.getPath()
method to retrieve the path of the node relative to the root node of the branch.
Transfer
- Several improvements to make transfer (both export and import) much faster.
- Enhanced the management of H2 DB file handles to ensure that file handle leaks do not accrue for cases where an error might prematurely end a transfer job.
- Deployment Handlers are now entirely asynchronous, allowing for faster execution, more advanced scheduling of work items and higher job throughput.
- Greatly reduced the number of potential refresh() calls required after importing content with relator properties.
- Several graph metrics (such as distance from source) are now computed and cached on the fly, allowing for much faster export times.
Traversal
- The Traversal API code paths were optimized to make retrieval faster and also much less intensive in terms of CPU utilization and heap allocation.
UI Clustering
- Made it easier to configure Redis as a back end for clustered UI servers. Now only requires a single
CLOUDCMS_REDIS_URL
environment variable and an optionalCLOUDCMS_REDIS_DEBUG_LEVEL
variable to globally configure Redis log level. For more information, see: https://www.cloudcms.com/documentation/appserver/clustering.html#configuring-redis - Updated the QuickStart samples to use an updated version of Redis and demonstrate UI clustering more effectively.
User Interface
- Added a 15 second TTL to static resources retrieved via the
/preview
route. The result is faster execution with less API traffic.
Bug Fixes
ACL Checks / Filtering
- Fix so that ACL checks and filtering are applied universally to all internal methods that allow for field-level selection or partial result set generation.
Branches
- Fix so that branch aliases can be used as identifiers when changing a node’s QName.
Job Dispatching
- Fix so that that start time of a job is not errantly overwritten for jobs that transition into and out of an AWAIT state.
- Fix so that job decommissioning makes at least three passes and independent checks before declaring a job out of service.
MD5
- Fix so that dynamic MD5 calculations do not buffer into memory.
Transfer
- Fix so that the
deploy
job (and others) no longer use a synchronous timeout block. This was causing some jobs to fail in an ERROR state (even though the actual export or import eventually did run just fine). All deployment-related jobs are now purely asynchronous and utilize the job AWAIT state to passivate activity until one or more child processes complete.
User Interface
- Fix so that list pages properly teardown event handlers/hooks when the DOM is destroyed or transitioned. The result is faster page rendering and transitioning with less API traffic and a lower number of HTTP requests from the browser.
- Fix so that Branch Picker pagination works as intended.
- Fix so that the Project Stack page retrieves and displays all data stores.
- Fix so that the Project Applications list paginates as intended.
- Fix so that the Node Versions page properly paginates for cases where the last key was being errantly determined.