{"id":20020658,"url":"https://github.com/netcentric/accesscontroltool","last_synced_at":"2025-05-16T07:02:52.941Z","repository":{"id":25394158,"uuid":"28822832","full_name":"Netcentric/accesscontroltool","owner":"Netcentric","description":"Rights and roles management for AEM made easy","archived":false,"fork":false,"pushed_at":"2025-05-14T18:43:38.000Z","size":5079,"stargazers_count":153,"open_issues_count":64,"forks_count":92,"subscribers_count":34,"default_branch":"develop","last_synced_at":"2025-05-16T07:01:41.986Z","etag":null,"topics":["access-control","access-management","acl-entries","acls","aem","crx","oak","sling"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcentric.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2015-01-05T17:14:28.000Z","updated_at":"2025-05-14T18:43:42.000Z","dependencies_parsed_at":"2024-05-10T10:34:49.528Z","dependency_job_id":"58487cc8-3234-461b-a4ba-2388b21ccfa9","html_url":"https://github.com/Netcentric/accesscontroltool","commit_stats":null,"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcentric%2Faccesscontroltool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcentric%2Faccesscontroltool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcentric%2Faccesscontroltool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcentric%2Faccesscontroltool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcentric","download_url":"https://codeload.github.com/Netcentric/accesscontroltool/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485047,"owners_count":22078767,"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":["access-control","access-management","acl-entries","acls","aem","crx","oak","sling"],"created_at":"2024-11-13T08:33:32.013Z","updated_at":"2025-05-16T07:02:52.859Z","avatar_url":"https://github.com/Netcentric.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Maven Central](https://maven-badges.herokuapp.com/maven-central/biz.netcentric.cq.tools.accesscontroltool/accesscontroltool/badge.svg)](https://maven-badges.herokuapp.com/maven-central/biz.netcentric.cq.tools.accesscontroltool/accesscontroltool)\n[![License](https://img.shields.io/badge/License-EPL%201.0-red.svg)](https://opensource.org/licenses/EPL-1.0)\n[![Build Status](https://github.com/netcentric/accesscontroltool/actions/workflows/maven.yml/badge.svg?branch=develop)](https://github.com/Netcentric/accesscontroltool/actions/workflows/maven.yml)\n[![SonarCloud Status](https://sonarcloud.io/api/project_badges/measure?project=Netcentric_accesscontroltool\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=Netcentric_accesscontroltool)\n[![SonarCloud Coverage](https://sonarcloud.io/api/project_badges/measure?project=Netcentric_accesscontroltool\u0026metric=coverage)](https://sonarcloud.io/project/activity?id=Netcentric_accesscontroltool\u0026graph=coverage)\n\nAccess Control Tool for Adobe Experience Manager\n================================================\n\nThe Access Control Tool for Adobe Experience Manager (AC Tool) simplifies the specification and deployment of complex [Access Control Lists in AEM](https://experienceleague.adobe.com/docs/experience-manager-65/administering/security/security.html?lang=en#permissions-in-aem) as well as users and groups.\nInstead of existing solutions that build e.g. a content package with actual ACL nodes you can write simple configuration files and deploy them with your content packages. See [comparison to other approaches](docs/Comparison.md) for a comprehensive overview.\n\nFeatures:\n\n* easy-to-read [Yaml](https://yaml.org/) configuration file format\n* run mode support\n* automatic installation with install hook\n* cleans obsolete ACL entries when configuration is changed\n* ACLs can be exported\n* management of user's key stores\n* stores history of changes\n* ensured order of ACLs\n* built-in expression language to reduce rule duplication\n\nSee also our talk at [adaptTo() 2016](https://adapt.to/2016/en/schedule/ac-tool.html)\n\n# Requirements\n\nThe AC Tool requires **Java 8 and AEM 6.4** or above (use v2.x for older AEM versions which runs on Java 7 and AEM 6.1 SP1 or above) for on-premise installations. Since v2.5.0 **[AEM as a Cloud Service](https://business.adobe.com/products/experience-manager/cloud-service.html)** is supported, see [Startup Hook](https://github.com/Netcentric/accesscontroltool/blob/develop/docs/ApplyConfig.md#startup-hook) for details.\n\nIt is also possible to run the AC Tool on **Apache Sling 11** or above (ensure system user `actool-service` has `jcr:all` permissions on root). When using the AC Tool with Sling, actions in ACE definitions and encrypted passwords cannot be used. To use the `externalId` attribute, ensure bundle `oak-auth-external` installed (not part of default Sling distribution).\n\n# Installation\n\nThe [content package](https://jackrabbit.apache.org/filevault) is available from [the Maven Central repository](https://repo1.maven.org/maven2/biz/netcentric/cq/tools/accesscontroltool/accesscontroltool-package/) \n\nFor quick ad hoc testing and getting to know the AC Tool, the easiest is to\n\n* Install the latest version via AEM's package manager\n* Create a sample YAML file in CRXDE (e.g. `/apps/actool-test/test.yaml`)\n* Apply this config using the UI (see [User Interface](#user-interface) below)\n\nFor properly integrating the AC Tool in your own deployment package see [Installation](docs/Installation.md).\n\n# Configuration of the AC Tool\n\nYou need to setup [Yaml configuration files](docs/Configuration.md) to specify your users, groups and ACL entries. See also the [best practices](docs/BestPractices.md) for hints on structuring.\n\nThere are also some [advanced configuration options](docs/AdvancedFeatures.md) supported such as loops, conditional statements and permissions for anonymous.\n\n# User Interface\n\nThere is a [Felix Web Console plugin (at `/system/console/actool`)](docs/ApplyConfig.md#web-console) as well as a [Touch UI console (at `/mnt/overlay/netcentric/actool/content/overview.html`)](docs/ApplyConfig.md#touch-ui) to apply configurations and to inspect previous executions of the tool. Additionally there is a [JMX interface](docs/Jmx.md) for some advanced use cases.\n\n# Applying AC Tool Configurations\n\nBest practice is to apply AC Tool Configurations using the install hook (or startup hook for Cloud Service) during your project's software package installation. See [applying the ACL entries](docs/ApplyConfig.md) for a full list of options.\n\n# Migration to AC Tool\n\nYou can easily migrate to AC Tool following [four simple steps](docs/Migration.md).\n\n# Questions\n\nIf you have any questions which are still answered after reading the [documentation](docs/) feel free to raise them in the [discussion forum](https://github.com/Netcentric/accesscontroltool/discussions).\n\n# Contributions\n\nContributions are highly welcome in the form of [issue reports](https://github.com/Netcentric/accesscontroltool/issues), [pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) or providing help in our [discussion forum](https://github.com/Netcentric/accesscontroltool/discussions).\n\n# Building the packages from source\n\nIf needed you can [build the AC Tool yourself](docs/BuildPackage.md).\n\n# License\n\nThe AC Tool is licensed under the [Eclipse Public License - v 1.0](LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcentric%2Faccesscontroltool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcentric%2Faccesscontroltool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcentric%2Faccesscontroltool/lists"}