SkillAgentSearch skills...

Acm

AEM Content Manager (ACM) – Permissions & Content Updates as Code

Install / Use

/learn @wttech/Acm

README

<a href="https://www.vml.com/expertise/enterprise-solutions" target="_blank"> <picture> <source srcset="docs/vml-logo-white.svg" media="(prefers-color-scheme: dark)"> <img src="docs/vml-logo-black.svg" alt="VML Logo" height="100"> </picture> </a>

GitHub tag (latest SemVer) GitHub All Releases Check Apache License, Version 2.0, January 2004

AEM Content Manager (ACM)

<p> <picture> <source srcset="docs/acm-logo-white.svg" media="(prefers-color-scheme: dark)"> <img src="docs/acm-logo-black.svg" alt="VML Logo" height="140"> </picture> </p>

Manage permissions & content updates as code.

ACM for Adobe Experience Manager (AEM) streamlines workflows and boosts productivity with an intuitive interface and robust features. It automates bulk content and permission changes, making it ideal for content migration and large-scale permission management. ACM offers an IDE-like experience with code completion, auto-import, and on-the-fly compilation.

It works seamlessly across AEM on-premise, AMS, and AEMaaCS environments.

References

AdaptTo 2025 Video

Screenshots

<img src="docs/screenshot-dashboard.png" width="720" alt="ACM Dashboard">

Table of Contents

Key Features

All-in-one Solution

ACM is a comprehensive alternative to tools like APM, AECU, AEM Groovy Console, and AC Tool. It leverages the Groovy language, which is familiar to most Java developers, eliminating the need to learn custom YAML syntax or languages/grammars. Enjoy a single, painless tool setup in AEM (Adobe Experience Manager) projects with no hooks and POM updates.

New Approach

Experience a different way of using Groovy scripts. ACM ensures the instance is healthy before scripts decide when to run: once, periodically, or at an exact date and time. Execute scripts in parallel or sequentially, offering unmatched flexibility and control.

Content Management

Effortlessly migrate pages and components between versions. Ensure content integrity and resolve issues with confidence.

Permissions Management

Apply JCR permissions dynamically. Manage permissions seamlessly during site creation, blueprinting, and for live copies, language copies, and other AEM-specific replication scenarios.

Data Imports & Exports

Effortlessly integrate data from external sources into the JCR repository, enhancing content management capabilities. By simplifying data import implementation, ACM allows developers to focus more on developing better components and presenting data effectively, ensuring a user-friendly experience.

Installation

Package Installation

The ready-to-install AEM packages are available on:

There are two ways to install AEM Content Manager on your AEM (Adobe Experience Manager) instances:

  1. Using the 'all' package:
    • Recommended for fresh AEM instances.
    • This package will also install Groovy Bundles (groovy and groovy-templates).
  2. Using the 'minimal' package:
    • Recommended for AEM instances that already contain some dependencies shared with other tools.
    • This package does not include Groovy bundles, which can be provided by other tools like AEM Easy Content Upgrade (AECU) or AEM Groovy Console.

For AEM On-Premise and AEM Managed Service (AMS) deployments, just install the ACM package using the AEM Package Manager.

:construction: Restart required: Basic ACLs and paths are created via repo-init script after installing the ACM package. A reboot is strongly recommended, as the health checker may block code execution until the restart is complete. :construction:

For AEMaaCS deployments, embed the ACM package as a part of project-specific 'all' package like other vendor packages in the AEM Project Archetype:

Adjust file 'all/pom.xml':

  1. Add dependency to all or min package in the dependencies section:

    <dependency>
        <groupId>dev.vml.es</groupId>
        <artifactId>acm.all</artifactId>
        <version>${acm.version}</version>
        <type>zip</type>
    </dependency>
    
  2. Add embedding in filevault-package-maven-plugin configuration:

    <embedded>
        <groupId>dev.vml.es</groupId>
        <artifactId>acm.all</artifactId>
        <type>zip</type>
        <target>/apps/${appId}-vendor-packages/application/install</target>
    </embedded>
    

    Remember to replace ${acm.version} and ${appId} with the actual values.

    Repeat the same for ui.content.example package if you want to install demonstrative ACM scripts to get you started quickly.

Tools Access Configuration

The default settings are defined in the repo init OSGi config, which effectively restrict access to the tool and script execution to administrators only - a recommended practice for production environments.

If you require further customization, you can create your own repo init OSGi config to override or extend the default configuration.

Feature Permissions

ACM supports fine-grained permission control through individual features. This allows you to grant specific capabilities to different user groups without providing full access to ACM tool. For a complete list of available features, see the ACM features directory.

Example: Create groups for full and limited access:

service.ranking=I"100"
scripts=["  
    set ACL for everyone
        deny jcr:read on /apps/cq/core/content/nav/tools/acm
        deny jcr:read on /apps/acm
    end

    create group acm-admins
    set ACL for acm-admins
        allow jcr:read on /apps/cq/core/content/nav/tools/acm
        allow jcr:read on /apps/acm
    end

    create group acm-script-users
    set ACL for acm-script-users
        allow jcr:read on /apps/cq/core/content/nav/tools/acm
        allow jcr:read on /apps/acm/gui
        allow jcr:read on /apps/acm/api

        allow jcr:read on /apps/acm/feature/script/list
        allow jcr:read on /apps/acm/feature/script/view
        allow jcr:read on /apps/acm/feature/execution/view

        allow jcr:read on /conf/acm/settings/script
    end
"]

Later on when AEM is running, just assign users to the created groups (acm-admins or `acm-sc

View on GitHub
GitHub Stars32
CategoryContent
Updated22d ago
Forks4

Languages

Java

Security Score

95/100

Audited on Mar 10, 2026

No findings