{"id":25217381,"url":"https://github.com/valtech-ch/aem-msm-tools","last_synced_at":"2025-04-05T09:22:27.409Z","repository":{"id":208887828,"uuid":"721193191","full_name":"valtech-ch/aem-msm-tools","owner":"valtech-ch","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-03T22:34:14.000Z","size":203,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-02-10T20:13:34.844Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valtech-ch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-11-20T14:46:34.000Z","updated_at":"2025-01-20T20:19:44.000Z","dependencies_parsed_at":"2023-11-27T11:43:50.472Z","dependency_job_id":null,"html_url":"https://github.com/valtech-ch/aem-msm-tools","commit_stats":null,"previous_names":["valtech-ch/aem-msm-tools"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtech-ch%2Faem-msm-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtech-ch%2Faem-msm-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtech-ch%2Faem-msm-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valtech-ch%2Faem-msm-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valtech-ch","download_url":"https://codeload.github.com/valtech-ch/aem-msm-tools/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247313257,"owners_count":20918601,"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":"2025-02-10T20:13:37.283Z","updated_at":"2025-04-05T09:22:27.369Z","avatar_url":"https://github.com/valtech-ch.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Valtech - AEM MSM Tools\n\nThis is a standalone AEM module which builds on top of the standard AEM MSM functionality and enhances it with convenient tools for day-to-day work the multi-site manager.\nIt consists of the following tools:\n* [Blueprint Overview](#blueprint-overview)\n* [Blueprint Manager](#blueprint-manager)\n* [Live Copy Manager](#live-copy-manager)\n\n## Blueprint Overview\n\nIt has two main functions:\n* Show an overview of all the blueprints on the whole platform\n* Allow jumping to the Blueprint Manager (see next section) for the chosen blueprint\n\nIt can be reached over the AEM Menu `Tools -\u003e Valtech - MSM Tools -\u003e Blueprint Overview`\nor via the direct path: `/apps/valtech-msm-tools/pages/blueprintoverview.html`\n\nBy adding the blueprint configuration path as a suffix to the URL/path (e.g. `/apps/valtech-msm-tools/pages/blueprintoverview.html/apps/msm/my-site`), one can limit which blueprints will be listed.  \n\n![Blueprint Overview Screen](docs/images/screen-blueprint-overview.png)\n\n## Blueprint Manager\n\nGives a general overview of all the live copies for the given blueprint.\n\nIt has the following functions:\n* List all the live copies of a given blueprint (single-level or nested as well - depends on the configuration)\n* Display the status of each live copy (Up-to-date or Outdated, also giving the number of pages which are outdated)\n* Display the last rollout date performed on each live copy\n* Allow sending a notification e-mail to the content owners of each live copy with a link to the Live Copy Manager (see section bellow)\n* Allow jumping to the Live Copy Manager (see next section) for the chosen live copy\n\nIt can be reached over the Blueprint Overview page or via direct links with the parameterized path:\n`/apps/valtech-msm-tools/pages/blueprintmanager.html/path/to/blueprint/root`\n\n![Blueprint Manager Screen](docs/images/screen-blueprint-manager.png)\n\nThe notification action can be enabled over the configuration (see configuration section).\nThe sender is the first configured e-mail in the blueprint content owners, and the receivers are all configured content owner e-mails of the chosen live copies.\nThe content owners must be configured on the blueprint or live copy root page properties:\n\n![Blueprint Manager Notification Screen](docs/images/screen-blueprint-manager-notification.png)\n\n## Live Copy Manager\n\nGives a detailed overview of all the pages in a given live copy site.\n\nIt has the following functions:\n* List all the pages of a live copy (depending on the configuration - can leave out up-to-date pages which normally don't require editor attention)\n* For each live copy, show it's state, rollout date and publication status\n* Depending on the state and number of selected pages, allow various actions to be performed\n\nIt can be reached over the Blueprint Manager page or via direct links with the parameterized path:\n`/apps/valtech-msm-tools/pages/livecopymanager.html/path/to/live-copy/root`\n\n![Live Copy Manager Screen](docs/images/screen-livecopy-manager.png)\n\n#### States\n\n* **Up to date** - page is up-to-date\n* **Up to date, not reviewed** - page is up-to-date, but not yet reviewed (also see configuration)\n* **Outdated** - page is outdated\n* **Not Ready** - blueprint page is modified but not published yet (also see configuration)\n* **New** - new page added to blueprint but does not exist in live copy yet\n* **Moved** - page was moved in the blueprint\n* **Moved / Outdated** - page was moved and updated in the blueprint\n* **Suspended** - page updates have been suspended\n* **Local Only** - page created and exists only in live copy\n* **Unknown** - status unknown\n* **Conflicting** - new page under the same path added to blueprint and live copy independently\n* **Deleted** - page deleted in blueprint\n\n#### Actions \n\n![Live Copy Manager Screen](docs/images/screen-livecopy-manager-actions.png)\n\n* **Update** - synchronizes the page with the blueprint and transitions the state into either `Up to date` or `Up to date, not reviewed` (depends on configuration). \nShown only for pages in state `New`, `Deleted`, `Outdated`, `Moved`, `Moved / Outdated` and `Conflicting`.\n* **Mark as Reviewed** - Shown only for pages in the state `Up to date, not reviewed`. Clicking it will transition the page into `Up to date`\n* **Show changes** - goes to the AEM page version comparison tool, showing \nchanges on the according blueprint page since the last time the live copy was rolled out. Mind that it does not compare \nthe live copy page with the blueprint page, as that would show localized content as changes as well, which normally \nshould not be relevant. Shown only when according page versions are still present (were not purged) and the blueprint \nand live copy page have a connection (e.g. won't be shown for `Conflicting`, `Local Only`, etc.) \n* **Edit** - Jumps to the edit mode of the chosen page. Shown for all states except `New` (as the page does not exist in the live copy yet)\n\n## Configurations\n\nThere are two services which can and should be configured to tailor the tool to your MSM setup:\n\n### Config Service\n\nService class: **com.valtech.aem.msmtools.core.services.impl.ConfigServiceImpl**\n\n| Name | Label | Description | Default Value |\n|---|:---|:---|:---:|\n| blueprintRootMaxDepth | Blueprint Root Max Depth | How deep the page tree traversal will go to look for blueprint sites | 3 |\n| resolveNestedLiveCopies | Resolve Nested Live Copies | If the blueprint manager should list nested live copies (live copies of live copies) | true |\n| regionPageDepth | Region / Country page depth | At which level the country/region page is in the page tree structure. /content is considered depth 0 | 2 |\n| languagePageDepth | Language page depth | At which level the language page is in the page tree structure. /content is considered depth 0 | 3 |\n| allowEmailNotificationsAction | Allow e-mail notification action | Show a notification action in the blueprint manager, which allows to send e-mails to live copy site owners | false |\n| allowMarkAsDoneAction | Allow review action | Once a page is updated from the blueprint, an additional action becomes available to confirm that it was also reviewed and any potential manual customization done. | false |\n| allowVersionCompareAction | Allow version comparison action | Show an action, which would allow the editor to see which changes were done on the blueprint page since the last rollout | true |\n| blueprintPagesMustBePublished | Blueprint page must be published | Treat live copy pages as up-to-date, if the blueprint page is not published, or it was not published since the last modification. | false |\n| showAllPagesInLiveCopyManager | Show all pages in live copy manager | Disabling this option allows to show only those live copy page, which need attention by the editors | true |\n| pageMoveRolloutActionUsed | Page Move Rollout Action Used | On moved blueprint page rollout, live copy pages are moved as well. This depends on your configured live copy rollout actions. | true |\n\n### Notification Service\n\nService class: **com.valtech.aem.msmtools.core.services.impl.NotificationServiceImpl**\n\n| Name | Label | Description | Default Value |\n|---|:---|:---|:---:|\n| subject | Default E-mail Subject | Will be used if the editor did not provide a custom notification e-mail subject. |  |\n| emailContent | Default E-mail Content | Will be used if the editor did not provide a custom notification e-mail subject. |  |\n| siteOwnerEmailPageProperty | Site Owner E-mail Page Property Name | Page property where site owner e-mails are stored (may be of type String[]), to which the notification e-mails will be sent. | siteOwnerEmail |\n## Code\n\nThe project/code uses java 11 and is compatible only with AEMaaCS. \n\n### Modules\n\nThe main parts of the template are:\n\n* core: Java bundle containing all core functionality like OSGi services, models or servlets\n* ui.apps: contains the /apps part of the project, ie JS\u0026CSS clientlibs, components, and templates\n* all: a single content package that embeds all of the compiled modules (bundles and content packages)\n\n### How to build\n\nTo build all the modules run in the project root directory the following command with Maven 3:\n\n    mvn clean install\n\nTo build all the modules and deploy the `all` package to a local instance of AEM, run in the project root directory the following command:\n\n    mvn clean install -PautoInstallSinglePackage\n\nOr to deploy it to a publish instance, run\n\n    mvn clean install -PautoInstallSinglePackagePublish\n\nOr alternatively\n\n    mvn clean install -PautoInstallSinglePackage -Daem.port=4503\n\nOr to deploy only the bundle to the author, run\n\n    mvn clean install -PautoInstallBundle\n\nOr to deploy only a single content package, run in the sub-module directory (i.e `ui.apps`)\n\n    mvn clean install -PautoInstallPackage\n\n### Testing - Unit tests\n\nThis show-cases classic unit testing of the code contained in the bundle. To\ntest, execute:\n\n    mvn clean test\n    \n### Embedding Into Existing Projects\n\nYou can embed this tool into other projects by creating a local maven repo in your project by adding the following \nrepo definition in your main POM:\n\n    \u003crepositories\u003e\n        \u003crepository\u003e\n            \u003cid\u003elocal-repo\u003c/id\u003e\n            \u003curl\u003efile:nonadobedependencies\u003c/url\u003e\n            \u003cname\u003eRepository\u003c/name\u003e\n            \u003creleases\u003e\n                \u003cenabled\u003etrue\u003c/enabled\u003e\n                \u003cupdatePolicy\u003enever\u003c/updatePolicy\u003e\n            \u003c/releases\u003e\n            \u003csnapshots\u003e\n                \u003cenabled\u003efalse\u003c/enabled\u003e\n            \u003c/snapshots\u003e\n        \u003c/repository\u003e\n    \u003c/repositories\u003e \n    \nAfterwards, download the desired release package and execute the following command:\n\n    mvn install:install-file -Dfile={downloaded package file} -DgroupId=com.valtech.aem -DartifactId=msm-tools.all -Dversion={version} -Dpackaging=zip -DlocalRepositoryPath=./nonadobedependencies\n\nThe last step is to include the package as a dependency in your `all` package, by using the dependency definition:\n\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.valtech.aem\u003c/groupId\u003e\n      \u003cartifactId\u003emsm-tools.all\u003c/artifactId\u003e\n      \u003cversion\u003e{version}\u003c/version\u003e\n      \u003ctype\u003ezip\u003c/type\u003e\n    \u003c/dependency\u003e\n\nAnd including into the `embeddeds` definition of your `filevault-package-maven-plugin`:\n    \n    \u003cebedded\u003e\n      \u003cgroupId\u003ecom.valtech.aem\u003c/groupId\u003e\n      \u003cartifactId\u003emsm-tools.all\u003c/artifactId\u003e\n      \u003ctype\u003ezip\u003c/type\u003e\n      \u003ctarget\u003e{location of your other vendor packages under /apps}\u003c/target\u003e\n    \u003c/ebedded\u003e\n\n## License\n\nThe AEM MSM Tools module is licensed under the [MIT LICENSE](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaltech-ch%2Faem-msm-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaltech-ch%2Faem-msm-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaltech-ch%2Faem-msm-tools/lists"}