Problem
System maintenance operations (search-replace, fix assets, drop old versions, clean orphan assets, delete contentlets, delete pushed assets) are currently only accessible via DWR calls to CMSMaintenanceAjax and Struts form actions in ViewCMSMaintenanceAction. Need REST endpoints to answer "How do I clean up and fix the system?"
Goal
Provide REST endpoints for all maintenance tools operations. Long-running operations (fix assets, clean orphan assets) use a start/poll pattern — POST to start, GET to check progress.
APIs
POST /v1/maintenance/_searchAndReplace — DB-wide find/replace across content tables
POST /v1/maintenance/_fixAssets — Start fix assets inconsistencies task
GET /v1/maintenance/_fixAssets — Poll fix assets progress
DELETE /v1/maintenance/_oldVersions — Drop old versions of versionable objects by date
POST /v1/maintenance/_cleanAssets — Start orphan binary asset cleanup
GET /v1/maintenance/_cleanAssets — Poll orphan cleanup progress
DELETE /v1/maintenance/_contentlets — Bulk delete contentlets by identifier list
DELETE /v1/maintenance/_pushedAssets — Delete all push publishing history
Personas
- Developer Teams — Need REST APIs for Angular Tools tab
- System Administrators — Need to perform system maintenance, cleanup old data, fix inconsistencies
Legacy Reference
- DWR Class:
CMSMaintenanceAjax.java — fixAssetsInconsistencies, removeOldVersions, cleanAssets, deleteContentletsFromIdList, deletePushedAssets
- Struts Action:
ViewCMSMaintenanceAction.java — searchAndReplace (cmd=searchandreplace)
- Backend Services:
MaintenanceUtil.DBSearchAndReplace(), CMSMaintenanceFactory.deleteOldAssetVersions(), CleanAssetsThread, FixTasksExecutor
- JSP:
view_cms_maintenance.jsp lines 1541–1851 (Tools tab)
- Target Class:
MaintenanceResource.java (/api/v1/maintenance)
Problem
System maintenance operations (search-replace, fix assets, drop old versions, clean orphan assets, delete contentlets, delete pushed assets) are currently only accessible via DWR calls to
CMSMaintenanceAjaxand Struts form actions inViewCMSMaintenanceAction. Need REST endpoints to answer "How do I clean up and fix the system?"Goal
Provide REST endpoints for all maintenance tools operations. Long-running operations (fix assets, clean orphan assets) use a start/poll pattern — POST to start, GET to check progress.
APIs
POST /v1/maintenance/_searchAndReplace— DB-wide find/replace across content tablesPOST /v1/maintenance/_fixAssets— Start fix assets inconsistencies taskGET /v1/maintenance/_fixAssets— Poll fix assets progressDELETE /v1/maintenance/_oldVersions— Drop old versions of versionable objects by datePOST /v1/maintenance/_cleanAssets— Start orphan binary asset cleanupGET /v1/maintenance/_cleanAssets— Poll orphan cleanup progressDELETE /v1/maintenance/_contentlets— Bulk delete contentlets by identifier listDELETE /v1/maintenance/_pushedAssets— Delete all push publishing historyPersonas
Legacy Reference
CMSMaintenanceAjax.java— fixAssetsInconsistencies, removeOldVersions, cleanAssets, deleteContentletsFromIdList, deletePushedAssetsViewCMSMaintenanceAction.java— searchAndReplace (cmd=searchandreplace)MaintenanceUtil.DBSearchAndReplace(),CMSMaintenanceFactory.deleteOldAssetVersions(),CleanAssetsThread,FixTasksExecutorview_cms_maintenance.jsplines 1541–1851 (Tools tab)MaintenanceResource.java(/api/v1/maintenance)