Plug-in system¶
New since MACH composer 2.6
In order to make it more flexible and easier to add support for new MACH services to MACH composer, we've introduced a plug-in system that allows anyone to create a plugin.
If a plug-in is not available on the $PATH
, MACH composer will try to fetch the
plugin from the location that's given in the configuration. We use GitHub
releases for hosting plug-ins. Any GitHub organisation and repository can be
used to host a plugin.
The officially supported plug-ins are hosted at the MACH composer GitHub organization.
In order to add the AWS and Sentry plugins to your MACH composer configuration, add the below configuration to your MACH composer YAML configuration.
mach_composer:
version: 1
variables_file: prd-secrets.yml
plugins:
amplience:
source: mach-composer/amplience
version: 0.1.3
apollostudio:
source: mach-composer/apollostudio
version: 0.0.2
aws:
source: mach-composer/aws
version: 0.1.0
azure:
source: mach-composer/azure
version: 0.1.0
azure-minimal:
source: mach-composer/azure-minimal
version: 0.1.0
commercelayer:
source: mach-composer/commercelayer
version: 0.0.3
commercetools:
source: mach-composer/commercetools
version: 0.1.9
contentful:
source: mach-composer/contentful
version: 0.1.0
gcp:
source: mach-composer/gcp
version: 0.1.1
honeycomb:
source: mach-composer/honeycomb
version: 0.1.0
sentry:
source: mach-composer/sentry
version: 0.1.3
vercel:
source: mach-composer/vercel
version: 0.2.0
Backwards compatibility
In order to be backwards compatible, MACH composer itself currently ships the plug-ins that were previously part of MACH composer itself. When you specify specific versions of plug-ins, these will always prevail and MACH composer will try to download these.
Overriding plugin behaviour¶
As the plug-ins are open source and hosted on GitHub Releases, overriding
behaviour of a MACH composer plug-in is quite easy. Just fork the repository,
implement your changes, and configure MACH composer to fetch the plug-in from
your own repository! Just make sure that the release pipelines have resulted in
an installable artifact (goreleaser
will take care of this).
mach_composer:
plugins:
aws:
source: my-org/my-fork-of-aws
version: 0.1.0