{"id":19537041,"url":"https://github.com/cqsupport/content-tools","last_synced_at":"2026-03-19T10:20:51.719Z","repository":{"id":214372790,"uuid":"736354458","full_name":"cqsupport/content-tools","owner":"cqsupport","description":"AEM tools to manage content, such as replicate from on Author to another, or purge content without using a query.","archived":false,"fork":false,"pushed_at":"2025-02-25T23:54:52.000Z","size":441,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-26T00:27:50.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cqsupport.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-27T17:04:13.000Z","updated_at":"2025-02-25T23:54:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"cbedd455-aace-4376-95ff-64ac7d3839c3","html_url":"https://github.com/cqsupport/content-tools","commit_stats":null,"previous_names":["cqsupport/content-tools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cqsupport%2Fcontent-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cqsupport%2Fcontent-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cqsupport%2Fcontent-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cqsupport%2Fcontent-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cqsupport","download_url":"https://codeload.github.com/cqsupport/content-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240790516,"owners_count":19858049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T02:25:38.202Z","updated_at":"2026-02-10T15:11:39.527Z","avatar_url":"https://github.com/cqsupport.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# content-tools\nAEM tools to manage content, such as replicate from on Author to another, or purge content without using a query.\n\n* [activate-tree-extension.zip](activate-tree-extension-2.3.zip) Extension to AEM \u003e Tools \u003e Replication \u003e Activate Tree, where you can specify the replication agent. Useful for transferring content from one Author to another without a package or sending a cache invalidation request directly to the Dispatcher.\n* [deleteproperty.zip](deleteproperty-1.0.zip) Remove a property from nodes via traversal or query. Useful for cleaning up unnecessary properties.\n* [fix-missing-asset-metadata.zip](fix-missing-asset-metadata-2.0.zip) Traverses a path and finds dam:Asset nodes that are missing the jcr:content/metadata subnodes. If found, it adds the node and runs the specified workflow on it.\n* [purge-launches.zip](purge-launches-1.1.zip) Purge standard launches by walking down the JCR tree starting at /content/launches, looking for cq:Page nodes under /content/launches/YYYY/MM/DD that have liveDate \u003c \"now - age\" days. If liveDate (Launch Date) does not exist, then it uses jcr:created (the date the launch was created). Does not use a query.\n* [purge-translation-launches.zip](purge-translation-launches-1.1.zip) Purge translation launches by walking down the JCR tree starting at /content/launches, looking for cq:Page nodes under /content/launches/YYYY/MM/DD that are older than \"age\" days. Date property is either lastPromoted or jcr:created. Does not use a query.\n* [purge-users.zip](purge-users-1.0.zip) Purge users by walking down the JCR tree starting at /home/users, looking for rep:User nodes. Does not use a query.\n* [purge-workflows.zip](purge-workflows-1.4.zip) Purge completed workflows by walking down the JCR tree starting at /var/workflow/instances, looking for cq:Workflow nodes that have an endTime \u003c \"now - age\" days. Does not use a query. Useful if the OOTB workflow purge fails due to query traversal limits.\n* [execute-query.zip](execute-query-1.4.zip) Execute a user-defined query in any of the supported query languages.\n* [unlock-tree.zip](unlock-tree-script-1.3.zip) Traverses a tree of nodes, unlocks both pages and assets that are locked.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcqsupport%2Fcontent-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcqsupport%2Fcontent-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcqsupport%2Fcontent-tools/lists"}