Porter is extensible and supports a couple extension points where you can alter its default behavior. Plugins implement a well-defined interface and can be switched by editing Porter’s configuration file.
Storage plugins let you persist files created by Porter to an alternative location, instead of to the local filesystem under ~/.porter. By default, credential and parameter sets are saved to the /credentials and /parameters directories under ~/.porter. Installation records of a bundle being executed, including claim receipts, action results and outputs, are saved to the /claims, /results and /outputs directories under ~/.porter.
Secrets plugins make it easier to securely store and share secret values and then inject them into a bundle. Currently secrets can only be injected as credentials but we are working on injecting them into parameters too. By default, credentials are resolved against the local host: environment variables, files, commands and hard-coded values.