# Cascade CMS Documentation > Cascade CMS is a web content management system by Hannon Hill. This file lists every Knowledge Base article with a one-line description, grouped by category. The full text of every article is in [llms-full.txt](https://www.hannonhill.com/cascadecms/latest/llms-full.txt). Release notes are at [Cascade CMS Release Notes](https://www.hannonhill.com/cascadecms/latest/releases/index.html). 346 articles, generated 2026-10-14. ## Cascade Administration - [Administration Menus](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-menus.md): Where the administrator-facing areas live: the system menu, and what each entry under Administration covers. - [Announcements](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-tools/announcements.md): Announcements allow administrators to create and display messages to users working in the CMS. - [How do I enable DEBUG logging?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-tools/enable-debug-logging.md): Add a logging category or class at DEBUG level from the Logging Configuration tool, and reset it once you've collected what you need. - [How can I enable request logging for Cascade CMS?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-tools/enable-request-logging.md): Add an AccessLogValve to tomcat/conf/context.xml to write a request log alongside the other Tomcat logs. - [Administration Tools](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-tools/index.md): The system-level tools for messaging active users, downloading log files, and turning on extra logging while troubleshooting. - [Logging Configuration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-tools/logging-configuration.md): This section of the Administration area provides system administrators with the ability to configure additional logging for troubleshooting purposes. - [Logs and System Information](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/administration-tools/logs-and-system-information.md): Download application log files and check the environment Cascade CMS is running in — memory, JVM settings, operating system, and version. - [Audits](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/audits.md): Audits allow administrators to see a summary of activities performed in Cascade CMS by a particular User, Group, or Role or on a particular asset. - [Authentication](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/authentication/index.md): Cascade CMS can authenticate users natively, through an external LDAP server, or via custom authentication. - [LDAP/Active Directory Authentication](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/authentication/ldap/index.md): Authenticating users against an existing LDAP or Active Directory server: connection options, policies, orphaned users, and the XML that configures it. - [Google Analytics Connector](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/analytics/how-to-set-up-a-google-analytics-connector.md): Set up the Google Analytics Connector so traffic figures from a Google Analytics 4 property appear on Sites, pages, files, and folders in Cascade CMS. - [Analytics](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/analytics/index.md): Analytics Connectors pull traffic data from a third-party analytics account into Cascade CMS, so authors see how a page performs without leaving the CMS. - [WordPress Connector](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/content-export/how-to-set-up-a-wordpress-connector.md): Set up a WordPress Connector so pages managed in Cascade CMS publish into a WordPress site. - [Content Export](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/content-export/index.md): Content Export Connectors push content managed in Cascade CMS out to another system, so a page can be authored once and delivered elsewhere. - [Digital Asset Management (DAM)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/digital-asset-management-dam/index.md): DAM Connectors let authors browse a third-party asset library and place its images directly from the WYSIWYG editor, without downloading and re-uploading files. - [Acquia DAM (Widen) Integration (Labs)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/digital-asset-management-dam/widen-collective-integration.md): Enable the Acquia DAM (Widen) Labs integration so authors can browse and place assets from a Widen Collective library inside the WYSIWYG editor. - [Connectors and Integrations](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/index.md): Connectors and integrations allow you to utilize third-party applications and tools within Cascade CMS. - [DubBot Integration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/web-governance/dubbot-integration.md): Connect Cascade CMS to DubBot so its accessibility, broken link, spelling, and SEO findings can be fixed on the asset that caused them. - [Web Governance](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/web-governance/index.md): Web governance Connectors surface accessibility, broken link, spelling, and SEO findings from a third-party platform inside Cascade CMS. - [Monsido Integration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/web-governance/monsido-integration.md): Pair a Monsido account with Cascade CMS and the Monsido Chrome extension so Monsido findings appear over the CMS interface. - [Siteimprove Integration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/connectors/web-governance/siteimprove-integration.md): Cascade CMS's Siteimprove plugin allows existing Siteimprove customers to access data from the Siteimprove Intelligence Platform from within the CMS. - [Database Export](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/database-tools/database-export.md): Export the Cascade CMS database from the Administration area, and what to enable first when the database is SQL Server. - [Database Tools](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/database-tools/index.md): These tools allow system administrators to optimize, repair, and export the CMS database. - [Optimize Database](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/database-tools/optimize-database.md): The Optimize Database tool removes and/or repairs various records within the database. It is NOT recommended to run this tool frequently. - [How can I view the largest binary files within my database?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/database-tools/view-largest-binary-files.md): SQL queries for SQL Server, Oracle, and MySQL that list stored files from largest to smallest. - [Where can I find the Cascade CMS log files?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/diagnostics/cascade-cms-log-files.md): Log files are available from Logs and System Information in the Administration area, or in the tomcat/logs directory on the server. - [How can I find the O/S account running Cascade CMS?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/diagnostics/find-os-account-running-cascade.md): The User Name field in Logs and System Information shows the account the application runs under. - [Generate a HAR file](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/diagnostics/generate-a-har-file.md): Steps for capturing a HAR file of network activity for a support investigation, and how to redact it before sharing. - [Generating a thread dump](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/diagnostics/generating-a-thread-dump.md): How to capture a Java thread dump from Cascade CMS on Linux with kill -3, or on Windows with jcmd. - [Diagnostics](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/diagnostics/index.md): Gathering the data a support investigation needs — log files, thread dumps, and HAR files — and where each one comes from. - [Comparison method violates its general contract](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/comparison-method-violates-its-general-contract.md): Why a Velocity or XSLT sort throws "Comparison method violates its general contract", and how to guard against items missing the value being sorted on. - [PageRenderException: Could not transform with Script format](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/could-not-transform-with-script-format.md): When previewing a page, you may see a full-page error of the type Could not transform with Script format... - [Error constructing implementation](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/error-constructing-implementation.md): How to resolve the SSL/TLS "Error constructing implementation" error by checking Cascade CMS's key store configuration. - [Exception invoking method 'getAvailableIDs' in class sun.util.calendar.ZoneInfo](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/exception-invoking-getavailableids.md): This particular error message is indicative of a missing startup parameter for the application. - [Header message of length \[\] received but the packetSize is only \[\]](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/header-message-of-length-received.md): The AJP request header exceeds Tomcat's configured packetSize. Add a packetSize attribute to the connector in server.xml to resolve it. - [Common Error Messages](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/index.md): Specific error messages you may hit in Cascade CMS — in the logs, on submit, while publishing, or during rendering — and how to resolve each one. - [The index block with path {path} renders too much data](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/index-block-renders-too-much-data.md): This message is displayed when an Index Block in the system renders a large amount of data and reaches the limit configured in the system Preferences. - [Invalid XML character was found in the element content of the document](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/invalid-xml-character-in-element-content.md): An "invalid XML character" error on submit means a control character was pasted into a WYSIWYG field. Here is how to find and remove it. - [Login Failed](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/login-failed.md): This article describes steps that Administrators can take to troubleshoot failed login attempts for their users. - [Parameters missing](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/parameters-missing.md): This article describes steps to take when you receive a 'Parameters missing' error while attempting to submit a file or page. - [Invalid XML: The prefix "o" for element "o:p" is not bound](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/prefix-o-for-element-op-is-not-bound.md): If you receive this error when trying to create or submit changes to an asset, there may be tags in the source code of your editor that will need to be removed or converted to regular

tags before the asset can be submitted. - [Secure LDAP sync fails after upgrade to Cascade CMS v8.11](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/secure-ldap-sync-fails.md): Cascade CMS v8.11 comes bundled with a newer version of Java (JRE 8u191). - [Table headers are poorly structured](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/table-headers-are-poorly-structured.md): How to clear the "Table headers are poorly structured" accessibility error by setting the correct cell type and scope on a table's header cells. - [Sorry, workflow is required to be able to continue but no workflows are available to you.](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/workflow-is-required.md): This error means that the user's Site Role doesn't allow them to Bypass workflow, but there isn't an applicable workflow available for the type of action they're taking. - [Your roles do not allow you to advance workflow](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/errors/workflow-is-unable-to-proceed.md): This error indicates that the user's Site Role doesn't allow them to assign a Workflow to themselves or approve steps in a Workflow. - [External Link Checking Preferences](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/external-link-checking.md): External Link Checking preferences allow administrators to configure system-wide external link checking behavior and functionality. - [Cascade CMS 8 Upgrade Prep Guide](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/cascade-8-upgrade-prep.md): What to clean up before upgrading to Cascade CMS 8: Global area content, unassigned Content Types, and a database check. - [Configure a web server for publishing](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/configure-a-web-server-for-publishing.md): What a web server needs to serve content published from Cascade CMS, and how the publishing Destination reaches it. - ["Could not acquire change log lock" or "Waiting for changelog lock..."](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/changelog-lock.md): During start-up, one of the following messages may appear in the cascade.log file and prevent Cascade CMS from starting: Waiting for changelog lock.... - [Creating a database backup](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/db-backup.md): This article shows some sample steps that can be used to create a database backup for all vendors - [Database Size Management Tips](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/db-size-manage.md): The overall size of your Cascade CMS database is dependent on a number of factors. - [Database](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/index.md): Setting up the Cascade CMS database on MySQL, SQL Server, or Oracle, plus backups and keeping the database from growing without bound. - [Setting up the database (MySQL)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/mysql.md): Set up the Cascade CMS database on MySQL: install the server, adjust its configuration, and import the supplied database. - [MySQL: Can't create table](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/mysql-cant-create-table.md): When starting Cascade CMS for the first time or after importing a new MySQL database, administrators may see an error message in the log file similar to the following: ERROR [StartupTasks] : *** Startup task: DatabaseIndexAndKeyManagerfailed to execute successfully: java.sql.SQLException: Can't crea - [MySQL: Can't create/write to file](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/mysql-cant-create-write-file.md): Organizations using MySQL may see an error message similar to the following when attempting to login to the system: Login failed: An error occurred: Startup task: DatabaseIndexAndKeyManager failed to execute successfully: java.sql.SQLException: Can't create/writeto file 'C:\WINNT\TEMP\#sql_718_0.MYI - [ORA-22275: invalid LOB locator specified](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/ora-22275-invalid-lob-locator.md): Oracle users may encounter this error when attempting to copy, edit, or submit assets in the system. - [Setting up the database (Oracle)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/oracle.md): Set up the Cascade CMS database on Oracle: create a tablespace and import the supplied database. - [Error executing SQL DELETE FROM `cxml_history_item`](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/sql-delete-cxml-history-item.md): The following error message may appear when upgrading to Cascade 8 against a version of MySQL 5.7 prior to release 5.7.11: Migration failed for change set com/hannonhill/cascade/model/database/updater/updates/8_0/8_0_006.xml::8_0_006::artur.tomusiak: Reason: liquibase.exception.JDBCException: Error - [The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/sql-server-ssl-connection.md): When attempting to start Cascade CMS, organizations using SQL Server may be presented with the following error in the log files (which prevents the application from starting): ("encrypt" property is set to "true" and "trustServerCertificate" property is set to "false" but the driver could not establ - [The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Unexpected rethrowing"](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/sql-server-ssl-unexpected-rethrowing.md): This particular error message can appear on startup. - [Setting up the database (SQL Server)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/database/sqlserver.md): Set up the Cascade CMS database on SQL Server: attach the supplied database and set its isolation level to snapshot. - [Installation and Upgrades](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/index.md): Installing, upgrading, and moving a self-hosted Cascade CMS instance — installers per platform, the database, server configuration, and migration. - [Installation/Upgrade (ZIP)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/linux.md): Install or upgrade a self-hosted Cascade CMS instance from the ZIP distribution on Linux, macOS, or Windows. - [Installation/Upgrade (macOS)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/macos.md): Install or upgrade a self-hosted Cascade CMS instance on macOS using the graphical installer. - [Migrating Cascade CMS to a new server](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/migrate-server.md): Move a self-hosted Cascade CMS instance to a new server: what to copy, what to reconfigure, and what to verify. - [Migration Tool](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/migration-tool.md): Use the Universal Migration Tool to bring content from an existing site into Cascade CMS, mapping folders, Content Types, and fields. - [Running Cascade CMS as a Linux service](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/running-cascade-cms-as-a-linux-service.md): This article contains samples using systemd and init.d service files. - [Using Apache 2.4 to proxy Cascade CMS](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/apache-2.4-proxy.md): This article is provided as an example of using Apache 2.4 to proxy Cascade CMS. - [Configuring outbound proxy support for system-generated emails](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/email-proxy-support.md): This article shows how to configure your Cascade CMS environment to send emails if you're using an outbound proxy . - [Enabling HTTP Strict Transport Security (HSTS)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/enabling-http-strict-transport-security-hsts.md): This article provides steps for configuring HSTS in Cascade CMS. - [Enabling or Disabling TLS Versions](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/enabling-or-disabling-tls-versions.md): This article contains steps for enabling or disabling certain versions of TLS. - [How can I find which Java installation my Cascade CMS instance is using?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/find-java-installation.md): Check the JRE_HOME variable in the boot script for your platform, or read the JVM details from Logs and System Information. - [Firewall Considerations](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/firewall.md): This article contains information on inbound and outbound ports that the application will use. - [Forcing connections to use SSL/TLS](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/force-ssl-tls.md): Once the SSL/TLS connector has been enabled per these instructions, users may still be able to access the application through the default port 8080. - [Configuring the Heap Dump on Out of Memory option](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/heap-dump-oom.md): This article contains steps on capturing heap dumps from the application. These can be useful for troubleshooting memory problems. - [System Configuration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/index.md): Configuring the application server behind a self-hosted Cascade CMS instance: memory and ports, TLS, logging, proxying, load balancing, and the license key. - [Configuring Cascade CMS to point to a Java installation](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/java-configuration.md): This article describes the necessary steps to point Cascade CMS to a Java installation. - [Load Balancing](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/load-balancing.md): Run Cascade CMS behind a load balancer: Tomcat and Apache configuration, cache synchronization, and what to check when sessions misbehave. - [Configuring Cascade CMS Log Rotation and Compression](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/logging-rotation-compression.md): This article is provided as an example of how to configure Cascade CMS application logging to use rotation and/or compression. - [Modifying the Database Configuration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/modify-db.md): This article contains steps to configure the database connection settings for the application - [Modifying the Heap Size](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/modify-heap-size.md): This article contains the steps needed to modify the minimum (Xms) and maximum (Xmx) heap size for the application. - [Modifying Application Ports](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/modify-ports.md): This article outlines steps for changing the default port settings for the application. - [Modifying the Thread Stack Size](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/modify-thread-stack.md): This article contains steps for configuring the Thread Stack Size for the application. - [Securing session cookies](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/securing-session-cookies.md): Mark the Cascade CMS session cookie secure and HttpOnly so it is only sent over TLS and is not readable from scripts. - [SSL/TLS Configuration](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/ssl-tls-configuration.md): Configuring SSL/TLS for the application requires two steps (as described in the official Tomcat documentation): Creating/preparing the Java keystore. - [Updating the license key](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/update-license.md): This article contains information on updating the license key. - [Upgrading Tomcat independently of Cascade CMS](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/system-configuration/upgrade-tomcat.md): This article describes the steps needed in order to upgrade the bundled Tomcat installation - [Setting up a test environment](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/test-server.md): Stand up a test copy of a Cascade CMS instance without letting it publish, email, or talk to connected services. - [Installation/Upgrade (Windows)](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/windows.md): Install or upgrade a self-hosted Cascade CMS instance on Windows, including the Windows service and command-line options. - [Add or remove the Windows service](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/installation-and-upgrades/windows-service.md): Install or remove the Windows service that runs a self-hosted Cascade CMS instance. - [Packet for query is too large](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/packet-too-large.md): Resolve the MySQL max_allowed_packet error when uploading files into Cascade CMS. - [Permissions in Cascade CMS: Sites, Roles, Groups, and Folder Access](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions-sites-roles-groups-folder-access.md): Understand how site access, roles, groups, and folder-level permissions work together in Cascade CMS, with a practical decision matrix and troubleshooting guide. - [Access Rights](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/access-rights.md): Access Rights are the permissions that control which Users or Groups can view or change Assets. Each asset has Access Rights assigned. - [How can I check what a User can do in a specific Site?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/check-what-user-can-do-in-site.md): Use the Effective Abilities tool for a list of a user's abilities in a Site, or Assume Identity to see the system as they see it. - [How do I control User access to Folders and assets?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/control-user-access-to-folders-and-assets.md): Set Access rights on an asset, and use Access for Contents to apply them down a Folder — merging rather than overwriting. - [Granting Access to Specific Folders for Users/Groups](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/granting-access-specific-folders-users-groups.md): A worked example of hiding every Folder in a Site by default, then granting one Group access to just the Folder it needs. - [Groups](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/groups.md): A group is made up of one or more users with common permissions. - [Permissions](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/index.md): The two spheres of permissions in Cascade CMS: system-wide abilities granted by a Role, and Site-level access to what a user can see and do. - [Role Abilities](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/role-abilities-in-cascade.md): Every ability a System Role or Site Role can grant, grouped by the area of Cascade CMS it applies to. - [Roles](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/roles.md): A role is a set of a abilities that govern a user's access to a number of different areas in Cascade CMS. - [Why can't my user upload images in the WYSIWYG or file chooser?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/user-upload-images-in-wysiwyg-or-file-chooser.md): The Upload tab requires the Upload images in file chooser Site Role ability, and on versions before 8.22 also Bypass workflow. - [Users](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/users.md): Add users, apply password policies, check the abilities a user effectively has, and assume a user's identity to see what they see. - [Why can't my users see anything in the Add Content menu?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/permissions/users-add-content-menu.md): An Asset Factory appears in Add Content only when the user's Group is listed in Applicable Groups on both the Asset Factory and its Container. - [MySQL 8: Public Key Retrieval is not allowed](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/public-key-retrieval.md): Resolve the Public Key Retrieval error after upgrading to MySQL 8 in Cascade CMS. - [Could not create index writer](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/could-not-create-index-writer.md): How to clear a stale Lucene write.lock when Cascade CMS logs "Could not create index writer" and cannot build its search index. - [Could not get file content for lucene indexing](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/could-not-get-file-content.md): What the "Could not get file content for lucene indexing" error means, and how to identify and clear the corrupt file that causes it. - [Could not reset lucene directory](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/could-not-reset-lucene-directory.md): The "Could not reset lucene directory" error is caused by O/S account permissions on the Cascade CMS installation folder. Here is how to correct them. - [Search and Indexing](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/index.md): Keeping Cascade CMS search working — rebuilding indexes, diagnosing missing results, granting access to Full Search, and the error messages the indexer produces. - [How do I rebuild my search indexes?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/rebuild-search-indexes.md): Trigger a search index rebuild from Administration > Search Indexing, and what to expect in the log and the Background Tasks Report while it runs. - [Search failed: no segments file found](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/search-failed-no-segments-file-found.md): The "Search failed: no segments file found" error is resolved by rebuilding the Cascade CMS search indexes. - [Search isn't returning expected results](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/search-isnt-returning-expected-results.md): Work through the Build Search Index task in the Background Tasks Report — its Status and Duration tell you whether the index built, stalled, or hit a permissions problem. - [Why can't my users access the full search feature?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/search/users-access-the-full-search.md): Full Search and Replace lives in the Administration area, so users need a System Role with Access Administration Area enabled. - [CVE-2020-1938 Ghostcat](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2020-1938-ghostcat.md): How to secure the Tomcat AJP Connector bundled with Cascade CMS against CVE-2020-1938 (Ghostcat), for installations that have not yet upgraded to Cascade CMS 8.15. - [CVE-2021-4104](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2021-4104.md): Cascade CMS is not affected by CVE-2021-4104, the Log4j 1.x JMSAppender remote code execution flaw, plus steps for removing the affected class from older on-premise distributions. - [CVE-2021-44228 Log4Shell](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2021-44228-log4shell.md): Cascade CMS is not affected by CVE-2021-44228 (Log4Shell), because the log4j message lookup substitution feature the exploit depends on is disabled or unsupported in our implementation. - [CVE-2021-45046 Log4Shell](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2021-45046-log4shell.md): Cascade CMS is not affected by CVE-2021-45046, the incomplete fix for Log4Shell, plus steps for removing the JndiLookup class from older on-premise distributions. - [CVE-2021-45105 Log4Shell](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2021-45105-log4shell.md): Cascade CMS is not affected by CVE-2021-45105, the Log4j self-referential lookup denial of service, because message lookup substitution is disabled or unsupported in our use of log4j. - [CVE-2022-22965 Spring4Shell](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2022-22965-spring4shell.md): Cascade CMS is not affected by CVE-2022-22965 (Spring4Shell) — it uses the Spring Framework for dependency injection but does not include the affected spring-mvc package. - [CVE-2022-23302 JMSSink](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2022-23302-jmssink.md): Cascade CMS is not affected by CVE-2022-23302 — the Log4j 1.x JMSSink deserialization issue — because the affected sink is not referenced in our configuration. - [CVE-2022-23305 JDBCAppender](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2022-23305-jdbcappender.md): Cascade CMS is not affected by CVE-2022-23305 — the Log4j 1.x JDBCAppender SQL injection issue — because the affected appender is not referenced in our configuration. - [CVE-2022-23307 Chainsaw Package](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2022-23307-chainsaw-package.md): Cascade CMS is not affected by CVE-2022-23307 — the Log4j 1.x Chainsaw deserialization issue — because the affected component is not referenced in our configuration. - [CVE-2025-24813](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2025-24813.md): Cascade CMS is not affected by CVE-2025-24813, the Apache Tomcat partial PUT path equivalence vulnerability, because the required settings are not enabled in our default installations. - [CVE-2026-34477](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2026-34477.md): Cascade CMS is not affected by CVE-2026-34477, the incomplete Log4j TLS hostname verification fix, because the default configuration doesn't use the affected appenders. - [CVE-2026-34480](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/cve-2026-34480.md): Cascade CMS is not affected by CVE-2026-34480, the Log4j XmlLayout invalid XML output issue, because the application doesn't use the affected Log4j implementation. - [Security Advisories](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/index.md): Hannon Hill's assessments of published CVEs and other security issues as they relate to Cascade CMS, including whether Cascade Cloud and on-premise installations are affected. - ["Remember Me" Cookied Login Vulnerabilities](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/security-advisories/remember-me-cookied-login-vulnerabilities.md): Weaknesses identified in the Cascade CMS cookied login process that could allow an attacker to access the CMS as another user, and the versions that remediate them. - [How do I change the name or URL of my site?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/sites/change-name-or-url-of-site.md): Update the Name and URL fields on the Properties tab of Site Settings. - [How do I delete a site?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/sites/delete-a-site.md): Select the site in the Sites list and click Delete. Deleted sites cannot be restored. - [How do I give a User or Group access to a Site?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/sites/give-user-or-group-access-to-site.md): Assign a Site Role on the Roles tab of Site Settings, and make sure the user has Read access to the Site's Base Folder. - [Sites](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/sites/index.md): Sites are containers for organizing all content and administrative assets and properties for a website in Cascade CMS. - [Site Import and Export](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/sites/site-import-and-export.md): Cascade CMS supports the transfer of content and administrative properties from one Cascade CMS environment to another by way of exporting and importing Sites. - [Snippets](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/snippets.md): With Snippets, your team can quickly create, update, and reuse standardized content elements throughout your site without any technical expertise. - [System Dictionary](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/system-dictionary.md): Add words to the system dictionary so the spell checker stops flagging them, export the dictionary, and copy a legacy user dictionary. - [System Preferences](https://www.hannonhill.com/cascadecms/latest/articles/cascade-administration/system-preferences.md): System preferences allow administrators to configure system-wide properties such as email, link checking, and content settings. ## Cascade Basics - [User Menu and Account Settings](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/account-settings.md): Access and configure your account settings in Cascade CMS, including display preferences, default site, notifications, password, profile photo, and API key management. - [Asset Display Options](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/asset-display-options.md): Control whether Cascade CMS shows assets by their system name or their Title/Display Name, at both the user and system level. - [Comments and Mentions](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/comments-and-mentions.md): Use comments and @mentions in Cascade CMS to collaborate on assets, tasks, workflows, and version history. - [Context Menu](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/context-menu.md): Right-click any asset in Cascade CMS to access the context menu with quick actions for editing, publishing, moving, renaming, and more. - [Creating Content](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/creating-content.md): Step-by-step guide to creating new pages, files, and other assets in Cascade CMS using Asset Factories. - [Daily Content Report](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/daily-content-report.md): Subscribe to and schedule the Daily Content Report in Cascade CMS to receive a daily email summary of action items, content updates, and content health alerts. - [Drafts and Working Copies](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/drafts-and-working-copies.md): Understand the difference between Drafts and Working Copies (checked-out/locked assets) in Cascade CMS, including how to preview, commit, and discard changes. - [Full Search and Replace](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/full-search-and-replace.md): Use Full Search in Cascade CMS for advanced filtering by site, asset type, and field, plus bulk find-and-replace across multiple assets. - [How do I reorder items in a navigation menu?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/how-do-i-reorder-items-in-a-navigation-menu.md): Menus built from a Folder follow that Folder's order — but if reordering has no effect, the menu is being generated some other way. - [My Content](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/my-content.md): Access your starred assets, recent history, owned content, drafts, workflows, locked assets, and tasks from the My Content area in Cascade CMS. - [Search](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/search.md): Use the search bar in Cascade CMS to quickly find assets by name, path, metadata, and more across all of your sites. - [Styles not loading for 404 pages](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/styles-not-loading-for-404-pages.md): Relative links break when a 404 is served from an arbitrary directory depth — override the page's link rewriting to Absolute. - [The Dashboard](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/the-dashboard.md): Overview of the Cascade CMS dashboard including default widgets, customization options, adding and removing widgets, and switching between sites. - [Unpublishing vs. Deleting Content](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/unpublishing-vs-deleting.md): Understand the difference between unpublishing and deleting content in Cascade CMS, including when to use each and how to prevent publishing. - [Why are my changes not appearing on the web site?](https://www.hannonhill.com/cascadecms/latest/articles/cascade-basics/why-your-changes-arent-appearing.md): Troubleshoot why your changes in Cascade CMS are not appearing on the live website — covers publishing submission, publish queue, notifications, destinations, outputs, browser caching, and server caching. ## Content Authoring - [Accessibility](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/accessibility/index.md): Cascade CMS offers a variety of features to help you create and publish accessible content. Learn more about accessibility features in Cascade CMS here. - [Keyboard Shortcuts](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/accessibility/keyboard-shortcuts.md): Cascade CMS features keyboard shortcuts in the following areas. - [Native On-Page Accessibility Checker](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/accessibility/page-accessibility-checker.md): The Native On-Page Accessibility Checker is an on-demand page-level tool for checking page content for WCAG 2.0, 2.1, 2.2 compliance (Level A, AA, and AAA). - [CSS Editor Snippets](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/advanced-code-editor/css-editor-snippets.md): Shorthand snippets the Advanced Code Editor expands into full CSS declarations. - [Advanced Code Editor](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/advanced-code-editor/index.md): The Advanced Code Editor (ACE) is Cascade CMS' built-in syntax-highlighting editor. - [AI Content and SEO Suggestions](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/ai-content-and-seo-suggestions.md): Use Cascade CMS's AI suggestions to draft metadata titles, summaries, keywords, and image alt text, and how to enable them for a site. - [Asset Factories](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/index.md): Asset Factories stamp out new assets with configuration and content already in place, either from scratch or from a pre-configured base asset. - [Create Resized Images Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/create-resized-images-plug-in.md): This plug-in allows an administrator to specify that multiple resized images will be created when a user uploads a single image. - [Data Definition Field(s) to System Name Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/data-definition-field-to-system-name-plug-in.md): Generate a search-engine-friendly system name from one or more Data Definition fields, and how asset naming rules interact with it. - [Display to System Name Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/display-to-system-name-plug-in.md): This plug-in ensures that newly-created assets are given search engine friendly system names. - [File Limit Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/file-limit-plug-in.md): This plug-in allows administrators to place restrictions on the size and type of file created using a specific asset factory. - [Friendly Page Name Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/friendly-page-name.md): This plugin limits the system name of new page assets to configurable regular expression. - [Image Resizer Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/image-resizer-plug-in.md): This plug-in allows an administrator to specify that an uploaded image be resized to particular dimensions. - [Asset Factory Plugins](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/index.md): An overview of available plugins for use as part of Asset Factories. - [Set Start Date Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/set-start-date-plug-in.md): This plug-in sets the metadata field "start date" to the current time for newly created assets, with an optional configurable offset. - [Title to System Name Plug-in](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-factories/plugins/title-to-system-name-plug-in.md): This plug-in ensures that newly-created assets are given search engine friendly system names. - [Asset Naming Rules](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/asset-naming-rules.md): Asset naming rules allow you to enforce a consistent format for system names in Cascade CMS. - [How do I create a "calling page" Index Block?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/create-calling-page-index-block.md): Settings for the most commonly used Index Block in Cascade CMS, and how to preview one that needs a context page to render. - [Discarding the Index Block Rendering Cache](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/discarding-the-index-block-rendering-cache.md): When a page using an Index Block shows outdated information, toggling the Index Block Rendering Cache off and on forces a rebuild. - [Feed Blocks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/feed-blocks.md): Feed blocks pull XML from a web location, which is useful for aggregating outside RSS or the output of a dynamic script. - [Blocks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/index.md): A block is a piece of content that can be inserted (with or without styling) into any page region. - [Index Blocks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/index-blocks.md): An index block is a special type of block that returns a listing of assets from the CMS directory structure in the form of XML data. - [Text Blocks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/text-blocks.md): Text blocks hold plain reusable content with no WYSIWYG editor — how they differ from XHTML blocks and when to reach for each. - [XHTML/Data Definition Blocks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/xhtml-blocks.md): An XHTML/Data Definition block is reusable content edited through either a WYSIWYG editor or Data Definition form fields. - [XML Blocks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/blocks/xml-blocks.md): XML blocks store reusable content as well-formed static XML or XHTML, for data that has to appear on more than one page. - [Content Checks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/content-checks.md): Check new and revised assets for spelling errors, broken internal and external links, and accessibility issues before publishing. - [Content Tips](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/content-tips.md): Content Tips are a new feature designed to offer real-time SEO guidance as you edit assets with visible metadata fields, including Titles and Descriptions. - [How do I edit content or find out where to edit a certain region?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/editing-content.md): Learn how to edit page content in Cascade CMS and find out which Block or Format is responsible for a particular region. - [External Links](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/external-links/index.md): An external link is an asset that points to a website hosted outside of Cascade CMS. - [Files](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/files/index.md): Files are content typically created by external programs and imported for use in Cascade CMS. - [Folders](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/folders/index.md): You can use folders and subfolders to contain and organize your Site Content assets. - [How do I rename an asset?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/how-do-i-rename-an-asset.md): Rename from More > Rename or the context menu — then republish, because renaming unpublishes the asset from every Destination. - [Linking](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/linking.md): The ways Cascade CMS manages links — asset links, external links, and link rewriting — and which to use for a given asset and target. - [How does the Max Asset Versions setting affect existing versions?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/max-asset-versions-setting.md): Lowering Max Asset Versions doesn't trim existing version chains immediately — each asset is trimmed the next time it's edited and submitted. - [Editable Fields](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/pages/editable-fields.md): When viewing a page in Cascade CMS, every region will contain content. - [Pages](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/pages/index.md): Page assets represent the combination of Template, content, scripts, and/or Formats to produce one or more rendered outputs for publishing. - [Rendering Metrics](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/pages/rendering-metrics.md): Rendering metrics show how long each region of a page takes to render, so you can find the blocks and formats slowing a page down. - [System Tags](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/pages/system-tags.md): Cascade CMS recognizes specific XML elements called system tags that are used for dynamic content insertion. - [Why am I seeing 'Asset does not exist' in my Publish Notification?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/asset-does-not-exist.md): A link points at an asset the system can't find — usually because the link includes a file extension, or points at a folder rather than its index page. - [Asset is not set to publish. Please enable publishing for this asset and try again.](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/asset-is-not-set-to-publish.md): The asset you are publishing has the Include when publishing option turned off. Enable it on the Configure tab. - [How do I configure 301 Redirects?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/configure-301-redirects.md): Cascade CMS has no native redirect feature — maintain your web server's .htaccess or web.config in the CMS and publish it to the server root. - [Could not connect to FTPS server: NotAfter](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/could-not-connect-to-ftps-server-notafter.md): The SSL/TLS certificate on the target FTPS server has expired. Install a valid certificate on the server. - [Could not put file with path 'FILE_PATH' onto server: Permission denied](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/could-not-put-file-with-path-file-path-onto-server-permission-denied.md): The SFTP account in the Transport lacks write permission on the target directory. Find the account via the Destination's Transport, then fix permissions on the server. - [Could not put file with path '' onto server: Failure](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/could-not-put-file-with-path-path-onto-server-failure.md): Most often the target web server has run out of disk space. Check available storage, then the FTPS server logs. - [Destinations](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/destinations.md): Destinations define the link between site content and the location to which site content can be published. - [Error occurred during FTP transport: Accept timed out](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/error-occurred-during-ftp-transport-accept-timed-out.md): The connection is using Active FTP where the server expects Passive. Enable Use Passive FTP (PASV) on the Transport. - [The folder hierarchy does not allow this asset to be published](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/folder-hierarchy-does-not-allow-this-asset-to-be-published.md): A parent folder has publishing turned off, which blocks everything inside it regardless of each asset's own setting. - [How can I generate a cron expression for my scheduled publishes?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/generate-a-cron-expression.md): Cascade CMS uses Quartz, whose cron syntax differs slightly from other tools. Sample expressions and recommended generators. - [How do I determine where assets will be published?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/how-do-i-determine-where-assets-will-be-published.md): The final path combines the Transport's Server Directory, the Destination's Directory, and the asset's folder path in the Site. - [I won't open a connection to (only to )](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/i-wont-open-a-connection-to-ip-address-1-only-to-ip-address-2.md): The Transport is set to Active FTP but the target server only supports Passive. Enable Use Passive FTP (PASV). - [Publishing](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/index.md): How the publishing engine renders and sends content to one or more destinations, and what makes an asset publishable. - [Invalid privatekey error when publishing via SFTP](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/invalid-privatekey-error-when-publishing-via-sftp.md): Cascade CMS needs the SSH key in PEM format. Regenerate the key pair with ssh-keygen -m PEM and upload it again. - [Where can I find publish notifications?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/locate-publish-notifications.md): Notifications for jobs you started are under your user menu; scheduled job notifications live on the Publish Set, Destination, or Site. - [This asset cannot be published because there are no publishable configurations](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/no-publishable-configurations.md): None of the page's Outputs are marked Publishable. Enable at least one on the Configuration. - [You are not authorized to schedule future publish dates](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/not-authorized-to-schedule-future-publish-dates.md): Setting a future Start Date requires a Site Role with publishing ability. Check the user's Effective Abilities under Publishing. - [Permissions issues when publishing to Filesystem Transports](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/permissions-issues-filesystem-transports.md): Tomcat's default UMASK of 0027 can leave published files unreadable by the web server. Override it in cascade.sh. - [Problems connecting via SFTP to Solarwinds Serv-U servers](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/problems-connecting-via-sftp-to-solarwinds-serv-u-servers.md): Serv-U 15.3.2 changed its SSH protocol exchange, which blocks Cascade CMS. Apply hotfix 1 and allow non-RFC compliant exchange. - [How do I publish changes to a block?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/publish-changes-to-a-block.md): Blocks aren't publishable on their own — use Relationships to find the pages that use the block and publish those. - [Publish Sets](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/publish-sets.md): A publish set is a group of publishable assets that can be published either on-demand or on a schedule. They may contain files, folders, and/or pages. - [Publishing Related Content](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/publishing-related-content.md): Often times, assets you're working on will affect other content in your site. Cascade CMS offers multiple ways to publish related content. - [SFTP: java.net.SocketTimeoutException: Read timed out](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/read-timed-out.md): The SFTP server's concurrent connection limit is too low for Cascade CMS's parallel publishing. Raise it to at least 25. - [Scheduled publishing for individual assets](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/scheduled-publishing-for-individual-assets.md): Start Date versus Optionally Publish Later — which to use for a brand new asset, and which for an update to an existing one. - [Transports](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/transports.md): A Transport represents a server to which content can be published. - [How do I unpublish an asset that no longer exists in the CMS?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/unpublish-asset-no-longer-in-cms.md): Recreate the asset as an empty placeholder File at the same path and name, unpublish it, then delete the placeholder. - [Unsupported or unrecognized SSL message](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/unsupported-or-unrecognized-ssl-message.md): The FTPS Transport is set to explicit FTPS over port 21. Cascade CMS supports implicit FTPS only, typically over port 990. - [Which algorithms are supported for SFTP?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/which-algorithms-are-supported-for-sftp.md): The KEX, host key, cipher, and MAC algorithms Cascade CMS supports when publishing over SFTP, and which are disabled by default. - [How can I tell who edited or published a page?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/publishing/who-edited-or-published-a-page.md): Check the asset's audit trail under More > Audits — or, if the asset is gone, the audit trail of a Group whose members could edit it. - [References](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/references.md): A reference makes one asset appear in several locations at once while a single copy is maintained — how they behave and where they break down. - [Tags](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/tags.md): Tags are keywords or terms assigned to assets. In Cascade CMS, tags help describe content and allow it to be found through searching or indexing. - [How do I unlock a page or asset?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/unlock-page-or-asset.md): Switch to the Working Copy, then commit or break the lock — or, if someone else owns it, have them reassign it to you. - [How do I upload a folder?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/upload-a-folder.md): Zip the folder first, then upload the archive and choose whether to unpack it into individual assets. - [Versions](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/versions.md): Cascade CMS keeps a timestamped version history for Site Content and Manage Site assets — how to view, compare, restore, and delete versions. - [WYSIWYG Editor Configurations](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg-editor-configurations/index.md): WYSIWYG Editor Configurations allow you to customize which features of the WYSIWYG rich-text editor are available to content creators. - [WYSIWYG Editor Configuration Upgrade Guide](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg-editor-configurations/upgrade-guide.md): How existing WYSIWYG System Preferences map onto editor configurations after an upgrade, and which preferences were removed. - [WYSIWYG Guide: Images, PDFs, Tables, Captions, and Video](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg-guide-images-pdfs-tables-video.md): Practical WYSIWYG authoring guidance for adding images, PDFs, tables, captions, and video in Cascade CMS, including accessibility tips and common editor mistakes. - [Adding a PDF to a page](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/add-a-pdf-or-document-to-a-page.md): Upload a PDF or other document to Cascade CMS, then link to it from the WYSIWYG editor using an internal link. - [Adding an image to a page](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/add-an-image-to-a-page.md): Upload an image to Cascade CMS, insert it in the WYSIWYG editor with alternative text, and optionally set its alignment. - [Adding a caption to a table](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/adding-a-caption-to-a-table.md): Turn on the Caption checkbox in a table's properties to add a caption area above the first row, then enter your caption text. - [Adding a caption to an image](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/adding-a-caption-to-an-image.md): Use the Advanced tab of the Insert/edit image dialog to wrap an image in figure and figcaption elements, then edit the caption text in the editor. - [Adding a table header and footer](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/adding-a-table-header-and-footer.md): Use Row Properties to mark a row as a header or footer, which wraps it in thead or tfoot elements. - [Adding classes to links and images](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/adding-classes-to-links-images.md): Apply a configured class to a link or image through the Styling field, and use the element path to reach a figure element instead. - [Adding classes to tables](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/adding-classes-to-tables.md): Apply a Custom Format class to a table, row, or cell, and use the editor's element path to target the exact element you mean. - [Adding header cells to a table](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/adding-header-cells-to-a-table.md): Set a cell's type to Header cell and give it a scope so screen readers can associate data cells with the right headers. - [Configuring table properties](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/configuring-table-properties.md): What the General and Advanced tabs of the Table properties dialog control, including dimensions, alignment, caption, and colors. - [Creating an anchor link](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/create-anchor-link.md): Place a named anchor in a page, then link to it from the same page or another page using the Anchor field of the link dialog. - [What's new in the WYSIWYG editor](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/editor-updates.md): Learn what’s new in Cascade CMS’s updated WYSIWYG editor: how to tell which version you’re using, key changes, accessibility updates, and tips. - [Why are "g" tags appearing in the WYSIWYG editor?](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/g-tags-in-wysiwyg-editor.md): Grammarly's browser extension inserts g elements into WYSIWYG source. Remove them and disable the extension while editing. - [WYSIWYG Authoring Tasks](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/index.md): Short how-tos for common tasks in the WYSIWYG editor — adding images, documents, and video, building accessible tables, applying classes, and creating anchor links. - [Inserting a video](https://www.hannonhill.com/cascadecms/latest/articles/content-authoring/wysiwyg/inserting-a-video.md): Add a video to page content with the Insert/edit media dialog, using either a direct URL or embed code from the hosting service. ## Content Management - [Content Review](https://www.hannonhill.com/cascadecms/latest/articles/content-management/content-review.md): The Review Date metadata field helps you to keep your content up to date by allowing you to schedule reviews for assets. - [Relationships](https://www.hannonhill.com/cascadecms/latest/articles/content-management/relationships.md): View and publish content that links to an asset. - [Accessibility Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/accessibility-report.md): The site Accessibility Report allows you to monitor and review WCAG 2.0 Level A - AAA accessibility issues across an entire site, based on a weekly report of content rendered within Cascade CMS. - [Active Users Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/active-users-report.md): The Active Users report provides a list of users logged into the system. - [Background Tasks](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/background-tasks.md): The Background Tasks report provides a list of completed and running tasks in the system. - [Broken Links Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/broken-links-report.md): Enable, read, filter, and export the Broken Links Report in Cascade CMS, and work through the results to fix broken links in your site. - [Content Inventory Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/content-inventory-report.md): The Content Inventory Report provides users with a comprehensive overview of their site's assets, allowing for filtering by various criteria such as asset types, publish status, and owners. Users can assign content ownership, identify stale content, and send notifications for assets that require review. Additionally, users can schedule review dates and export report results as a CSV file for further analysis. - [Content Ownership Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/content-ownership-report.md): The Content Ownership report displays assets owned by users in the system. - [Content Reviews Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/content-up-for-review-report.md): The Content Reviews report provides a list of assets that have upcoming or past-due review dates. - [Reports](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/index.md): The reports available in Cascade CMS for monitoring user activity, content ownership, accessibility, broken links, and stale or unused assets. - [Stale Content Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/stale-content-report.md): The Stale Content report displays a list of assets that have not been modified within a specified time period. - [Suggested Unused Assets Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/suggested-unused-assets-report.md): The Suggested Unused Assets report displays a list of assets that are not explicitly linked to or chosen by other assets in Cascade CMS. - [User Activity Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/user-activity-report.md): The User Activity report provides usage statistics for common actions users take in the system, including: Creates Edits Publishes Deletes Logins Tip - Click any non-zero number in the report to view an audit pre-filtered for that user and action. - [Workflows Report](https://www.hannonhill.com/cascadecms/latest/articles/content-management/reports/workflows-report.md): The Workflows report displays a list of in-progress and/or completed workflows within sites that you can access. - [How do I restore something I deleted from the trash / recycle bin?](https://www.hannonhill.com/cascadecms/latest/articles/content-management/restore-from-trash.md): Select the items in the Trash above the folder tree and click Restore. Access requires one of two Site Role abilities. - [Tasks](https://www.hannonhill.com/cascadecms/latest/articles/content-management/tasks.md): Tasks allow content managers and contributors to create and organize their to-do lists in Cascade CMS. - [Trash](https://www.hannonhill.com/cascadecms/latest/articles/content-management/trash.md): The Trash area allows you to view, restore, or empty all deleted assets in your Cascade CMS Site. - [Custom Workflow Emails](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/custom-workflow-emails.md): Custom Workflow Emails allow you to personalize your workflow notification and completion emails. A WYSIWYG editor plus dropdowns to insert placeholders for workflow details makes it simple to build templates for informative and actionable emails. - [Assigning Workflows](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/how-do-i-assign-a-workflow.md): In Cascade CMS, workflows can either be used as part of an Asset Factory for the creation of new content, or assigned to a folder to control actions taken on contained content. - [How do I delete a Workflow?](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/how-do-i-delete-a-workflow.md): Click Delete Workflow from the workflow itself — and where to look if you can't find the workflow. - [Workflows](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/index.md): How Workflow Definitions work in Cascade CMS — building them from steps, actions, and triggers, previewing the flow diagram, and choosing between the XML editor and Workflow Builder. - [Receiving Workflow Notifications](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/receiving-workflow-notifications.md): You can be notified of waiting workflows by email or in the My Workflows dashboard widget. - [Assign Step If User Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/assign-step-if-user-trigger.md): Advances a workflow to the step specified by the next parameter, if previous step was executed by a specified user. - [Assign To Content Owner of Asset Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/assign-to-content-owner-of-asset-trigger.md): Assigns the following step to the content owner of the asset in workflow. - [Assign To Group Owning Asset Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/assign-to-group-owning-asset-trigger.md): Assigns the following step to the group with write access to the parent folder of the asset in workflow. - [Assign to Specified Group Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/assign-to-specified-group-trigger.md): This trigger is used to assign a workflow to a group. - [Assign To Workflow Owner Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/assign-to-workflow-owner-trigger.md): Assigns the following step to the user that initiated the workflow. - [Copy Folder Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/copy-folder-trigger.md): Copies the parent folder of the asset in workflow into a designated location. - [Create New Workflow Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/create-new-workflow-trigger.md): This trigger starts new workflows for analogous assets to support translation capabilities or cross-site content synchronization. - [Delete Parent Folder Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/delete-parent-folder-trigger.md): This trigger deletes the parent folder of the asset in workflow as well as all contents of that folder. - [Delete Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/delete-trigger.md): This trigger deletes the asset in the workflow. - [Email Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/email-trigger.md): Reference for the Cascade CMS workflow Email trigger — its declaration, usage, and the mode, recipients-email, recipient-users, and recipient-groups parameters. - [Workflow Triggers](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/index.md): What workflow triggers are, how they attach to workflow actions, and a reference list of every pre-defined trigger in Cascade CMS. - [Merge Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/merge-trigger.md): Merges any changes into the system repository. - [Preserve Current User Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/preserve-current-user-trigger.md): Acts as a workaround solution when a workflow is submitted to a group instead of a user. - [Publish Containing Publish Set Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/publish-containing-publish-set-trigger.md): This trigger is used to publish out publish sets that the asset in workflow is a member of. - [Publish Parent Folder Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/publish-parent-folder-trigger.md): Publishes the parent folder of the asset in workflow. - [Publish Set Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/publish-set-trigger.md): Publishes all assets in a designated Publish Set. - [Publish Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/publish-trigger.md): Publishes the current asset in workflow (if publishable) to all enabled Destinations available. - [Unpublish and Delete Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/unpublish-and-delete-trigger.md): Allows for unpublishing content and deleting it at the same time. - [Version Trigger](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-triggers/version-trigger.md): Creates a version of the page that will be stored as the most current version. - [Workflow XML Schema Reference](https://www.hannonhill.com/cascadecms/latest/articles/content-management/workflows/workflow-xml-schema-reference.md): Every element and attribute available in a Cascade CMS Workflow Definition XML file — triggers, steps, actions, and the transitions between them. ## Design in Cascade - [Bulk Change](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/bulk-change/index.md): The Bulk Change tool lets you apply new Content Types, Metadata Sets, or Data Definitions to multiple assets at one time. - [Configurations](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/configurations/index.md): Configurations are collections of one or more outputs that are used to display page content. - [Linking to Specific Outputs](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/configurations/linking-to-specific-outputs.md): How to use the system-page-output attribute to link visitors directly to a page's PDF, printer-friendly, or XML output. - [Content Types](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/content-types/index.md): Content Types pair a Configuration with a Metadata Set and Data Definition, deciding both how a page looks and what authors can edit. - [Data Definition XML Schema Reference](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/data-definitions/data-definition-xml-schema-reference.md): Every element and attribute available in a Cascade CMS Data Definition XML file — group, shared field, asset, text, checkbox, dropdown, selector, and radio. - [Data Definitions](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/data-definitions/index.md): A Data Definition is a collection of fields used in the creation and editing of page and block content. - [Shared Fields](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/data-definitions/shared-fields.md): Shared Fields allow you to manage, update, and share fields and field groups across Data Definitions and across sites. - [Smart Fields](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/data-definitions/what-are-smart-fields.md): How to show or hide fields and field groups in a Data Definition based on what an author selects in a checkbox, dropdown, or radio field. - [Metadata Sets](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/metadata-sets/index.md): Metadata is data within the CMS that describes an asset. A Metadata Set represents a curated collection of metadata fields used to describe content. - [Metadata Fields in Cascade](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/metadata-sets/metadata-fields.md): An overview of Cascade CMS's built-in metadata fields and how to use custom (dynamic) metadata fields in metadata sets. - [Templates, Configuration Sets, and Outputs: How a Page Gets Built](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/templates-formats-outputs.md): Learn how templates, configuration sets, content types, formats, blocks, and outputs work together in Cascade CMS to build a published page, with a practical end-to-end example. - [Templates](https://www.hannonhill.com/cascadecms/latest/articles/design-in-cascade/templates/index.md): Templates are the XHTML documents that give pages their structure, using system tags to define the regions that hold interchangeable content. ## Developing in Cascade - [Code sections](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/code-sections.md): Cascade CMS currently supports the use of two types of code sections in the system: Passthrough code sections and protect code sections. - [How do I apply CSS?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/css/apply-css.md): Upload a CSS file, link to it from an XML Block, and attach that Block to a Template region at the Template, Configuration, or Page level. - [Why aren't my CSS background images being displayed?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/css/css-background-images-not-displayed.md): Background image paths need system-asset tags and the Rewrite asset links in file option so Cascade can resolve them to managed assets. - [CSS and Front-End Assets](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/css/index.md): Getting stylesheets into your pages, exposing classes to WYSIWYG editors, and making CSS-referenced images resolve to managed assets. - [How do I make CSS classes available in the WYSIWYG formats drop-down menu?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/css/make-css-classes-available-in-wysiwyg.md): Choose a CSS file on a WYSIWYG Editor Configuration, then use Custom Styles to limit which classes editors can pick. - [Internal Cascade API](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/internal-cascade-api/index.md): The internal Cascade API exposes a set of operations to developers for code run within Cascade CMS in Formats, Publish Triggers, Asset Factory Plugins, and other types of plugins. - [Internal Cascade API changelog](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/internal-cascade-api/internal-cascade-api-changelog.md): New methods added to existing Cascade API objects New com.hannonhill.cascade.apl.asset.common.PermissionLevel enum added with values NONE, READ and WRITE New methods added to com.hannonhill.cascade.apl.asset.home.PermissionsCapableAsset getAllPermissionLevel() - returns the PermissionLevel  - [Publish Triggers](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/publish-triggers.md): Publish Triggers are plug-ins that can be utilized during the publishing process. They allow developers to execute custom logic each time an asset (page, file, or other content item) is published. - [Getting started with REST](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/getting-started-with-rest.md): Worked read-then-edit examples against the REST API in jQuery, fetch, async/await, and PHP. - [REST API](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/index.md): Cascade CMS REST API is a lightweight API for interfacing with Cascade's Web Services. - [REST API operations](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/operations.md): Reference for every operation in the Cascade CMS REST API — read, edit, create, publish, workflow, message, and preference calls, each with its endpoint and a sample response. - [The {auth} placeholder](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/placeholders/auth.md): {auth} Either: The user's API Key can be provided within the request's Authorization header as a Bearer token.Example: Authorization: Bearer 27c03f58-7c79-45d1-aa8f-76d697bbb10d The user's username and password can be provided within the request's Authorization header using a Basic authent - [The {identifier} placeholder](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/placeholders/identifier.md): How to address an asset in a Cascade CMS REST API call — by site name and path, or by the asset's id — and when each form is the right one. - [REST API placeholders](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/placeholders/index.md): The placeholders that stand in for values in Cascade CMS REST API endpoint documentation — {auth} for credentials, {identifier} for the asset being addressed, and {wsdl} for the operation's message body. - [The {wsdl} placeholder](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/rest-api/placeholders/wsdl.md): {wsdl} JSON structure defined in Cascade instance's WSDL file, which can be viewed by appending /ws/services/AssetOperationService?wsdl to Cascade's URL in the web browser. - [How do I access a chooser field's chosen asset?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/access-chosen-asset.md): Check that an asset is actually chosen before reading its properties, using the API's asset property or an XPath test on the path element. - [Accessing data definition nodes in Velocity](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/accessing-data-definition-nodes-velocity.md): How to read structured data from a page's Data Definition with getStructuredDataNode() and getChild(): root-level nodes, nested children, multi-value variants, path syntax, and how to verify your access is working. - [Accessing page data in Velocity](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/accessing-page-data-velocity.md): A beginner's walkthrough of reading page data inside Cascade Velocity Formats: global variables, built-in metadata, dynamic metadata fields, and the most common page asset properties. - [How do I create an XML output for a page?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/create-xml-output-for-a-page.md): Add a non-publishable XML Output to a Configuration so you can view the system-generated XML for any page using it. - [Date Tool essentials](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/date-tool-essentials.md): Retrieve, parse, format, and compare dates in Velocity with the Date Tool, including how to handle the millisecond timestamps Cascade CMS stores. - [Filtering queries based on multi-value fields](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/filtering-queries-based-on-structured-data-values.md): The Query API cannot filter on checkbox or multi-select fields directly, so run the broader query and test each result with hasTextValue. - [Retrieving image dimensions](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/image-dimensions.md): Learn how to access an image's width and height in Cascade CMS using the Cascade API (via structured data node or locateFile) or an Index Block with Velocity. - [How do I include a page's ID in its contents?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/include-page-id-in-contents.md): Output the currentPage identifier from a Format attached to a head region, useful for deep linking from Siteimprove, DubBot, and similar tools. - [Formats](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/index.md): Formats transform the XML behind a Cascade CMS page into the markup you publish. How Velocity and XSLT differ, when to use each, and how to create and apply a Format. - [JSON schema for a page](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/json-schema-for-a-page.md): Build reusable page-level JSON-LD in Cascade CMS using Velocity, with region vs head-format patterns, #import usage, and metadata-first fallback/null-safe logic. - [Output content as JSON](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/output-content-as-json.md): Combine a skip-tag Template, a Format using SerializerTool.toJson inside a protect code section, and a JSON Output to publish content as a .json file. - [Query Tool directives](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/query-tool-directives.md): Introduced in Cascade CMS 8.26, Query Directives are an alternative to the .execute() method on the Query API. They process results one asset at a time instead of loading - [How do I sort on a Calendar field?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/sort-on-calendar-field.md): Calendar values are MM-dd-yyyy strings, so build a lookup table of numeric timestamps and sort on that instead. - [Testing for an empty WYSIWYG field](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/testing-for-an-empty-wysiwyg-field.md): A WYSIWYG field can hold plain text or HTML elements, so test both the element's value and whether it has children. - [How to update deprecated Velocity code](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/update-deprecated-velocity-code.md): Replacements for the reflection-based patterns that no longer work, mapped to their modern Velocity Tool equivalents. - [Best practices for performance](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/velocity-best-practices.md): When working with choosers, it is important to save repeated .asset calls to a variable and then access that variable's methods directly. Failure to do so will result in multiple r - [Velocity directives](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/velocity-directives.md): Reference for the core Velocity directives used in Cascade CMS, including #set, #if, #foreach, #break, #stop, #macro, #import, #evaluate, #define, and #parse, with practical examples and common pitfalls. - [Velocity Tools](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/velocity-tools.md): Cascade CMS's Velocity Tools are a collection of functions that can be used to retrieve and manipulate content in conjunction with Apache Velocity Template Language. - [Variable scope in Velocity](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/velocity-variable-scope.md): Understand how variable scope works in Velocity, including the difference between global and loop-scoped variables, common pitfalls with #set and null values, macro scope leaking, and when to use #define vs #set. - [How do I view sample XML when editing a Format?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/view-sample-xml-when-editing-format.md): Use the Preview Options dropdown when editing a Format to render sample XML from a Block, or a Block plus a context page. - [Hashmaps and arrays](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/working-with-hashmaps-arrays.md): Build and read hashmaps and arrays in Velocity — literal syntax, adding and retrieving entries, iterating them, and the type pitfalls that catch people out. - [Working with namespaces in Velocity](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/script-formats/working-with-namespaces-in-velocity.md): Three ways to reach a namespaced XML element: addNamespace, an XPath prefix, or XPath local-name() for hidden namespaces. - [How do I add a "title" tag to my page?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/seo/add-title-tag-to-page.md): Place the system-page-title tag inside your Template's title element so Cascade renders each page's metadata Title. - [Configuring a robots meta tag](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/seo/configure-noindex-nofollow.md): A worked example: a Metadata Set checkbox field plus a Velocity Format that outputs a robots meta tag with noindex and nofollow values. - [How do I include Open Graph or Twitter card meta tags in my page?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/seo/include-open-graph-or-twitter-card-meta-tags.md): Add a system region to your Template's head and attach a Format that generates social meta tags from the current page's metadata and structured data. - [SEO and Page Metadata](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/seo/index.md): Outputting the tags search engines and social platforms read — title, robots, canonical, Open Graph — and building an XML sitemap. - [How do I make an XML sitemap?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/seo/make-a-sitemap.md): A complete recipe for a sitemap page: the Velocity Format, Template, Index Block, Configuration, and Content Type it needs. - [How can I set up canonical tags?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/seo/set-up-canonical-tags.md): Two worked examples: a self-referencing canonical tag, and a Shared Field group that lets editors point a page at an alternative canonical URL. - [SOAP Web Services](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/soap-web-services-api/index.md): Web services provide Cascade CMS users with a powerful way to work with the system by providing a powerful back-end interface with which to interact. - [SOAP Web Services changelog](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/soap-web-services-api/soap-web-services-changelog.md): Release-by-release changes to the Cascade CMS SOAP Web Services API — new operations, new and modified fields, and behaviour changes. - [SOAP Web Services operations](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/soap-web-services-api/soap-web-services-operations.md): When looking through the WSDL, you can find all of the operations available along with their responses at the top. - [How do I add a code snippet to my content?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/strategy/add-code-snippet.md): Deciding where a snippet belongs — tag manager, Template, Configuration, or single page — and how to add it without tripping XML validation. - [Creating a sitemap](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/strategy/creating-a-sitemap-in-cascade-cms.md): A sitemap helps search engines crawl your site more efficiently. It provides a structured list of pages, improving SEO and ensuring updates are picked up faster. Sitemaps are especially important for large sites or those with complex folder structures. - [Implementation Strategy](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/strategy/index.md): Approaches to common build problems — sitemaps, code snippets, shared includes, and redesigning a site against existing content. - [How can I redesign a site using our existing content?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/strategy/redesign-a-site-existing-content.md): Add a second Output using your new Templates and publish it to a test Destination, then swap the default Output when the design goes live. - [Working with a collection of assets](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/strategy/working-with-a-collection-of-assets.md): There are many scenarios where you'll need to be able to iterate over a collection of assets within the CMS. - [Working with Server Side Includes](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/strategy/working-with-server-side-includes.md): Publish an HTML snippet as its own page, then pull it into other pages with an SSI directive so a change needs one publish instead of a full site publish. - [System pseudo-tags](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/system-pseudo-tags.md): System pseudo-tags are special system tags that instruct Cascade CMS to act on the content contained within them. - [Why am I seeing system-region tags around my published content?](https://www.hannonhill.com/cascadecms/latest/articles/developing-in-cascade/system-region-tags-in-published-content.md): Cascade adds system region tags when rendered content isn't valid XML. Wrap the region in a dummy tag inside a cascade-skip code section.