{"id":19040745,"url":"https://github.com/cloudfoundry/multiapps-cli-plugin","last_synced_at":"2025-12-15T05:59:29.827Z","repository":{"id":40304080,"uuid":"105859998","full_name":"cloudfoundry/multiapps-cli-plugin","owner":"cloudfoundry","description":"A CLI plugin for Multi-Target Application (MTA) operations in Cloud Foundry","archived":false,"fork":false,"pushed_at":"2025-10-07T08:33:28.000Z","size":104596,"stargazers_count":83,"open_issues_count":15,"forks_count":44,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-10-07T10:25:24.430Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/cloudfoundry.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"Roadmap.adoc","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-10-05T07:14:13.000Z","updated_at":"2025-10-07T08:33:33.000Z","dependencies_parsed_at":"2024-06-07T13:47:24.293Z","dependency_job_id":"d8444252-3876-4246-9b4a-7f0b3145872c","html_url":"https://github.com/cloudfoundry/multiapps-cli-plugin","commit_stats":{"total_commits":326,"total_committers":29,"mean_commits":"11.241379310344827","dds":0.8006134969325154,"last_synced_commit":"eb07b7a66f45ace41a0600181dbe223faefa1f84"},"previous_names":["cloudfoundry-incubator/multiapps-cli-plugin","sap/cf-mta-plugin"],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/cloudfoundry/multiapps-cli-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fmultiapps-cli-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fmultiapps-cli-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fmultiapps-cli-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fmultiapps-cli-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudfoundry","download_url":"https://codeload.github.com/cloudfoundry/multiapps-cli-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fmultiapps-cli-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27744898,"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","status":"online","status_checked_at":"2025-12-15T02:00:09.782Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08T22:24:50.281Z","updated_at":"2025-12-15T05:59:29.820Z","avatar_url":"https://github.com/cloudfoundry.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg width=\"335\" height=\"281\" src=\"logo.png\" alt=\"MultiApps logo\"\u003e\u003c/p\u003e\n\n# MultiApps CF CLI Plugin [![Multiapps CLI Plugin build](https://github.com/cloudfoundry/multiapps-cli-plugin/actions/workflows/pull-request-build.yml/badge.svg)](https://github.com/cloudfoundry/multiapps-cli-plugin/actions/workflows/pull-request-build.yml)\nThis is a Cloud Foundry CLI plugin (formerly known as CF MTA Plugin) for performing operations on [Multitarget Applications (MTAs)](https://www.sap.com/documents/2021/09/66d96898-fa7d-0010-bca6-c68f7e60039b.html) in Cloud Foundry, such as deploying, removing, viewing, etc. It is a client for the [CF MultiApps Controller](https://github.com/cloudfoundry-incubator/multiapps-controller) (known also as CF MTA Deploy Service), which is an MTA deployer implementation for Cloud Foundry. The business logic and actual processing of MTAs happens into CF MultiApps Controller backend.\n\n# Requirements\n- Installed CloudFoundry CLI - ensure that CloudFoundry CLI is installed and working. For more information about installation of CloudFoundry CLI, please visit the official CloudFoundry [documentation](https://docs.cloudfoundry.org/cf-cli/install-go-cli.html). You need to have CF CLI v8\n- Working [CF MultiApps Controller](https://github.com/cloudfoundry-incubator/multiapps-controller) - this a CF plugin for the MultiApps Controller application. Thus, a working MultiApps Controller must be available on the CF landscape\n\n# Download and Installation\n\n:rotating_light: Check whether you have a previous version installed, using the command: `cf plugins`. If the MtaPlugin is already installed, you need to uninstall it first and then to install the new version. You can uninstall the plugin using command `cf uninstall-plugin MtaPlugin`.\n\n## CF Community Plugin Repository\n\nThe MultiApps CF CLI Plugin is now also available on the CF Community Repository. To install the latest available version of the MultiApps CLI Plugin execute the following:\n\n`cf install-plugin multiapps`\n\nIf you do not have the community repository in your CF CLI you can add it first by executing:\n\n`cf add-plugin-repo CF-Community https://plugins.cloudfoundry.org`\n\n## Manual Installation\n\nAlternatively you can install any version of the plugin by manually downloading it from the releases page and installing the binaries for your specific operating system.\n\n### Download\nThe latest version of the plugin can also be downloaded from the project's [releases](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/). Download the plugin for your platform (Darwin, Linux, Windows). \n\n\nMac OS X 64 bit | Mac OS X Arm64 | Windows 32 bit | Windows 64 bit | Linux 32 bit | Linux 64 bit | Linux Arm64\n--- | --- | --- | --- | --- | --- | ---\n[multiapps-plugin.osx](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.osx) | [multiapps-plugin.osxarm64](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.osxarm64) | [multiapps-plugin.win32.exe](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.win32.exe) | [multiapps-plugin.win64.exe](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.win64.exe) | [multiapps-plugin.linux32](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.linux32) | [multiapps-plugin.linux64](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.linux64) | [multiapps-plugin.linuxarm64](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/releases/latest/download/multiapps-plugin.linuxarm64)\n\n### Installation\nInstall the plugin, using the following command:\n```\ncf install-plugin \u003cpath-to-the-plugin\u003e -f\n```\n:rotating_light: Note: if you are running on an Unix-based system, you need to make the plugin executable before installing it. In order to achieve this, execute the following commad `chmod +x \u003cpath-to-the-plugin\u003e`\n\n## Usage\nThe MultiApps CF plugin supports the following commands:\n\nCommand Name | Command Description\n--- | ---\n`deploy` | Deploy a new multi-target app or sync changes to an existing one\n`undeploy` | Undeploy (remove) a multi-target app\n`mtas` | List all multi-target apps\n`mta` | Display health and status for a multi-target app\n`mta-ops` | List active multi-target app operations\n`download-mta-op-logs` / `dmol` | Download logs of multi-target app operation\n`bg-deploy` | Deploy a multi-target app using blue-green deployment\n`purge-mta-config` | Purge stale configuration entries\n\nFor more information, see the command help output available via `cf [command] --help` or `cf help [command]`.\n\nHere is an example deployment of the open-sourced [spring-music](https://github.com/nvvalchev/spring-music):\n```\ngit clone https://github.com/nvvalchev/spring-music.git\ncf deploy mta-assembly/spring-music.mtar -e config.mtaext\n```\n\n# Configuration     \nThe configuration of the MultiApps CF plugin is done via env variables. The following are supported:\n* `DEBUG=1` - Enables the logging of HTTP requests in `STDOUT` and `STDERRR`.\n* `MULTIAPPS_CONTROLLER_URL=\u003cURL\u003e` - By default, the plugin attempts to deduce the multiapps-controller URL based on the cf api endpoint URL (replaces the first part of the URL with 'deploy-service'). In case of issues, or if you want to target a non-default multiapps-controller instance, you can configure the targeted URL via this env variable.\n* `MULTIAPPS_UPLOAD_CHUNK_SIZE=\u003cPOSITIVE_INTEGER\u003e` - By default, large MTARs are not uploaded as a single unit, but are split up into smaller chunks of 45 MBs that are uploaded separately. The goal is to prevent failed uploads due to [gorouter](https://github.com/cloudfoundry/gorouter)'s request timeout. In case the default chunk size is still too large, you can configure it via this environment variable. **The specified values are in megabytes.**\n:rotating_light: Note: The total number of chunks in which an MTAR is split cannot exceed 50, since the multiapps-controller could interpret bigger values as a denial-of-service attack. For this reason, the minimum value for this environment variable is computed based on the formula: `MIN = MTAR_SIZE / 50`\nFor example, with a 100MB MTAR the minimum value for this environment variable would be 2, and for a 400MB MTAR it would be 8. Finally, the minimum value cannot grow over 50, so with a 4GB MTAR, the minimum value would be 50 and not 80.\n* `MULTIAPPS_UPLOAD_CHUNKS_SEQUENTIALLY=\u003cBOOLEAN\u003e` - By default, MTAR chunks are uploaded in parallel for better performance. In case of a bad internet connection, the option to upload them sequentially will lessen network load.\n* `MULTIAPPS_DISABLE_UPLOAD_PROGRESS_BAR=\u003cBOOLEAN\u003e` - By default, the file upload shows a progress bar. In case of CI/CD systems where console text escaping isn't supported, the bar can be disabled to reduce unnecessary logs.\n* `MULTIAPPS_USER_AGENT_SUFFIX=\u003cSTRING\u003e` - Allows customization of the User-Agent header sent with all HTTP requests. The value will be appended to the standard User-Agent string format: \"Multiapps-CF-plugin/{version} ({operating system version}) {golang builder version} {custom_value}\". Only alphanumeric characters, spaces, hyphens, dots, and underscores are allowed. Maximum length is 128 characters; longer values will be truncated. Dangerous characters (control characters, colons, semicolons) are automatically removed for security. This can be useful for tracking requests from specific environments or CI/CD systems.\n\n# How to contribute\n* [Did you find a bug?](CONTRIBUTING.md#did-you-find-a-bug)\n* [Do you have a question or need support?](CONTRIBUTING.md#do-you-have-a-question-or-need-support)\n* [How to develop, test and contribute to MultiApps CF Plugin](CONTRIBUTING.md#do-you-want-to-contribute-to-the-code-base)\n\n# Development\n\n*WARNING* : with [Issue 117](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/issues/117) the master branch of this repository as well as other artifacts will be renamed. Adaptation to any CI/CD infrastructure \u0026 scritps will be required.\n\n## Cloning the repository\nTo clone the project in your Go workspace `$GOPATH/src/github.com/cloudfoundry-incubator/multiapps-cli-plugin` execute the following commands:\n```\nmkdir -p $GOPATH/src/github.com/cloudfoundry-incubator\ncd $GOPATH/src/github.com/cloudfoundry-incubator\ngit clone git@github.com:cloudfoundry-incubator/multiapps-cli-plugin.git\n```\n\n## Building new release version\nYou can automatically build new release for all supported platforms by calling the build.sh script with the version of the build.\nThe version will be automatically included in the plugin, so it will be reported by `cf plugins`.\n\n:rotating_light: Note that the version parameter should follow the semver format (e.g. 1.2.3).\n```bash\n./build.sh 1.2.3\n```\n\nThis will produce `mta_plugin_linux_amd64`, `mta_plugin_darwin_amd64` and `mta_plugin_windows_amd64` in the repo's root directory.\n\n# Further reading\nPresentations, documents, and tutorials:\n- [Managing Distributed Cloud Native Applications Made Easy (CF Summit EU 2017 slides)](https://www.slideshare.net/NikolayValchev/managing-distributedcloudapps-80697059)\n- [Managing Distributed Cloud Native Applications Made Easy (CF Summit EU 2017 video)](https://www.youtube.com/watch?v=d07DZCuUXyk\u0026feature=youtu.be)\n- [CF orchestration capabilities by tutorial \u0026 example](https://github.com/SAP-samples/cf-mta-examples)\n\n# License\n\nThis project is licensed under the Apache Software License, v. 2 except as noted otherwise in the [LICENSE](https://github.com/cloudfoundry-incubator/multiapps-cli-plugin/blob/master/LICENSE) file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry%2Fmultiapps-cli-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudfoundry%2Fmultiapps-cli-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry%2Fmultiapps-cli-plugin/lists"}