{"id":20509134,"url":"https://github.com/shinesolutions/aem-stack-manager-messenger","last_synced_at":"2025-04-13T22:22:37.411Z","repository":{"id":46161691,"uuid":"80390373","full_name":"shinesolutions/aem-stack-manager-messenger","owner":"shinesolutions","description":"Send messages to AEM Stack Manager via SNS Topic","archived":false,"fork":false,"pushed_at":"2024-05-07T06:25:57.000Z","size":366,"stargazers_count":2,"open_issues_count":9,"forks_count":9,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-27T12:46:22.455Z","etag":null,"topics":["aem","aem-opencloud","aws","environment-manager","stack-management"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shinesolutions.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-30T03:14:51.000Z","updated_at":"2024-05-07T06:26:00.000Z","dependencies_parsed_at":"2023-02-14T02:46:21.758Z","dependency_job_id":"93ca3de5-ea0b-4947-bab0-95c7baf0c7a6","html_url":"https://github.com/shinesolutions/aem-stack-manager-messenger","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-stack-manager-messenger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-stack-manager-messenger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-stack-manager-messenger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinesolutions%2Faem-stack-manager-messenger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shinesolutions","download_url":"https://codeload.github.com/shinesolutions/aem-stack-manager-messenger/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248789774,"owners_count":21161891,"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":["aem","aem-opencloud","aws","environment-manager","stack-management"],"created_at":"2024-11-15T20:22:43.983Z","updated_at":"2025-04-13T22:22:37.348Z","avatar_url":"https://github.com/shinesolutions.png","language":"Shell","readme":"[![Build Status](https://github.com/shinesolutions/aem-stack-manager-messenger/workflows/CI/badge.svg)](https://github.com/shinesolutions/aem-stack-manager-messenger/actions?query=workflow%3ACI)\n[![Known Vulnerabilities](https://snyk.io/test/github/shinesolutions/aem-stack-manager-messenger/badge.svg)](https://snyk.io/test/github/shinesolutions/aem-stack-manager-messenger)\n\nAEM Stack Manager Messenger\n---------------------------\n\nA set of [Ansible](https://www.ansible.com/) playbooks for triggering events on [AEM Stack Manager](https://github.com/shinesolutions/aem-stack-manager-cloud) environment which is built using [AEM AWS Stack Builder](https://github.com/shinesolutions/aem-aws-stack-builder).\n\nLearn more about AEM Stack Manager Messenger:\n\n* [Installation](https://github.com/shinesolutions/aem-stack-manager-messenger#installation)\n* [Configuration](https://github.com/shinesolutions/aem-stack-manager-messenger/blob/master/docs/configuration.md)\n* [Usage](https://github.com/shinesolutions/aem-stack-manager-messenger#usage)\n* [Testing](https://github.com/shinesolutions/aem-stack-manager-messenger#testing)\n* [Frequently Asked Questions](https://github.com/shinesolutions/aem-stack-manager-messenger/blob/master/docs/faq.md)\n\nAEM Stack Manager Messenger is part of [AEM OpenCloud](https://aemopencloud.io) platform.\n\nInstallation\n------------\n\n- Either clone AEM Stack Manager Messenger `git clone https://github.com/shinesolutions/aem-stack-manager-messenger.git` or download one of the [released versions](https://github.com/shinesolutions/aem-stack-manager-messenger/releases)\n- Install the following required tools:\n  * [Python](https://www.python.org/downloads/) version 2.7.x\n  * [GNU Make](https://www.gnu.org/software/make/)\u003cbr/\u003e\n\n  Alternatively, you can use [AEM Platform BuildEnv](https://github.com/shinesolutions/aem-platform-buildenv) Docker container to run AEM Stack Manager Messenger build targets.\n- Resolve the [Python packages](https://github.com/shinesolutions/aem-stack-manager-messenger/blob/master/requirements.txt) dependencies by running `make deps`\n\nUsage\n-----\n\n- Create [configuration file](https://github.com/shinesolutions/aem-stack-manager-messenger/blob/master/docs/configuration.md)\n- Execute the AEM Stack Manager events:\n\nDeploy a set of AEM Packages and Dispatcher artifacts into an AEM environment using a [Deployment Descriptor](https://github.com/shinesolutions/aem-aws-stack-builder/blob/master/docs/descriptors.md#deployment-descriptor) file:\n\n    make deploy-artifacts-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      descriptor_file=deploy-artifacts-descriptor.json\n\n    make deploy-artifacts-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      descriptor_file=deploy-artifacts-descriptor.json\n\nDeploy a single AEM Package into an AEM instance:\n\n    make deploy-artifact \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      aem_id=author \\\n      source=s3://s3bucket/path/aem-helloworld-content-0.0.1-SNAPSHOT.zip \\\n      group=shinesolutions \\\n      name=aem-helloworld-content \\\n      version=0.0.1 \\\n      replicate=true \\\n      activate=false \\\n      force=true\n\nDisable SAML on an AEM instance:\n\n    make disable-saml \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      aem_id=author path='/'\n\nEnable SAML with filepath to SAML certificate on an AEM instance:\n\n    make enable-saml \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      aem_id=author path='/' \\\n      file=\"s3://aem-opencloud/adobeaemcloud/certs/saml_cert.pem\" \\\n      assertion_consumer_service_url=\"https://author.aemopencloud.net:443/saml_login\" \\\n      service_provider_entity_id=AEMSSO \\\n      idp_url=\"https://federation.server.com\" \\\n      create_user=true \\\n      default_groups=content-authors \\\n      group_membership_attribute=groupMembership \\\n      handle_logout=true \\\n      idp_http_redirect=false \\\n      logout_url=\"https://accounts.google.com/logout\" \\\n      name_id_format='urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress' \\\n      signature_method=\"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\" \\\n      synchronize_attributes=\"givenName=profile/givenName,familyName=profile/familyName,mail=profile/email\" \\\n      use_encryption=false \\\n      user_id_attribute=NameID\n\nEnable SAML with IDP Certalias of the SAML certificate as in the AEM Truststore on an AEM instance:\n\n    make enable-saml \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      aem_id=author path='/' \\\n      idp_cert_alias='certalias_1234' \\\n      assertion_consumer_service_url=\"https://author.aemopencloud.net:443/saml_login\" \\\n      service_provider_entity_id=AEMSSO \\\n      idp_url=\"https://federation.server.com\" \\\n      create_user=true \\\n      default_groups=content-authors \\\n      group_membership_attribute=groupMembership \\\n      handle_logout=true \\\n      idp_http_redirect=false \\\n      logout_url=\"https://accounts.google.com/logout\" \\\n      name_id_format='urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress' \\\n      signature_method=\"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\" \\\n      synchronize_attributes=\"givenName=profile/givenName,familyName=profile/familyName,mail=profile/email\" \\\n      use_encryption=false \\\n      user_id_attribute=NameID\n\nEnable SAML with defined SERIAL number of the SAML certificate on an AEM instance:\n\n    make enable-saml \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      aem_id=author path='/' \\\n      serial='1234567890' \\\n      assertion_consumer_service_url=\"https://author.aemopencloud.net:443/saml_login\" \\\n      service_provider_entity_id=AEMSSO \\\n      idp_url=\"https://federation.server.com\" \\\n      create_user=true \\\n      default_groups=content-authors \\\n      group_membership_attribute=groupMembership \\\n      handle_logout=true \\\n      idp_http_redirect=false \\\n      logout_url=\"https://accounts.google.com/logout\" \\\n      name_id_format='urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress' \\\n      signature_method=\"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\" \\\n      synchronize_attributes=\"givenName=profile/givenName,familyName=profile/familyName,mail=profile/email\" \\\n      use_encryption=false \\\n      user_id_attribute=NameID\n\nEnable CRXDE on an AEM instance:\n\n    make enable-crxde \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary\n\nDisable CRXDE on an AEM instance:\n\n    make disable-crxde \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary\n\nExport a set of backup packages from an AEM instance using a [Package Backup Descriptor](https://github.com/shinesolutions/aem-aws-stack-builder/blob/master/docs/descriptors.md#package-backup-descriptor) file:\n\n    make export-packages-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      descriptor_file=\u003cpackage_backup_descriptor_file\u003e\n\n    make export-packages-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      descriptor_file=\u003cpackage_backup_descriptor_file\u003e\n\nExport a single AEM package from an AEM instance:\n\n    make export-package \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      package_group=somegroup \\\n      package_name=somepackage \\\n      package_filter='[{\"root\":\"/apps/geometrixx\",\"rules\":[]},{\"root\":\"/apps/geometrixx-common\",\"rules\":[]}]'\n\nFlush dispatcher cache:\n\n    make flush-dispatcher-cache \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=publish-dispatcher\n\nImport a single AEM package into an AEM instance:\n\n    make import-package \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary \\\n      source_stack_prefix=stack2 \\\n      package_group=somegroup \\\n      package_name=somepackage \\\n      package_datestamp=201702\n\nList AEM packages available on an AEM instance:\n\n    make list-packages \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary\n\nPromote an AEM Author Standby to become AEM Author Primary:\n\n    make promote-author \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nTake live snapshot of the repositories within an AEM component:\n\n    make live-snapshot \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-primary\n\nTake offline snapshots of a single AEM Author and a single AEM Publish repositories within an AEM environment (See offline-snapshot-full-set):\n\n    make offline-snapshot \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nTake offline snapshots of a single AEM Author and a single AEM Publish repositories within an AEM environment and run offline compaction on those AEM instances (See offline-compaction-snapshot-full-set):\n\n    make offline-compaction-snapshot \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nTake offline snapshots of a single AEM Author and a single AEM Publish repositories within an AEM environment (currently only supports Full-Set):\n\n    make offline-snapshot-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nTake offline snapshots of a single AEM Author and a single AEM Publish repositories within an AEM environment and run offline compaction on those AEM instances (currently only supports Full-Set):\n\n    make offline-compaction-snapshot-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nTake offline snapshots of a single AEM Author and a single AEM Publish repositories within an AEM Consolidated instance:\n\n    make offline-snapshot-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nTake offline snapshots of a single AEM Author and a single AEM Publish repositories within an AEM Consolidated instance and run offline compaction on the AEM instance:\n\n    make offline-compaction-snapshot-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nCheck readiness of an AEM environment:\n\n    make check-readiness-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make check-readiness-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nSchedule/unschedule jobs on an AEM environment:\n\n    make schedule-offline-snapshot-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make unschedule-offline-snapshot-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make schedule-offline-compaction-snapshot-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make unschedule-offline-compaction-snapshot-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make schedule-offline-snapshot-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make unschedule-offline-snapshot-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make schedule-offline-compaction-snapshot-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\n    make unschedule-offline-compaction-snapshot-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e\n\nUpgrade AEM environment to a new version on AEM environment:\n    AEM Upgrade preparation step 1 download AEM e.g. AEM 6.4 jar file and unpack it\n\n    make upgrade-unpack-jar \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-publish-dispatcher \\\n      aem_artifacts_base=\"s3://aem-opencloud/adobeaemcloud\" \\\n      aem_upgrade_version=\"6.4\" \\\n      enable_backup=false\n\n    AEM Upgrade preparation step 2 run repository migration\n\n    make upgrade-unpack-jar \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-publish-dispatcher \\\n      source_crx2oak=\"https://repo.adobe.com/nexus/content/groups/public/com/adobe/granite/crx2oak/1.8.6/crx2oak-1.8.6-all-in-one.jar\"\n\n    Trigger the AEM Upgrade to specified version:\n\n    make upgrade-unpack-jar \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e \\\n      config_path=\u003cpath/to/config/dir\u003e \\\n      component=author-publish-dispatcher \\\n       aem_upgrade_version=\"6.4\"\n\nTesting\n-------\n\nYou can run integration test for running all AEM Stack Manager events for a given AEM architecture, using the latest [AEM Hello World Config](https://github.com/shinesolutions/aem-helloworld-config) from GitHub.\n\nRun integration tests for AEM Full-Set architecture:\n\n    make test-full-set \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e\n\nRun integration tests for AEM Consolidated architecture:\n\n    make test-consolidated \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e\n\nAlternatively, you can also run the integration tests using a local AEM Hello World Config.\n\n    make test-full-set-local \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_full_set_stack_prefix\u003e\n\n    make test-consolidated-local \\\n      stack_prefix=\u003cstack_manager_stack_prefix\u003e \\\n      target_aem_stack_prefix=\u003caem_consolidated_stack_prefix\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinesolutions%2Faem-stack-manager-messenger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshinesolutions%2Faem-stack-manager-messenger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinesolutions%2Faem-stack-manager-messenger/lists"}