Custom functionality can be added to ephemeral-iam
by the way of plugins.
Plugins are cobra Commands that communicate
with ephemeral-iam
over gRPC using Hashicorp's go-plugin
package.
Plugins are loaded from the /path/to/config/ephemeral-iam/plugins
directory.
To install a plugin, you just place the plugin's binary in that directory and
eiam
will automatically discover and load it.
If the plugin you want to install is hosted in a Github repo and the binary is
published as a release in the repository, you can install the plugin using the
eiam plugins install
command:
$ eiam plugins install --url github.com/user/repo-name
If the plugin is hosted in a private repository, you need to provide ephemeral-iam
with a Github personal access token to authenticate with. You can use the
eiam plugins auth
commands to add, list, and remove these access tokens.
Add tokens:
$ eiam plugins auth add --name "personal-token"
INFO Adding token with the name personal-token
✔ Enter your Github Personal Access Token: : ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
$ eiam plugins auth add --name "organization-token"
INFO Adding token with the name organization-token
✔ Enter your Github Personal Access Token: : ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
List tokens:
$ eiam plugins auth list
GITHUB ACCESS TOKENS
----------------------
personal-token
organization-token
Install with authentication:
$ eiam plugins install --url github.com/user/repo-name --token personal-token
Details on how to develop a custom plugin can be found in the plugin-dev directory.